Webアプリケーションで次のような問題が発生します。 私はTomcat 7とConnection poolingを使用しています。私のデータベースはMySQLです。Tomcatの接続プーリング、アイドル状態の接続、接続の作成
私は次の例外を取得しています:
Communication link failure: java.io.EOFException, underlying cause: null ** BEGIN NESTED EXCEPTION ** java.io.EOFException STACKTRACE: java.io.EOFException at
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1394) at
com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1538) at
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1929) at
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167) at
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278) at
com.mysql.jdbc.Connection.execSQL(Connection.java:2251) at
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1586) at
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStat
ement.java:96) at
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStat
ement.java:96) at configuration.Login.doPost(Login.java:104) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.jav
a:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java
:162) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java
:140) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at
java.lang.Thread.run(Thread.java:662) ** END NESTED EXCEPTION **
私はある程度の期間後に何らかの理由でプールされた接続が原因時間制限か何かに多分閉じたときにこのエラーが発生したことを知ります。 私の質問は、プールに接続していないときに接続プールが新しい接続を作成してはいけないということです。この時点では誰もアプリケーションを使用していないため、トラフィックはトラフィックに起因していません。私はアプリケーションを使用し始めるプールされた接続が作成されているこれらの接続はアイドルですか?これらの接続が閉じられない方法はありますか?しかし、私はそれをサーバー上の他のアプリケーションからの接続を浪費しないでくださいできますか?私は近くてmanualy場合、これは.......
//編集正常ではありませんworking.But新しい接続が作成されたいくつかの時間とアプリが起動した後、アプリケーションを使用しようとし続ける場合も
MYSQL Adminのすべてのアクティブな接続がこのエラーを再度表示します。
がyou.IがautoReconnect.Iは私computer.Iのからないでいるため午前中4時間では、見つけたことを行います使用しようwiilありがとうURLに追加データベースへの最初のヒットが失敗することがあります。接続が作成されました。接続がnullのときにforループを使用するとよいでしょうか? – nikosdi