Dépendance de la base de données basée sur l'interrogation
NCache prend en charge une autre dépendance de base de données appelée Dépendance OleDb. Il utilise le mécanisme d'interrogation pour maintenir les données synchronisées avec la base de données. Cette dépendance basée sur l'interrogation fonctionne avec de grands ensembles de données.
Cette dépendance de base de données vous permet de synchroniser les éléments du cache avec n'importe laquelle des bases de données. Les dépendances SQL et Oracle expliquées précédemment nécessitent que les bases de données SQL/Oracle soient notifiées NCache sur tout changement dans la base de données. Cependant, si la base de données ne fournit pas la fonctionnalité de notifications de modification, NCache fournit la possibilité de synchroniser le cache avec la base de données à l'aide d'une dépendance basée sur l'interrogation.
Important
Dans les dépendances basées sur les notifications comme la dépendance Oracle, il est de la responsabilité de la base de données de notifier les modifications apportées au cache, alors que, dans la dépendance basée sur les interrogations, NCache interroge la base de données pour tout changement.
La dépendance basée sur les notifications ne fonctionne qu'avec le serveur de base de données, qui prend en charge les notifications de modifications de données, c'est-à-dire via SQL Server (2005 ou supérieur) ou Oracle (10g ou supérieur). La dépendance basée sur l'interrogation fonctionne également avec d'autres versions de bases de données qui ne fournissent pas de prise en charge des notifications de modifications de données. De plus, la dépendance basée sur les notifications n'est pas aussi économe en ressources que la dépendance basée sur les sondages pour une utilisation à grande échelle.
Travailler sur la dépendance OleDB
Dans une dépendance de base de données OleDB, l'utilisateur crée une table qui NCache utilise pour synchroniser la base de données avec le magasin de cache. Après cela, des déclencheurs sont créés sur la table pour lesquels des notifications sont requises. Ces déclencheurs sont scriptés pour invalider les clés de cache correspondantes dans cette table en cas de modification des données. DbCacheDependencyDbCacheDependency - supprime tous les éléments du cache qui ont expiré.
Avant d'utiliser la dépendance OleDB, configurez l'environnement pour utiliser la dépendance OleDB.
Pour plus de détails, veuillez consulter le Configurer l'environnement OleDB du Guide de l'administrateur.
Pré-requis
- Configurer l'environnement pour utiliser la dépendance OleDB.
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : ICache, CacheItem, Dépendance, CreateOleDbDependencyCreateOleDbDependency, DBDependencyFactory, insérer.
Ajouter des données avec la dépendance OleDb
Pour ajouter un élément dans le cache avec OleDbDependency, NCache Fournit le CreateOleDbCacheDependency
méthode. En utilisant cette méthode, la dépendance OleDB ajoute des éléments au cache.
Le code suivant montre comment utiliser la dépendance basée sur l'interrogation avec la base de données Oracle. Dans ce cas, la base de données est configurée pour utiliser la dépendance basée sur l'interrogation. Le insérer La méthode ajoute un nouvel élément avec la dépendance et si ces données existent déjà dans le cache, elle écrase ses propriétés.
Important
Notez que la chaîne de connexion que vous spécifiez must contenir le provider
paramètre.
// 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
Notes
Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
Important
Dans un cache en cluster, si un nœud tombe en panne alors qu'il supprime des éléments du cache, le nœud suivant du cluster redémarrera le processus.
Ressources additionnelles
NCache fournit un exemple d'application pour la dépendance d'OleDB sur GitHub.
Voir aussi
.RAPPORTER: Alachisoft.NCache.Dépendances.d'exécution espace de noms.
Java: com.alachisoft.ncache.dépendances.d'exécution espace de noms.