最新版本的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&characterEncoding=UTF-8"/>
答案 0 :(得分:1)
根据您提供的详细信息,我不完全同意您所说的内容。尝试重新连接到MySQL数据库不是Tomcat 8,但它是MySQL JDBC URL(连接字符串)上的一个参数,建议执行此操作。
autoReconnect=true
This MySQL文档在使用时为您提供有关此类行为的更多信息。
如果您向下滚动到谈论autoReconnect
的部分 - 首先不建议,直到有必要这样做。
如果启用了autoReconnect,则在重新连接尝试之间等待的初始时间(以秒为单位,默认为“2”)。这由参数initialTimeout
希望这有帮助!