环境如下:
Linux
Tomcat6.0
Sql Server2000配置如下:
<!-- 数据源-sqlserver -->
<bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=hello_db;autoReconnect=true" />
<property name="username" value="hello" />
<property name="password" value="123456789" />
<property name="maxActive" value="100"></property>
<property name="minIdle" value="2"></property>
</bean> <!-- iBatis -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean> <!-- 事务 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> 情况描述如下:
程序有一段时间停止访问数据库(10分钟左右),再次访问(比如登录操作等之类会和数据库交互的动作)时, 会报Connect rest异常.此时刷新页面,又能够正常访问数据库了。停止不操作一段时间后,再操作,又会重复该现象。 这是什么原因?如何解决? 在网上搜了,听说是加上 autoReconnect=true
但是,加上之后还是没用。 望各位高手帮忙。
感激。
Linux
Tomcat6.0
Sql Server2000配置如下:
<!-- 数据源-sqlserver -->
<bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=hello_db;autoReconnect=true" />
<property name="username" value="hello" />
<property name="password" value="123456789" />
<property name="maxActive" value="100"></property>
<property name="minIdle" value="2"></property>
</bean> <!-- iBatis -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean> <!-- 事务 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> 情况描述如下:
程序有一段时间停止访问数据库(10分钟左右),再次访问(比如登录操作等之类会和数据库交互的动作)时, 会报Connect rest异常.此时刷新页面,又能够正常访问数据库了。停止不操作一段时间后,再操作,又会重复该现象。 这是什么原因?如何解决? 在网上搜了,听说是加上 autoReconnect=true
但是,加上之后还是没用。 望各位高手帮忙。
感激。
在连接池的配置文件中添加配置属性:validationQuery
为了更好的维护和使用连接池建议修改removeAbandoned,removeAbandonedTimeout,logAbandoned三个属性的值。
从文档的介绍看,validationQuery属性只是检测连接是否正常的,我自己写了一个方法也做这样的事,但不能销毁并重建新的连接。没有看dbcp部分的源码,不知道它是怎么实现的。