Connectivity issues from Azure Couchbase instance.
I have a Couchbase Server setup in Microsoft's Azure cloud and I'm finding that over long periods of inactivity (around 8 minutes), my application can no longer communicate with the Couchbase server. My assumption is that Azure is killing idle connections, but from my understanding the client supports KeepAlive packets on the data ports (11210, etc).
However, I don't see any KeepAlive packets being sent when inspecting network traffic from WireShark. Additionally when I add logging to the application, all I see is the 10 second default timeout killing the connection after it fails.
My question is, are the KeepAlive packets really being sent and what is the proper way to handle a disconnect/socket termination? I understand there's 10 sockets by default, but what happens over the course of the application when those slowly become dead?
Here's a link to my WireShark snippet that shows no activity between 11 seconds and 491 seconds into the capture when the next request actually fails. IP's have been renamed to protect the innocent. 126.96.36.199 is my client and 188.8.131.52 is the Couchbase server.
Here's the log4net logger that occurs during this same time showing one initial successful request and another request 8 minutes later that fails. Note that I do have the heartbeat monitor disabled as it doesn't seem to do anything on the data sockets and turning it off made the logging less noisy.
Hi jerelthompson -
Thanks for the detailed question :)
Try the same test using the 1.2.9 version of the client and see what happens: https://packages.couchbase.com.s3.amazonaws.com/clients/net/1.2/Couchbas...
Version 1.3.0 was a complete revamp of this part of the client and it may be a regression; or it may be an existing issue. If it is a bug that's easily fixable, I'll create a patch and make it available ASAP (before our next official release).
Also, feel to create a support ticket here: http://www.couchbase.com/issues/browse/NCBC. The bonus is that you will be alerted when there is a status change on the issue and you can track the progress as well.