キャッシュ クライアントのタイムアウトを構成する

Microsoft AppFabric 1.1 for Windows Server キャッシュ機能を使用すると、キャッシュ クライアントのタイムアウト時間を設定できます。キャッシュ クラスターからの応答を待つ時間を制御できます。このトピックでは、チャネル オープン タイムアウトと要求タイムアウトの 2 種類のタイムアウトについて説明します。

一部のアプリケーションでは、タイムアウト時間を短く設定し、タイムアウト エラーを適切に処理することによって、パフォーマンスの向上を実現します。アプリケーションによっては、タイムアウト時間を比較的長く設定して、このようなエラーの頻度を低くする方がよい場合もあります。

ここで説明するタイムアウトは、キャッシュ クラスターとの初期接続には適用されません。この初期接続は、新しい DataCacheFactory オブジェクトの作成時に発生します。この接続では、Servers プロパティ、またはアプリケーション構成ファイルの hosts 要素に指定された 1 つ以上のサーバーを介してクラスターとの通信が試みられます。このようなサーバーと通信するネットワークやクラスターに問題がある場合、初期接続の確立に時間がかかる可能性があります。この遅延を緩和するには、セカンダリ スレッドに DataCacheFactory オブジェクトを作成します。アプリケーションは、プログラミング モデルに基づいて、キャッシュ クラスターとの接続が確立されるまでキャッシュがなくてもソース データを使用することにより機能できる必要があります。

ChannelOpenTimeout

チャネル オープン タイムアウトの時間を超えると、DataCacheException がスローされ、ErrorCodeRetryLater に設定されます。ChannelOpenTimeout 構成設定は、サーバーとのネットワーク接続を確立する際にキャッシュ クライアントが待機する時間を制御します。すべてのエラーが直ちにクライアントに返されるようにする場合は、このタイムアウトを 0 に設定することを選択できます。

この設定をプログラムによって変更するには、DataCacheFactoryConfiguration オブジェクトの ChannelOpenTimeout プロパティを構成します。

この設定をアプリケーションの構成ファイルで制御するには、dataCacheClient 要素に対して、channelOpenTimeout 属性を使用してタイムアウト時間をミリ秒単位で指定します。

RequestTimeout

要求タイムアウトの時間を超えると、DataCacheException がスローされ、ErrorCodeTimeout に設定されます。RequestTimeout 構成設定は、サーバーから特定の API 呼び出しの応答を受け取る際に、キャッシュ クライアントが待機する時間を制御します。たとえば、Get メソッドを呼び出してキャッシュからオブジェクトを取得する場合、要求タイムアウトによって、例外がスローされるまでのキャッシュ クライアントが応答を待機する時間が決まります。ChannelOpenTimeout の場合とは異なり、RequstTimeout を 0 に設定するとサーバーに対するすべての呼び出しでタイムアウト エラーが発生するので、0 に設定しないでください。

この設定をプログラムによって変更するには、DataCacheFactoryConfiguration オブジェクトの RequestTimeout プロパティを構成します。

この設定をアプリケーションの構成ファイルで制御するには、dataCacheClient 要素の requestTimeout 属性を使用してタイムアウト時間をミリ秒単位で指定します。

関連項目

概念

例外処理の概要
一般的例外

  2012-03-05