我意识到还有其他类似于我的问题,但我觉得我的问题有点不同,所以我还是要问它。我一直在使用hibernate来开发java应用程序,并且在本地主机Tomcat服务器上运行它时没有问题。然而,在尝试将其部署到Heroku并使用免费版本的ClearDB作为网站会随机抛出异常后,我遇到了一些问题。具体来说,我得到了一个
org.hibernate.exception.JDBCConnectionException: Communications link failure 我在谷歌上发现的东西,但相信不是我的问题:
我的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">PASSWORD</property>
<property name="hibernate.connection.url">jdbc:mysql://DBURL?reconnect=true</property>
<property name="hibernate.connection.username">USERNAME</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name= "hbm2ddl.auto">update</property>
<property name="show_sql">true</property>
</session-factory>
提前感谢
发布于 2017-09-08 14:46:41
我敢打赌,如果您使用JawsDB附加而不是ClearDB,这种情况就会消失:
$ heroku addons:destroy cleardb
$ heroku addons:create jawsdb:kitefin我对ClearDB有很多问题。
如果必须使用ClearDB,我建议将connectionTestQuery添加到数据库连接池配置中。我不知道如何一般地做到这一点,但是如果您使用的是HikariCP (这很棒,您应该使用),您可以添加如下内容:
<property name="hibernate.hikari.connectionTestQuery">SELECT 1</property>发布于 2017-11-03 18:19:09
ClearDB通常会在60秒以上的空闲/睡眠状态下关闭连接。当您的系统认为它有DB连接但远程主机已经关闭它时,就会发生这种情况。正如前面的回答者所提到的,一个快速的connectionTestQuery应该解决这个问题。
https://stackoverflow.com/questions/46118387
复制相似问题