数据库连接异常占满,服务停掉连接也得不到释放

spring+mybatis的项目,数据库没有自己操作连接,事务也由spring管理,启动后连接池大概占
12个左右,但是关闭服务后总有连接未释放
select username,machine,count(username) from v$session where username is not null AND username='ACTIVITI' group by username,machine
不知道一般会是什么原因引起

0

1个回答

连接大于100, 用show full processlist,查看所有连接数,不够的话用show processlist,如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接,你有这样看过连接吗?你试试看为什么连接释放不了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
解决生产环境接口应用包jboss数据库连接池满的问题
以前只排查过DHCP连接池泄露的问题,思路是通过btrace脚本收集日志排查问题,jboss用的是自带的连接池,不熟悉,经过查看官方文档终于找到jboss连接池的核心类,如下: (1)Jboss连接池核心类:InternalManagedConnectionPool :包含2个核心方法:returnConnection (),getConnection()方法。 (2) 当应用需要进...
spring4+mybatis出现AOP方法结束后,事务不释放连接,导致连接数被用完的案例分析
现象:在进行压测的时候,出现了数据库连接数被用完的情况经过日志分析,发现是因为在一个线程业务启动后,在首次开启事务后,并没有在AOP的方法结束后进行释放,而是一直到线程结束才释放了连接。日志如下图所示:经过分析,一开始以为是出现了锁的问题,但是经过业务上和日志的排查,并没有发现并发死锁的现象。后来排查了Spring AOP的设置,只有propagation的属性为REQURES_NEW和NOT_S...
oracle 数据库1521连接数过多的解决方法
数据库1521连接数过多处理: 故障描述:目前数据库设置的监听时间是0秒,表示客户端建立监听后没有等待时间限制,导致日常使用pl/ sql平凡断开连接数据库监听但是不释放,通过netstat -ano可查看到大部分tcp连接来自办公网,且state是ESTABLISHED:表示与1521端口建立连接,timer参数是off:表示没有过期时间,导致服务器连接数越来越多 故障处理:设置数据库监
关于tomcat连接池爆满导致系统崩溃的问题
最近,在项目组遇到了tomcat连接池资源不释放,导致系统崩溃的问题。经过好几个小时的排查,最终确定应该是由于事务控制机制不完善导致的。 首先呢,在日常代码的编写过程中一定要注意规范性,尤其是ssh架构的系统当中。该在service层调用的代码就不要再action中去调用,该在service层加事务控制就一定不要忘记。凡是涉及到数据库的操作,都应当加上事务,防止遗漏。 其次,在使用tomcat
检测数据库连接是否释放的小技巧
隨著系統愈大愈難去偵測 Memory Leak,雖然可以找一些 Profiler 來協助,但是通常最容易造成記憶體不足的狀況,絕大多數是資料庫連線沒有正常釋放。 如果有使用 DBCP 當 Connection Pool 的話,可以用一個小技巧來看看自己的程式到底有沒有正常釋放連線。 說起來也很簡單,先在資料庫配置參數裡面把 maxIdle 調整為 0。 <parameter> &lt...
Mysql InnoDB连接池占满问题
简单做一下线上问题排查的记录。使用的Mysql引擎是 InnoDB 5.7。 排查log 通过排查应用日志(只有其中一台机器),可以马上定位到问题是数据库连接池满了。具体日志如下: 2018-05-10 10:42:16.824 WARN 5 [xec-3303] SqlExceptionHelper SQL Error: 0, SQ...
mysql连接池爆满,释放程序长连接僵尸进程
程序启动报错提示连接池爆满不可用的情况下,我们从数据库入手查看哪些进程长时间等待 进入mysql命令界面输入:show processlist 下面我们查找linux系统上mysql所在服务器的位置which mysql,使用which命令前提是你的 cat /etc/profile你的系统环境变量文件内配置了检索的目录,如果安装目录没有配置在profile文件内是查询不到安装目录
springmvc + mybatis使用c3p0连接mysql数据库时连接经常自动断开问题的解决方式
要设置一下idleConnectionTestPeriod参数,值比过期时间小,这样定时检查数据库连接情况就不会再报错了。 详见http://www.msjava.com/share/27/item.html
数据库连接数居高不下,导致系统越来越慢
前段时间,公司系统突然异常缓慢,通过阿里云监控看到连接数突然陡增,并且不释放,以下是我们的处理步骤:1、通过阿里云提供的监控日志查询是CPU过高,还是连接数过高导致的。2、CPU过高可能与读写操作过高有关,我们是连接数过高导致的。3、是否有程序发送大量的情况,频繁请求数据库导致连接数过高?不是4、检查慢SQL是否过多,导致很多链接时间过长,导致链接不释放。这里可以通过show PROCESSLIS...
使用hibernate数据库连接不释放的问题
最近同事遇到使用hibernate连接不释放的问题,代码大概是下面这样: Query query = session.createQuery(hql); for (int i = 0; i < values.length; i++) { query.setParameter(i, values[i]); } List result = query.setFirstResult(offset).
关于weblogic连接池爆满的原因和处理
网上了解了一下连接池泄露相关情况,各个地方根据自己情况拼凑了些。以后亲自处理时有啥感悟另谈吧。 描述: weblogic连接池泄漏 简单来说也可以看作项目Overloaded。就是程序运行过程中创建一个连接,而在执行之后有可能没有释放该连接,当然,还有其他某些原因。这样的话,不管你项目配置的最大连接是多少,终将会溢出。然后项目始终与数据库连接不上。   在数据库查问题: Oracle
mysql连接池释放不了的问题
     当把mysql数据库连接放在try里面时,连接池会释放不成功,要把连接放到try外面。 例如:   try{ Connection conn=ConnectionUtil.getConnection(); } catch(Exception e){ System.out.println(e.toString()); } finally{ ...
项目中遇到的坑--数据库自动释放连接
最近写了个项目,SSM+QUARTZ的定时任务,每次测试都是没问题的,但是到了晚上,定时任务开启时就会报错,错误内容就是连接数据库失败。 我当时分析有两个原因: 1:数据库到了晚上会关闭,或者数据库有时间段限制等等的数据库的问题。 2:到了晚上会断网,断网就访问不到数据库。 结果折腾了一个星期,否定了自己的两个原因,那到底是怎么回事呢? 原来,项目连接到数据库后,长时间不做操作,数据库会
oracle 连接数被占满的解决方法
oracle 11g 大量废连接占满数据库连接问题处理   问题描述: 数据库不断出现大量无用连接,超过数据库最大连接数,导致新的连接无法建立,访问不通数据库 问题分析: 服务器netstat连接数,大量连接来自办公网连接,不断在增加,通过服务器spid查看数据库对应的sid,查看session会话,点击pl/sql 工具菜单,选择会话,选择所有会话,查看到sid对应的事务是pl/sql...
hibernate配置 持有数据库链接不释放
使用springmvc+hibernate做项目的时候,经常遇到一个问题项目动不动就假死啦,请求数据没有返回,debug模式下看到请求只要一连接数据库就会卡住,没有任何反应!刚开始什么方法都试过啦,调大数据库连接池的大小,优化请求链接的次数!查看假死情况下cpu的使用情况也没有异常,这个时候感觉很无力,后来同事换了一个数据库连接池Druid,之前用的是c3p0!终于有重大发现啦,这个时候再发生假死...
Quartz集群数据库连接失效
一、问题描述 [2018-6-5 13:57:11] [WARN ] [com.mchange.v2.c3p0.impl.NewPooledConnection:425] - [c3p0] A PooledConnection that has already signalled a Connection error is still in use! [2018-6-5 13:57:11]...
oracle数据库监听停掉依然可以访问数据库
今天忽然 想到一个问题,将oracle的监听ebtl服务的作用是什么? 1。我用pl/sql连上数据库确认可以正常使用,然后把监听停掉,依然可以操作数据库 2。在pl/sql中新打开一个sql窗口失败,提示要登陆数据库   oracle监听服务是不是就是监听某一个端口(1521) 如果有外来访问1521就会转到oracle数据库那里; 如果监听关掉,新来的链接就不知道去哪 但是之前已经...
Spring不对Hibernate原方法操作数据库提供连接关闭服务
前几天我把我之前运用Hibernate+struts1.x框架开发的web项目搬到Spring框架上,其中Hibernate和struts都配置到applicationContext.xml文件上,通过初步测试发现所有线都已经打通了。到今天,我同样是运行该项目,发现一个很诡异的问题就是,当我连续地点击访问数据库的时候,前几次还是没有问题的,但点击多几次就发现项目就死了,所有需要连接数据库的操作的不行
对MyBatis进行优化——数据库连接
MyBatis数据库连接优化
spring+hibernate 数据库连接不关闭导致无法响应
实训项目中使用 spring + springmvc+ hibernate +tomcat+mysql  在平常测试中,总是在一段时间后点击页面就会无响应,起初以为是tomcat服务器有毛病了什么的 没有多想,这几天做了在两台tomcat上nginx负载均衡,突发奇想,测试了一下,很简单,一直点击一个链接发请求, 很神奇,一个tomcat的情况下点击40次左右情况下无响应 ,两台就是80次左...
mysql数据库连接不释放问题
mysql数据库连接不释放问题  1    数据库连接无法释放原帖内容 1.1    原帖内容 原帖:http://eip.teamshub.comt3668709 服务封装平台集成jcf框架后数据库连接无法释放。 服务封装平台集成jcf框架后数据库连接无法释放。 服务注册-&amp;gt;批量数据服务问题描述: 连续加载该功能点后,后台无法执行dao层的服务。 问题原因: 经排查造成该问题的原因是:有...
数据库连接自动释放
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Ne
Python 数据库连接报错
    最近在学习python。    今天在学习python连接Mysql数据库时报错:AttributeError: 'NoneType' object has no attribute 'encoding    使用pyCharm+python3+pyMysql+mysql5.56    数据库连接:connect = pymysql.Connect(host='localhost',por...
hibernate c3p0 连接无法释放 阻塞数据库操作
最近写的一个项目,发现每次启动tomcat进行几个数据库操作后就会卡住,重启tomcat又可以继续用,几个数据库操作后继续不可用。 在mysql中查询show processlist,发现这个项目的数据库有很多process在Sleep状态。 关闭tomcat,重启mysql,让数据库中的进程恢复0。 启动tomcat,这时候看到这个项目的数据库有5个连接,这是因为hibernate.cfg
慢查询堆积导致从库不可用
现象收到报警,提示某个端口的某几个从库连接超时,偶尔连接失败。凭经验,猜测应该是慢查造成的(如果是机器挂了,应该一直报连接失败,并且 MySQL 服务器千兆网卡很少会存在网络带宽打满的问题)。登上机器查看负载情况(由于机器负载较高,卡在了登录过程中,kill 了之后才能上去。因为 CPU 基本上都忙于处理 SQL 语句,影响其他比如 ssh 服务的连接处理。),看到如下状况:CPU 基本占满(8 核
遇到一个数据库链接未释放问题
今天遇到一个链接未释放的问题,一会就把服务拖死了。刚刚发现了,做过记录,以免以后再犯。 问题代码 Connection con =this.getHibernateTemplate().getSessionFactory().openSession().connection(); 解决代码 Connection con = this.getHibernateTemplate().g
JdbcTemplate 在使用连接池的情况下,数据库连接仍超出最大回话数可能的原因
在使用spring框架的时候,会经常用到jdbcTemplate,而可能习惯性的每次创建都是通过 ApplicationContext act = new  ClassPathXmlApplicationContext("application-context.xml"); JdbcTemplate jdbcTemplate = (JdbcTemplate) act.getBean("jdbc
spring集成quartz报数据库链接问题
===========================================================...
为什么要释放数据库连接
1、数据库连接,在oracle的实现中,是一条tcp链路。这个链路上,可以承载多个statement。比如最大200个连接,每连接最大300个statement,那么这个数据库可以支持6w个会话。2、连接池自身在什么时候释放连接连接池存在的价值就是不释放连接,下一个人申请连接时,复用已经建立的连接。(应用代码虽然调用了释放函数,但连接池不会真的释放)连接池在任务空闲时,可以释放一部分连接。在连接池...
nginx 异常长连接快速断开
最近碰到了一个问题,设备端上挂载的nginx服务通过c版fcgi提供服务,其中的长连接API经常连接的设备断网后其他设备无法连接上。初步查看源代码调试日志发现网络断了nginx未检测到,这时就想到给nginx添加保活检测,配置中listen加上了,写模块给connection也加上,均发现无效果,半天摸不清头脑。先写个小小的测试程序测试保活特性吧,开始我测试的是服务端只收不发,客户端只发不收,居然...
tomcat manage项目查看到连接池里有连接不能释放并且cpu负载过高
先说结论 自己的代码一直不能执行完,可能原因是 1 代码有循环 2 代码有死锁(被阻塞) 4 当前线程请求的socket无响应,陷入无限等待,这时候该线程其实还是运行中。 欢迎补充其他原因 tomcat 的manage项目里显示 我们自己的项目里连接 竟然 这么久了还没执行完, 造成的后果就是一直站着tomcat的连接池的连接, S50819745 ms0 KB0...
oracle 服务器1521连接数特别多
连不上数据库故障描述: 故障描述:oracle数据库侦听端口是1521,当一台数据库服务器1521端口占用过多(1000以上),连数据库时,无法向数据库发起连接请求,导致连接失败 故障处理:1、限制某个异常访问ip的连接,防火墙配置:iptables -I INPUT -s 59.151.119.180 -j DROP                 2、释放连接,当占用1521过多时无
数据库锁表/数据库连接池连接异常
来源:https://www.jb51.net/article/70955.htm总结:1.alter锁表,海里数据表中新增字段          2.使用EXPLAIN/SHOW PROCESSLIST定位sql锁表          3.etl使用临时表导入数据,在目的表未加索引的情况下会导致锁表(SHOW PROCESSLIST定位出结论)          4.亲身经历:spring ao...
MySQL连接数过多导致服务无法正常运行
【Mysql并发和连接数】mysql并发数:netstat -ant |find /i &quot;ESTABLISHED&quot; |find /i &quot;:3306 &quot; /c mysql连接数:select count(*) from information_schema.processlist;             或者:mysql -uroot -h127.0.0.1 -P3020 -e “show pro...
完美解决thinkphp3的mysql连接问题
第一次使用thinkphp,所以选了tp3,我电脑上装的是php7 但是写完之后遇到问题Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 如下图: 我就去百度方法,网上的方法都是开启PDO 但是 我按照网上的办法改了半天也没有解决问题, 综合了各种说法以及我一天的摸索,终于完美解决了问题 我的改动是这样的: 1、打开php目录
关于oracle超出连接数的自我总结
    近期在公司发现服务每三个月都会把oracle的连接数占满,检查发现是由于入库服务导致线程连接数塞满了,解决的方法如下:进入oracle用户(su - oracle)通过dba用户进入oracle(sqlplus / as sysdba)但是显示连接数已经超出,无法通过dba进入,查看哪台服务器的哪个服务导致连接数过高(netstat -antp |grep 1521)发现有四台服务器,每台...
使用JDBC后千万记得关闭并释放数据库连接资源
原文地址:http://www.wangzhongyuan.com/archives/231.html 在我10月30日的一篇文章《使用JDBC后记得关闭并释放数据库连接资源噢:)》中,提到JDBC中的Mysql数据库连接Connection和Statement、Resultset使用完毕之后一定要关闭,否则会占用大量内存资源,导致内存溢出。为了验证连接关闭是否确实能够释放资源,我做了一个小...
jdbc操作未关闭连接导致web程序假死
jdbc操作未关闭连接导致web程序假死
浅谈MyBatis连接数据库
   首先简单介绍一下MyBatis:MyBtis前身是iBatis,本是Apche的一个开源项目,2010年这个项目由Apache Software Foundation 迁移到了Google Code,并改名为MyBatis.2013年迁移到Github。MyBtis是一个开源的数据持久层框架。MyBatis内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎...
Weblogic 数据源 连接池占满的一种解决思路
连接池占满比然后会有数据库连接泄露或者未释放。如果一句一句去找哪个sql出了问题是比较麻烦的特别是在别人的代码上找,这个时候可以点击Weblogic控制台,进入环境-----服务器选择服务  点击监视线程,可以看到什么类型的请求线程异常再去找代码会轻松很多