Dependencia de la base de datos basada en sondeos
NCache admite otra dependencia de base de datos llamada Dependencia OleDb. Utiliza el mecanismo de sondeo para mantener los datos sincronizados con la base de datos. Esta dependencia basada en encuestas funciona con grandes conjuntos de datos.
Esta dependencia de la base de datos le permite mantener los elementos de la caché sincronizados con cualquiera de las bases de datos. Las dependencias de SQL y Oracle explicadas anteriormente necesitan bases de datos SQL/Oracle para notificar NCache sobre cualquier cambio en la base de datos. Sin embargo, si la base de datos no proporciona la función Notificaciones de cambios, NCache proporciona la posibilidad de sincronizar el caché con la base de datos mediante una dependencia basada en sondeo.
Importante:
En las dependencias basadas en notificaciones, como la dependencia de Oracle, es responsabilidad de la base de datos notificar los cambios en la memoria caché, mientras que, en las dependencias basadas en sondeos, NCache sondea la base de datos en busca de cambios.
La dependencia basada en notificaciones solo funciona con el servidor de base de datos, que admite notificaciones de cambios de datos, es decir, a través de SQL Server (2005 o superior) u Oracle (10g o posterior). La dependencia basada en sondeos también funciona con otras versiones de bases de datos que no brindan soporte para notificaciones de cambios de datos. Además, la dependencia basada en notificaciones no consume tanto recursos como la dependencia basada en sondeos para un uso a gran escala.
Trabajando en la dependencia de OleDB
En una dependencia de base de datos OleDB, el usuario crea una tabla que NCache utiliza para sincronizar la base de datos con el almacén de caché. Después de eso, se crean desencadenadores en la tabla para la cual se requieren notificaciones. Estos activadores están programados para invalidar las claves de caché correspondientes en esta tabla en caso de cambio de datos. DbCacheDependencyDbCacheDependency - elimina todos los elementos del caché que están caducados.
Antes de usar la dependencia de OleDB, configure el entorno para usar la dependencia de OleDB.
Para obtener más detalles, consulte el Configurar el entorno OleDB sección de la Guía del administrador.
Requisitos previos
- Configurar entorno para usar la dependencia de OleDB.
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Para obtener detalles de la API, consulte: Dolor, Artículo de caché, Dependencia, CreateOleDbDependencyCreateOleDbDependency, DBDependencyFactory, recuadro.
Agregar datos con dependencia de OleDb
Para agregar un elemento en el caché con OleDbDependency, NCache proporciona CreateOleDbCacheDependency
método. Con este método, la dependencia OleDB agrega elementos al caché.
El siguiente código muestra cómo utilizar la dependencia basada en sondeo con la base de datos Oracle. En este caso, la base de datos está configurada para utilizar una dependencia basada en sondeo. El recuadro El método agrega un nuevo elemento con la dependencia y, si estos datos ya existen en el caché, sobrescribe sus propiedades.
Importante:
Tenga en cuenta que la cadena de conexión que especifique debe contener el provider
parámetro.
// 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
Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Importante:
En una caché agrupada, si un nodo falla mientras elimina elementos de la caché, el siguiente nodo del clúster iniciará nuevamente el proceso.
Recursos adicionales
NCache proporciona una aplicación de ejemplo para la dependencia de OleDB en GitHub.
Vea también
.NETO: Alachisoft.NCache.Dependencias.de.tiempo de ejecución espacio de nombres
Java: com.alachisoft.ncache.dependencias.de.tiempo de ejecución espacio de nombres