Condividi tramite


Abilitare la cache locale di Windows Server AppFabric

Windows Server AppFabric offre la possibilità di configurare un client cache a livello di programmazione o mediante un file di configurazione dell'applicazione. Nelle procedure seguenti viene descritto come abilitare la cache locale sul client cache a livello di programmazione. Per informazioni sull'esecuzione di questa operazione con il file di configurazione dell'applicazione, vedere Abilitare la cache locale di Windows Server AppFabric (XML).

Nei passaggi seguenti viene descritto il processo richiesto per abilitare la cache locale a livello di programmazione per il client cache:

  1. Creare un'istanza della classe DataCacheLocalCacheProperties. Configurare la cache locale passando i valori corretti ai parametri del costruttore, tra cui objectCount, defaultTimeout e invalidationPolicy.

  2. Passare l'oggetto DataCacheLocalCacheProperties al costruttore di un nuovo oggetto DataCacheFactory.

  3. Utilizzare l'oggetto DataCacheFactory per richiamare il metodo GetCache per la creazione di un client cache che utilizzi la cache locale.

Avviso

Ai fini di queste procedure, si presuppone che l'ambiente di sviluppo sia già stato preparato e che i riferimenti agli assembly di memorizzazione nella cache AppFabric siano stati definiti. Per ulteriori informazioni, vedere Preparazione dell'ambiente di sviluppo del client cache (Memorizzazione nella cache di Windows Server AppFabric).

Per creare un client cache su cui sia abilitata la cache locale

  1. Creare una matrice di oggetti DataCacheServerEndpoint per specificare gli host della cache per il client.

  2. Creare un'istanza della classe DataCacheLocalCacheProperties. Configurare la cache locale passando i valori corretti ai parametri del costruttore.

    1. Utilizzare il parametro objectCount per specificare il numero massimo di oggetti nella cache locale.

    2. Utilizzare il parametro defaultTimeout per specificare un oggetto System.TimeSpan che determini il periodo di permanenza di un oggetto nella cache locale prima di venire invalidato.

    3. Utilizzare il parametro invalidationPolicy per specificare come invalidare gli oggetti memorizzati nella cache a livello locale. Specificare il valore DataCacheLocalCacheInvalidationPolicy.TimeoutBased per indicare che deve essere utilizzato solo il valore di timeout. Specificare DataCacheLocalCacheInvalidationPolicy.NotificationBased per indicare che verranno utilizzate anche le notifiche della cache oltre ai timeout. Per ulteriori informazioni, vedere Client cache e cache locale (Memorizzazione nella cache di AppFabric)

  3. Se è stato scelto il valore DataCacheLocalCacheInvalidationPolicy.NotificationBased come criterio di invalidamento, sarà possibile controllare facoltativamente la frequenza di comunicazione del client cache con il cluster di cache per notifiche di aggiornamento degli oggetti memorizzati nella cache a livello locale. A tale scopo, creare un'istanza della classe DataCacheNotificationProperties. Configurare le impostazioni di notifica passando i valori corretti ai parametri del costruttore.

    1. Utilizzare il parametro PollInterval per specificare un oggetto System.Timespan per l'intervallo di frequenza durante il quale il client cache controllerà eventuali notifiche cache nel cluster di cache. Si noti che non è richiesta la cache locale per le notifiche cache. Per ulteriori informazioni, vedere Notifiche cache (Memorizzazione nella cache di Windows Server AppFabric).

    2. Il parametro MaxQueueLength controlla la lunghezza della coda delle notifiche, ma non interessa la cache locale. Il valore predefinito è 16384.

  4. Creare un'istanza della classe DataCacheFactoryConfiguration.

  5. Configurare gli host della cache assegnando la matrice di host della cache del primo passaggio alla proprietà Servers dell'oggetto DataCacheFactoryConfiguration.

  6. Configurare la cache locale assegnando l'oggetto DataCacheLocalCachePropertiesdell'oggetto creato nel secondo passaggio alla proprietà LocalCacheProperties dell'oggetto DataCacheFactoryConfiguration.

  7. Se necessario, configurare le proprietà di notifica assegnando l'oggetto DataCacheLocalCacheProperties dell'oggetto creato nel terzo passaggio alla proprietà NotificationProperties dell'oggetto DataCacheFactoryConfiguration.

  8. Passare l'oggetto DataCacheFactoryConfiguration al costruttore della classe DataCacheFactory.

  9. Utilizzare il metodo GetCache per ottenere una classe DataCache basata sulle impostazioni dell'oggetto DataCacheFactoryConfiguration.

