Hibernate DB接続プーラーc3p0の問題

c3p0 connection-pooling hibernate java mysql
Hibernate DB接続プーラーc3p0の問題

前回の投稿以来、提案されたすべての変更を行いましたが、この問題は依然として私を悩ませます。 ここに私が得るエラーがあります:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 44,499,102 milliseconds ago.

これは私のhibernate.cfg.xmlです

    org.hibernate.connection.C3P0ConnectionProvider
    com.mysql.jdbc.Driver
     true
    true
    true

    5
    150
    0
    10
    100
    30

    jdbc:mysql://!secret!autoReconnect=true
    !secret!
    !secret!




    true
    org.hibernate.dialect.MySQLDialect
    update
    thread

およびc3p0.properties

c3p0.preferredTestQuery=select 1 from dual
c3p0.maxConnectionAge=3600
c3p0.testConnectionOnCheckin=true
c3p0.testConnectionOnCheckout=true
c3p0.acquireRetryDelay=1000
c3p0.acquireRetryAttempts=30
c3p0.breakAfterAcquireFailure=false
c3p0.idleConnectionTestPeriod=100

  1  2


ベストアンサー

私に関しては、c3p0が正しく構成されていません。

c3p0.preferredTestQueryなどのプロパティは、クラスパスのc3p0.propertiesファイルに配置する必要があります(例: WEB-INF / classes)。

以下は、Oracleに適したc3p0.propertiesファイルの例です。

c3p0.preferredTestQuery=SELECT 1 from dual
c3p0.maxConnectionAge=3600
c3p0.testConnectionOnCheckout=true
c3p0.acquireRetryDelay=1000
c3p0.acquireRetryAttempts=30
c3p0.breakAfterAcquireFailure=false

c3p0の公式ドキュメントhttp://www.mchange.com/projects/c3p0/index.html [こちら]も参照してください。

そして、使用しているc3p0のバージョンに注意してください。 c3p0 0.9の初期リリースでは、接続の復元に問題がありました。

2


データベースへの接続がタイムアウトし、データベースサーバーによって終了されたようです。 http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout [サーバーが待機できる時間を増やす]か、jdbc接続文字列に?autoReconnect = trueを追加する必要があります。 。

0


https://stackoverflow.com/questions/14554353/database-connection-to-mysql-times-out-even-after-setting-c3p0-testconnectiononc [この投稿]が役立つかもしれません。 その場合、「wait_timeout」の値を増やすと、問題を解決するのではなく、オカレンスの延期のみが行われます。

問題はこれと関連している可能性があります:

  • 休止状態のセッションを開く

  • の価値よりも時間がかかるいくつかのことを行う
    データベースのhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html[wait_timeout]

  • この休止状態のセッションを使用しようとしました。 コメントするメッセージ
    ここに表示されます

興味がある場合は、http://www.supermanhamuerto.com/doku.php?id = java:thelastpacketsuccessfullyreceivedfromserver [here]にケースを文書化しました。

0


ルートディレクトリのc3po.propertiesファイルに次の行(1)を入力します(hibenate-c3po 3.6.10 final.jarを使用する必要があります)。

  1. c3p0.testConnectionOnCheckout = true

  2. 100 30 10 10 1800 true

0


タイトルとURLをコピーしました