Request Inquiry logs all the client requests containing the unsafe commands on the server side on the receiving node. This is used to ensure fault tolerant and reliable communication between client and the cluster. In case of connection breakup, a client can inquire the cluster for the status of an unsafe command in a request that apparently might have failed.
If request inquiry is disabled and an unsafe command fails, an exception is thrown asking to enable the feature if any future unsafe commands are to be made reliable. By default, the request inquiry is disabled.
<add key="NCacheServer.EnableRequestInquiry" value="False"/>
The cleanup interval in seconds for the logged requests if request inquiry is enabled. The requests acknowledged by the client are cleared after this interval.
<add key="NCacheServer.RequestInquiryCleanInterval" value="15"/>
Cluster Request Enquiry
If a request, sent to another node of cluster, is taking long time then we can send an enquiry request to that node asking about the status of the request. Status can be
- request not received by that node
- request received but not yet processed
- request received and response sent (response is not received by this node)
According to the request status, action can be taken
- whether to wait more
- re-send the request
If this flag is false, request status is not enquired and thus will wait for the response for cluster timeout (60 sec by default).
<add key="NCacheServer.AllowClusterRequestEnquiry" value="false"/>
Total request timeout (60 sec by default) is divided into chunks of
ClusterRequestEnquiryInterval interval. After every interval request status is asked and action is taken accordingly. If responses are received earlier than no more intervals are valid.
<add key="NCacheServer.ClusterRequestEnquiryInterval" value="10"/>
ClusterRequestEnquiryRetries is the total number of request enquiry retries. After completing retries, request waits for remaining request timeout if response is still not received.
<add key="NCacheServer.ClusterRequestEnquiryRetries" value="1"/>