Nota

Se è stato scelto il valore DataCacheLocalCacheInvalidationPolicy.NotificationBased per il criterio di invalidamento della cache locale, sarà necessario configurare la cache di destinazione con le notifiche abilitate. Per ulteriori informazioni, vedere Utilizzo di Windows PowerShell per la gestione delle funzionalità di Memorizzazione nella cache di Windows Server AppFabric.

Esempio

In questo esempio viene illustrata la configurazione a livello di programmazione di un client cache con la cache locale abilitata. Il client è configurato per l'utilizzo di una cache denominata NamedCache1 e per puntare a un server di cache denominato CacheServer2.. Per utilizzare l'esempio nella propria applicazione, sostituire le proprietà del server indicate nell'esempio con quelle dei server di cache in uso. Aggiungere ulteriori oggetti DataCacheServerEndPoint alla matrice di server per ognuno degli altri host della cache presenti nel cluster.

Specificare gli host della cache designati come host principali. In genere, gli host principali sono i primi server di cache installati nel cluster. Per ulteriori informazioni sugli host principali, vedere Diagramma dell'architettura fisica della memorizzazione nella cache di Windows Server AppFabric. Per determinare quali host siano principali, utilizzare lo strumento di amministrazione di Windows PowerShell. Per ulteriori informazioni su Windows PowerShell, vedere Utilizzo di Windows PowerShell per la gestione delle funzionalità di Memorizzazione nella cache di Windows Server AppFabric. Per prima cosa, verrà creata la matrice di server. In questo esempio si configura un host della cache denominato CacheServer2.

' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);

Viene quindi creato un oggetto DataCacheLocalCacheProperties. In questo esempio, la cache locale viene creata con un numero di oggetto pari a 10000 e un valore di timeout pari a 30 secondi.

' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)

localCacheConfig = New DataCacheLocalCacheProperties(10000, _
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);

localCacheConfig = new DataCacheLocalCacheProperties(10000, 
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

Viene quindi creato un oggetto DataCacheFactoryConfiguration. Assegnare la matrice servers alla proprietà Servers. Assegnare l'oggetto localCacheConfig alla proprietà LocalCacheProperties.

' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration

factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = 
   new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

A questo punto, passare l'oggetto DataCacheFactoryConfiguration al costruttore di classi DataCacheFactory e creare un'istanza del client cache con il metodo GetCache. In questo esempio viene creato un client cache per una cache denominata NamedCache1.

' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)

' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");

Nota

Per ottenere prestazioni ottimali, è consigliabile ridurre al minimo il numero di oggetti DataCacheFactory creati in un'applicazione abilitata alla cache. Archiviare l'oggetto DataCacheFactory in una variabile che sia disponibile per tutte le parti dell'applicazione che utilizzano i client cache.

Vedere anche

Concetti

Introduzione a un client cache Windows Server AppFabric
Modificare il livello di registrazione del client cache (Memorizzazione nella cache di Windows Server AppFabric)
Client cache e cache locale (Memorizzazione nella cache di AppFabric)
Concetti di memorizzazione nella cache di AppFabric
Sviluppo di un client cache (Memorizzazione nella cache di Windows Server AppFabric)

Altre risorse

Configurazione del client cache con XML

  2011-12-05