Impostazioni di configurazione dell'applicazione (Memorizzazione nella cache di AppFabric 1.1)

Con le funzionalità di memorizzazione nella cache di Microsoft AppFabric 1.1 per Windows Server è possibile configurare le impostazioni dei client della cache dell'applicazione a livello di programmazione, mediante un file di configurazione dell'applicazione o utilizzando entrambi gli approcci in punti diversi dell'applicazione. Per ulteriori informazioni su ciascuno di questi metodi di configurazione e su come selezionarli, vedere Configurazione di un client della cache.

Indipendentemente dall'approccio adottato, l'impostazione del client della cache che si configura è la stessa. Le tabelle presenti in questo argomento riportano le impostazioni disponibili per il client della cache e indicano come vengono configurate nel file di configurazione dell'applicazione basato su XML e a livello di programmazione utilizzando il codice.

Per ulteriori informazioni sull'utilizzo di queste impostazioni nell'applicazione, vedere gli esempi forniti in Configurazione del client basata su XML.

Impostazione del client della cache

Ciascun client della cache contiene impostazioni di configurazione definite. Se si utilizza un file di configurazione, tali impostazioni sono incluse in una o più sezioni dataCachClient che possono essere incorporate in una sezione dataCacheClients. Ad esempio:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

Nel file di configurazione del precedente esempio sono presenti due client della cache: default e compressedCache. Per accedere alla cache predefinita, non deve essere specificato il nome del relativo client. Ad esempio:

DataCacheFactory factory = new DataCacheFactory();

Per specificare una qualsiasi altra sezione dataCacheClient denominata, è necessario specificare il nome di tale sezione del client della cache utilizzando il costruttore DataCacheFactoryConfiguration.

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

Se non si utilizza un file di configurazione dell'applicazione, è possibile definire tutte le impostazioni a livello di programmazione con le proprietà della classe DataCacheFactoryConfiguration.

Impostazione Percorso della configurazione XML Percorso della configurazione del codice

Compressione (booleano)

Attributo isCompressionEnabled dell'elemento dataCacheClient. Il valore predefinito è false.

Proprietà IsCompressionEnabled della classe DataCacheFactoryConfiguration.

Timeout del client (millisecondi)

Attributo requestTimeout dell'elemento dataCacheClient. Non è consigliabile specificare un valore inferiore a 10000 (10 secondi). Il valore predefinito è 15000.

Proprietà RequestTimeout della classe DataCacheFactoryConfiguration.

Timeout aperto del canale (millisecondi)

Attributo channelOpenTimeout dell'elemento dataCacheClient. Questo valore può essere impostato su 0 per gestire immediatamente qualsiasi problema di rete. Per ulteriori informazioni, vedere Configurazione dei timeout del client della cache. Il valore predefinito è 3000.

Proprietà ChannelOpenTimeout della classe DataCacheFactoryConfiguration.

Numero massimo di connessioni al server

Attributo maxConnectionsToServer dell'elemento dataCacheClient. Il valore predefinito è 1.

Proprietà MaxConnectionsToServer della classe DataCacheFactoryConfiguration.

Impostazioni dell'host della cache

Per ogni client della cache è necessario specificare uno o più host della cache nel cluster. Specificare gli host principali, poiché gli host della cache designati come host principali semplificano la gestione del cluster. Inizialmente, gli host principali sono i primi host della cache installati nel cluster. Per ulteriori informazioni sugli host principali, vedere Diagramma dell'architettura fisica della memorizzazione nella cache di AppFabric (Memorizzazione nella cache di AppFabric 1.1).

Nel file di configurazione dell'applicazione, le impostazioni per ogni host della cache sono specificate in un elemento dell'host, figlio dell'elemento hosts. A livello di programmazione, ogni host viene definito nel costruttore di classe della classe DataCacheServerEndpoint. Dopo la creazione della relativa istanza, questi oggetti DataCacheServerEndPoint vengono passati alla proprietà Servers della classe DataCacheServerEndpoint.

Impostazione Percorso della configurazione XML Percorso della configurazione del codice

Nome del server della cache

Attributo name dell'elemento host.

Proprietà HostName della classe DataCacheServerEndpoint.

Numero di porta della cache

Attributo cachePort dell'elemento host.

Proprietà CachePort della classe DataCacheServerEndpoint.

