mongodb、java和连接未关闭
因为有一段时间我遇到了一个奇怪的问题: 我有一个Spring3WebApp,其中有一个Mongo singelton,由SpringIoC容器实例化。 Mongo类正确地获得了@Autowired,我可以发布查询、更新等 一段时间后,我在DBPortPool上遇到了关于超时发出连接的异常 为了排除故障,我编写了一个作业,将池统计数据转储到日志文件中 几个小时后,我得到以下输出:mongodb、java和连接未关闭,java,mongodb,connection,Java,Mongodb,Connection,因为有一段时间我遇到了一个奇怪的问题: 我有一个Spring3WebApp,其中有一个Mongo singelton,由SpringIoC容器实例化。 Mongo类正确地获得了@Autowired,我可以发布查询、更新等 一段时间后,我在DBPortPool上遇到了关于超时发出连接的异常 为了排除故障,我编写了一个作业,将池统计数据转储到日志文件中 几个小时后,我得到以下输出: Total : 38 Used : 8 Unused : 30 Detailed Usage:
Total : 38
Used : 8
Unused : 30
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
Detailed Usage:
Duration: 0, Namespace: null, No Documents 0, ThreadName: null, Class: class com.mongodb.InUseConnectionBean, OpCode: null, Query: null
基本上,我只是打印ConnectionPoolStatisticsBean类的所有属性
现在,让人困惑的是:通常,这些变量Duration、Namespace、ThreadName、Class和Query都是由数据填充的。不,这些连接似乎没有被释放
不幸的是,我现在还不能复制这个bug
有没有提示我如何找出这些连接卡在哪里
谢谢大家的帮助
一月
//编辑:
我确实使用:
DBCollection col=mongo.getDBthis.db.getCollectioncollection;
列插入
我不发出db.requestStart;或db.requestDone.请提供您的代码。