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>
<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