org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:596) at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371) at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:335) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [yuehui] 2013-06-09 15:47:49.4749 - [INFO]: @qq.com该邮件已标识! at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621) at yuehui.service.imp.MyService$$EnhancerByCGLIB$$8768e983.query(<generated>) at yuehui.util.Login.run(Login.java:162) at java.lang.Thread.run(Thread.java:619) Caused by: org.hibernate.exception.JDBCConnectionException: Cannot open connection [yuehui] 2013-06-09 15:47:49.4749 - [INFO]: @qq.com该邮件已标识! at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81) [yuehui] 2013-06-09 15:47:49.4749 - [INFO]: @qq.com该邮件已标识! at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473) at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:555) ... 8 more Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [yuehui] 2013-06-09 15:47:49.4749 - [INFO]: @qq.com该邮件已标识! at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:781) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294) at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) ... 13 more Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:675) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2142) ... 29 more Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost. at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2497) at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599) ... 31 more
1.这几天下雨mysql服务器不稳定,总是连不上,然后程序就报上面的错,这时用的是dbcp连接池。
2.换成c3p0解决问题
3.dbcp配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" > <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://www.xxx.com:3306/xxx?useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="xxx" /> <property name="password" value="xxx" /> <property name="maxIdle" value="30" /> <property name="minIdle" value="2" /> <property name="maxWait" value="60000" /> <property name="maxActive" value="1000" /> <property name="testOnBorrow" value="true" /> <property name="testWhileIdle" value="true" /> <property name="validationQuery" value="SELECT COUNT(*) FROM DUAL" /> <property name="minEvictableIdleTimeMillis" value="600000" /> <property name="timeBetweenEvictionRunsMillis" value="600000" /> </bean>
4.c3p0配置文件
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" > <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql://www.xxx.com:3306/xxx?useUnicode=true&characterEncoding=utf-8" /> <property name="user" value="xxx" /> <property name="password" value="xxx" /> <property name="acquireIncrement"><value>5</value></property> <property name="acquireRetryAttempts" value ="30"/> <property name="acquireRetryDelay" value = "3000"/> <property name="automaticTestTable" value = "test"/> 和preferredTestQuery 二选一 <property name="preferredTestQuery" value = "SELECT COUNT(*) FROM DUAL"/> <property name="idleConnectionTestPeriod"><value>3000</value></property> <property name="checkoutTimeout"><value>3000</value></property> <property name="maxPoolSize"><value>80</value></property> <property name="minPoolSize"><value>1</value></property> <property name="maxStatements"><value>6000</value></property> <property name="initialPoolSize"><value>5</value></property> </bean>
5.需要三个jar:c3p0-0.9.2.1.jar ; c3p0-oracle-thin-extras-0.9.2.1.jar ;mchange-commons-java-0.2.3.4.jar
相关推荐
对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 在较为完备的数据库连接池实现中,可根据...
数据库连接池问题.doc
C# 数据库连接池 C# 数据库连接池 C# 数据库连接池 C# 数据库连接池
达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,
context.xml, 数据库连接池配置文
数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能...数据库连接池正是针对这个问题提出来的。
数据库连接池的例子.doc数据库连接池的例子.doc数据库连接池的例子.doc
C#高效数据库连接池源码
Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置...
* 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...
提供了数据库连接池的驱动,分别有c3p0、druid、dbcp三种数据库连接池的驱动
Druid为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能.它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可...
数据库连接池 数据库连接池 数据库连接池 数据库连接池
这个文档详细讲述了mysql数据库连接池的配置以及数据库连接池的工作原理。
收集了常见的数据库连接jar包,包括oracle、mysql、sql server、db2、opta、dbcp连接池、c3p0连接池等等常见的数据库jar包,不断更新中。
c#语言下,使用netcore2.1框架,调用netstandard数据库连接池组件
比较实用的几种数据库连接池详细配置,值得收藏
数据库连接池的基础学习,针对mysql数据库的数据库连接池在java中的具体实现及应用配置
java开发,数据库连接池c3p0所需jar包。
JAVA 使用数据库连接池连接Oracle数据库,全代码,附加详细说明