1、DHCP连接池:当Server释放连接,浏览器无法检测到,当再次访问时,连接不会重新生成
配置文件
datasource.validationQuery=select 1 from dual
datasource.testOnBorrow=true
datasource.testWhileIdle=true
//当连接释放时,重新获取连接
<property name="validationQuery" value="${datasource.validationQuery}"/>
<property name="testOnBorrow" value="${datasource.testOnBorrow}"></property>
<property name="testWhileIdle" value="${datasource.testWhileIdle}"></property>
MySQL的默认wait-timeout是8小时,8小时后自动关闭闲置链接
使用Hibernate:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
提示SAX解析失败:
<prop key="connection.autoReconnect">true</prop> <prop key="connection.autoReconnectForPools">true</prop> <prop key="connection.is-connection-validation-required">true</prop>
未使用hibernate等持久化管理框架,可在mysql的url中加入autoReconnect=true
autoReconnect: 当数据库连接异常中断时,是否自动重新连接
failOverReadOnly: 自动重连成功后,连接是否设置为只读?
对应中文环境,通常mysql连接URL可以设置为:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
在xml配置文件中,url中的&符号需要转义成&。比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
|