auto-connect-retry="true" : para que el servidor se reconecte se pierde la conexión.
connections-per-host="40" : Conexiones que tendrá nuestra aplicación, son la que va a establecer del driver de java para esta aplicación.
connectTimeout = "30000": El el tiempo que espera el servidor antes de abortar un intento de conexión con la base de datos. O sea es el tiempo que espera para conseguir una conexión libre. Debe de ser algo grande entre 15 y 30 segundos para que sea realista según recomiendan.
socketTimeout="60000" : Una vez iniciada un operación de lectura, es tiempo que el socket va a esperar la respuesta, si se supera podremos tener errores del tipo:
-- Caused by: com.mongodb.MongoException$Network: can't say something at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:194) at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:155) at com.mongodb.DBApiLayer$MyCollection.update(DBApiLayer.java:349) at com.mongodb.DBCollection.update(DBCollection.java:177) at com.mongodb.DBCollection.save(DBCollection.java:817) at com.mongodb.DBCollection.save(DBCollection.java:785) at org.springframework.data.mongodb.core.MongoTemplate$10.doInCollection(MongoTemplate.java:885) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:388) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:150) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) at java.io.BufferedInputStream.read(BufferedInputStream.java:334) at org.bson.io.Bits.readFully(Bits.java:46) --
Referencia útil: connectionTimeout VS SocketTimeout
maxWaitTime = "1500" : Milisegundos que un hilo esperará para conseguir una conexión libre del pool de conexiones.
Aquí os dejo la configuración que por ahora nos funciona correctamente.
-- <mongo:mongo host="xxx.xxx.xxx" port="xx" id="mongo"> <mongo:options connections-per-host="40" threads-allowed-to-block-for-connection-multiplier="1500" connect-timeout="30000" max-wait-time="1500" auto-connect-retry="true" socket-keep-alive="true" socket-timeout="60000" slave-ok="true" write-number="1" write-timeout="0" write-fsync="true"/> </mongo:mongo> --