2017-07-19 12 views
0

最新のバージョンのtomcat、8.5.11(8.x.x)は、JDBC/DB構成に関して動作が異なります。 MySQLの接続が失敗した場合、早く(少なくとも7.x.xのバージョンまで)、すぐに退会しましたが、今度は3回試行して退会します。これは、サーバーがDB接続を断念してクライアントに応答するまでに、平均約20秒の遅延を追加します。私はJDBCの構成パラメータをチェックしましたが、この遅延を減らすようなものは何もありません。これについてのいかなる考えも高く評価されます。あなたが提供してきた内容を1としてデータベースがダウンしたときのTomcat 8の応答が遅い

<Context> 

<!-- Default set of monitored resources. If one of these changes, the --> 
<!-- web application will be reloaded.         --> 
<WatchedResource>WEB-INF/web.xml</WatchedResource> 
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 

<!-- Uncomment this to disable session persistence across Tomcat restarts --> 
<!-- 
<Manager pathname="" /> 
--> 
    <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxTotal="1000" maxIdle="30" maxWaitMillis="100" 
    name="jdbc/mydb" password="mypass" type="javax.sql.DataSource" username="myname" 
    url="jdbc:mysql://localhost:3306/mydb?autoReconnect=true&amp;characterEncoding=UTF-8"/> 

答えて

1

、私は完全にあなたの言うことに同意しません。 Tomcat 8があなたのMySQLデータベースに再接続しようとしているのではありませんが、これはあなたのMySQL JDBC URL(接続文字列)のパラメータで、これを行うことを示唆しています。 autoReconnect=true

This MySQLドキュメントでは、このような動作の詳細について説明します。 autoReconnectについて話しているセクションまでスクロールすると、そのようにすることが非常に必要になるまで、まず示唆されません。 autoReconnectが有効になっている場合、再接続の試行を待つ最初の時間(秒単位で、デフォルトは '2')です。これはパラメータで定義されていますinitialTimeout

関連する問題