mongo 自动创建索引导致应用连接超时

2016年10月16日一个周末的时光遇到了一个很是让人恼火的问题!tomcat总是抛出连接超时问题错误,让人甚是恼火啊!!!

报错信息如下:

[2016-10-15 18:30:58] 113578459   INFO - ————— PermissionsInterceptor ————— - 登录人pin————————WUJIE
十月 15, 2016 6:30:58 下午 com.mongodb.DBApiLayer$Result killCursor
警告: can‘t clean 1 cursor
com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection
        at com.mongodb.DBPortPool.get(DBPortPool.java:193)
        at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:408)
        at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:177)
        at com.mongodb.DBApiLayer.killCursors(DBApiLayer.java:181)
        at com.mongodb.DBApiLayer$Result.killCursor(DBApiLayer.java:490)
        at com.mongodb.DBApiLayer$Result.init(DBApiLayer.java:378)
        at com.mongodb.DBApiLayer$Result.<init>(DBApiLayer.java:359)
        at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:298)
        at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:274)
        at com.mongodb.DBCursor._check(DBCursor.java:368)
        at com.mongodb.DBCursor._hasNext(DBCursor.java:459)
        at com.mongodb.DBCursor.hasNext(DBCursor.java:484)
        at com.jlj.erp.dao.follow.impl.FollowDaoImpl.queryOrderByTime(FollowDaoImpl.java:100)
        at com.jlj.erp.manager.follow.impl.FollowManagerImpl.queryOrderByTime(FollowManagerImpl.java:19)
        at com.jlj.erp.service.follow.impl.FollowServiceImpl.queryFollowByCode(FollowServiceImpl.java:252)
        at com.jlj.erp.web.follow.FollowAction.queryFollowByCode(FollowAction.java:160)
        at sun.reflect.GeneratedMethodAccessor292.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
        at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
        at com.jlj.erp.web.interceptor.AttackInterceptor.intercept(AttackInterceptor.java:17)
        at com.opensymphony.xwork2.De

问题原因大概是这样的:

上面这个False的意思就是要阻塞所有后面的请求;

改成True就是异步的了,不需要等待了,这样纠结了上述问题!

时间: 2024-10-01 06:54:45

mongo 自动创建索引导致应用连接超时的相关文章

phoenix 利用CsvBulkLoadTool 批量带入数据并自动创建索引

需要先创建表: CREATE TABLE IF NOT EXISTS population ( state CHAR(2) NOT NULL, city VARCHAR NOT NULL, population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city)); 在phoenix 目录下执行 hadoop jar /home/phoenix-4.6.0-HBase-1.0-bin/phoenix-4.6.0-HBase-1.0-client.j

mongo之 前后台创建索引 --noIndexBuildRetry

在数据量超大的情形下,任何数据库系统在创建索引时都是一个耗时的大工程.MongoDB也不例外.因此,MongoDB索引的创建有两个选择,一个是前台方式,一个是后台方式.那这两种方式有什么差异呢,在创建索引是是否能观察到索引完成的进度呢.本文将是基于此的描述,同时也描述了索引创建相关的注意事项. 一.索引创建方式 前台方式 缺省情况下,当为一个集合创建索引时,这个操作将阻塞其他的所有操作.即该集合上的无法正常读写,直到索引创建完毕 任意基于所有数据库申请读或写锁都将等待直到前台完成索引创建操作 后

外键约束列没建索引导致大量library cache pin/library cache lock

清空一个100多万行的大表的数据,发现一直执行了几个小时: delete B001.T_B11; 通过以下SQL进行跟踪,发现经常会出现library cache pin和library cache lock的等待,怀疑有大量的recursive sql在执行,于是对这个session做了10046: 发现有大量的如下SQL执行,每删除1行T_B11,都会执行下面2条SQL一次, PARSING IN CURSOR #3 len=93 dep=2 uid=0 oct=3 lid=0 tim=14

创建索引的原则

1.索引创建原则: 在经常需要搜索的列上创建索引,将加快查询速度. 在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构. 在经常用于连接的列(主要是外键)上创建索引,加快连接的速度. 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快查询速度. 在经常使用于WHERE子句中的列上创建索引,加快条件的判断速度. 2.无需创建索引的情况 定义为text.image和bit

[SQL Server] 数据库日志文件自动增长导致连接超时的分析

1.现象.问题描述 客户反映某客户端登陆不了,客户端程序日志显示“连接数据库超时”:检查对应的数据库服务器,日志显示“Autogrow of file '某数据库日志文件' in database '某数据库' was cancelled by user or timed out after 2391 milliseconds.  Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly

对于大量left join 的表查询,可以在关键的 连接节点字段上创建索引。

问题: 大量的left join 怎么优化 select a.id,a.num,b.num,b.pcs,c.num, c.pcs,d.num,d.pcs,e.num,e.pcs,a.x, a.y from a left join b.id=a.id and b.time=a.time left join c.id=a.id and b.time=a.time left join d.id=a.id and b.time=a.time left join e.id=a.id and b.time=

MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction

2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm Bug重现方法: 部署好环境后,在无用户访问该系统的情况下,过一晚上,第二天再登录就会报出如下错误:Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC

Hibernate连接mysql数据库并自动创建表

天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 所以说,Hibernate讲白了就是简化了与数据库之间的操作,那么要玩转它自然就得连接上数据库咯.(与Hibernate对应的orm框架还有Mybatis,只不过M

博客园自动循环创建索引目录JS

对于比较长的文章,有一个好的目录索引是很有必要的,可以让读者比较清楚地了解文章内容和层次.然而,目前(2015.7)博客园不像csdn博客那样,会对发布的文章自动生成目录索引.不过,一些网友通过博客园后台提供的一些自定义功能,自己写脚本实现了这一功能.我用的脚本主要就是参考赵子清的,文章地址是:http://www.cnblogs.com/zzqcn/p/4657124.html. 原作者的脚本只支持1级目录,我改了两级:第1级是h2,第2级是h3.还添加了一些小玩意,比如讨论qq群号.效果如下