アプリケーション構成設定 (AppFabric 1.1 キャッシュ)

Microsoft AppFabric 1.1 for Windows Server のキャッシュ機能では、アプリケーションのキャッシュ クライアント設定をプログラムやアプリケーション構成ファイルを使用して構成できます。アプリケーションの場所に応じて両方の方法を使い分けることもできます。これらの構成方法とそれぞれの選択方法の詳細については、「キャッシュ クライアントの構成」を参照してください。

どちらの方法を使用する場合でも、構成する対象は同じキャッシュ クライアント設定です。このトピックの表に、キャッシュ クライアントで利用できる設定、およびそれぞれを XML ベースのアプリケーション構成ファイルで構成する方法と、コードを使用してプログラムから構成する方法を示します。

アプリケーションでこれらの設定を使用する方法の詳細については、「XML ベースのクライアント構成」の例を参照してください。

キャッシュ クライアント設定

各キャッシュ クライアントで構成設定が定義されています。構成ファイルを使用する場合、これらの設定は 1 つ以上の dataCachClient セクションに含まれています。このセクションは、dataCacheClients セクションに埋め込むことができます。次に例を示します。

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

前の例では、構成ファイルで default および compressedCache の 2 つのキャッシュ クライアントが定義されています。既定のキャッシュにアクセスする場合は、キャッシュ クライアントの名前を指定する必要はありません。次に例を示します。

DataCacheFactory factory = new DataCacheFactory();

他の名前付き dataCacheClient セクションを指定するには、DataCacheFactoryConfiguration コンストラクターを使用して、キャッシュ クライアント セクション名を指定する必要があります。

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

アプリケーション構成ファイルを使用しない場合は、DataCacheFactoryConfiguration クラスのプロパティを指定して、プログラムによってすべての設定を定義できます。

設定 XML による構成箇所 コードによる構成箇所

圧縮 (ブール型)

dataCacheClient 要素の isCompressionEnabled 属性。既定値は false です。

DataCacheFactoryConfiguration クラスの IsCompressionEnabled プロパティ。

クライアント タイムアウト (ミリ秒)

dataCacheClient 要素の requestTimeout 属性。10000 (10 秒) 未満の値を指定することはお勧めしません。既定値は 15000 です。

DataCacheFactoryConfiguration クラスの RequestTimeout プロパティ。

チャネル オープン タイムアウト (ミリ秒)

dataCacheClient 要素の channelOpenTimeout 属性。この値を 0 に設定すると、ネットワークの問題を直ちに処理することができます。詳細については、「キャッシュ クライアントのタイムアウトを構成する」を参照してください。既定値は 3000 です。

DataCacheFactoryConfiguration クラスの ChannelOpenTimeout プロパティ。

サーバーとの接続の最大数。

dataCacheClient 要素の maxConnectionsToServer 属性。既定値は 1 です。

DataCacheFactoryConfiguration クラスの MaxConnectionsToServer プロパティ。

キャッシュ ホスト設定

クラスター内のキャッシュ ホストは、キャッシュ クライアントごとに 1 台以上指定する必要があります。リード ホストに指定されているキャッシュ ホストはクラスターの管理に役立つため、リード ホストを指定してください。リード ホストはクラスターにインストールされる最初のキャッシュ ホストです。リード ホストの詳細については、「AppFabric キャッシュの物理アーキテクチャ図 (AppFabric 1.1 キャッシュ)」を参照してください。

アプリケーション構成ファイルでは、各キャッシュ ホストの設定は host 要素で指定します。これは、hosts 要素の子です。プログラムからは、各ホストを DataCacheServerEndpoint クラスのクラス コンストラクターで定義します。それらがインスタンス化された後、DataCacheServerEndPoint オブジェクトは DataCacheServerEndpoint クラスの Servers プロパティに渡されます。

設定 XML による構成箇所 コードによる構成箇所

キャッシュ サーバー名

host 要素の name 属性。

DataCacheServerEndpoint クラスの HostName プロパティ。

キャッシュ ポート番号

host 要素の cachePort 属性。

