我有一个通过不可靠的网络连接连接到应用服务器的数据库,因此偶尔连接会中断。每次发生这种情况时,AP池中的所有数据库连接都需要重新连接 - 不幸的是,它们并非如此。
我经历了c3p0,dbcp和bonecp的不同设置作为池并使用了JTDS以及SQL Server V3驱动程序(我甚至完全抛弃池以试验常规DataSource是否能够创建新的非池化连接 - 它没有这样做但是所有配置变体似乎都无法在网络故障后恢复。
为了澄清,没有一个DataSource能够获得新的连接。 MS Sql Server是否存在关于重新连接的固有问题?我错过了一些基本的东西吗?
我意识到这可能没什么大帮助,但这只是一个例子,这是dbcp配置
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.databaseurl}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="idleConnectionTestPeriodInMinutes" value="1" />
<property name="idleMaxAgeInMinutes" value="1" />
<property name="maxConnectionsPerPartition" value="3" />
<property name="minConnectionsPerPartition" value="1" />
<property name="partitionCount" value="1" />
<property name="acquireIncrement" value="5" />
<property name="acquireRetryAttempts" value="50" />
<property name="acquireRetryDelayInMs" value="1000" />
<property name="queryExecuteTimeLimitInMs" value="5000" />
<property name="connectionTestStatement" value="SELECT count(*) FROM dbo.sysobjects" />
<property name="closeConnectionWatch" value="true" />
<property name="lazyInit" value="false" />
<property name="statementsCacheSize" value="100" />
<property name="releaseHelperThreads" value="3" />
</bean>