These two days encountered a MySQL connection problem, find someone for a few days did not fix, first look at the error message:
====================================================================
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:334)
At Org.springframework.transaction.interceptor.TransactionInterceptor.invoke (transactioninterceptor.java:105)
At Org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (reflectivemethodinvocation.java:172)
At Org.springframework.aop.framework.cglib2aopproxy$dynamicadvisedinterceptor.intercept (Cglib2AopProxy.java:622 )
At hitec.dms.element.service.biz.impl.dmsmonitorthreadserviceimpl$ $EnhancerByCGLIB $ $a 293fc8f.findlist (< generated>)
At Hitec.influence.platform.quartz.ThreadListener.monitorThread (threadlistener.java:117)
At Hitec.influence.platform.quartz.job.GatherJob.process (gatherjob.java:12)
At Hitec.influence.platform.quartz.quartzdispatcher$quartzjob.execute (quartzdispatcher.java:377)
At Org.quartz.core.JobRunShell.run (jobrunshell.java:202)
At Org.quartz.simpl.simplethreadpool$workerthread.run (simplethreadpool.java:525) Caused by: Org.hibernate.exception.JDBCConnectionException:Cannot Open Connection
At Org.hibernate.exception.SQLStateConverter.convert (sqlstateconverter.java:97)
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:142)
At Org.hibernate.transaction.JDBCTransaction.begin (jdbctransaction.java:85)
At Org.hibernate.impl.SessionImpl.beginTransaction (sessionimpl.java:1354)
At Org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin (hibernatetransactionmanager.java:555)
... One 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 no received any packets from the server.
At Sun.reflect.GeneratedConstructorAccessor248.newInstance (Unknown Source)
At Sun.reflect.DelegatingConstructorAccessorImpl.newInstance (delegatingconstructoraccessorimpl.java:45)
At Java.lang.reflect.Constructor.newInstance (constructor.java:526)
At Com.mysql.jdbc.Util.handleNewInstance (util.java:411)
At Com.mysql.jdbc.SQLError.createCommunicationsException (sqlerror.java:1117)
At Com.mysql.jdbc.mysqlio.<init> (mysqlio.java:350)
At Com.mysql.jdbc.ConnectionImpl.coreConnect (connectionimpl.java:2393)
At Com.mysql.jdbc.ConnectionImpl.connectOneTryOnly (connectionimpl.java:2430)
At Com.mysql.jdbc.ConnectionImpl.createNewIO (connectionimpl.java:2215)
At Com.mysql.jdbc.connectionimpl.<init> (connectionimpl.java:813)
At Com.mysql.jdbc.jdbc4connection.<init> (jdbc4connection.java:47)
At Sun.reflect.GeneratedConstructorAccessor43.newInstance (Unknown Source)
At Sun.reflect.DelegatingConstructorAccessorImpl.newInstance (delegatingconstructoraccessorimpl.java:45)
At Java.lang.reflect.Constructor.newInstance (constructor.java:526)
At Com.mysql.jdbc.Util.handleNewInstance (util.java:411)
At Com.mysql.jdbc.ConnectionImpl.getInstance (connectionimpl.java:399)
At Com.mysql.jdbc.NonRegisteringDriver.connect (nonregisteringdriver.java:334)
At Org.apache.commons.dbcp.DriverConnectionFactory.createConnection (driverconnectionfactory.java:38)
At Org.apache.commons.dbcp.PoolableConnectionFactory.makeObject (poolableconnectionfactory.java:582)
At Org.apache.commons.pool.impl.GenericObjectPool.borrowObject (genericobjectpool.java:1148)
At Org.apache.commons.dbcp.PoolingDataSource.getConnection (poolingdatasource.java:106)
At Org.apache.commons.dbcp.BasicDataSource.getConnection (basicdatasource.java:1044)
At Org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection ( LOCALDATASOURCECONNECTIONPROVIDER.JAVA:81)
At Org.hibernate.jdbc.ConnectionManager.openConnection (connectionmanager.java:446)
... More caused by:java.net.SocketException: too many open files
At Java.net.Socket.createImpl (socket.java:447)
At Java.net.socket.<init> (socket.java:421)
At Java.net.socket.<init> (socket.java:241)
At Com.mysql.jdbc.StandardSocketFactory.connect (standardsocketfactory.java:257)
At Com.mysql.jdbc.mysqlio.<init> (mysqlio.java:300)
... More
====================================================================
See these error messages, always thought is the code in Hibernate established connection has not been disconnected, until the connection idle 8 hours after the MySQL to disconnect do not let the connection, and then a colleague had encountered such problems, in fact, has not noticed an exception below the "more caused by: Java.net.SocketException: Too many open files "because my program is deployed on Linux because Linux has a ulimit maximum number of open files, the default is 1024x768 (Ulimit-a can see the relevant information), Later found that someone else encapsulated the jar package has a inputstream only new open does not close, has been in the loop new open file, until open more than 1024 error, put InputStream plus close ok!
MySQL Connection exception resolution