采用C3P0连接池解决spring+hibernate+mysql 访问空闲8小时后自动断开连接的问题
2010-09-13 11:29
1016 查看
最近将自己刚做的网站放到服务器上,但是每隔一段时间就发现访问数据库的时候会报错:
javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
原因是在MySQL数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。
上网查了一下资料,找到了一个简单、且有效的办法,就是用C3P0连接池代替默认的连接池。
下载C3P0的jar包放到lib目录下
下载地址:http://sourceforge.net/projects/c3p0/files/c3p0-bin/c3p0-0.9.1.2/c3p0-0.9.1.2.bin.tgz
将applicationContext.xml文件中的dataSource改成C3P0的连接方式
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/appleflying"></property>
<property name="user" value="root"></property>
<property name="password" value="mysql"></property>
<property name="maxPoolSize" value="40"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
<property name="maxIdleTime" value="20"></property>
</bean>
javax.servlet.ServletException: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
原因是在MySQL数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 WEB 应用程序出错。
上网查了一下资料,找到了一个简单、且有效的办法,就是用C3P0连接池代替默认的连接池。
下载C3P0的jar包放到lib目录下
下载地址:http://sourceforge.net/projects/c3p0/files/c3p0-bin/c3p0-0.9.1.2/c3p0-0.9.1.2.bin.tgz
将applicationContext.xml文件中的dataSource改成C3P0的连接方式
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/appleflying"></property>
<property name="user" value="root"></property>
<property name="password" value="mysql"></property>
<property name="maxPoolSize" value="40"></property>
<property name="minPoolSize" value="1"></property>
<property name="initialPoolSize" value="1"></property>
<property name="maxIdleTime" value="20"></property>
</bean>
相关文章推荐
- C3P0连接池配置解决MySQL连接的空闲时间超过8小时后自动断开连接的问题
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- MySQL+Hibernate连接空闲超过8小时后自动断开解决方案
- MySQL+Hibernate连接空闲超过8小时后自动断开解决方案
- MySQL dbcp 下连接空闲8小时自动断开问题解决方案
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。
- Spring Boot多数据源连接8小时后断开的问题解决(MySQL)
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。
- 解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题
- 解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题
- 解决mysql自动断开连接的问题
- 解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题
- mysql 连接空闲超8小时自动断开连接问题(linux)
- mysql连接空闲8小时自动断开问题DBCP解决方案
- 解决MySql8小时自动断开连接问题。
- 【mysql】连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
- 解决mysql自动断开连接的问题