VERTRIEB: 1-800-867-1380

Benachrichtigungen (Rollencache für Azure Cache)

Letzte Aktualisierung: Juli 2010

Azure stellt Cachebenachrichtigungen bereit, die Anwendungen beim Auftreten einer Vielzahl von Cachevorgängen auf dem Cachecluster das Empfangen asynchroner Benachrichtigungen ermöglichen. Cachebenachrichtigungen stellen außerdem eine automatische Ungültigkeitserklärung für lokal zwischengespeicherte Objekte bereit.

Fügen Sie zum Empfangen asynchroner Cachebenachrichtigungen der Anwendung einen Cachebenachrichtigungsrückruf hinzu. Beim Hinzufügen des Rückrufs definieren Sie die Typen von Cachevorgängen, die eine Cachebenachrichtigung auslösen, und die Methoden in Ihrer Anwendung, die beim Auftreten der angegebenen Vorgänge aufgerufen werden sollen. Ein benannter Cache muss Cachebenachrichtigungen abonnieren und diese aktivieren.

Benachrichtigungen werden nur unterstützt, wenn rollenbasiertes Rolleninterner Cache verwendet wird. Benachrichtigungen werden mit Freigegebenes Caching nicht unterstützt. Dies bedeutet auch, dass Sie keine Benachrichtigungen zum Invalidieren des lokalen Caches in Freigegebenes Caching verwenden können.

Diese Cachevorgänge werden durch Member der DataCacheOperations-Klasse definiert.

Anwendungen können beim Auftreten der folgenden Cachevorgänge in einem Bereich Cachebenachrichtigungen empfangen:

Die Anwendung kann Cachebenachrichtigungen empfangen, wenn die folgenden Cachevorgänge für ein zwischengespeichertes Objekt (das im Cache als Element bezeichnet wird) auftreten.

  • AddItem: Wenn dem Cache ein Element hinzugefügt wird.

  • ReplaceItem: Wenn ein Element im Cache ersetzt wird.

  • RemoveItem: Wenn ein Element aus dem Cache entfernt wird.

noteHinweis
Diese Vorgänge hängen an sich nicht vom Auftreten in Bereichen ab. Sie können sich entscheiden, den Benachrichtigungsumfang Ihres Rückrufs auf einen bestimmten Bereich einzuschränken. Dies wird im Abschnitt "Benachrichtigungsumfang" dieses Dokumente erörtert.

Abhängig von der Aktivität und den Erfordernissen Ihrer Anwendung möchten Sie möglicherweise nicht über Ereignisse für alle Objekte und Bereiche im gesamten Cache informiert werden. Sie können den Umfang der Benachrichtigungen von der Cacheebene bis hinunter zur Bereichsebene und Elementebene einschränken. Der beim Hinzufügen eines Rückrufs ausgewählte Benachrichtigungsumfang besitzt großen Einfluss auf die empfangenen Cachebenachrichtigungen.

Auf der Cacheebene können Ihre Anwendungen über alle Cachevorgänge aller Objekte und Bereiche im Cache benachrichtigt werden. Auf der Bereichsebene werden die Anwendungen nur über Cachevorgänge aus einem einzelnen Bereich und die in ihm enthaltenen Objekte benachrichtigt. Auf der Elementebene wird eine Anwendung nur über Cachevorgänge benachrichtigt, die sich auf ein einzelnes Objekt beziehen.

Wählen Sie zum Hinzufügen eines Cachebenachrichtigungsrückrufs eine der folgenden drei Methoden, um den gewünschten Benachrichtigungsumfang anzugeben:

  • AddCacheLevelCallback: Wenn Sie über bereichs- und elementbezogene Cachevorgänge aller Bereiche und Elemente informiert werden möchten.

  • AddRegionLevelCallback: Wenn Sie über bereichs- und elementbezogene Cachevorgänge aus einem bestimmten Bereich informiert werden möchten.

  • AddItemLevelCallback: Wenn Sie über elementbezogene Cachevorgänge für ein bestimmtes Element informiert werden möchten.

Die Reihenfolge der vom Cacheclient empfangenen Benachrichtigungen ist im Kontext eines einzelnen Bereichs garantiert. Nehmen Sie beispielsweise an, dass ein Bereich mit dem Namen RegionA erstellt wurde. Da alle in einen Cachebereich eingestellten Daten auf diesen einen Bereich beschränkt sind, treffen alle Cachevorgänge, die sich auf RegionA beziehen (beim Benachrichtigungsumfang auf Bereichsebene) beim Cacheclient aufeinander bezogen in der passenden Reihenfolge ein. Für bereichs- und elementbezogene Cachevorgänge, die auf anderen Cachehosts aufgetreten sind, kann das Eintreffen in der passenden Reihenfolge bezogen auf die in RegionA aufgetretenen Vorgänge nicht garantiert werden.

Im Sinne optimaler Leistung kann die Reihenfolge von Benachrichtigungen, die mehr als einen Bereich oder Objekte umfassen, die nicht im gleichen Bereich gespeichert sind, nicht garantiert werden.

Versionsinformationen für Elementereignisse in Form des DataCacheItemVersion-Objekts werden mit dem Parameter version an die von der Cachebenachrichtigung aufgerufene Methode übergeben. Dieses DataCacheItemVersion-Objekt entspricht der Version des Objekts, von dem das Elementereignis ausgelöst wurde. Mithilfe der CompareTo-Methode können Versionsvergleiche durchgeführt werden, um zu bestimmen, welche Cachevorgänge zuerst erfolgt sind.

