폴링 기반 데이터베이스 종속성
NCache OleDb 종속성이라는 또 다른 데이터베이스 종속성을 지원합니다. 이는 폴링 메커니즘을 사용하여 데이터를 데이터베이스와 동기화된 상태로 유지합니다. 이 폴링 기반 종속성은 대규모 데이터 세트에서 작동합니다.
이 데이터베이스 종속성을 통해 캐시 항목을 모든 데이터베이스와 동기화된 상태로 유지할 수 있습니다. 앞에서 설명한 SQL 및 Oracle 종속성을 알리려면 SQL/Oracle 데이터베이스가 필요합니다. NCache 데이터베이스의 모든 변경 사항에 대해 그러나 데이터베이스가 변경 알림 기능을 제공하지 않는 경우 NCache 폴링 기반 종속성을 사용하여 캐시를 데이터베이스와 동기화하는 기능을 제공합니다.
중대한
Oracle 종속성과 같은 알림 기반 종속성에서는 캐시 변경 사항을 알리는 것이 데이터베이스의 책임인 반면, 폴링 기반 종속성에서는 NCache 변경 사항에 대해 데이터베이스를 폴링합니다.
알림 기반 종속성은 SQL Server(2005 이상) 또는 Oracle(10g 이상)을 통해 데이터 변경 알림을 지원하는 데이터베이스 서버에서만 작동합니다. 폴링 기반 종속성은 데이터 변경 알림 지원을 제공하지 않는 다른 버전의 데이터베이스에서도 작동합니다. 또한 알림 기반 종속성은 대규모 사용에 있어서 폴링 기반 종속성만큼 리소스 효율적이지 않습니다.
OleDB 종속성 작업
OleDB 데이터베이스 종속성에서 사용자는 다음과 같은 테이블을 생성합니다. NCache 데이터베이스를 캐시 저장소와 동기화하는 데 사용됩니다. 그 후 알림이 필요한 테이블에 트리거가 생성됩니다. 이러한 트리거는 데이터 변경 시 이 테이블의 해당 캐시 키를 무효화하도록 스크립트되어 있습니다. DbCache 종속성 - 만료된 캐시에서 모든 항목을 제거합니다.
OleDB 종속성을 사용하기 전에 OleDB 종속성을 사용하기 위한 환경을 설정합니다.
자세한 내용은 다음을 참조하십시오. OleDB 환경 설정 관리자 안내서의 섹션을 참조하세요.
사전 조건
- 환경 설정 OleDB 종속성을 사용하기 위한 것입니다.
- 모든 작업에 필요한 표준 전제 조건에 대해 알아보려면 NCache 클라이언트측 기능은 다음 페이지를 참조하세요. 클라이언트 측 API 전제 조건.
- API 세부 정보는 다음을 참조하세요. 아이캐시, 캐시 아이템, 의존, CreateOleDb종속성, DB종속성공장, 끼워 넣다.
OleDb 종속성을 사용하여 데이터 추가
OleDbDependency를 사용하여 캐시에 항목을 추가하려면 NCache 제공 CreateOleDbCacheDependency
방법. 이 방법을 사용하면 OleDB 종속성이 캐시에 항목을 추가합니다.
다음 코드는 Oracle 데이터베이스에서 폴링 기반 종속성을 사용하는 방법을 보여줍니다. 이 경우 데이터베이스는 폴링 기반 종속성을 사용하도록 구성됩니다. 그만큼 끼워 넣다 메서드는 종속성과 함께 새 항목을 추가하고, 이 데이터가 캐시에 이미 존재하는 경우 해당 속성을 덮어씁니다.
중대한
지정한 연결 문자열은 절대로 필요한 것 포함 provider
매개 변수입니다.
// 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
주의 사항
작업이 안전하도록 하려면 에 설명된 대로 응용 프로그램 내에서 잠재적인 예외를 처리하는 것이 좋습니다. 처리 실패.
중대한
클러스터형 캐시에서는 노드가 캐시에서 항목을 제거하는 동안 충돌이 발생하면 클러스터의 다음 노드가 프로세스를 다시 시작합니다.
추가 자료
NCache OleDB 종속성에 대한 샘플 애플리케이션을 제공합니다. GitHub의.
도 참조
.그물: Alachisoft.NCache.런타임.종속성 네임 스페이스.
자바 : COM.alachisoft.ncache.runtime.종속성 네임 스페이스.