DataCacheServerEndpoint クラスの CachePort プロパティ。

ローカル キャッシュ設定

ローカル キャッシュ設定では、ローカル キャッシュを有効にするかどうか、ローカルにキャッシュされたオブジェクトを無効にする方法、オブジェクト タイムアウト、およびローカルにキャッシュされたオブジェクトを無効にするためにキャッシュ通知を使用するかどうかを指定します。

アプリケーション構成ファイルでは、ローカル キャッシュ設定は localCache 要素で定義します。これは、dataCacheClient 要素の子です。プログラムからローカル キャッシュを構成するには、DataCacheFactoryConfiguration クラスのインスタンスを使用し、このインスタンスを DataCacheFactory クラス コンストラクターのコンストラクターに渡します。ローカル キャッシュの詳細については、「キャッシュ クライアントとローカル キャッシュ (AppFabric 1.1 キャッシュ)」を参照してください。

設定 XML による構成箇所 コードによる構成箇所

ローカル キャッシュを有効にするかどうか

localCache 要素の isEnabled 属性。指定できる値は true または false です。無効にする場合は localCache 要素を削除することもできます。

DataCacheLocalCacheProperties クラスの IsEnabled プロパティ。これはその後、DataCacheFactoryConfiguration クラスの LocalCacheProperties プロパティに割り当てられます。

ローカル キャッシュを無効にする方法

localCache 要素の sync 属性。タイムアウト値を使用するよう指定するには TimeoutBased 値を使用します。キャッシュ通知も使用するように指定するには、NotificationBased を使用します。

DataCacheLocalCacheProperties クラスの InvalidationPolicy プロパティ。指定できる値には NotificationBased および TimeoutBased があります。

ローカル キャッシュ タイムアウト (秒)

localCache 要素の ttlValue 属性。

DataCacheLocalCacheProperties クラスの DefaultTimeout プロパティ。

特定のキャッシュ通知のポーリング間隔 (秒)

(省略可能) clientNotification 要素の pollInterval 属性。clientNotification 要素は dataCacheClient 要素の子であり、localCache 要素の子ではありません。指定しない場合、既定値は 300 秒です。

DataCacheNotificationProperties クラスの PollInterval プロパティ。これはその後、DataCacheFactoryConfiguration クラスの NotificationProperties プロパティに割り当てられます。

ローカル キャッシュ オブジェクトの最大数

(省略可能) localCache 要素の objectCount 属性。この値に達するとローカル キャッシュの削除が開始され、ローカルにキャッシュされたオブジェクトのうち、最後に使用された日時が古いものから 20% が削除されます。指定しない場合、既定値は 10,000 オブジェクトです。

DataCacheLocalCacheProperties クラスの ObjectCount プロパティ。

ヒント

パフォーマンスを最大にするため、変更頻度の低いオブジェクトに対してのみローカル キャッシュを有効にしてください。変更頻度の高いデータをローカルにキャッシュすると、クライアントがオブジェクトを使用する時点でそのオブジェクトは古くなっている可能性が高くなります。ttlValue を下げてローカル キャッシュの更新頻度を高くしても、クラスターへの負荷が、ローカル キャッシュを持つ利点を上回ることもあります。変更頻度の高いデータについては、ローカル キャッシュを無効にしてクラスターから直接データを取り出すのが最適です。

通知の設定

アプリケーション構成ファイルでは、通知プロパティは clientNotification 要素で定義します。これは、dataCacheClient 要素の子です。プログラムから通知プロパティを構成するには、DataCacheFactoryConfiguration クラスのインスタンスを使用し、このインスタンスを DataCacheFactory クラス コンストラクターのコンストラクターに渡します。詳細については、「構成メソッド」を参照してください。

設定 XML による構成箇所 コードによる構成箇所

特定のキャッシュ通知のポーリング間隔 (秒)

clientNotification 要素の pollInterval 属性によって指定します。指定しない場合、既定値は 300 秒です。

DataCacheNotificationProperties クラスの PollInterval プロパティ。これはその後、DataCacheFactoryConfiguration クラスの NotificationProperties プロパティに割り当てられます。

