连接池爆了 怎么查到哪里的连接没释放?

问题描述

最近连接池老爆满,但代码那么多,很多人写的怎么能快速跟到哪里的连接没关掉。要是一个类一个类的查就像大海捞针一样。用的框架是javaBean+servlet

解决方案

解决方案二:
得看你如何获得连接的了...
解决方案三:
查获取连接的方法调用的地方有没有关闭连接,我就是这样干的,累死了
解决方案四:
不知道有什么更好的办法,不过这个办法虽然累,但是很有效
解决方案五:
在连接池获取的类里写个跟踪日志,输出调用者,执行的SQL,然后分析日志啦。
解决方案六:
4L是最标准的方法,尽管不节省时间,但如果没有别的办法,剩下的除了DEBUG就是日志跟踪了
解决方案七:
如果不是线上的系统,干脆将MaxActive设为1,将问题代码快速暴露出来。
解决方案八:
连接池耗尽,那先检查一下代码,看看代码中有没有把数据库连接对象Connection,Statement,ResultSet设为成员变量!照这情形看来,八成是弄成成员变量了,还有一成是没有正确关闭,另外其他原因,比如在事务当中执行了相当长的IO操作(比如调用外部服务、文件操作等)导致一个连接占用很长时间,以致池中连接耗尽。

时间: 2024-07-29 16:17:48

连接池爆了 怎么查到哪里的连接没释放?的相关文章

关于使用ExecuteScalar获得记录条数导致连接池爆掉的问题,求助。

问题描述 这是写的一个求表中纪录的函数,我在代码中大概调用了20次,另外还有30个左右的查询,只要多刷新几次页面就会出错,数据库显示连接数到最大.请问下这样写有没有什么问题? 解决方案 解决方案二:using(varsqlCnn=new....){............}要写到using{}结构中.解决方案三:你的connection的关闭为啥要注销掉?解决方案四:close啊解决方案五:感谢大家,这个函数没有用了,现在换了别的方法来实现,估计是刷新的时候连接池没有释放资源导致的解决方案六:s

Mybatis的连接池

先总结一个原则:mytatis的连接池最大值poolMaximumActiveConnections尽量跟服务器的并发访问量持平以至于大于并发访问量.   原因:在org.apache.ibatis.datasource.pooled.PooledDataSource中,popConnection函数(获取连接)会锁住一个PoolState对象,pushConnection函数(把连接回收到池中,在关闭连接的时候,会调用PooledConnection的invoke函数<使用的代理模式,invo

数据库管理Oracle 连接池信息的修改

       最近项目中用到的Oracle数据库在服务器上是建了多个表空间供不同系统使用,两个系统同时在使用过程中,正在开发的一个项目在测试运行时,时不时就出现连接池满了,连接不上的问题,为此查了下怎么修改Oracle连接池配置的修改方式,特记录下来备查. 目前Oracle只支持一个连接池,pool name为"SYS_DEFAULT_CONNECTION_POOL",管理连接池信息的也就一个包"DBMS_CONNECTION_POOL". 先看看包的相关说明: S

dbcp连接池不合理的锁导致连接耗尽

应用报错,表象来看是连接池爆满了. org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted at org.springf

session-【急】什么是连接池的方式

问题描述 [急]什么是连接池的方式 需求:采用jQuery+ajax的方式,制作注册界面,并将用户信息存储到数据库,分别采用连接池和自己开session两种方式分别完成数据库注册功能.(使用oracle数据库) 连接池方式,利用spring+Hibernate框架配置连接池,并使用连接池存储数据库,代码及截图. 回答: Session方式,在数据存储数据库时,不使用连接池,而是使用session方式来进行数据库存储,代码及截图 如题,什么是连接池的方式?使用spring+Hibernate框架进

ADO.NET连接池FAQ

ado 摘要 连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接.一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程. 当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接:当应用程序使用完连接后,该连接被归还给连接池而不是直接释放. 如何实现连接池 确保你每一次的连接使用相同的连接字符串(和连接池相同):只有连接字符串相同时连接池才会工作.如果连接字符串不相同,应用程序

简述SQL SERVER连接池的内部机制

当应用程序运行的时候,会有一个连接池的管理控件运行在应用程序的进程里,统一管理应用程序和SQLSERVER建立的所有连接, 并且维护这些连接一直处于活动状态.当有用户发出一个connection open指令时连接池会在自己维护的连接池中找一个处于空闲状态 的连接放回自己管理的连接池里,给这个用户使用.当用户使用完毕后,发出connection close指令,连接池会把这个连接放回自己 管理的连接池里,让他重新处于空闲状态,而不是真的从SQL里登出.这样如果下次有用户需要相同连接,就可以重用这

连接池与SQL Server 2000 Analysis Services

适用于:Microsoft SQL Server? 2000 Analysis Services 摘要:学习如何使用 Microsoft XML for Analysis Provider 附带的连接池对象来开发适用于 Microsoft SQL Server 2000 Analysis Services 的可伸缩客户端和 Web 应用程序. 简介 资源管理是开发可伸缩客户端和基于 Web 的应用程序时需要考虑的一个重要问题.在构造可为许多并发用户提供服务的客户端应用程序时,资源管理的指导原则是

Apache Geronimo JNDI命名和Java资源连接池,第1部分: 数据源连接

利用 JNDI 访问数据源.Java 消息服务.邮件会话和 URL 连接的连接池 了解 JNDI JNDI 是一种应用程序编程接口 (API) 或库,它为应用程序提供了将名称与对象关联起来以及根据对象的名称在目录中查找对象的方法.本文是系列教程的第一部分,阅读本文可以让您了解如何将 Geronimo.JNDI 与数据源连接池相互关联起来,如何构建数据源连接,以及如何利用 JNDI 在一个简单的 Geronimo 应用程序(称为 Customer Service 实用程序)内访问该连接. 数据源