commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ori (JIRA)" <>
Subject [jira] Commented: (DBCP-244) Connection socket hangs sporadically in DBCP 1.2.2 but not 1.2.1
Date Sat, 21 Feb 2009 17:00:04 GMT


ori commented on DBCP-244:

I wasn't using the validation query when I reported my initial setup but I later added it
to see if it would fix the issue. It did not.

1. Yes I am sure.


validationQuery=SELECT 1

3. Not sure, I've always used autoReconnect. It's tough for me to test without because I cannot
replicate this issue easily and I have since moved on to a different configuration. But at
the time I was able to isolate it to the switch from DBCP 1.2.1->1.2.2. and it drove me

4. Again, I'm not sure. It may be resolved. Because my setup has changed since than I cannot
provide any more information.

You can safely leave this issue closed for now and I'll definitely keep posting information
if I can. 

> Connection socket hangs sporadically in DBCP 1.2.2 but not 1.2.1
> ----------------------------------------------------------------
>                 Key: DBCP-244
>                 URL:
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.2
>         Environment: Fedora Core 3, MySQL 4.1.22. with the latest driver (5.07). Exceptions
only occur in the "job processing" JVM, which sits idle for long periods of time and occasionally
wakes up to interact with the database.
>            Reporter: ori
>             Fix For: 1.3
> I think I've traced an exception to DBCP's code.
> Communication with the database is hanging sporadically in a production environment.
If I don't set the socketTimeout property on the underlying connection, it will hang forever.
With the socketTimeout property, I get the following exception:
> -------
> com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying
> MESSAGE: Read timed out
> Read timed out
>        at Method)
>        at
>        at com.mysql.jdbc.util.ReadAheadInputStream.fill(
>        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(
>        at
>        at com.mysql.jdbc.MysqlIO.readFully(
>        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(
>        at com.mysql.jdbc.MysqlIO.checkErrorPacket(
>        at com.mysql.jdbc.MysqlIO.sendCommand(
>        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(
>        at com.mysql.jdbc.Connection.execSQL(
>        at com.mysql.jdbc.Statement.executeUpdate(
>        at com.mysql.jdbc.Statement.executeUpdate(
>        at org.apache.commons.dbcp.DelegatingStatement.executeUpdate(
> ...
> -------
> It always happens in an infrequently used JVM (not an app server handling frequent connections).
So it's likely the offending connection was asleep for a long time before the exception occurs.

> I've confirmed that this issue only occurs using 1.2.2 and not 1.2.1. I've been looking
through the changelogs but can't find anything that would cause this behavior.
> Does somebody familiar with the codebase have any idea what change (1.2.1->1.2.2)
could be causing this behavior? 
> Thanks

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message