2

在 Mongo 中自动刷新陈旧连接的最佳方法是什么?

回收 mongod 服务后,我从 Liferay Portlets 中得到了这个异常:

com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/connection_test
4

2 回答 2

1

您需要在代码中包含“处理异常和重试逻辑”。这可能会有所帮助:异常,以及在重置连接时如何最好地重试?

于 2012-05-03T15:06:00.977 回答
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;
}
于 2013-01-03T15:12:07.050 回答