RetryLater (NoWriteQuorum)(Windows Server AppFabric 缓存)
本部分介绍错误代码为 RetryLater 且子状态为 NoWriteQuorum 的 DataCacheException 异常。 该错误表明缓存为只读,因为没有足够的缓存主机来符合高可用性要求。 有关高可用性的详细信息,请参阅高可用性。
例如,考虑 Cache1
使用高可用性功能的方案。 如果缓存群集上有三个缓存主机,必须始终运行至少两个缓存主机。 如果只运行一个缓存主机,则 Cache1
将只具有主要位置,没有辅助副本。 在此方案中,写入缓存的任何尝试都将生成该错误。
即使有缓存主机可用于辅助副本,您也有可能会临时收到该错误。 当某个缓存主机关闭时,缓存麇集将任何辅助缓存副本提升为主要副本。 然后在另一个缓存主机上创建一个新的缓存数据的辅助副本。 在创建新的辅助副本期间,应用程序可能会收到 NoWriteQuorum 错误。 请注意,根据缓存的大小以及网络的速度,任何位置的此延迟可能会花费几秒到几分钟时间。 如果您怀疑正在发生延迟,有一个方法可能会提高数据传输的速度。 以下步骤介绍了此解决方案。
使用文本编辑器打开 .\Windows\System32\AppFabric 目录中的 DistributedCacheService.exe.config 文件。
将
CopyQueueCapacity
值从2
更改为较高的值。 但必须是以下值之一:2
、4
、8
或16
。
备注
增加该值可以减少延迟,但可能会提高 CPU 和网络利用率。 您应该在模拟问题方案以确定 CopyQueueCapacity
的最佳数值期间测试这些设置的效果。
另请参阅
概念
应用程序异常(Windows Server AppFabric 缓存)
2011-12-05