在Mongo中自动刷新陈旧连接的最佳方法是什么?
在回收mongod服务之后,我从Liferay Portlets获得了这个例外:
com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/connection_test
答案 0 :(得分:1)
您需要在代码中“处理异常并重试逻辑”。这可能有所帮助:Exceptions, and how best to retry when a connection is reset?
答案 1 :(得分:1)
我最终编写的代码在请求每个DBCollection
之前轮询连接。
private DBCollection safeColl(String pCollectionName, DBCollection pColl) {
try {
if (log.isDebugEnabled()) {
log.debug("getting safe coll count on coll: " + pColl.getName());
}
pColl.count();
} catch (MongoException e) {
if (e.getMessage().startsWith("can't call something")) {
pColl = getCollection(pCollectionName, true);
return pColl;
} else {
throw e;
}
}
return pColl;
}