ポーリングベースのデータベース依存関係
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の詳細については、以下を参照してください。 Iキャッシュ, キャッシュ項目, 依存関係, CreateOleDbDependency, DBDependencyFactory, インセット.
OleDb依存関係でデータを追加する
OleDbDependency を使用してキャッシュに項目を追加するには、 NCache 提供する CreateOleDbCacheDependency
方法。 このメソッドを使用すると、OleDB 依存関係によって項目がキャッシュに追加されます。
次のコードは、Oracle データベースでポーリングベースの依存関係を使用する方法を示しています。 この場合、データベースはポーリングベースの依存関係を使用するように構成されています。 の インセット メソッドは依存関係を持つ新しい項目を追加し、このデータがキャッシュにすでに存在する場合は、そのプロパティを上書きします。
重要
指定する接続文字列に注意してください しなければなりません 含む provider
パラメータに一致する最初のデバイスのリモートコントロール URL を返します。
// 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
操作がフェイルセーフであることを保証するために、で説明されているように、アプリケーション内の潜在的な例外を処理することをお勧めします。 失敗の処理.
重要
クラスター化キャッシュでは、キャッシュから項目を削除しているときにノードがクラッシュすると、クラスター内の次のノードがプロセスを再度開始します。
その他のリソース
NCache OleDB 依存関係のサンプル アプリケーションを提供します。 GitHubの.
も参照してください
。ネット: Alachisoft.NCache.Runtime.Dependency 名前空間
Java: comの。alachisoft.ncache.runtime.dependency 名前空間