-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: 3.6.4
-
Component/s: Cluster Management, Connection Management
-
None
-
Environment:Ubuntu 18.04. running mongodb in docker
Hi,
I am using spring data mongo (2.0.8) which is using mongo driver(3.6.4). I am using docker to setup my replica set cluster.
There is a weird thing happening when one of the nodes goes down and when I restart my app again. It hangs at the line
[2019-05-27 15:52:55,341] [main] INFO connection:71 - Opened connection [connectionId{localValue:4, serverValue:6}] to mongodbms_2:27017
where mongodbms_2 is the master node running.
Then., I added the 'socketTimeout' and 'connectTimeout' property to 5000 and now app start and try to connect successfully but then it pass the above line and give error as below
Caused by: com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving messageCaused by: com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message at com.mongodb.connection.InternalStreamConnection.translateReadException(InternalStreamConnection.java:530) at com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:421) at com.mongodb.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:290) ................ ................ Caused by: java.net.SocketTimeoutException: Read timed outCaused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method)
And then it shutsdown the whole application instead of stopped looking for a failed MongoDB node or keep looking but not to hang or stop the application.
I have two questions:
1) Why it is hanging when not passing the sockerTimeout or connectTimeout property
2) If passing property then why it is just failed to start the app.
- is related to
-
JAVA-1868 MongoDB Java Client gets stuck after new PRIMARY is elected
- Closed