java mongo连接问题,一直超时,原因不知道在哪
1个回答
2017-11-09 · 【免费测试,验证码5秒必达】
北京巴卜技术有限公司
北京巴卜技术有限公司(以下简称巴卜)是具备国际水准的移动商务平台技术和应用方案提供商。自成立以来,巴卜始终 致力于为国内外企业提供具备国际技术水准的移动商务平台及运营服务。
向TA提问
关注
展开全部
在对超过百万条记录的集合进行聚合操作。DBObjectmatch=(DBObject)JSON.parse("{$match:{logType:{'$in':[5,9]}}}");DBObjectgroup=(DBObject)JSON.parse("{$group:{'_id':'$domainUrl','count':{'$sum':1}}}");AggregationOutputoutput=logCollection.aggregate(match,group);偶尔会发生Readtimedout异常。com.mongodb.MongoException$Network:Readoperationtoserver/192.168.10.202:27017failedondatabaseadLogTableatcom.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253)atcom.mongodb.DB.command(DB.java:261)atcom.mongodb.DB.command(DB.java:243)Causedby:java.net.SocketTimeoutException:Readtimedoutatjava.net.SocketInputStream.socketRead0(NativeMethod)atjava.net.SocketInputStream.read(SocketInputStream.java:152)通过多次测试,发现执行一次聚合平均时间为5s,超过5s时就会报错!然后查看MongoDB的配置信息:socket-timeout="5000"//5ssocket-timeout的默认配置为0,也就是没有限制。没有超时限制,系统出了问题也不容易发现,应该根据实际情况,给出合理的超时时间。通过多次测试发现最长执行时间为6秒,就把超时时间设置成了10000。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询