在 Mongo 中自动刷新陈旧连接的最佳方法是什么?
回收 mongod 服务后,我从 Liferay Portlets 中得到了这个异常:
com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/connection_test
在 Mongo 中自动刷新陈旧连接的最佳方法是什么?
回收 mongod 服务后,我从 Liferay Portlets 中得到了这个异常:
com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/connection_test
您需要在代码中包含“处理异常和重试逻辑”。这可能会有所帮助:异常,以及在重置连接时如何最好地重试?
我最终编写了在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;
}