当数据库关闭时,Tomcat 8响应缓慢

时间:2017-07-19 17:43:26

标签: java mysql tomcat jdbc

最新版本的tomcat 8.5.11(8.x.x)在JDBC / DB配置方面表现不同。 早些时候(至少在7.x.x版本之前),如果MySQL连接失败,它会快速使用保释,但现在,它会尝试3次然后挽救。这会在服务器放弃数据库连接并响应客户端之前平均延迟大约20秒。我已经检查了JDBC配置参数,但似乎没有任何东西可以减少这种延迟。对此的任何想法都表示赞赏。

<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 个答案:

答案 0 :(得分:1)

根据您提供的详细信息,我不完全同意您所说的内容。尝试重新连接到MySQL数据库不是Tomcat 8,但它是MySQL JDBC URL(连接字符串)上的一个参数,建议执行此操作。 autoReconnect=true

This MySQL文档在使用时为您提供有关此类行为的更多信息。 如果您向下滚动到谈论autoReconnect的部分 - 首先不建议,直到有必要这样做。 如果启用了autoReconnect,则在重新连接尝试之间等待的初始时间(以秒为单位,默认为“2”)。这由参数initialTimeout

定义

希望这有帮助!