2

Mongo で古くなった接続を自動的に更新する最良の方法は何ですか?

mongod サービスをリサイクルした後、Liferay ポートレットから次の例外が発生します。

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

2 に答える 2

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 に答える
1

コードに「例外を処理してロジックを再試行する」必要があります。これは役立つかもしれません:例外、および接続がリセットされたときに再試行する最善の方法は?

于 2012-05-03T15:06:00.977 に答える