VENDITE: 1-800-867-1389

Notifiche (Cache nel ruolo per Cache di Azure)

Aggiornamento: luglio 2010

noteNota
Per indicazioni sulla scelta dell'offerta di Cache di Azure più adatta alla propria applicazione, vedere Qual è l'offerta di Cache di Azure più adatta alle mie esigenze?.

Mediante le notifiche della cache di Azure le applicazioni possono ricevere notifiche asincrone quando si esegue una serie di operazioni cache sul cluster di cache. Inoltre, le notifiche della cache forniscono l'invalidamento automatico di oggetti memorizzati localmente nella cache.

Per consentire la ricezione di notifiche della cache in modo asincrono, aggiungere all'applicazione un callback di notifica della cache. Quando si aggiunge il callback, vengono definiti i tipi di operazioni della cache che attivano una notifica della cache e il metodo dell'applicazione che deve essere chiamato quando si verificano le operazioni specificate. Una cache denominata deve fornire il consenso esplicito e abilitare le notifiche della cache.

Le notifiche sono supportate solo quando si usa Cache nel ruolo basato su ruoli. Le notifiche non sono invece supportate con Shared Caching. Non è quindi possibile usare le notifiche per invalidare la cache locale in Shared Caching.

Le operazioni della cache vengono definite dai membri della classe DataCacheOperations.

L'applicazione può ricevere notifiche della cache quando vengono effettuate le seguenti operazioni della cache su un'area:

L'applicazione può ricevere notifiche della cache quando vengono effettuate le seguenti operazioni della cache su un oggetto memorizzato nella cache (indicato come elemento all'interno della cache).

  • AddItem: quando viene aggiunto un elemento alla cache.

  • ReplaceItem: quando viene sostituito un elemento nella cache.

  • RemoveItem: quando viene rimosso un elemento dalla cache.

noteNota
Queste operazioni sugli elementi non dipendono dal fatto che si siano verificate o meno all'interno di un'area. È possibile scegliere di limitare l'ambito di notifica del callback a una determinata area. Questa procedura viene illustrata nella sezione Ambito di notifica del presente documento.

A seconda dell'attività e delle esigenze dell'applicazione, è possibile ignorare gli eventi relativi ad ogni oggetto e area nell'intera cache. È possibile restringere l'ambito delle notifiche dal livello di cache al livello di area e di elemento. L'ambito di notifica selezionato quando si aggiunge un callback influisce considerevolmente sul tipo di notifiche della cache ricevute.

A livello di cache, è possibile che l'applicazione riceva notifiche relative a tutte le operazioni della cache da tutti gli oggetti e le aree contenuti nella cache. A livello di area, l'applicazione riceve solo le notifiche relative alle operazioni della cache provenienti da una singola area e dagli oggetti in essa contenuti. A livello di elemento, l'applicazione riceve solo le notifiche relative alle operazioni della cache riguardanti un singolo oggetto.

Per specificare l'ambito di notifica desiderato, scegliere uno dei tre metodi seguenti per aggiungere un callback di notifica della cache:

  • AddCacheLevelCallback: quando si desidera ricevere notifiche relative a operazioni della cache per area o per elemento che si verificano in tutte le aree e in tutti gli elementi.

  • AddRegionLevelCallback: quando si desidera ricevere notifiche relative a operazioni della cache per area e per elemento che si verificano in un'area specifica.

  • AddItemLevelCallback: quando si desidera ricevere notifiche relative a operazioni della cache per elemento che si verificano in un elemento specifico.

L'ordine delle notifiche ricevute dal client della cache è garantito nel contesto di una singola area. Si supponga, ad esempio, di aver creato un'area denominata RegionA. Poiché tutti i dati inseriti in un'area della cache sono limitati alla stessa area, tutte le operazioni della cache relative all'area RegionA (ambito di notifica a livello di area) arrivano al client della cache nell'ordine reciprocamente corretto. Non è garantito che le operazioni della cache per area e per elemento che si sono verificate su altri host della cache giungano nell'ordine corretto in relazione alle operazioni che si sono verificate nell'area RegionA.

In termini di prestazioni, non è possibile garantire l'ordine delle notifiche che riguardano più aree o più oggetti non archiviati nella stessa area.

