mongo自动断开mongo 连接命令怎么弄

MongoDB丢数据问题的分析 | MongoDB中文社区java mongo连接问题,一直超时,原因不知道在哪_百度知道
java mongo连接问题,一直超时,原因不知道在哪
我有更好的答案
在对超过百万条记录的集合进行聚合操作。DBObject match=(DBObject)JSON.parse(&{$match:{logType:{'$in':[5,9]}}}&); DBObject group=(DBObject)JSON.parse(&{$group:{'_id':'$domainUrl','count':{'$sum':1}}}&); AggregationOutput output = logCollection.aggregate(match,group); 偶尔会发生Read timed out 异常。com.mongodb.MongoException$Network: Read operation to server /192.168.10.202:27017 failed on database adLogTable at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253) at com.mongodb.DB.command(DB.java:261) at com.mongodb.DB.command(DB.java:243) ... Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:152) 通过多次测试,发现执行一次聚合平均时间为5s,超过5s时就会报错!然后查看MongoDB的配置信息:socket-timeout=&5000& //5s socket-timeout的默认配置为0,也就是没有限制。没有超时限制,系统出了问题也不容易发现,应该根据实际情况,给出合理的超时时间。通过多次测试发现最长执行时间为6秒,就把超时时间设置成了10000。socket-timeout=&10000& //10s 注意:MongoDB在与Spring整合时,如果要配置多个MongDB源,只会启用最后一个&mongo:options&配置。应该把参数配置信息存储在properties文件中。&mongo:mongo host=&${mongodb.ip}& id=&mongo202& port=&${mongodb.port}&& &mongo:options connections-per-host=&200& threads-allowed-to-block-for-connection-multiplier=&100& connect-timeout=&1000& max-wait-time=&1000& auto-connect-retry=&true& socket-keep-alive=&true& socket-timeout=&10000& slave-ok=&true& write-number=&1& write-timeout=&0& write-fsync=&true& /& &/mongo:mongo& 通过Java API获取配置参数DBCollection logCollection = mongoTemplate.getCollection(collName); MongoOptions mongoOptions = logCollection.getDB().getMongo().getMongoOptions(); System.out.println(mongoOptions.getSocketTimeout()); 最后一点: ConnectionTimeOut和SocketTimeOut的区别:一次完整的请求包括三个阶段:建立连接数据传输断开连接如果与服务器(这里指数据库)请求建立连接的时间超过ConnectionTimeOut,就会抛 ConnectionTimeOutException,即服务器连接超时,没有在规定的时间内建立连接。如果与服务器连接成功,就开始数据传输了。如果服务器处理数据用时过长,超过了SocketTimeOut,就会抛出SocketTimeOutExceptin,即服务器响应超时,服务器没有在规定的时间内返回给客户端数据。
中国IT职业教育领先品牌
主营:教育培训-JAVA培训-大数据培训-Html5培训-UI培训-python培训等
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MongoDB数据库需要每次操作完成后断开连接么? - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
请教一下,在使用MongoDB数据库(或者其他)的时候,是每次操作的时候都执行 连接数据库-&认证身份-&执行操作-&关闭连接 的流程么?还是只在程序运行时连接数据库,认证身份,之后保持连接不关闭不断的执行操作呢?
之前没有接触过,所以不太明白,谢谢。
不需要,我是这样写的,express组件的下
var mongodb = require(’./models/db.js’);
mongodb.open(function(err, db) {
routes(app);
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的java操作mongodb之后需要断开连接么_百度知道
java操作mongodb之后需要断开连接么
我有更好的答案
一般来说操作好数据库都需要断开连接释放资源。为了节省内存使用且避免造成内存泄漏
需要,因为mongodb的连接基于连接池,不关闭的话,连接用完后将连接不了db.
为您推荐:
其他类似问题
mongodb的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 mongo 远程连接 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信