[JAVA-852] Mongo options does not seem to work while working with replica-set Created: 10/Jun/13 Updated: 11/Sep/19 Resolved: 12/Jun/13 |
|
| Status: | Closed |
| Project: | Java Driver |
| Component/s: | Cluster Management |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Atul Gupta | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
We are using replica-set and providing the configuration like the following, but these configuration options does not seem to work. We seem to be getting 2 problems- 1) if all the nodes of the mongo db are down, requests (e.g. mongoTemplate.save) hang for about 60-120 seconds and then throw an exception. Following is the configuration we are using, the behavior is same whether we use mongo options or not. We are using mongo db for logging purpose only which is used for logging requests and responses and want even if all nodes of the mongo db are down, requests should not hang (if these fail, these should exit immediately) 2) We see very fast re-connection attempts being made (hundreds of them in a sec) which clogs the log files very fast and we are not sure if #1 may be caused by this. <mongo:mongo id="mongo" replica-set="${nosql.db.replicaset}"> The following error is seen in the logs repeatedly- org.springframework.data.mongodb.UncategorizedMongoDbException: Rare case where master=null, probably all servers are down; nested exception is com.mongodb.MongoException: Rare case where master=null, probably all servers are down Any help is highly appreciated- Thanks, |
| Comments |
| Comment by Atul Gupta [ 12/Jun/13 ] | ||||||||||||||||||||||||||||
|
It was some problem with my Eclipse which was not setting the property properly, I tried it with command line and seems to work properly. Thanks a lot for the help Jeff, both the issues stand resolved now | ||||||||||||||||||||||||||||
| Comment by Jeffrey Yemin [ 11/Jun/13 ] | ||||||||||||||||||||||||||||
|
Hi Atul, Good to hear that updating to 2.11.1 solved the first problem. Regarding the second problem, I wrote a small test program and ran it with -Dcom.mongodb.updaterIntervalNoMasterMS=5000, and it works as expected. Program:
Command line:
Output:
If you can supply a test program which demonstrates the behavior you're seeing, we can investigate further. | ||||||||||||||||||||||||||||
| Comment by Jeffrey Yemin [ 11/Jun/13 ] | ||||||||||||||||||||||||||||
|
Hi Atul, Good to hear that updating to 2.11.1 solved the first problem. Regarding the second problem, I wrote a small test program and ran it with -Dcom.mongodb.updaterIntervalNoMasterMS=5000, and it works as expected. Program:
Command line:
Output:
If you can supply a test program which demonstrates the behavior you're seeing, we can investigate further. | ||||||||||||||||||||||||||||
| Comment by Atul Gupta [ 11/Jun/13 ] | ||||||||||||||||||||||||||||
|
Update--------------- There seems to be some problem with java driver 2.9.3 version as it does not make use of MongoOptions, I updated the jar to 2.11.1 and #1 is solved. Regarding #2, I noticed that in ConnectionStatus.java line#97, updaterIntervalNoMasterMS = Integer.parseInt(System.getProperty("com.mongodb.updaterIntervalNoMasterMS", "10")); Now even when i have created a system property with name "com.mongodb.updaterIntervalNoMasterMS" and its value set to 5000, it is not picking it up and the default value of 10 ms is getting passed, hence it keeps retrying every 10 ms and floods the logs. Is there any other way to update this to 5 seconds instead of default 10 ms? Thanks, | ||||||||||||||||||||||||||||
| Comment by Atul Gupta [ 11/Jun/13 ] | ||||||||||||||||||||||||||||
|
Hi Jeff, Thanks a lot for replying. java driver version - 2.9.3 Please let me know if you require any additional inputs. Thanks, | ||||||||||||||||||||||||||||
| Comment by Jeffrey Yemin [ 10/Jun/13 ] | ||||||||||||||||||||||||||||
|
Hi Atul, What version of the driver are you using? And can you determine which Mongo/MongoClient constructor is being invoked given your configuration? |