Esporta (0) Stampa
Espandi tutto
Questo argomento non è stato ancora valutato - Valuta questo argomento

Notifiche (In-Role Cache per Cache di Windows Azure)

Aggiornamento: giugno 2013

Windows Azure fornisce notifiche della cache che consentono alle applicazioni di ricevere notifiche asincrone quando viene eseguita una serie di operazioni nel cluster di cache. Le notifiche della cache consentono inoltre l'invalidamento automatico degli oggetti memorizzati nella cache locale.

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 utilizza Cache nel ruolo basato su ruoli. Le notifiche non sono invece supportate con Shared Caching. Non è quindi possibile utilizzare le notifiche per invalidare la cache locale in Shared Caching.

Attivazione di notifiche della cache

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

Operazioni sulle aree

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

Operazioni sugli elementi

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.

Ambito di notifica

A seconda dell'attività e delle esigenze dell'applicazione, è possibile ignorare gli eventi relativi ad alcuni oggetti e aree 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 riceverà 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 riceverà 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.

Ordine delle notifiche

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.

Intervallo di polling

Quando si utilizzano 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, equivale 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 utilizzare 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.

In caso di perdita delle notifiche

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 ulteriori informazioni, vedere How to: Add a Failure Notification Callback.

In caso di perdita del cluster di cache

È fondamentale distinguere tra la perdita di notifiche e la perdita del cluster di cache. Se l'applicazione perde una o più notifiche, potrà rilevare tale 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 la volta successiva in cui si tenterà di utilizzare la cache se non sarà possibile 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.

Abilitazione delle notifiche della cache

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 utilizzare 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, utilizzare 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.

Utilizzo delle notifiche della cache

Dopo l'abilitazione, saranno disponibili tre attività correlate all'utilizzo 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 ciascuna di queste attività, vedere la parte restante della documentazione.

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.