最大キュー長

clientNotification 要素の maxQueueLength 属性。指定しない場合、既定値は 10000 です。

DataCacheNotificationProperties クラスの MaxQueueLength プロパティ。

セキュリティの設定

アプリケーション構成ファイルでは、セキュリティ プロパティは securityProperties 要素で定義します。これは、dataCacheClient 要素の子です。プログラムからセキュリティ プロパティを構成するには、DataCacheFactoryConfiguration クラスのインスタンスを使用し、このインスタンスを DataCacheFactory クラス コンストラクターのコンストラクターに渡します。詳細については、「構成メソッド」を参照してください。

設定 XML による構成箇所 コードによる構成箇所

モード

securityProperties 要素の mode 属性。指定できる値には Transport および None があります。既定値は Transport です。

DataCacheSecurity クラスの SecurityMode プロパティ。指定できる値には None および Transport があります。DataCacheSecurity オブジェクトはその後、DataCacheFactoryConfiguration クラスの SecurityProperties プロパティに割り当てられます。

保護レベル

securityProperties 要素の protectionLevel 属性。指定できる値には NoneSign、および EncryptAndSign があります。既定値は EncryptAndSign です。

DataCacheSecurity クラスの ProtectionLevel プロパティ。指定できる値には NoneSign、および EncryptAndSign があります。

トランスポートの設定

アプリケーション構成ファイルでは、トランスポート プロパティは transportProperties 要素で定義します。これは、dataCacheClient 要素の子です。プログラムからトランスポート プロパティを構成するには、DataCacheFactoryConfiguration クラスのインスタンスを使用し、このインスタンスを DataCacheFactory クラス コンストラクターのコンストラクターに渡します。詳細については、「構成メソッド」を参照してください。

設定 XML による構成箇所 コードによる構成箇所

接続バッファー サイズ (バイト)

transportProperties 要素の connectionBufferSize 属性。

DataCacheTransportProperties クラスの ConnectionBufferSize プロパティ。これはその後、DataCacheFactoryConfiguration クラスの TransportProperties プロパティに割り当てられます。

最大バッファー プール サイズ (バイト)

transportProperties 要素の maxBufferPoolSize 属性。

DataCacheTransportProperties クラスの MaxBufferPoolSize プロパティ。

最大バッファー サイズ (バイト)

transportProperties 要素の maxBufferSize 属性。

DataCacheTransportProperties クラスの MaxBufferSize プロパティ。

最大出力遅延 (ミリ秒)

transportProperties 要素の maxOutputDelay 属性。

DataCacheTransportProperties クラスの MaxOutputDelay プロパティ。

チャネル初期化タイムアウト (ミリ秒)

transportProperties 要素の channelInitializationTimeout 属性。

DataCacheTransportProperties クラスの ChannelInitializationTimeout プロパティ。

受信タイムアウト (ミリ秒)

transportProperties 要素の receiveTimeout 属性。

DataCacheTransportProperties クラスの ReceiveTimeout プロパティ。

アプリケーション構成ファイル例

AppFabric アセンブリでアプリケーション構成ファイルの XML 要素を読み取るには、ファイルの最初の要素として、configuration タグの下に configSections 要素を含める必要があります。configSections 要素の中には、dataCacheClient 要素に関連付けられた 1 つの section 要素を含める必要があります。

次の例は、このトピックで説明したキャッシュ クライアント構成オプションを多数使用したアプリケーション構成ファイルを示しています。重要な点として、クラスターに接続するために dataCacheClient に必要な要素は hosts だけであることに注意してください。その他すべての子要素には既定値があります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>
</configuration>

関連項目

概念

キャッシュ クライアントの構成
クラスター構成の設定
AppFabric キャッシュのトラブルシューティング
Windows PowerShell を使用した AppFabric 1.1 キャッシュ機能の管理
AppFabric キャッシュの概念 (AppFabric 1.1 キャッシュ)
キャッシュ クライアントを開発する

  2012-03-05