Dependência de banco de dados baseada em polling
NCache oferece suporte a outra dependência de banco de dados chamada Dependência OleDb. Ele usa o mecanismo de votação para manter os dados sincronizados com o banco de dados. Esta dependência baseada em sondagem funciona com grandes conjuntos de dados.
Essa dependência do banco de dados permite manter os itens de cache sincronizados com qualquer um dos bancos de dados. As dependências SQL e Oracle explicadas anteriormente precisam de bancos de dados SQL/Oracle para notificar NCache sobre qualquer alteração no banco de dados. No entanto, se o banco de dados não fornecer o recurso Notificações de Mudança, NCache fornece a facilidade de sincronizar o cache com o banco de dados usando dependência baseada em polling.
importante
Em Dependências Baseadas em Notificação, como a dependência Oracle, é responsabilidade do banco de dados notificar alterações no cache, enquanto, em Dependência Baseada em Polling, NCache sonda o banco de dados para quaisquer alterações.
A Dependência Baseada em Notificação funciona apenas com o servidor de banco de dados, que suporta notificações de alteração de dados, ou seja, via SQL Server (2005 ou superior) ou Oracle (10g ou posterior). A dependência baseada em sondagem também funciona com outras versões de bancos de dados que não fornecem suporte para notificação de alteração de dados. Além disso, a dependência baseada em notificação não é tão eficiente em termos de recursos quanto a dependência baseada em pesquisa para uso em larga escala.
Trabalhando na dependência do OleDB
Em uma dependência de banco de dados OleDB, o usuário cria uma tabela que NCache usa para sincronizar o banco de dados com o armazenamento de cache. Depois disso, são criados gatilhos na tabela para os quais as notificações são necessárias. Esses gatilhos são programados para invalidar as chaves de cache correspondentes nesta tabela em caso de alteração de dados. DbCacheDependência - remove todos os itens do cache que estão expirados.
Antes de usar a dependência do OleDB, configure o ambiente para usar a dependência do OleDB.
Para mais detalhes, consulte o Configurar ambiente OleDB seção no Guia do Administrador.
Pré-requisitos
- Configurar ambiente para usar a dependência do OleDB.
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Para obter detalhes da API, consulte: ICache, Item de cache, Dependência, CriarOleDbDependency, DBDependencyFactory, inserção.
Adicionar dados com dependência de OleDb
Para adicionar um item no cache com OleDbDependency, NCache fornece o CreateOleDbCacheDependency
método. Usando este método, a dependência do OleDB adiciona itens ao cache.
O código a seguir mostra como usar a dependência baseada em sondagem com o banco de dados Oracle. Nesse caso, o banco de dados está configurado para usar dependência baseada em sondagem. O inserção O método adiciona um novo item com a dependência e, se esses dados já existirem no cache, ele sobrescreve suas propriedades.
importante
Observe que a cadeia de conexão especificada devo conter o 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 garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
importante
Em um cache clusterizado, se um nó travar enquanto remove itens do cache, o próximo nó no cluster iniciará novamente o processo.
Recursos adicionais
NCache fornece um aplicativo de exemplo para dependência do OleDB em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.Runtime.Dependências espaço para nome.
Java: com.alachisoft.ncache.runtime.dependencies espaço para nome.