Abfragebasierte Datenbankabhängigkeit
NCache unterstützt eine weitere Datenbankabhängigkeit namens OleDb-Abhängigkeit. Es nutzt den Polling-Mechanismus, um die Daten mit der Datenbank synchron zu halten. Diese abfragebasierte Abhängigkeit funktioniert mit großen Datensätzen.
Durch diese Datenbankabhängigkeit können Sie Cache-Elemente mit allen Datenbanken synchronisieren. Die zuvor erläuterten SQL- und Oracle-Abhängigkeiten erfordern eine Benachrichtigung durch SQL/Oracle-Datenbanken NCache über jede Änderung in der Datenbank. Wenn die Datenbank jedoch die Funktion „Änderungsbenachrichtigungen“ nicht bereitstellt, NCache Bietet die Möglichkeit, den Cache mithilfe einer abfragebasierten Abhängigkeit mit der Datenbank zu synchronisieren.
Wichtig
Bei benachrichtigungsbasierten Abhängigkeiten wie der Oracle-Abhängigkeit liegt es in der Verantwortung der Datenbank, Änderungen an den Cache zu melden, während bei abfragebasierten Abhängigkeiten NCache fragt die Datenbank nach Änderungen ab.
Notification Based Dependency funktioniert nur mit dem Datenbankserver, der Datenänderungsbenachrichtigungen unterstützt, also entweder über SQL Server (2005 oder höher) oder Oracle (10g oder höher). Die abfragebasierte Abhängigkeit funktioniert auch mit anderen Datenbankversionen, die keine Unterstützung für Datenänderungsbenachrichtigungen bieten. Außerdem ist die benachrichtigungsbasierte Abhängigkeit bei groß angelegter Nutzung nicht so ressourceneffizient wie die abfragebasierte Abhängigkeit.
Arbeiten an der OleDB-Abhängigkeit
In einer OleDB-Datenbankabhängigkeit erstellt der Benutzer eine Tabelle, die NCache Wird verwendet, um die Datenbank mit dem Cache-Speicher zu synchronisieren. Danach werden Trigger für die Tabelle erstellt, für die Benachrichtigungen erforderlich sind. Diese Trigger sind so programmiert, dass sie im Falle einer Datenänderung die entsprechenden Cache-Schlüssel in dieser Tabelle ungültig machen. DbCache-Abhängigkeit – Entfernt alle abgelaufenen Elemente aus dem Cache.
Richten Sie vor der Verwendung der OleDB-Abhängigkeit die Umgebung für die Verwendung der OleDB-Abhängigkeit ein.
Weitere Einzelheiten entnehmen Sie bitte der Richten Sie die OleDB-Umgebung ein Abschnitt im Administratorhandbuch.
Voraussetzungen:
- Umgebung einrichten für die Verwendung der OleDB-Abhängigkeit.
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, CacheItem, Abhängigkeit, CreateOleDbDependency, DBDependencyFactory, Insert.
Daten mit OleDb-Abhängigkeit hinzufügen
Um ein Element mit OleDbDependency zum Cache hinzuzufügen, NCache bietet die CreateOleDbCacheDependency
Methode. Mit dieser Methode fügt die OleDB-Abhängigkeit Elemente zum Cache hinzu.
Der folgende Code zeigt, wie eine abfragebasierte Abhängigkeit mit der Oracle-Datenbank verwendet wird. In diesem Fall ist die Datenbank für die Verwendung einer abfragebasierten Abhängigkeit konfiguriert. Der Insert Die Methode fügt ein neues Element mit der Abhängigkeit hinzu und überschreibt ihre Eigenschaften, wenn diese Daten bereits im Cache vorhanden sind.
Wichtig
Beachten Sie die von Ihnen angegebene Verbindungszeichenfolge sollen enthalten die provider
Parameters.
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a connection string to establish connection with the database
// Connection String is in [AppSettings] in App.config
string connectionString = ConfigurationManager.AppSettings["connectionstring"];
//Creating Polling based dependency
DBCacheDependency oledbDependency = DBDependencyFactory.CreateOleDbCacheDependency(connectionString, "1001:dbo.Products");
// Create a new cacheitem and add oledb dependency to it
var cacheItem = new CacheItem(product);
cacheItem.Dependency = oledbDependency;
// Add cache item in the cache with OleDb Dependency
cache.Insert(key, cacheItem);
// For successful addition of item with OleDb Dependency
// Update the record in the database and check if key is present
Note
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Wichtig
Wenn in einem Cluster-Cache ein Knoten abstürzt, während er Elemente aus dem Cache entfernt, startet der nächste Knoten im Cluster den Prozess erneut.
Weitere Informationen
NCache stellt eine Beispielanwendung für die OleDB-Abhängigkeit bereit GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Laufzeitabhängigkeiten Namespace.
Java: com.alachisoft.ncache.Laufzeitabhängigkeiten Namespace.