RetryLater (NoWriteQuorum) (Windows Server AppFabric キャッシュ)
ここでは、エラー コードが RetryLater でサブステータスが NoWriteQuorum である DataCacheException 例外について説明します。 このエラーは、キャッシュ ホストが不足していて高可用性要件を満たすことができず、キャッシュが読み取り専用であることを示します。 高可用性機能の詳細については、「高可用性」を参照してください。
たとえば、Cache1
で高可用性機能が使用されるものとします。 キャッシュ クラスターにキャッシュ ホストが 3 台ある場合は、2 台以上のキャッシュ ホストが常時稼動している必要があります。 キャッシュ ホストが 1 台しか稼動していない場合、Cache1
にはプライマリ キャッシュ ホストしかなく、セカンダリ コピーは存在しません。 この状況でキャッシュに書き込もうとすると、このエラーが発生します。
セカンダリとして使用できるキャッシュ ホストがある場合でも、一時的にこのエラーが発生する可能性があります。 キャッシュ ホストが使用できなくなった場合、キャッシュ クラスターではセカンダリ キャッシュ コピーがプライマリに昇格されます。 次に、キャッシュ データの新しいセカンダリ コピーが別のキャッシュ ホストに作成されます。 新しいセカンダリ コピーの作成中に、アプリケーションには NoWriteQuorum エラーが返される可能性があります。 キャッシュのサイズやネットワークの速度により、この遅延は数秒で済むこともあれば数分かかることもあります。 この状況が疑われる場合は、データ転送速度を潜在的に改善する方法があります。 以下に、この対策の手順を示します。
テキスト エディターを使用して、.\Windows\System32\AppFabric ディレクトリの DistributedCacheService.exe.config ファイルを開きます。
CopyQueueCapacity
の値を2
より大きい値に変更します。 この値には、2
、4
、8
、または16
のいずれかを指定する必要があります。
ヒント
この値を増やすと遅延は短縮しますが、CPU とネットワークの使用が増加することがあります。 CopyQueueCapacity
に最適な数値を決定するには、問題のシミュレーションを実行してこれらの設定の影響を試すことをお勧めします。
関連項目
概念
アプリケーション例外 (Windows Server AppFabric キャッシュ)
2011-12-05