MongoSocketReadException: Prematurely reached end of stream (after a period of inactivity)

前端 未结 6 1910
Happy的楠姐
Happy的楠姐 2020-12-05 02:34

I get this error on a find call (default Java Driver) after a period of inactivity. I tried to add a manual heartbeat (writing to a capped collection), but it d

6条回答
  •  时光取名叫无心
    2020-12-05 03:28

    I agree with Rhangaun's answer here is my soluction in code of JAVA:

        public static DB getMongoDB() {
    
            MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
            //build the connection options  
            builder.maxConnectionIdleTime(60000);//set the max wait time in (ms)
            MongoClientOptions opts = builder.build();
    
    
            char[] password2 = "mypassword".toCharArray();
    
            MongoCredential credential2 = MongoCredential.createCredential("username", "databasename",password2);
    
    
            //add your option to the connection 
    
            MongoClient mongoClient = new MongoClient(new ServerAddress("server ip",27017), Arrays.asList(credential2),opts);
            //use your database 
            cachedDb = mongoClient.getDB("databasename");
    
        return cachedDb;
    
    }
    

    Here is my research link:http://3t.io/blog/how-to-prevent-your-connection-from-dropping-with-hosted-mongodb-instances/

    Hope it helps you.

提交回复
热议问题