In-Role Cache クライアントの構成設定 (Web.config)

重要

Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。

このトピックでは、.NET Framework web.configまたはapp.config構成ファイルで In-Role Cache をサポートするための要件について説明します。 キャッシュ クライアントに対して使用可能な設定オプションについても説明しています。 このトピックで説明する設定は、キャッシュ クライアントでのみ必要です。キャッシュをホストするロールIn-Role必要はありません。

ヒント

In-Role キャッシュにNuGet パッケージを使用すると、パッケージによって構成ファイルが自動的に変更されます。 ただし、このトピックを使用して、NutGet を使用せずにキャッシュ クライアントIn-Role構成できます。 また、この情報を利用して、NuGet が挿入するキャッシュ クライアント設定をさらにカスタマイズすることができます。

以降のセクションでは、このトピックについて説明します。

  • <configSections>

  • <dataCacheClients>

    • <dataCacheClient>

      • <自動 検出>

      • <localCache>

      • <clientNotification>

      • <serializationProperties>

  • <cacheDiagnostics>

    • <crashDump>

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

次の例は、In-Role Cache に関連するweb.configまたはapp.config ファイルのセクションを示しています。 この例では、default キャッシュ クライアントは CacheWorkerRole1 ロールでホストされているキャッシュにアクセスし、ローカル キャッシュが有効です。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>
  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

configSections

configSections 要素のセクションの一覧には、次の 2 つの名前付きセクション要素を追加する必要があります。

名前 [説明]

dataCacheClients

構成ファイルの dataCacheClients 要素を定義します。 このセクションでは、すべてのキャッシュ クライアント構成に対する設定を指定します。

cacheDiagnostics

構成ファイルの cacheDiagnostics 要素を定義します。

次の例は、これらのセクションの定義方法を示しています。

    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />

dataCacheClients

dataCacheClients 要素には、1 つ以上の名前付き dataCacheClient 要素が 含まれています。 dataCacheClients 要素には属性がありません。 複数のキャッシュ クライアント構成セクションを設定することができるため、アプリケーションで異なる種類のキャッシュ データごとに、異なる設定を使用することができます。

dataCacheClient

dataCacheClients 要素には、1 つ以上の名前付き dataCacheClient 要素が 含まれています。 アプリケーション コードは、関連付けられている dataCacheClient セクションの名前を参照して、キャッシュ クライアントの設定を読み込みます。

dataCacheClients 要素には属性がありません。 ただし、子 dataCacheClient 要素には、いくつかの使用可能な属性があります。 これらの属性を、次の表に示します。

属性 説明

名前

キャッシュクライアント構成の名前。

isCompressionEnabled

圧縮を有効または無効にします。 指定できる値は true または false です。 既定値は false (無効) です。

useConnectionPool

接続プールを有効または無効にします。 指定できる値は true または false です。 既定値 true (有効) です

maxConnectionsToServer

useConnectionPool が設定trueされている場合、この属性は、このキャッシュ クライアント構成の接続プール内の接続の数を指定します。 useConnectionPoolfalse設定されている場合、この属性は、コード内の各 DataCacheFactory オブジェクトに使用する接続の数を指定します。

次のセクションでは、各 dataCacheClient 要素内で使用できる子要素について説明します。

autoDiscover

autoDiscover 要素は、ターゲット キャッシュ クラスターに自動的に接続するキャッシュ クライアントを支援します。 このキャッシュ クライアントは、同じクラウド サービス デプロイ内のロールでホストする必要があります。

次の表では、 autoDiscover 要素で使用できる属性について説明します。

属性 [説明]

isEnabled

キャッシュをホストするロールへのtruefalseローカル自動接続を有効または無効In-Role設定します。

identifier

キャッシュをホストするのと同じクラウド サービスデプロイ内のロールIn-Role名前。

<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />

localCache

localCache 要素は、ローカル キャッシュの使用を制御します。 既定では、ローカル キャッシュは有効ではありません。 有効な場合、キャッシュ クラスターから取得したアイテムは、クライアント コンピューターのメモリにローカルに保存されます。 この場合、以降の get 要求のパフォーマンスは改善されますが、ローカルにキャッシュされているバージョンと実際のキャッシュ クラスター内のアイテムの間で、データに不整合が発生する可能性があります。 詳細については、「 Azure In-Role Cache のローカル キャッシュ」を参照してください。

次の表では、 localCache 要素で使用できる属性について説明します。

属性 [説明]

isEnabled

ローカル キャッシュを有効または無効にするには、true または false に設定します。

sync

ローカル キャッシュを無効にする方法を決定します。 設定可能な値は TimeoutBased および NotificationBased です。

objectCount

ローカル キャッシュに格納されるオブジェクトの最大数です。 既定値は 10000 です。

ttlValue

オブジェクトがローカル キャッシュに存在している秒数です。 既定では 300 秒です。

注意

通知は、Azure ロールでホストされているキャッシュでのみサポートされるIn-Role キャッシュ機能です。 通知を有効にするには、これらのキャッシュを構成する必要があります。

<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />

clientNotification

次の表では、 clientNotification 要素で使用できる属性について説明します。 この要素は、キャッシュ クライアントの通知動作を制御します。

属性 [説明]

pollInterval

ポーリングの試行間隔 (秒)。 ポーリングは、キャッシュ クラスターの通知を確認するために使用されます。 既定値は 300 秒です。

maxQueueLength

ポーリングの試行間で対象のキャッシュ クライアントに対してキューに格納される通知の最大数。 既定値は 10000 通知です。

<clientNotification pollInterval="60" maxQueueLength="10000"/>

serializationProperties

次の表では、 serializationProperties 要素で使用できる属性について説明します。 この要素では、キャッシュされた項目に対して内蔵またはカスタムのシリアル化を選択できます。 詳細については、「 Azure In-Role Cache でのシリアル化」を参照してください。

属性 [説明]

serializer

キャッシュされた項目のシリアル化の種類を決定します。 指定できる値は、NetDataContractSerializerBinaryFormatterCustomSerializer です。 既定では、 NetDataContractSerializerです。

cacheDiagnostics

このセクションでは、In-Role Cache の診断設定の一部を構成します。 診断の詳細については、「 Azure In-Role キャッシュのトラブルシューティングと診断」を参照してください。

次のセクションでは、各 cacheDiagnostics 要素内で使用できる子要素について説明します。

crashDump

crashDump 要素は、このアプリケーション用に収集されたクラッシュ ダンプの種類を制御します。 In-Role キャッシュ クラッシュ ダンプは、主にキャッシュ クラスター マシンに関する問題を診断するように設計されています。 このため、クライアント構成ファイルにより、クラッシュ ダンプの生成がオフになります。 これを行うには、 dumpLevel 属性を > に設定します Off

クラッシュ ダンプが有効な場合、サイズが必ずクラッシュ ストレージ クォータと CacheSettings.xml で設定されているログ ストレージ クォータ (既定値は 1000 MB) の合計よりも大きくなるように、キャッシング ローカル ストアと診断ストアを調整する必要があります。

次の表では、 crashDump 要素で使用できる属性について説明します。

属性 [説明]

dumpLevel

使用できる値は、OffMini、および Full です。

dumpStorageQuotaInMB

クラッシュ ダンプに割り当てるストレージの最大量。

scheduledTransferPeriodInMinutes

クラッシュ ダンプから診断ストアへの転送間隔 (分)。

<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />