AcmeTest:PRIMARY> rs.conf(); { "_id" : "AcmeTest", "version" : 18, "protocolVersion" : NumberLong(1), "members" : [ { "_id" : 0, "host" : "server1.acme.net:34555", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 10, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 1, "host" : "server1.acme.net:34556", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 5, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 2, "host" : "server1.acme.net:34557", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 3, "host" : "server1.acme.net:34558", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 0.5, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 4, "host" : "server1.acme.net:30000", "arbiterOnly" : true, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatIntervalMillis" : 2000, "heartbeatTimeoutSecs" : 10, "electionTimeoutMillis" : 10000, "catchUpTimeoutMillis" : 2000, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 }, "replicaSetId" : ObjectId("5936d82da87d2a5da0640685") } } AcmeTest:PRIMARY> rs.status(); { "set" : "AcmeTest", "date" : ISODate("2017-06-16T12:58:19.918Z"), "myState" : 1, "term" : NumberLong(52), "heartbeatIntervalMillis" : NumberLong(2000), "optimes" : { "lastCommittedOpTime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "appliedOpTime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "durableOpTime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) } }, "members" : [ { "_id" : 0, "name" : "server1.acme.net:34555", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 261, "optime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDate" : ISODate("2017-06-16T12:58:13Z"), "electionTime" : Timestamp(1497617651, 1), "electionDate" : ISODate("2017-06-16T12:54:11Z"), "configVersion" : 18, "self" : true }, { "_id" : 1, "name" : "server1.acme.net:34556", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 259, "optime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDurable" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDate" : ISODate("2017-06-16T12:58:13Z"), "optimeDurableDate" : ISODate("2017-06-16T12:58:13Z"), "lastHeartbeat" : ISODate("2017-06-16T12:58:19.792Z"), "lastHeartbeatRecv" : ISODate("2017-06-16T12:58:18.683Z" ), "pingMs" : NumberLong(0), "syncingTo" : "server1.acme.net:34558", "configVersion" : 18 }, { "_id" : 2, "name" : "server1.acme.net:34557", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 259, "optime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDurable" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDate" : ISODate("2017-06-16T12:58:13Z"), "optimeDurableDate" : ISODate("2017-06-16T12:58:13Z"), "lastHeartbeat" : ISODate("2017-06-16T12:58:19.831Z"), "lastHeartbeatRecv" : ISODate("2017-06-16T12:58:18.359Z" ), "pingMs" : NumberLong(0), "syncingTo" : "server1.acme.net:34555", "configVersion" : 18 }, { "_id" : 3, "name" : "server1.acme.net:34558", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 259, "optime" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDurable" : { "ts" : Timestamp(1497617893, 1), "t" : NumberLong(52) }, "optimeDate" : ISODate("2017-06-16T12:58:13Z"), "optimeDurableDate" : ISODate("2017-06-16T12:58:13Z"), "lastHeartbeat" : ISODate("2017-06-16T12:58:19.839Z"), "lastHeartbeatRecv" : ISODate("2017-06-16T12:58:18.177Z" ), "pingMs" : NumberLong(0), "syncingTo" : "server1.acme.net:34557", "configVersion" : 18 }, { "_id" : 4, "name" : "server1.acme.net:30000", "health" : 1, "state" : 7, "stateStr" : "ARBITER", "uptime" : 259, "lastHeartbeat" : ISODate("2017-06-16T12:58:19.839Z"), "lastHeartbeatRecv" : ISODate("2017-06-16T12:58:14.939Z" ), "pingMs" : NumberLong(0), "configVersion" : 18 } ], "ok" : 1 } AcmeTest:PRIMARY> During the save operation... On server1 ... net stop MongoDb1 Spring Java MongoDB Driver code returns following stack after "net stop MongoDb1" - the primary service. C:>net stop MongoDb1 The MongoDb1 service is stopping. The MongoDb1 service was stopped successfully. The mongo client falls over with the following error.. org.springframework.dao.DataIntegrityViolationException: Write failed with error code 91 and error message 'Replication is being shut down'; nested exception is com.mongodb.WriteConcernException: Write failed with error code 91 and error message 'Replication is being shut down' at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:85) at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2114) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:464) at org.springframework.data.mongodb.core.MongoTemplate.saveDBObject(MongoTemplate.java:1080) at org.springframework.data.mongodb.core.MongoTemplate.doSave(MongoTemplate.java:1015) at org.springframework.data.mongodb.core.MongoTemplate.save(MongoTemplate.java:961) at ie.vhi.integrationhub.command.services.MongoService.save(MongoService.java:37) at ie.vhi.integrationhub.command.services.MongoService$$FastClassBySpringCGLIB$$aa45c90a.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:52) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:47) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:62) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) at ie.vhi.integrationhub.command.services.MongoService$$EnhancerBySpringCGLIB$$cdc51d4d.save() at ie.vhi.integrationhub.command.IntegrationTests.loadTest1000(IntegrationTests.java:99) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: com.mongodb.WriteConcernException: Write failed with error code 91 and error message 'Replication is being shut down' at com.mongodb.operation.BaseWriteOperation.convertBulkWriteException(BaseWriteOperation.java:243) at com.mongodb.operation.BaseWriteOperation.access$300(BaseWriteOperation.java:60) at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:146) at com.mongodb.operation.BaseWriteOperation$1.call(BaseWriteOperation.java:133) at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:230) at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:221) at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:133) at com.mongodb.operation.BaseWriteOperation.execute(BaseWriteOperation.java:60) at com.mongodb.Mongo.execute(Mongo.java:781) at com.mongodb.Mongo$2.execute(Mongo.java:764) at com.mongodb.DBCollection.executeWriteOperation(DBCollection.java:333) at com.mongodb.DBCollection.insert(DBCollection.java:328) at com.mongodb.DBCollection.insert(DBCollection.java:319) at com.mongodb.DBCollection.insert(DBCollection.java:289) at com.mongodb.DBCollection.insert(DBCollection.java:255) at com.mongodb.DBCollection.insert(DBCollection.java:177) at com.mongodb.DBCollection.save(DBCollection.java:398) at com.mongodb.DBCollection.save(DBCollection.java:373) at org.springframework.data.mongodb.core.MongoTemplate$11.doInCollection(MongoTemplate.java:1085) at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:462) ... 50 common frames omitted