Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Heroku项目的mysql中获取通信链路失败错误_Mysql_Spring_Hibernate_Heroku_Cleardb - Fatal编程技术网

在Heroku项目的mysql中获取通信链路失败错误

在Heroku项目的mysql中获取通信链路失败错误,mysql,spring,hibernate,heroku,cleardb,Mysql,Spring,Hibernate,Heroku,Cleardb,我正在做一个SpringHibernate项目,它在Heroku上,使用ClearDB。当我的页面空闲了一段时间(几乎一分钟),然后我向服务器发送一些请求时,我得到如下错误: HTTP ERROR 500 Problem accessing /authenticate.action. Reason: Communications link failure Last packet sent to the server was 16 ms ago.; nested exception is

我正在做一个SpringHibernate项目,它在Heroku上,使用ClearDB。当我的页面空闲了一段时间(几乎一分钟),然后我向服务器发送一些请求时,我得到如下错误:

HTTP ERROR 500

Problem accessing /authenticate.action. Reason:

Communications link failure

Last packet sent to the server was 16 ms ago.; nested exception is    org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
Caused by:

org.springframework.dao.DataAccessResourceFailureException: Communications link failure

Last packet sent to the server was 16 ms ago.; nested exception is org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
at     org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:631)
at     org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:104)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:403)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at sun.proxy.$Proxy33.authenticate(Unknown Source)
Caused by: org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at sun.proxy.$Proxy75.executeQuery(Unknown Source)
我尝试在网上查找答案,并进行了如下配置设置:

HTTP ERROR 500

Problem accessing /authenticate.action. Reason:

Communications link failure

Last packet sent to the server was 16 ms ago.; nested exception is    org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
Caused by:

org.springframework.dao.DataAccessResourceFailureException: Communications link failure

Last packet sent to the server was 16 ms ago.; nested exception is org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
at     org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:631)
at     org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:104)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:403)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at sun.proxy.$Proxy33.authenticate(Unknown Source)
Caused by: org.hibernate.exception.JDBCConnectionException: Communications link failure

Last packet sent to the server was 16 ms ago.
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:131)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at sun.proxy.$Proxy75.executeQuery(Unknown Source)
以下是我的数据源配置:

<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<beans:property name="url" value="#{ 'jdbc:mysql://' + @dbUrl.getHost() +  @dbUrl.getPath()  + '?reconnect=true'}"/>
<beans:property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }"/>
<beans:property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }"/>
<beans:property name="minEvictableIdleTimeMillis" value="1800000"/>

每次我让页面闲置一分钟左右,仍然会出现错误。如果我对服务器的请求是不停止的,我不会得到这个错误

我的理解是,这与连接池中的空闲连接有关。当数据库在本地计算机上运行时,我从未遇到过这个错误。只有在Heroku身上我才犯了这个错误。还有其他人有类似的问题吗

谢谢, 基兰