[
https://issues.apache.org/jira/browse/DERBY-2026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kathey Marsden updated DERBY-2026:
----------------------------------
Attachment: derby-2026_diff.txt
Attached is a patch for this issue derby-2026_diff.txt which builds on Mamta's
change. There were two more instances when the soTimeout needed to be reset
after completing the connection. The change Mamta made was the path for
DriverManger. The other two cases were after completing the DataSources and
aslo after reset of pooled conenctions. Tests have been added to ConnectTest
for DriverManager and J2EEDataSource for the data sources. I have not yet run
regressions, but will do so tonight.. Please review
Thanks
Kathey
> Setting a login timeout in client driver can lead to query timeout
> ------------------------------------------------------------------
>
> Key: DERBY-2026
> URL: https://issues.apache.org/jira/browse/DERBY-2026
> Project: Derby
> Issue Type: Bug
> Components: JDBC, Network Client
> Affects Versions: 10.3.1.4
> Environment: Client driver on most platforms
> Reporter: Olav Sandstaa
> Assignee: Mamta A. Satoor
> Priority: Minor
> Attachments: derby-2026_diff.txt,
> DERBY2026_LoginTimeout_diff_patch1.txt, LoginTimeout.java,
> LoginTimeoutWithDataSource.java
>
>
> Setting the login timeout by using DriverManager.setLoginTimeout(int
> seconds) also affects the amount of time the client driver is waiting
> for a query to finish. For instance, setting the login timeout to 10
> seconds will result in any queries taking more than 10 seconds to fail
> with the following exception:
> Exception thrown: java.sql.SQLException: A communications error has been
> detected: Read timed out.
> java.sql.SQLException: A communications error has been detected: Read timed
> out.
> at
> org.apache.derby.client.am.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:46)
> at
> org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:345)
> at
> org.apache.derby.client.am.Statement.executeQuery(Statement.java:414)
> at LoginTimeout.main(LoginTimeout.java:53)
> Caused by: org.apache.derby.client.am.DisconnectException: A communications
> error has been detected: Read timed out.
> at
> org.apache.derby.client.net.NetAgent.throwCommunicationsFailure(NetAgent.java:408)
> at org.apache.derby.client.net.Reply.fill(Reply.java:176)
> at
> org.apache.derby.client.net.Reply.ensureALayerDataInBuffer(Reply.java:215)
> at org.apache.derby.client.net.Reply.readDssHeader(Reply.java:317)
> at
> org.apache.derby.client.net.Reply.startSameIdChainParse(Reply.java:1147)
> at
> org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(NetStatementReply.java:51)
> at
> org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(StatementReply.java:40)
> at
> org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(NetStatement.java:139)
> at
> org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Statement.java:1341)
> at
> org.apache.derby.client.am.Statement.flowExecute(Statement.java:1977)
> at
> org.apache.derby.client.am.Statement.executeQueryX(Statement.java:420)
> at
> org.apache.derby.client.am.Statement.executeQuery(Statement.java:405)
> ... 1 more
> Caused by: java.net.SocketTimeoutException: Read timed out
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:129)
> at org.apache.derby.client.net.Reply.fill(Reply.java:174)
> ... 11 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.