RetryLater (NoWriteQuorum)
This section describes the DataCacheException exception that has an error code of RetryLater and a substatus of NoWriteQuorum. This error indicates that a cache is read only, because there are not enough cache hosts to comply with the high availability requirements. For more information about high availability, see High Availability.
For example, consider the scenario where Cache1
uses the high availability feature. If there are three cache hosts on the cache cluster, at least two cache hosts must be running at all times. If only one cache host is running, then Cache1
will only have a primary location and no secondary copies. In this scenario, any attempts to write to the cache generate this error.
It is possible that you can temporarily receive this error even if there are available cache hosts to use for secondaries. When a cache host shuts down, the cache cluster promotes any secondary cache copies to primary. It then creates a new secondary copy of the cached data on another cache host. During the creation of the new secondary copy, the application can receive the NoWriteQuorum error. Note that depending on the size of the cache and the speed of the network, this delay could take anywhere from several seconds to several minutes. If you suspect that this is occurring, there is a way to potentially improve the speed of the data transfer. The following steps describe this solution.
Use a text editor to open the DistributedCacheService.exe.config file in the ".\Program Files\Windows Server AppFabric" directory.
Change the
CopyQueueCapacity
value from2
to a higher value. This must be one of the following values:2
,4
,8
, or16
.
Note
Increasing this value can decrease the delay, but it may increase CPU and network usage. You should test the effect of these settings during the simulated problem scenario to determine the optimum number for CopyQueueCapacity
.
See Also
Concepts
2012-10-26