We are using couchbase which is behind the ELB running in AWS env. couchbase client 2.1.4 running with application in tomcat. Application using spring but its not using spring couchbase integration. application creates its own cluster and bucket bean and adds it in to spring context.
After running for certain period of time we suddenly started seeing the following exception and eventually we have to restart the application.
java.lang.RuntimeException: java.util.concurrent.TimeoutException
at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93) ~[java-client-2.1.4.jar:2.1.4]
at com.couchbase.client.java.CouchbaseBucket.get(CouchbaseBucket.java:120) ~[java-client-2.1.4.jar:2.1.4]
at com.couchbase.client.java.CouchbaseBucket.get(CouchbaseBucket.java:115) ~[java-client-2.1.4.jar:2.1.4]
- I would like to understand how the client library maintains the connections with couchbase server?
- Does it maintain the connection pool and check the health every often? How frequently and how many times it does that? Where can I find more documentation about connection management?
- If I use the hostname instead of IP to connect to couchbase then how does existing connections behaves when IP changes? Does the connection by any chance do IP lookup ?
- Currently we give ELB name for connecting to CB since we cant connect to CB directly, primarily because of infrastructure issues. We will be changing it but meantime need to support this config. How do we recover if the ELB IP changes?