noteHinweis
Versionsvergleiche sind nur sinnvoll, wenn Versionen des gleichen Elements, die mit dem gleichen Schlüssel angegeben werden, verglichen werden. Es ist nicht möglich, die Reihenfolge durch den Vergleich von Versionen aus verschiedenen Schlüsseln abzuleiten. Die CompareTo-Methode gibt möglicherweise ein Ergebnis zurück, das Ergebnis ist jedoch nur für Versionen des gleichen Schlüssels gültig.

Wenn Sie Cachebenachrichtigungen verwenden, überprüft die Anwendung den Cachecluster in regelmäßigen Intervallen auf neue verfügbare Benachrichtigungen. Dieses Intervall, das als Abfrageintervall bezeichnet wird, beträgt standardmäßig 300 Sekunden. Für Anwendungen mit häufigen Schreibvorgängen kann ein kleinerer Wert festgelegt werden. Für Caches, die sich nicht häufig ändern, eignet sich ggf. ein größeres Intervall besser. Der Standardwert von 300 Sekunden ist für die meisten allgemeinen Caches gut geeignet.

Das Abfrageintervall wird in den Anwendungskonfigurationseinstellungen in Sekundeneinheiten angegeben. Zum Angeben eines bestimmten Intervalls können Sie das pollInterval-Attribut des clientNotifications-Elements in der Anwendungskonfigurationsdatei verwenden. Ferner können Sie ein bestimmtes Abrufintervall programmgesteuert mithilfe der NotificationProperties-Eigenschaft des DataCacheFactoryConfiguration-Objekts angeben.

Cachehosts können nur eine bestimmte Menge von Cachevorgängen im Arbeitsspeicher halten. Es kann geschehen, dass einige Cacheclients Benachrichtigungen nicht erhalten, bevor diese in den Warteschlangen des Cachehosts abgeschnitten werden. Cacheclients können Benachrichtigungen auch verpassen, wenn Daten aufgrund eines Cacheserverfehlers verloren gehen, während der restliche Cluster weiterhin ausgeführt wird. In diesen Fällen kann der Cacheclient mithilfe von Fehlerbenachrichtigungen feststellen, dass er einige Cachebenachrichtungen verpasst hat. Die Anwendung kann mithilfe der AddFailureNotificationCallback-Methode einen Rückruf hinzufügen,um Fehlerbenachrichtungen zu empfangen. Weitere Informationen finden Sie unter How to: Add a Failure Notification Callback

Es besteht ein wichtiger Unterschied zwischen dem Verlust von Benachrichtigungen und dem Verlust des Cacheclusters. Wenn die Anwendung Benachrichtigungen verpasst, kann ihr dieser Verlust mithilfe einer Fehlerberichtigung zur Kenntnis gebracht werden. Wenn der gesamte Cachecluster beendet oder neu gestartet wird oder in anderer Weise verloren geht, werden keine Benachrichtigungen ausgelöst. Stattdessen löst der Cacheclient beim nächsten Versuch, den Cache zu verwenden, Ausnahmen aus, wenn er keine Verbindung mit dem Cluster herstellen kann. Cacheclusterereignisse wie etwa Cacheerstellung oder -löschung werden von Benachrichtigungen nicht gemeldet. Wenn ein Cache vom Server gelöscht wird, nachdem Benachrichtigungen registriert wurden, können Sie den Empfang von Benachrichtigungen einfach beenden. Es ist nicht möglich, eine Entscheidung zu treffen, ob ein Cache nicht vorhanden ist oder Vorgänge nicht für einen Cache ausgeführt werden.

noteHinweis
Cachebenachrichtigungen melden nur datenbezogene Änderungen an Bereichen und Cacheelementen im Cluster, sie melden jedoch keine Ereignisse auf dem Cluster selbst.

Das Feature für Cachebenachrichtigungen wird auf Cacheebene in den Clusterkonfigurationseinstellungen konfiguriert. Als eine Eigenschaft des Caches können Sie sie beim ersten Erstellen des Caches aktivieren. Standardmäßig ist das Feature für Cachebenachrichtigungen beim Erstellen eines neuen Caches deaktiviert.

Es sind keine Anwendungskonfigurationseinstellungen zum Hinzufügen eines Rückrufs zum Empfangen von Cachebenachrichtigungen erforderlich. Die Anwendungskonfigurationseinstellungen können verwendet werden, um ein bestimmtes Abrufintervall anzugeben. Standardmäßig beträgt das Abrufintervall 300 Sekunden. Wenn Sie eine andere Dauer benötigen, verwenden Sie das clientNotification-Element in der XML-basierten Anwendungskonfigurationsdatei, oder geben Sie das gewünschte Intervall programmgesteuert mithilfe der NotificationsProperties-Eigenschaft des DataCacheFactoryConfiguration-Objekts an.

Nach dem Aktivieren von Cachebenachrichtigungen sind drei Aufgaben im Zusammenhang mit der Verwendung von Cachebenachrichtigungen auszuführen: Hinzufügen von Cachebenachrichtigungsrückrufen, Hinzufügen eines Fehlerbenachrichtigungsrückrufs und Entfernen von Cachebenachrichtigungsrückrufen. Die Vorgehensweisen für jede dieser drei Aufgaben werden in der restlichen Dokumentation beschrieben.

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft