Das Zwischenspeichern häufig verwendeter Daten Ihrer Anwendung ist ein äußerst kompetenter Schachzug. Das Dilemma besteht jedoch darin, sicherzustellen, dass die zwischengespeicherten Daten mit Ihrer Oracle-Datenbank synchronisiert bleiben. Der Trick, dies zu umgehen, besteht darin, Datenabläufe zu verwenden, bei denen Sie die TTL (Time To Live) des Elements schätzen und es dann zwischenspeichern.

Unabhängig davon, wie beliebt dieses Schema ist, handelt es sich hierbei lediglich um eine fundierte Vermutung darüber, wie lange das Element unverändert in der Datenbank verbleiben wird. Und Vermutungen sind nicht immer korrekt. Wenn Ihre Anwendung datensensibel ist und das Abrufen und Verarbeiten ungenauer Daten ihren Zweck zunichte macht, kostet Sie die Verwendung des Ablaufdatums viel Geld.

Was Sie aus dieser misslichen Lage erspart, ist die Verwendung eines Datenbanksynchronisierungsmechanismus in Ihrem Cache, z NCache, das die entsprechenden Cache-Daten automatisch entfernt, wenn sie in der Oracle-Datenbank aktualisiert werden.

NCache Details                 Cache-Abhängigkeit von der Datenbank               Datenablauftechniken

 

Die richtigen NCache zur Synchronisierung mit Oracle Server

Oracle Dependency verwendet Ereignisbenachrichtigungen, die alle Datenbank-Clients benachrichtigen, wenn sich ein Datensatz in der Datenbank ändert. Back-End-Informationen: NCache nutzt diese Funktion, um sich als Oracle Server-Client zu registrieren. Dies bedeutet, dass bei jeder Datenänderung im Oracle-Datensatz NCache wird automatisch benachrichtigt. Mithilfe dieser Informationen NCache führt eine Karte aller zwischengespeicherten Elemente mit ihren entsprechenden Datensätzen. Also wann immer NCache Wird über eine Änderung benachrichtigt, macht es das entsprechende Cache-Element aus dem Cache ungültig und ruft das aktualisierte Element ab, wenn die Client-App das nächste Mal danach fragt.

Sync-ncache-Orakel

Abbildung: Synchronisieren NCache mit Oracle-Server

Lass uns synchronisieren NCache mit Oracle-Server

Ich werde ein einfaches Beispiel einer E-Commerce-Anwendung nehmen (.NET Core basiert), deren gesamter Erfolg in seiner Genauigkeit liegt. Tausende Kunden greifen jede Minute für Online-Einkäufe auf diese Anwendung zu, daher wurden die Daten dieser Anwendung zwischengespeichert.

Nehmen wir nun ein sehr häufiges Szenario, in dem KundeA kaufte die letzte Xbox Series X, die es im Laden gab. Der App-Server entfernt die Menge dieses Artikels aus der Datenbank, aber der Cache erkennt diese Änderung immer noch nicht. Diese Inkonsistenz führt zu Wut bei den Kunden KundeB Gefällt das gleiche Produkt, bezahlt es und wird mit einer erfolgreichen Zahlungsnachricht benachrichtigt, erhält aber nicht seine neueste Xbox Series X.

Um sicherzustellen, dass die Anwendung nicht bei jeder Datenänderung in der Oracle-Hauptdatenbank mit Datenintegritätsproblemen konfrontiert wird, NCache bietet Unterstützung von Oracle-Abhängigkeit.

Um diese Abhängigkeitsfunktion zu verwenden, NCache ermöglicht Ihnen die Parametrisierung Ihrer Oracle-Abfrage mit OracleCache-Abhängigkeit Methode, die zur Laufzeit Parameterwerte entgegennimmt. Dadurch verringert sich die Häufigkeit, mit der Ihre Abfrage auf dem Oracle-Server kompiliert werden muss, und die Leistung der Anwendung wird um das Zehnfache verbessert.

NCache Details                 Cache-Abhängigkeit von Oracle                     Richten Sie die Oracle-Umgebung ein

 

Mit OracleCacheDependency können Sie noch viel mehr tun. Hier ist eine Liste einiger sehr nützlicher Funktionen, die von dieser Oracle-Abhängigkeit unterstützt werden.

Cache-Element automatisch über Read-Thru-Provider neu laden

OracleCacheDependency ist dafür verantwortlich, ein Cache-Element ungültig zu machen, sobald es sich in der Datenquelle ändert. NCache bietet Lesen Sie den Anbieter der unterstützenden Quelle durch falls Sie möchten, dass der Cache nicht nur ungültig macht, sondern auch die neueste Version des geänderten Elements vom Oracle-Server abruft. Mit Durchlesen Option aktiviert, NCache ruft die ReadThru Provider, um die aktualisierten Daten abzurufen, wenn Oracle Server den Cache über eine Änderung benachrichtigt.

Der folgende Code erklärt, wie Sie diese Funktionalität erreichen können:

NCache Details                 Cache-Abhängigkeit von Oracle                     Read-Through-Anbieter

 

Auf gespeicherten Prozeduren basierende Oracle-Abhängigkeit

NCache unterstützt Auf gespeicherten Prozeduren basierende Oracle-Abhängigkeit wenn Sie es vorziehen, alle Ihre Oracle-Abfragen in der Oracle-Datenbank zu behalten. Diese gespeicherten Prozeduren werden auf dem Oracle-Server vorkompiliert und laufen viel schneller als dynamische Oracle-Abfragen.

Um eine gespeicherte Prozedur in Oracle zu erstellen, sehen Sie sich dieses Beispiel an:

Der Aufruf dieser gespeicherten Prozedur in Ihrer .NET-Anwendung ist einfach. Verwenden Sie den folgenden Ausschnitt als Beispiel.

 

NCache Details                 Cache-Abhängigkeit von Oracle                     Oracle-Abhängigkeit mithilfe gespeicherter Prozeduren

Warum synchronisieren? NCache mit Oracle Server?

Niemand möchte, dass seine Anwendung, an der er so hart gearbeitet hat, scheitert, nur weil sie veraltete Daten verarbeitet. Auf diese Weise verlieren Sie sowohl Ihr Geschäft als auch Ihr Gesicht. Aber NCache, sehr zu Ihrer Erleichterung, stellt Ihnen eine Oracle-Abhängigkeit zur Verfügung, die Ihren Cache mit Ihrer Oracle-Datenbank synchronisiert hält, um sicherzustellen, dass der Cache, den Sie zu Ihrem Vorteil nutzen, Sie nicht im Stich lässt.

NCache Details                                Herunterladen NCache                          Editionsvergleich