diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/ParsingUtils.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/ParsingUtils.java index b94ab5c7e..2f646d74c 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/ParsingUtils.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/ParsingUtils.java @@ -79,6 +79,7 @@ abstract class ParsingUtils { setPropertyValue(optionsElement, optionsDefBuilder, "socket-timeout", "socketTimeout"); setPropertyValue(optionsElement, optionsDefBuilder, "socket-keep-alive", "socketKeepAlive"); setPropertyValue(optionsElement, optionsDefBuilder, "auto-connect-retry", "autoConnectRetry"); + setPropertyValue(optionsElement, optionsDefBuilder, "max-auto-connect-retry-time", "maxAutoConnectRetryTime"); setPropertyValue(optionsElement, optionsDefBuilder, "write-number", "writeNumber"); setPropertyValue(optionsElement, optionsDefBuilder, "write-timeout", "writeTimeout"); setPropertyValue(optionsElement, optionsDefBuilder, "write-fsync", "writeFsync"); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoOptionsFactoryBean.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoOptionsFactoryBean.java index 82a268334..771332d2d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoOptionsFactoryBean.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoOptionsFactoryBean.java @@ -68,6 +68,8 @@ public class MongoOptionsFactoryBean implements FactoryBean, Initi */ private boolean autoConnectRetry = MONGO_OPTIONS.autoConnectRetry; + private long maxAutoConnectRetryTime = MONGO_OPTIONS.maxAutoConnectRetryTime; + /** * This specifies the number of servers to wait for on the write operation, and exception raising behavior. * @@ -183,6 +185,16 @@ public class MongoOptionsFactoryBean implements FactoryBean, Initi this.autoConnectRetry = autoConnectRetry; } + /** + * The maximum amount of time in millisecons to spend retrying to open connection to the same server. Default is 0, + * which means to use the default 15s if autoConnectRetry is on. + * + * @param maxAutoConnectRetryTime the maxAutoConnectRetryTime to set + */ + public void setMaxAutoConnectRetryTime(long maxAutoConnectRetryTime) { + this.maxAutoConnectRetryTime = maxAutoConnectRetryTime; + } + /** * Specifies if the driver is allowed to read from secondaries or slaves. Defaults to false. * @@ -200,6 +212,7 @@ public class MongoOptionsFactoryBean implements FactoryBean, Initi MONGO_OPTIONS.socketTimeout = socketTimeout; MONGO_OPTIONS.socketKeepAlive = socketKeepAlive; MONGO_OPTIONS.autoConnectRetry = autoConnectRetry; + MONGO_OPTIONS.maxAutoConnectRetryTime = maxAutoConnectRetryTime; MONGO_OPTIONS.slaveOk = slaveOk; MONGO_OPTIONS.w = writeNumber; MONGO_OPTIONS.wtimeout = writeTimeout; diff --git a/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.0.xsd b/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.0.xsd index 6abec4fc0..51b0b84a3 100644 --- a/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.0.xsd +++ b/spring-data-mongodb/src/main/resources/org/springframework/data/mongodb/config/spring-mongo-1.0.xsd @@ -364,6 +364,13 @@ This controls whether or not on a connect, the system retries automatically. De ]]> + + + + + - + + + +