2014-01-09 49 views
0

我有一個java程序連接到MySQL 5.0很多次。 我使用mysql-connector-5.0.8.jar文件來做到這一點。連接到MySQL的問題不時

不時,它不是某個時段,我有以下異常:

Last packet sent to the server was 1 ms ago. 
2014/01/09 11:43:50:536 ERROR [com.bnpparibas.peach.core.EventDispatcherThread:3] EventDispatcherThread - org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection 
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:599) 
     at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) 
     at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263) 
     at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) 
     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) 
     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) 
     at $Proxy18.persistFeed(Unknown Source) 
     at com.bnpparibas.peach.core.FeedConfiguratorImpl.persistFeed(FeedConfiguratorImpl.java:102) 
     at com.bnpparibas.peach.core.EventFeedImpl.persistIfNeeded(EventFeedImpl.java:117) 
     at com.bnpparibas.peach.core.EventDispatcherThread.run(EventDispatcherThread.java:35) 
Caused by: org.hibernate.exception.JDBCConnectionException: Cannot open connection 
     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74) 
     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) 
     at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420) 
     at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) 
     at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129) 
     at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57) 
     at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290) 
     at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558) 
     ... 9 more 
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.UnknownHostException 
MESSAGE: machine.fr.net.intra 

STACKTRACE: 

java.net.UnknownHostException: machine.fr.net.intra 
     at java.net.InetAddress.getAllByName0(InetAddress.java:1158) 
     at java.net.InetAddress.getAllByName(InetAddress.java:1084) 
     at java.net.InetAddress.getAllByName(InetAddress.java:1020) 
     at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:246) 
     at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271) 
     at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 
     at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
     at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
     at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38) 
     at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582) 
     at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1148) 
     at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106) 
     at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) 
     at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82) 
     at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417) 
     at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) 
     at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:129) 
     at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57) 
     at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1290) 
     at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558) 
     at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374) 
     at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263) 
     at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) 
     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) 
     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) 
     at $Proxy18.persistFeed(Unknown Source) 
     at com.bnpparibas.peach.core.FeedConfiguratorImpl.persistFeed(FeedConfiguratorImpl.java:102) 
     at com.bnpparibas.peach.core.EventFeedImpl.persistIfNeeded(EventFeedImpl.java:117) 
     at com.bnpparibas.peach.core.EventDispatcherThread.run(EventDispatcherThread.java:35) 


** END NESTED EXCEPTION ** 


你知不知道我怎樣才能解決這個問題呢?

或點我的方向來解決這個問題^^

+1

該機器會不時更改其IP地址嗎?或者可能是DNS問題? – Eugene

+1

'UnknownHostException:machine.fr.net.intra' Quote from [javadocs](http://docs.oracle.com/javase/7/docs/api/java/net/UnknownHostException.html)「拋出以表明主機的IP地址無法確定。「 –

+0

這絕對是你的DNS問題/ IP變化 – Keerthivasan

回答

0

這確實是一個DNS問題。 更改爲IP地址作爲魅力。