[
https://issues.apache.org/jira/browse/IBATIS-449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Clinton Begin closed IBATIS-449.
--------------------------------
Resolution: Invalid
> Is there a way to specify a timeout for Pool.PingQuery when using a jdbc
> SimpleDataSource?
> ------------------------------------------------------------------------------------------
>
> Key: IBATIS-449
> URL: https://issues.apache.org/jira/browse/IBATIS-449
> Project: iBatis for Java
> Issue Type: Improvement
> Environment: Red Hat Enterprise Linux 4 Update 5 x86-64, JBOSS 4.0.5
> Reporter: Anton Rothenbacher
> Priority: Critical
> Attachments: SimpleDataSource.java
>
>
> It seems there is no way to specify a timeout when implementing the
> Pool.PingQuery to test pooled connections before use. We are in an
> environment that is closing connections on us and when the app is inactive
> for a long time, the first connection to be tested out of the pool is bad,
> and it takes 15 minutes before the connection is deemed bad and the
> connection recycled.
> 2007-08-11 06:38:14,032 DEBUG [com.ibatis.common.jdbc.SimpleDataSource]
> Checked out connection 2865240 from pool.
> 2007-08-11 06:38:14,032 DEBUG [com.ibatis.common.jdbc.SimpleDataSource]
> Testing connection 2865240 ...
> .....
> 2007-08-11 06:53:40,695 WARN [com.ibatis.common.jdbc.SimpleDataSource]
> Execution of ping query 'select 1 from DUAL' failed: Io exception: Connection
> timed out
> 2007-08-11 06:53:40,695 DEBUG [com.ibatis.common.jdbc.SimpleDataSource]
> Connection 2865240 is BAD: Io exception: Connection timed out
> 2007-08-11 06:53:40,696 DEBUG [com.ibatis.common.jdbc.SimpleDataSource] A bad
> connection (2865240) was returned from the pool, getting another connection.
> 2007-08-11 06:53:40,750 DEBUG [com.ibatis.common.jdbc.SimpleDataSource]
> Created connection 10545003.
> This is a problem since the app hangs for the time when it is waiting for the
> connection. We are looking for a way to speed up the PingQuery test so that
> if it does not respond in x seconds, (it is a very fast query) then recycle
> the connection right away, not 15min later when the connection times out.
> Here is the relevent section from our SqlMapConfig.xml
> <!-- Configure a datasource to use with this SQL Map using
> SimpleDataSource.
> Notice the use of the properties from the above resource -->
> <transactionManager type="JDBC" commitRequired="true">
> <dataSource type="SIMPLE">
> <property name="JDBC.Driver" value="${driver}"/>
> <property name="JDBC.ConnectionURL" value="${url}"/>
> <property name="JDBC.Username" value="${username}"/>
> <property name="JDBC.Password" value="${password}"/>
> <property name="JDBC.DefaultAutoCommit"
> value="${jdbc.default.auto.commit}" />
> <property name="Pool.MaximumActiveConnections"
> value="${pool.maximum.active.connections}"/>
> <property name="Pool.MaximumIdleConnections"
> value="${pool.maximum.idle.connections}"/>
> <property name="Pool.MaximumCheckoutTime"
> value="${pool.maximum.checkout.time}"/>
> <property name="Pool.TimeToWait" value="${pool.time.to.wait}"/>
> <property name="Pool.PingQuery" value="select 1 from DUAL"/>
> <property name="Pool.PingEnabled" value="true"/>
> <property name="Pool.PingConnectionsOlderThan" value="1"/>
> <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
> </dataSource>
> </transactionManager>
> Is DBCP type connection better for what we wish to accomplish? It seems it
> can test connections idle connections out of the pool on a regular basis but
> as far as I can tell SimpleDataSource can only test connections as they are
> requested out of the pool. Am I correct, does anyone have any suggestions?
> Thanks much for your time!
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]