2009-12-03 6 views
6

ている再接続していない:MySQLは、私は、MySQLの接続を管理するためにTomcat6とJNDIを使用しています、私のカタリナ/ domain.com/ROOT.xml JNDIのTomcat 6

<Resource name="jdbc/db" auth="Container" type="javax.sql.DataSource" 
    username="db1" password="somepass" driverClassName="com.mysql.jdbc.Driver"    
    url="jdbc:mysql://localhost:3306/db?autoReconnect=true" maxActive="15" maxIdle="3" 
    maxWait="5000" removeAbandoned="true" removeAbandonedTimeout="20" /> 

私は自動再がデータベースに再接続する仕事をするのにそれは、私のアプリがデータベースエラーへの接続の喪失を吐き出す約8時間の非アクティブの後にしません。何か案は?

おかげで、ヒョードル

答えて

14

いけないautoReconnectを使用しています。問題があり、it's been deprecatedです。たとえば、スレッドが接続を使用している間に切断/再接続イベントが発生する可能性があります。代わりに、接続プールにtestOnBorrowとの接続をテストしてから、アプリケーションに渡します。次に例を示します。

<Resource name="jdbc/db" 
      auth="Container" 
      type="javax.sql.DataSource" 
      username="db1" 
      password="somepass" 
      driverClassName="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost:3306/db" 
      maxActive="15" 
      maxIdle="3" 
      maxWait="5000" 
      removeAbandoned="true" 
      removeAbandonedTimeout="20" 
      logAbandoned="true" 
      factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
      validationQuery="select 1" 
      minEvictableIdleTimeMillis="3600000" 
      timeBetweenEvictionRunsMillis="1800000" 
      numTestsPerEvictionRun="10" 
      testWhileIdle="true" 
      testOnBorrow="true" 
      testOnReturn="false" 
      /> 
+1

は、Tomcatので、あなたは「*// *ピング\」の、より軽量で効率的なvalidationQueryを使用できることに言及しなければならない – Fedor

+1

を動作することをお願いします。参照:http://dev.mysql.com/doc/connector-j/en/connector-j-usagenotes-tomcat.html – Jon

関連する問題