Windows Server AppFabric ローカル キャッシュの有効化
Windows Server AppFabric では、キャッシュ クライアントをプログラムやアプリケーション構成ファイルを使用して構成できます。次の手順では、キャッシュ クライアント上のローカル キャッシュをプログラムから有効にする方法について説明します。これをアプリケーション構成ファイルで行う方法の詳細については、「Windows Server AppFabric ローカル キャッシュの有効化 (XML)」を参照してください。
次の手順では、キャッシュ クライアント上のローカル キャッシュをプログラムから有効にするために必要なプロセスについて説明します。
DataCacheLocalCacheProperties クラスのインスタンスを作成します。適切な値をコンストラクターのパラメーターに渡すことによって、ローカル キャッシュを構成します。このようなパラメーターには、objectCount、defaultTimeout、および invalidationPolicy があります。
DataCacheLocalCacheProperties オブジェクトを新しい DataCacheFactory オブジェクトのコンストラクターに渡します。
DataCacheFactory オブジェクトを使用して GetCache メソッドを呼び出し、ローカル キャッシュを使用するキャッシュ クライアントを作成します。
警告
ここで説明する手順では、開発環境が既に整っていて、AppFabric のキャッシュ アセンブリへの参照が設定済みであることを前提としています。詳細については、「キャッシュ クライアント開発環境の準備 (Windows Server AppFabric キャッシュ)」を参照してください。
ローカル キャッシュが有効になっているキャッシュ クライアントを作成するには
DataCacheServerEndpoint オブジェクトの配列を作成してクライアントのキャッシュ ホストを指定します。
DataCacheLocalCacheProperties クラスのインスタンスを作成します。適切な値をコンストラクターのパラメーターに渡すことによって、ローカル キャッシュを構成します。
objectCount
パラメーターで、ローカル キャッシュ内のオブジェクトの最大数を指定します。defaultTimeout
パラメーターで、System.TimeSpan オブジェクトを指定します。オブジェクトはここに指定された期間だけローカル キャッシュに留まり、それ以降は無効になります。invalidationPolicy
パラメーターで、ローカル キャッシュ オブジェクトを無効にする方法を指定します。タイムアウト値のみを使用するには、DataCacheLocalCacheInvalidationPolicy.TimeoutBased を指定します。タイムアウトに加えてキャッシュ通知も使用するには、DataCacheLocalCacheInvalidationPolicy.NotificationBased を指定します。詳細については、「キャッシュ クライアントとローカル キャッシュ (Windows Server AppFabric キャッシング)」を参照してください。
無効化ポリシーに DataCacheLocalCacheInvalidationPolicy.NotificationBased を選択した場合は、オプションでポーリング間隔を指定することによって、キャッシュ クライアントがキャッシュ クラスターと通信してローカル キャッシュ オブジェクトの通知を更新する頻度を制御できます。これを行うには、DataCacheNotificationProperties クラスのインスタンスを作成します。適切な値をコンストラクターのパラメーターに渡すことによって、通知設定を構成します。
PollInterval
パラメーターで、System.Timespan オブジェクトを指定します。ここに指定された間隔でキャッシュ クライアントはキャッシュ通知の有無についてキャッシュ クラスターをチェックします。ローカル キャッシュのキャッシュ通知は必須ではないことに注意してください。詳細については、「キャッシュ通知 (Windows Server AppFabric キャッシュ)」を参照してください。MaxQueueLength
パラメーターで通知のキューの長さを制御します。ただし、これによるローカル キャッシュへの具体的な影響はありません。既定値は 16384 です。
DataCacheFactoryConfiguration クラスのインスタンスを作成します。
キャッシュ ホストを構成します。そのためには、最初の手順で作成したキャッシュ ホスト配列を DataCacheFactoryConfiguration オブジェクトの
Servers
プロパティに割り当てます。2 番目の手順で作成した DataCacheLocalCacheProperties オブジェクトを DataCacheFactoryConfiguration オブジェクトの
LocalCacheProperties
プロパティに割り当てることによって、ローカル キャッシュを構成します。必要に応じて、3 番目の手順で作成した DataCacheNotificationProperties オブジェクトを DataCacheFactoryConfiguration オブジェクトの
NotificationProperties
プロパティに割り当てることによって、通知プロパティを構成します。DataCacheFactoryConfiguration オブジェクトを DataCacheFactory クラスのコンストラクターに渡します。
DataCacheFactoryConfiguration オブジェクトの設定に基づいて GetCache メソッドを使用し、DataCache クラスを取得します。
ヒント
ローカル キャッシュの無効化ポリシーに DataCacheLocalCacheInvalidationPolicy.NotificationBased を選択した場合、対象のキャッシュを構成して通知を有効にする必要があります。詳細については、「Windows PowerShell を使用した Windows Server AppFabric キャッシュ機能の管理」を参照してください。
例
次の例では、ローカル キャッシュが有効になっているキャッシュ クライアントをプログラムから構成する方法を示します。このクライアントは、NamedCache1
というキャッシュを使用し、CacheServer2
というキャッシュ サーバーを参照するように構成されます。独自のアプリケーションでこの例を使用するには、この例のサーバー プロパティを実際のキャッシュ サーバーに置き換えてください。クラスター内の他のキャッシュ ホストのそれぞれについて、DataCacheServerEndPoint オブジェクトをサーバー配列に追加します。
リード ホストに指定されているキャッシュ ホストを指定します。リード ホストは通常、クラスターにインストールされた最初のキャッシュ サーバーです。リード ホストの詳細については、「Windows Server AppFabric キャッシュの物理アーキテクチャ図」を参照してください。どのホストがリード ホストであるかは、Windows PowerShell 管理ツールを使用して確認できます。Windows PowerShell の詳細については、「Windows PowerShell を使用した Windows Server AppFabric キャッシュ機能の管理」を参照してください。最初に、サーバー配列が作成されます。この例では、CacheServer2
という名前のキャッシュ ホストを構成します。
' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);
次に、DataCacheLocalCacheProperties オブジェクトを作成します。この例では、ローカル キャッシュが作成され、オブジェクト数は 10000
、タイムアウトは 30
秒に設定されます。
' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)
localCacheConfig = New DataCacheLocalCacheProperties(10000, _
localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);
localCacheConfig = new DataCacheLocalCacheProperties(10000,
localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);
次に、DataCacheFactoryConfiguration オブジェクトを作成します。servers
配列を Servers
プロパティに割り当てます。localCacheConfig
オブジェクトを LocalCacheProperties
プロパティに割り当てます。
' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration
factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig =
new DataCacheFactoryConfiguration();
factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;
次に、DataCacheFactoryConfiguration オブジェクトを DataCacheFactory クラス コンストラクターに渡し、GetCache メソッドでキャッシュ クライアントをインスタンス化します。この例では、NamedCache1
という名前のキャッシュのキャッシュ クライアントを作成します。
' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)
' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);
// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");
ヒント
パフォーマンス向上のため、キャッシュが有効なアプリケーションに作成する DataCacheFactory オブジェクトの数は最小限にすることをお勧めします。DataCacheFactory オブジェクトは、キャッシュ クライアントを使用するアプリケーションのすべての部分で使用可能な変数に格納します。
関連項目
概念
Windows Server AppFabric キャッシュ クライアントの概要
キャッシュ クライアントのログ レベルの変更 (Windows Server AppFabric キャッシュ)
キャッシュ クライアントとローカル キャッシュ (Windows Server AppFabric キャッシング)
Windows Server AppFabric のキャッシュの概念
キャッシュ クライアントを開発する (Windows Server AppFabric キャッシュ)
その他のリソース
2011-12-05