2017-09-08 112 views
0

我意識到還有其他類似的問題,但我覺得我有點不同,所以我會問它。我一直在使用hibernate開發一個java web應用程序,並且在本地主機Tomcat服務器上運行時遇到了問題。然而,我試圖在Heroku上部署它並使用免費版本的ClearDB,因爲網站會隨機拋出一個異常。具體來說,我得到一個通信鏈路故障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> 

謝謝提前

回答

1

我願意打賭,這個消失,如果你使用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> 
0

ClearDB經常關閉與空閒/休眠狀態的連接超過60秒。當系統認爲它有數據庫連接但遠程主機已關閉它時,會發生這種情況。正如前面的受訪者提到的那樣,一個快速連接的TestQuery應該可以解決這個問題。

相關問題