码迷,mamicode.com
首页 > 数据库 > 详细

tomcat dbcp 基于jndi配置时出现java.sql.SQLException: Already closed

时间:2014-08-20 10:30:06      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   os   io   数据   


最近观察生产环境发现一个现象,一段时间不操作,再重新操作时,数据库连接第一次会出现:java.sql.SQLException: Already closed.,如下:


bubuko.com,布布扣


数据源是用tomcat dbcp 基于jndi配置管理的,查了下,如下:


原因:

You‘re probably running into the fact that MYSQL closes connections  which have been open "too long". 
Probably if you make the request to the server again, you‘ll find that  it works because the connection is reopened. 


解决方法:

One way to deal with this is to add the following to your context.xml  Resource: 

validationQuery="select 1"  (基于mysql)

validationQuery="select 1 from dual"  (基于oracle)


代价:

This causes a very cheap test query to always be run first; if the  connection has been closed, this gets the failure, and 
then a new connection is opened.


细想下原来用weblogic jdbc jndi的配置有一个专门的配置项来配置这个test query,配置tomcat时粗心大意了 :(  


tomcat dbcp 基于jndi配置时出现java.sql.SQLException: Already closed,布布扣,bubuko.com

tomcat dbcp 基于jndi配置时出现java.sql.SQLException: Already closed

标签:style   blog   http   color   java   os   io   数据   

原文地址:http://blog.csdn.net/will_awoke/article/details/38702121

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!