用户今天应用无法访问了,日志一看,原来是Connection reset by peer . 再一看前面,原来应用服务器无法和数据库服务器连接了,虽然后来连接恢复,但c3p0的连接就再也没法恢复过来了。应用服务器和数据库服务器在异地,难道每次都重启吗?还好c3p0的连接池能配置重连。
<!-- autoReconnect -->
<parameter>
<name>testConnectionOnCheckin</name>
<value>true</value>
</parameter>
<parameter>
<name>idleConnectionTestPeriod</name>
<value>60</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select 1 from dual</value>
</parameter>
<!-- end of autoReconnect -->
另外最好再加上validationQuery,也能避免这样的问题。似乎设置autoReconnect参数没有用处。
<!-- autoReconnect -->
<parameter>
<name>testConnectionOnCheckin</name>
<value>true</value>
</parameter>
<parameter>
<name>idleConnectionTestPeriod</name>
<value>60</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select 1 from dual</value>
</parameter>
<!-- end of autoReconnect -->
另外最好再加上validationQuery,也能避免这样的问题。似乎设置autoReconnect参数没有用处。