Impostazioni della cache locale

Le impostazioni della cache locale specificano se è necessario abilitare una cache locale, la modalità di invalidazione degli oggetti memorizzati nella cache a livello locale, il timeout degli oggetti e se per invalidare gli oggetti memorizzati nella cache a livello locale occorra utilizzare le notifiche cache.

Nel file di configurazione dell'applicazione le impostazioni della cache locale sono definite nell'elemento localCache, figlio dell'elemento dataCacheClient. La cache locale è configurata a livello di codice con un'istanza della classe DataCacheFactoryConfiguration passata al costruttore del costruttore di classi DataCacheFactory. Per ulteriori informazioni sulla cache locale, vedere Client della cache e cache locale (Memorizzazione nella cache di AppFabric 1.1).

Impostazione Percorso della configurazione XML Percorso della configurazione del codice

Cache locale abilitata

Attributo isEnabled dell'elemento localCache. I valori possono essere true o false. L'elemento localCache può risultare mancante, a indicare che è disabilitato.

Proprietà IsEnabled della classe DataCacheLocalCacheProperties. Questa viene assegnata alla proprietà LocalCacheProperties della classe DataCacheFactoryConfiguration.

Metodo di invalidazione della cache locale

Attributo sync dell'elemento localCache. Utilizzare il valore TimeoutBased per indicare che è necessario ricorrere a un valore di timeout. Utilizzare NotificationBased per indicare che è necessario utilizzare anche le notifiche della cache.

Proprietà InvalidationPolicy della classe DataCacheLocalCacheProperties. I possibili valori includono NotificationBased e TimeoutBased.

Timeout della cache locale (secondi)

Attributo ttlValue dell'elemento localCache.

Proprietà DefaultTimeout della classe DataCacheLocalCacheProperties.

Intervallo specifico di polling per le notifiche cache (secondi)

(facoltativo) Specificato dall'attributo pollInterval dell'elemento clientNotification. L'elemento clientNotification è figlio dell'elemento dataCacheClient e non dell'elemento localCache. Se non diversamente specificato, occorre utilizzare un valore pari a 300 secondi.

Proprietà PollInterval della classe DataCacheNotificationProperties. Questa viene assegnata alla proprietà NotificationProperties della classe DataCacheFactoryConfiguration.

Conteggio massimo degli oggetti memorizzati nella cache a livello locale

(facoltativo) Specificato dall'attributo objectCount dell'elemento localCache. Viene attivato quando deve iniziare l'eliminazione nella cache locale. Viene quindi tentata la rimozione del 20% degli oggetti memorizzati nella cache locale utilizzati meno di recente. Se non è specificato, viene utilizzato il valore predefinito di 10.000 oggetti.

Proprietà ObjectCount della classe DataCacheLocalCacheProperties.

Nota

Per ottenere prestazioni migliori, abilitare la cache locale solo per gli oggetti che cambiano raramente. L'utilizzo della cache locale per la memorizzazione degli oggetti che vengono modificati più spesso aumenta le probabilità che il client utilizzi oggetti obsoleti. Sebbene sia possibile ridurre il ttlValue e impostare un processo in grado di aggiornare la cache locale con maggiore frequenza, l'incremento del carico sul cluster può annullare i vantaggi offerti dalla disponibilità di una cache locale. Se i dati vengono modificati spesso, è consigliabile disabilitare la cache locale ed estrarre i dati direttamente dal cluster.

Impostazioni di notifica

Nel file di configurazione dell'applicazione le proprietà della notifica sono definite nell'elemento clientNotification, figlio dell'elemento dataCacheClient. Le proprietà della notifica sono configurate a livello di codice con un'istanza della classe DataCacheFactoryConfiguration passata al costruttore del costruttore di classi DataCacheFactory. Per ulteriori informazioni, vedere Metodi di configurazione.

Impostazione Percorso di configurazione XML Percorso della configurazione del codice

Intervallo specifico di polling per le notifiche della cache (secondi)

Specificato dall'attributo pollInterval dell'elemento clientNotification. Se non specificato, viene utilizzato un valore di 300 secondi.

Proprietà PollInterval della classe DataCacheNotificationProperties. Viene assegnata alla proprietà NotificationProperties della classe DataCacheFactoryConfiguration.

