[
https://issues.apache.org/jira/browse/DBCP-244?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12575434#action_12575434
]
ori commented on DBCP-244:
--------------------------
Phil,
In response to your suggestion on Feb 1 2008, I can now confirm that this is
not the case.
All connections were obtained using the code below. The exception was thrown
later on a SELECT query.
public static Connection getConnection()
throws SQLException
{
Connection conn = dataSource.getConnection();
conn.setAutoCommit(true);
return conn;
}
--
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure
due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketTimeoutException
MESSAGE: Read timed out
STACKTRACE:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
at
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
at
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2464)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1360)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2369)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:451)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2076)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
at
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1448)
at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
...
[my application code]
> Connection socket hangs sporadically in DBCP 1.2.2 but not 1.2.1
> ----------------------------------------------------------------
>
> Key: DBCP-244
> URL: https://issues.apache.org/jira/browse/DBCP-244
> 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 exception:
> ** BEGIN NESTED EXCEPTION **
> java.net.SocketTimeoutException
> MESSAGE: Read timed out
> STACKTRACE:
> java.net.SocketTimeoutException: Read timed out
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:129)
> at
> com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
> at
> com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
> at
> com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
> at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2411)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
> at com.mysql.jdbc.Connection.execSQL(Connection.java:3250)
> at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1355)
> at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1270)
> at
> org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
> ...
> -------
> 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.