Le informazioni sulla versione relative agli eventi elemento, sotto forma di oggetto DataCacheItemVersion, vengono passate al metodo richiamato dalla notifica della cache con il parametro version. Questo oggetto DataCacheItemVersion corrisponde alla versione dell'oggetto che ha attivato l'evento elemento. Mediante il metodo CompareTo è possibile confrontare le versioni per stabilire l'ordine di priorità delle operazioni della cache.

noteNota
I confronti tra versioni sono utili solo quando si esegue il confronto tra versioni dello stesso elemento specificato con la stessa chiave. Non è possibile dedurre l'ordine confrontando versioni con chiavi diverse. Il metodo CompareTo può restituire un risultato, che tuttavia sarà valido solo per le versioni con la stessa chiave.

Quando si usano le notifiche della cache, l'applicazione effettua un controllo con il cluster di cache a intervalli regolari per verificare se sono disponibili nuove notifiche. Tale intervallo, definito intervallo di polling, corrisponde a 300 secondi per impostazione predefinita. È possibile impostare un valore inferiore per le applicazioni che eseguono frequentemente operazioni di scrittura, ma per le cache che non cambiano spesso, un intervallo maggiore è più appropriato. Il valore predefinito di 300 secondi è appropriato per la maggior parte delle cache generali.

L'intervallo di polling viene specificato in unità di secondi nelle impostazioni di configurazione dell'applicazione. Per definire un intervallo specifico, è possibile usare l'attributo pollInterval dell'elemento clientNotifications nel file di configurazione dell'applicazione. È inoltre possibile indicare un intervallo di polling specifico a livello di codice con la proprietà NotificationProperties dell'oggetto DataCacheFactoryConfiguration.

Gli host della cache possono conservare in memoria solo un determinato numero di operazioni della cache. È possibile che alcuni client della cache ricevano le notifiche solo dopo che sono state troncate nelle code degli host della cache. È inoltre possibile che i client della cache non ricevano le notifiche quando i dati vengono persi a causa di un errore in un server di cache mentre il resto del cluster continua a funzionare. In questi casi, il client della cache può rilevare la perdita di alcune notifiche della cache mediante una notifica di errore. L'applicazione può aggiungere un callback per ricevere le notifiche di errore mediante il metodo AddFailureNotificationCallback. Per altre informazioni, vedere How to: Add a Failure Notification Callback

È fondamentale distinguere tra la perdita di notifiche e la perdita del cluster di cache. Se l'applicazione perde una o più notifiche, può rilevare questa perdita grazie a una notifica di errore. Se invece l'intero cluster di cache viene arrestato, riavviato o perso, non verrà attivata alcuna notifica. Al contrario, il client della cache genererà eccezioni al successivo tentativo di usare la cache se non sarà in grado di connettersi al cluster. Eventi cluster di cache come la creazione o l'eliminazione di cache non vengono segnalati da notifiche. Se la cache viene eliminata dal server dopo la registrazione delle notifiche, non si riceve più alcuna notifica. Non è possibile distinguere tra un problema di cache non esistente e un problema di operazioni non eseguite su una cache.

noteNota
Le notifiche della cache segnalano solo modifiche relative ai dati apportate alle aree e agli elementi della cache nel cluster, ma non segnalano eventi relativi al cluster stesso.

Le notifiche della cache vengono configurate a livello di cache nelle impostazioni di configurazione del cluster. Come proprietà della cache, l'utente può abilitare questa funzionalità quando crea la cache per la prima volta. Per impostazione predefinita, la funzionalità relativa alle notifiche della cache è disabilitata quando si crea una nuova cache.

Per aggiungere un callback per la ricezione della notifiche della cache, non è necessario definire alcuna impostazione di configurazione dell'applicazione. È possibile usare le impostazioni di configurazione dell'applicazione per specificare un intervallo di polling. L'intervallo di polling predefinito è di 300 secondi. Se si desidera una durata diversa, usare l'elemento clientNotification nel file di configurazione dell'applicazione basato su XML oppure specificare l'intervallo desiderato a livello di codice con la proprietà NotificationsProperties dell'oggetto DataCacheFactoryConfiguration.

Dopo l'abilitazione, saranno disponibili tre attività correlate all'uso delle notifiche della cache: aggiunta di callback di notifiche della cache, aggiunta di un callback di notifica di errore e rimozione dei callback di notifiche della cache. Per una descrizione delle procedure relative a ogni attività, vedere la parte restante della documentazione.

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.
Mostra:
© 2014 Microsoft