当数据库关闭时,Tomcat 8的响应速度很慢
问题描述:
最新版本的tomcat 8.5.11(8.x.x)的行为与JDBC/DB配置有所不同。 早些时候(至少在7.x.x版本之前),如果MySQL连接失败,它会很快退出,但现在它会尝试3次然后退出。这会在服务器放弃数据库连接并响应客户端之前平均延迟约20秒。我检查了JDBC配置参数,但似乎没有任何东西可以减少这种延迟。任何想到这一点,表示赞赏。当数据库关闭时,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&characterEncoding=UTF-8"/>
答
按照你所提供的细节,我不完全与你说什么同意。不是Tomcat 8尝试重新连接到MySQL数据库,但它是您的MySQL JDBC URL(连接字符串)上的一个参数,建议您这样做。 autoReconnect=true
This MySQL文档为您提供了有关此类行为的更多信息。 如果您向下滚动到讨论autoReconnect
的部分 - 首先不建议,直到非常有必要这样做。 如果启用autoReconnect,则重新连接尝试之间等待的初始时间(以秒为单位,默认为'2')。这是由参数initialTimeout
希望这有助于!