RetryLater (NoWriteQuorum) (Windows Server AppFabric キャッシュ)

ここでは、エラー コードが RetryLater でサブステータスが NoWriteQuorum である DataCacheException 例外について説明します。 このエラーは、キャッシュ ホストが不足していて高可用性要件を満たすことができず、キャッシュが読み取り専用であることを示します。 高可用性機能の詳細については、「高可用性」を参照してください。

たとえば、Cache1 で高可用性機能が使用されるものとします。 キャッシュ クラスターにキャッシュ ホストが 3 台ある場合は、2 台以上のキャッシュ ホストが常時稼動している必要があります。 キャッシュ ホストが 1 台しか稼動していない場合、Cache1 にはプライマリ キャッシュ ホストしかなく、セカンダリ コピーは存在しません。 この状況でキャッシュに書き込もうとすると、このエラーが発生します。

セカンダリとして使用できるキャッシュ ホストがある場合でも、一時的にこのエラーが発生する可能性があります。 キャッシュ ホストが使用できなくなった場合、キャッシュ クラスターではセカンダリ キャッシュ コピーがプライマリに昇格されます。 次に、キャッシュ データの新しいセカンダリ コピーが別のキャッシュ ホストに作成されます。 新しいセカンダリ コピーの作成中に、アプリケーションには NoWriteQuorum エラーが返される可能性があります。 キャッシュのサイズやネットワークの速度により、この遅延は数秒で済むこともあれば数分かかることもあります。 この状況が疑われる場合は、データ転送速度を潜在的に改善する方法があります。 以下に、この対策の手順を示します。

  1. テキスト エディターを使用して、.\Windows\System32\AppFabric ディレクトリの DistributedCacheService.exe.config ファイルを開きます。

  2. CopyQueueCapacity の値を 2 より大きい値に変更します。 この値には、 248、または 16 のいずれかを指定する必要があります。

ヒント

この値を増やすと遅延は短縮しますが、CPU とネットワークの使用が増加することがあります。 CopyQueueCapacity に最適な数値を決定するには、問題のシミュレーションを実行してこれらの設定の影響を試すことをお勧めします。

関連項目

概念

アプリケーション例外 (Windows Server AppFabric キャッシュ)

  2011-12-05