簡體   English   中英

使用Java驅動程序在Mongodb中超時異常

[英]Timed out Exception in Mongodb using Java driver

如果條目不在數據庫中,我具有以下Java代碼將新條目保存到MongoDB。 我每2秒在Java Timer中運行一次。

        MongoClient mongoClient = null;
        try {
            mongoClient = new MongoClient("localhost", 27017);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

        DB db = mongoClient.getDB("testdb");

        DBCollection coll = db.getCollection("testcollection");

        // Search for existing entries

        BasicDBObject query = new BasicDBObject("link", entry_url);

        DBCursor cursor = coll.find(query);
        try {
            // If it is a new entry, insert
            if (cursor.hasNext() == false) {
                // Insert new entry
                BasicDBObject doc = new BasicDBObject("link", entry_url)
                        .append("a_time", accept_time).append(
                                "p_time", formatter.format(date));
                coll.insert(doc); 
            }
        } finally {
            cursor.close();
        }

問題是幾分鍾后,出現com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=localhost:27017, type=Unknown, state=Connecting}] com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=localhost:27017, type=Unknown, state=Connecting}] mongoDB中的com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=localhost:27017, type=Unknown, state=Connecting}] 它引用cursor.hasNext() 對這個問題有什么建議嗎?

Exception in thread "Timer-0" com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=localhost:27017, type=Unknown, state=Connecting}]
    at com.mongodb.BaseCluster.getDescription(BaseCluster.java:128)
    at com.mongodb.DBTCPConnector.getClusterDescription(DBTCPConnector.java:396)
    at com.mongodb.DBTCPConnector.getType(DBTCPConnector.java:569)
    at com.mongodb.DBTCPConnector.isMongosConnection(DBTCPConnector.java:370)
    at com.mongodb.Mongo.isMongosConnection(Mongo.java:623)
    at com.mongodb.DBCursor._check(DBCursor.java:494)
    at com.mongodb.DBCursor._hasNext(DBCursor.java:621)
    at com.mongodb.DBCursor.hasNext(DBCursor.java:657)

計時器實現

         try {
            Timer timer = new Timer();
            timer.schedule(new STimer(), 0, 2 * 1000);
        } catch (Exception e) {
            e.printStackTrace();
        }

根據以下評論,我關閉了mongoClient連接。 問題解決了。

您還必須確保MongoClient已正確關閉

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM