簡體   English   中英

MongoTimeoutException 與 Java。 在收到問題之前沒有任何更改

[英]MongoTimeoutException with Java. No changes before getting the issue

我正面臨這個問題:

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches com.mongodb.Mongo$4@11ad6cd. Client view of cluster state is {type=REPLICA_SET, servers=[{address=bastaproject-shard-00-01-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=bastaproject-shard-00-00-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}, {address=bastaproject-shard-00-02-vo5a5.gcp.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketReadException: Prematurely reached end of stream}}]
    at com.mongodb.connection.BaseCluster.createTimeoutException(BaseCluster.java:389)
    at com.mongodb.connection.BaseCluster.selectServer(BaseCluster.java:108)
    at com.mongodb.Mongo.getConnectedClusterDescription(Mongo.java:887)
    at com.mongodb.Mongo.createClientSession(Mongo.java:877)
    at com.mongodb.Mongo$3.getClientSession(Mongo.java:866)
    at com.mongodb.Mongo$3.execute(Mongo.java:823)
    at com.mongodb.MongoCollectionImpl.executeCount(MongoCollectionImpl.java:215)
    at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:183)
    at com.mongodb.MongoCollectionImpl.count(MongoCollectionImpl.java:178)
    at basta.telegram.MongoDAO.subscribed(MongoDAO.java:31)
    at basta.telegram.BastaBot.onUpdateReceived(BastaBot.java:55)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at org.telegram.telegrambots.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27)
    at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:309)

我能夠連接數據庫並獲取文檔,但現在我不能。 在收到此錯誤之前,我沒有在代碼中進行任何更改。

這是我用來獲取 collections 的代碼:

MongoCollection<Document> collection = conexion.getDatabase().getCollection("users");

這是連接方法:

MongoClientURI uri = new MongoClientURI(
                    "mongodb+srv://cagide_j:"mypassword"@bastaproject-vo5a5.gcp.mongodb.net/test?retryWrites=true&w=majority");
            this.mongoClient = new MongoClient(uri);
            this.database = mongoClient.getDatabase("bastaProject");

確保您的 Mongo 數據庫服務器正在運行,並且如果 Mongo 正在另一台機器上運行(看起來是這樣),那么您已連接到 Internet。 我不熟悉 mongo.net,但許多數據庫即服務或雲數據庫服務具有僅允許連接白名單的 IP 地址的功能。 我已經看到突然無法連接的動態 IP 地址問題。 您也可以嘗試增加超時。

如果沒有更完整的代碼,很難說更多。

我經常發現這些問題很簡單,但不一定很容易找到。

暫無
暫無

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

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