连接无法释放导致的程序问题解决
2008-10-29 17:38
369 查看
今天在发布了一个应用程序的新版本后,出现了操作一段时间以后页面便死在那里无法操作,点击新的链接无反应,但点击已操作过的链接时却可以显示页面。程序框架为Srping+hibernate+struts。初步判断是否是无法从数据库连接池获得可用连接,所以在连接池满了以后新的操作便由于无法获得数据库连接而等待,表现为页面无法操作。查看后台日志没有报无法获得连接的错误。用netstat看网络连接情况,发现mysql的连接很多,但好像没有达到连接池上限。重启应用后用netstat观察,发现mysql连接增长很快,到了某一个数量的时候,程序便无法操作了。为了对比,恢复了老版本的应用,同样用netstat观察连接,发现mysql连接增长缓慢。由对比判断,是有程序没有释放mysql连接,导致连接池满。查看应用配置文件,发现把service的层的事务处理的拦截器给注释掉了,重新开放后问题解决。由此判断,应该是事务没有提交,导致连接一直占用,没有返还到连接池。
由于这个DataSource使用的是c3p0的连接池,上网查了一下,发现c3p0有连接管理的问题,猜想大概是因为这个导致程序的问题的。网上说使用dbcp不会有这样的问题,dbcp的连接管理比较好一点。目前没有深究,有空的话可以做些实验,比较一下常用的几个连接池的效果。(c3p0,dbcp,spring datasource)
由于这个DataSource使用的是c3p0的连接池,上网查了一下,发现c3p0有连接管理的问题,猜想大概是因为这个导致程序的问题的。网上说使用dbcp不会有这样的问题,dbcp的连接管理比较好一点。目前没有深究,有空的话可以做些实验,比较一下常用的几个连接池的效果。(c3p0,dbcp,spring datasource)
相关文章推荐
- MySql安装问题,无法启用3306导致连接失败问题集和解决方法
- mongodb3.03以上开启认证,解决程序认证连接报错以及第三方客户端无法认证问题
- spring+hibernate+c3p0整合链接池配置-连接无法释放问题(已经解决)
- 程序退出,阴魂不散?――解决Firebird嵌入式数据库无法正常释放的问题
- 【Linux】解决chown导致无法连接虚拟机的问题
- 打开office出现错误:向程序发送命令时出现问题 无法更改 中注册的office 加载项的连接状态 解决办法
- “ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”问题的解决
- SELinux导致无法访问外网,PHP连接MySQL异常Can't connect to MySQL server、redis程序访问提示Redis server went away的解决方法
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决
- ora-12514: tns: 监听程序当前无法识别连接描述符中请求的服务 问题解决
- 解决PCoIP连接View 5.0虚拟桌面超时断开导致无法再次登录的问题
- 解决PCoIP连接View 5.0虚拟桌面超时断开导致无法再次登录的问题
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决
- 解决 web服务器部署常见问题,server application unavailable 和 程序无法连接数据库 的问题(asp.net 2.0 + oracle9i + winXP)
- 解决WinForm 程序中由于拖拽导致MouseUp事件无法触发的问题
- Oracle问题解决记录:报错信息为-ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的 SID
- 解决服务器重装系统导致的mac终端无法连接的问题
- 借鉴自:“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决 ”
- 解决PCoIP连接View 5.0虚拟桌面超时断开导致无法再次登录的问题
- grid与oracle用户下oracle程序权限不一致导致ORA-15055/ORA-27123无法连接ASM问题