Hi everybody,
I found some older discussions regaring this, but nothing recent. I'm
testing the failover mechanism of the Mongodb Replicaset now. Mongodb
itself does the failover rather smoothly, the new master is elected
right away. But the JAva driver still tries to connect to the "old"
master (which is still down).
Some info:
- MongoDb replicaSet, 3 Nodes, one of them as Arbiter
- MongoDbDriver is configurerd with the two addresses of the "real"
nodes
- Failover works fine in Mongo - new Primary is elected after a couple
of seconds
- When trying to read or write from the replicaset, the driver ends up
in some endless loop repeating the following message every coulple of
seconds
=> Failover not working! Do you know, what's wrong? Did I configure
something wrong here?
2011-09-29 08:57:05,030 ERROR [STDERR] (Thread-22)
com.mongodb.MongoException$Network: can't say something
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBTCPConnector.say(DBTCPConnector.java:159)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBTCPConnector.say(DBTCPConnector.java:132)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBApiLayer$MyCollection.update(DBApiLayer.java:343)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBCollection.save(DBCollection.java:641)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBCollection.save(DBCollection.java:608)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
de.holidayinsider.mongo.Layer.storeNoCache(Layer.java:761)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
de.holidayinsider.mongo.Layer.access$1(Layer.java:758)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
de.holidayinsider.mongo.Layer$WriteCacheWorker.run(Layer.java:900)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) Caused by:
java.io.IOException: couldn't connect to
[
integration.holidayinsider.de/109.75.180.5:27017]
bc:java.net.ConnectException: Verbindungsaufbau abgelehnt
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBPort._open(DBPort.java:224)
2011-09-29 08:57:05,031 ERROR [STDERR] (Thread-22) at
com.mongodb.DBPort.go(DBPort.java:101)
2011-09-29 08:57:05,032 ERROR [STDERR] (Thread-22) at
com.mongodb.DBPort.go(DBPort.java:82)
2011-09-29 08:57:05,032 ERROR [STDERR] (Thread-22) at
com.mongodb.DBPort.say(DBPort.java:77)
2011-09-29 08:57:05,032 ERROR [STDERR] (Thread-22) at
com.mongodb.DBTCPConnector.say(DBTCPConnector.java:146)
2011-09-29 08:57:05,032 ERROR [STDERR] (Thread-22) ... 7 more
2011-09-29 08:57:06,537 INFO [com.mongodb.port.localhost:27017]
(http-0.0.0.0-9090-7) connect fail to : MASTER_NODE:27017
java.net.ConnectException: Verbindungsaufbau abgelehnt
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:
327)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:
193)
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:
180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at com.mongodb.DBPort._open(DBPort.java:214)
at com.mongodb.DBPort.go(DBPort.java:101)
at com.mongodb.DBPort.go(DBPort.java:82)
at com.mongodb.DBPort.call(DBPort.java:72)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:202)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:303)
at com.mongodb.DBCursor._check(DBCursor.java:360)
at com.mongodb.DBCursor._hasNext(DBCursor.java:490)
at com.mongodb.DBCursor.hasNext(DBCursor.java:515)
2011-09-29 08:57:06,537 INFO [com.mongodb.port.localhost:27017]
(http-0.0.0.0-9090-7) connect fail to :
integration.holidayinsider.de/
109.75.180.5:27017
java.net.ConnectException: Verbindungsaufbau abgelehnt
at java.net.PlainSocketImpl.socketConnect(Native Method)
at
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:
327)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:
193)
at
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:
180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at com.mongodb.DBPort._open(DBPort.java:214)
at com.mongodb.DBPort.go(DBPort.java:101)
at com.mongodb.DBPort.go(DBPort.java:82)
at com.mongodb.DBPort.call(DBPort.java:72)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:202)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:303)
at com.mongodb.DBCursor._check(DBCursor.java:360)
at com.mongodb.DBCursor._hasNext(DBCursor.java:490)
at com.mongodb.DBCursor.hasNext(DBCursor.java:515)
2011-09-29 08:57:06,538 SEVERE [com.mongodb.port.localhost:27017]
(http-0.0.0.0-9090-7) going to sleep and retry. total sleep time
after = 6218ms this time:3200ms
2011-09-29 08:57:06,538 ERROR [com.mongodb.port.localhost:27017]
(http-0.0.0.0-9090-7) going to sleep and retry. total sleep time
after = 6218ms this time:3200ms