java - 通信链路故障 ClearDB

标签 java mysql hibernate heroku cleardb

我意识到还有其他问题与我的类似,但我觉得我的问题有点不同,所以我还是要问。我一直在使用 hibernate 开发 java web 应用程序,并且当我在本地主机 Tomcat 服务器上运行它时没有遇到任何问题。然而,在尝试将其部署在 Heroku 上并使用免费版本的 ClearDB 后,我遇到了问题,因为该网站会随机抛出异常。具体来说,我得到了

org.hibernate.exception.JDBCConnectionException: Communications link failure 

我在谷歌上找到的东西,但相信不是我的问题:

  • 数据库闲置时间过长(> 8 小时)。我一直在使用该网站,因此它的闲置时间肯定不会超过 8 小时。
  • 与数据库的连接过多。我是当前唯一连接到数据库的人,网站说最多有 10 个连接,所以我在限制之内

我的配置文件

<?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>

提前致谢

最佳答案

我敢打赌,如果您使用JawsDB add-on,这个问题就会消失。而不是 ClearDB:

$ heroku addons:destroy cleardb
$ heroku addons:create jawsdb:kitefin

我在使用 ClearDB 时遇到很多问题。

如果您必须使用 ClearDB,我建议将 connectionTestQuery 添加到您的数据库连接池配置中。我不确定一般如何执行此操作,但如果您使用 HikariCP (这很棒,你应该使用),你可以添加类似的内容:

<property name="hibernate.hikari.connectionTestQuery">SELECT 1</property>

关于java - 通信链路故障 ClearDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46118387/

相关文章:

java - 结合 hasNextInt 和值大于/小于 X 检查

java - ajc 通过命令行无法识别 .ajspectj 语法

java - 根据表中的数据构建 json

php - mysql插入函数

c# - 如何从 Windows 窗体连接到 MySQL?

java - Hibernate 映射异常,使用注释

Java ParallelStream 未显示正确的结果

mysql - MySQL 中的主键 : INT(n) or UUID as varchar(36)

java - 使用 mockito 对 DAO 层进行单元测试

java.lang.NoClassDefFoundError : org/apache/log4j/PropertyConfigurator 错误