APAR status
Closed as program error.
Error description
Application closes the CallableStatement object and gets
Sybase Exceptions:
- java.sql.SQLException: JZ006: Caught IOException:
com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0:
Connection is already closed.
and nested exception:
- java.sql.SQLException: JZ0C1: An IOException occurred which
closed the connection.
These exceptions are not mapped to StaleConnectionException
which prevents application from recovering.
.
Excerpt of the stack trace:
java.sql.SQLException: JZ006: Caught IOException:
com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0:
Connection is already closed.
at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMe
ssage.java(Compiled Code))
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java(Compiled Code))
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java(Inlined Compiled
Code))
at
com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java(
Compiled Code))
at
com.sybase.jdbc2.jdbc.SybStatement.close(SybStatement.java(Com
piled Code))
at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.closeWrapper
(WSJdbcPreparedStatement.java:253)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement.closeWrapper
(WSJdbcCallableStatement.java:149)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java
:127)
...
...
---- Begin backtrace for Nested Throwables
java.sql.SQLException: JZ0C1: An IOException occurred which
closed the connection.
at
com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMe
ssage.java(Compiled Code))
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java(Compiled Code))
at com.sybase.jdbc2.tds.Tds.cancel(Tds.java(Inlined Compiled
Code))
at
com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java(
Compiled Code))
at
com.sybase.jdbc2.jdbc.SybStatement.close(SybStatement.java(Com
piled Code))
at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.closeWrapper
(WSJdbcPreparedStatement.java:253)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement.closeWrapper
(WSJdbcCallableStatement.java:149)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java
:127)
...
...
The only way for the application to recover is restarting
WebSphere Application Server.
.
NOTE: The fix for this APAR exposes a bug in the Sybase
driver that is fixed by the fix for bug 240480 available from
Sybase in an updated driver
Local fix
Setting the prepared statement cache size to 0 will
circumvent this problem, but it will have a performance
impact.
Problem summary
****************************************************************
* USERS AFFECTED: All WebSphere Application Server users of *
* MS SQL Server DB with DataDirect JDBC *
* driver. *
****************************************************************
* PROBLEM DESCRIPTION: SQLServer throws inconsistent messages, *
* We asked DataDirect to handle sorting *
* these exceptions out and throw us *
* something we can treat as a *
* StaleConnectionException. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
The problem has a two part solution:
First, the mappings were added to WebSphere code to map
these SQL codes to StaleConnectionException:
08000, 08001, 08002, 08003, 08004, 08005, 08006, 08007, 08008,
08009, and 08S01.
Second, a drop has been made of the updated
3.3 Connect JDBC driver from DataDirect that issues
the apprpriate SQL code when the connection is dead.
To make this work, you must have a recent branded
Connect JDBC driver; for example,
3.3.27-008838.005010.006323 from us.
Problem conclusion
WebSphere code was changed to handle new codes, and DataDirect
driver issues the codes.
Temporary fix Comments
APAR information |
APAR number |
PQ85291 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
00A |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2004-02-27 |
Closed date |
2004-03-22 |
Last modified date |
2005-04-26 |
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
PQ89351
Modules/Macros
Publications Referenced
Applicable component levels |
R003 PSY |
UP |
R00A PSY |
UP |
R00H PSY |
UP |
R00I PSY |
UP |
R00P PSY |
UP |
R00S PSY |
UP |
R00W PSY |
UP |
R103 PSY |
UP |
R10A PSY |
UP |
R10H PSY |
UP |
R10I PSY |
UP |
R10P PSY |
UP |
R10S PSY |
UP |
R10W PSY |
UP |
|