Massima lunghezza coda

Attributo maxQueueLength dell'elemento clientNotification. Se non è specificato, il valore predefinito è 10000.

Proprietà MaxQueueLength della classe DataCacheNotificationProperties.

Impostazioni di sicurezza

Nel file di configurazione dell'applicazione le proprietà di sicurezza sono definite nell'elemento securityProperties, figlio dell'elemento dataCacheClient. Le proprietà di sicurezza sono configurate a livello di codice con un'istanza della classe DataCacheFactoryConfiguration passata al costruttore del costruttore di classi DataCacheFactory. Per ulteriori informazioni, vedere Metodi di configurazione.

Impostazione Percorso di configurazione XML Percorso della configurazione del codice

Modalità

Attributo mode dell'elemento securityProperties. I possibili valori comprendono Transport e None. Il valore predefinito è Transport.

Proprietà SecurityMode della classe DataCacheSecurity. I possibili valori comprendono None e Transport. L'oggetto DataCacheSecurity viene quindi assegnato alla proprietà SecurityProperties della classe DataCacheFactoryConfiguration.

Livello di sicurezza

Attributo protectionLevel dell'elemento securityProperties. I valori possibili comprendono None, Sign e EncryptAndSign. Il valore predefinito è EncryptAndSign.

Proprietà ProtectionLevel della classe DataCacheSecurity. I valori possibili comprendono None, Sign e EncryptAndSign.

Impostazioni del trasporto

Nel file di configurazione dell'applicazione le proprietà del trasporto sono definite nell'elemento transportProperties, figlio dell'elemento dataCacheClient. Le proprietà del trasporto sono configurate a livello di codice con un'istanza della classe DataCacheFactoryConfiguration passata al costruttore del costruttore di classi DataCacheFactory. Per ulteriori informazioni, vedere Metodi di configurazione.

Impostazione Percorso di configurazione XML Percorso della configurazione del codice

Dimensione del buffer di connessione (byte)

Attributo connectionBufferSize dell'elemento transportProperties.

Proprietà ConnectionBufferSize della classe DataCacheTransportProperties. Viene assegnata alla proprietà TransportProperties della classe DataCacheFactoryConfiguration.

Dimensione massima pool di buffer (byte)

Attributo maxBufferPoolSize dell'elemento transportProperties.

Proprietà MaxBufferPoolSize della classe DataCacheTransportProperties.

Dimensione massima buffer (byte)

Attributo maxBufferSize dell'elemento transportProperties.

Proprietà MaxBufferSize della classe DataCacheTransportProperties.

Ritardo massimo output (millisecondi)

Attributo maxOutputDelay dell'elemento transportProperties.

Proprietà MaxOutputDelay della classe DataCacheTransportProperties.

Timeout inizializzazione canale (millisecondi)

Attributo channelInitializationTimeout dell'elemento transportProperties.

Proprietà ChannelInitializationTimeout della classe DataCacheTransportProperties.

Timeout ricezione (millisecondi)

Attributo receiveTimeout dell'elemento transportProperties.

Proprietà ReceiveTimeout della classe DataCacheTransportProperties.

File di configurazione dell'applicazione di esempio

Per consentire agli assembly di AppFabric di leggere gli elementi XML presenti nel file di configurazione dell'applicazione, è necessario che configSections venga inserito come primo elemento del file nel tag configuration. All'interno dell'elemento configSections è necessario includere un elemento section associato all'elemento dataCacheClient.

Nell'esempio riportato un esempio viene presentato un file di configurazione dell'applicazione in cui sono utilizzate molte delle opzioni di configurazione del client della cache descritte in questo argomento. È importante notare che per il collegamento al cluster solo l'elemento hosts è obbligatorio in dataCacheClient. Tutti gli altri elementi figlio hanno valori predefiniti

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>
</configuration>

Vedere anche

Concetti

Configurazione di un client della cache
Impostazioni di configurazione del cluster
Risoluzione dei problemi relativi alla memorizzazione nella cache di AppFabric
Utilizzo di Windows PowerShell per la gestione delle funzionalità di memorizzazione nella cache di AppFabric 1.1
Concetti di memorizzazione nella cache di AppFabric (Memorizzazione nella cache di AppFabric 1.1)
Sviluppo di un client della cache

  2012-03-05