我没有找到任何有关“游泳池等待中断”意味着什么的好信息。我正在尝试从Tomcat(目前只有6个,即将升级到8个)连接到MySql 5.6并且通常一切正常。在过去的一年中,我们经历了两个时间段(大约两周左右),这个错误:
游泳池等待中断。 java.sql.SQLException:池等待中断。
每天至少出现一次。服务器应用程序是一个只读应用程序,其中快速的请求时间性能是必不可少的。
这是我的Connector / J配置信息:
<Resource
name="connectionJNDIName"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
initialSize="10"
maxActive="100"
maxIdle="50"
minIdle="10"
suspectTimeout="60"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"
testWhileIdle="true"
maxWait="10000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="username"
password="password123"
driverClassName="com.mysql.jdbc.Driver"
url="<databaseConnectionURL>"/>
因为应用程序工作的时间很多,所以我认为这个问题不是由服务器应用程序本身造成的,而是我希望能够更有弹性。 DBA团队告诉我MySql服务器是干净的(当他们到达它进行检查时),但服务器没有返回数据,因为它应该是这样。我查看了设置autoReconnectForPools='true'
,但阅读了文档,说明了使用它的一些问题 - 我不知道在任何情况下都会解决问题。