Request Inquiry
Request Inquiry logs all client requests that contain unsafe commands such as add, update, or other operations that modify the state of an object on the server side. This mechanism ensures data consistency on the server, especially when communication between the client and the server is interrupted.
By default, Request Inquiry is disabled. If an unsafe command fails while it is disabled, an exception is thrown. This exception acts as a warning, advising you to enable Request Inquiry to ensure the reliability of future unsafe commands.
When Request Inquiry is enabled and a client operation fails due to a connection interruption, the client will inquire about the operation’s execution status from the server. If the operation was successfully executed, the server will return the result; otherwise, the client will re-execute the operation.
<add key="NCacheServer.EnableRequestInquiry" value="False" />
The cleanup interval, defined in seconds, specifies how frequently logged requests are cleared when Request Inquiry is enabled. Although acknowledged requests are marked for removal, they are actually cleared only during the next cleanup interval. The minimum value is 10 seconds.
<add key="NCacheServer.RequestInquiryCleanInterval" value="15" />
Cluster Request Enquiry
If a request sent to another node of the cluster is taking a long time, an enquiry request can be sent to that node asking about the status of the request. The status can be:
- Request not received by that node
- Request received but not yet processed
- Request received and a response sent (response is not received by this node)
According to the request status, the following actions can be taken:
- Wait more
- Resend the request
- Return
If the AllowClusterRequestEnquiry flag is false, the request status is not enquired, and the original node will simply wait for the response for the duration of the cluster timeout (60 seconds by default).
<add key="NCacheServer.AllowClusterRequestEnquiry" value="false" />
The total request timeout (60 seconds by default) is divided into smaller intervals defined by the ClusterRequestEnquiryInterval parameter. After each interval, the request status is checked, and appropriate action is taken. If a response is received before the next interval, no further enquiries are performed.
<add key="NCacheServer.ClusterRequestEnquiryInterval" value="10" />
Request Cancellation
This feature specifies whether a client request should be automatically cancelled if it exceeds the configured operation timeout. This configuration is useful in scenarios where long-running requests start piling up and approach the request timeout limit. Such situations can cause cascading timeouts in NCache, where even subsequent short-lived requests may begin to fail due to delayed processing. However, if the application load is light or minimal, it is generally suggested to set this value to false, as enabling this feature adds a small memory footprint on the server due to the tracking required to monitor request execution times.
<add key="NCacheServer.CancelTimedOutRequests" value="True"/>
See Also
Configure Caches
Cache Settings
Client Connectivity Settings
Memory
Windows Events