APAR status
Closed as program error.
Error description
In version 4 of WebSphere, customer was calling the
getUnderLyingConnection method to access the connection
object. This is causing a classcastexception in V5. This
ability is handled through the WSCallHelper method. The
customer needs the following methods permitted through the
WSCallHelper function so his applications will work in V5.
oracle.sql.StructDescriptor
StructDescriptor.createDescriptor(java.lang.String,
java.sql.Connection);
oracle.sql.ArrayDescriptor
ArrayDescriptor.createDescriptor(java.lang.String,
java.sql.Connection);
oracle.sql.ARRAY
new ARRAY(oracle.sql.ArrayDescriptor, java.sql.Connection,
java.lang.Object);
oracle.xml.sql.query.OracleXMLQuery(java.sql.Connection,
java.lang.String);
Local fix
None available
Problem summary
****************************************************************
* USERS AFFECTED: Users needing the ability to invoke vendor- *
* specific methods on JDBC objects, such as *
* the OracleResultSet.getOpaque method, or *
* to invoke the following Oracle methods *
* passing JDBC objects as parameters: *
* *
* oracle.sql.ArrayDescriptor ArrayDescriptor: *
* createDescriptor(java.lang.String, *
* java.sql.Connection); *
* oracle.sql.ARRAY: *
* ARRAY(oracle.sql.ArrayDescriptor, *
* java.sql.Connection, java.lang.Object); *
* oracle.xml.sql.query.OracleXMLQuery: *
* OracleXMLQuery(java.sql.Connection, *
* java.lang.String); *
* oracle.sql.BLOB: *
* createTemporary(java.sql.Connection, *
* boolean, int) *
* oracle.sql.CLOB: *
* createTemporary(java.sql.Connection, *
* boolean, int); *
* oracle.xdb.XMLType: *
* createXML(java.sql.Connection, *
* java.lang.String); *
****************************************************************
* PROBLEM DESCRIPTION: WebSphere Application Server *
* Connection Pooling conforms to the *
* JDBC 2.0 specification. It provides *
* wrapper objects for JDBC objects *
* which implement the methods required *
* by the JDBC 2.0 interfaces. Due to *
* this implementation, vendor specific, *
* nonstandard JDBC methods on JDBC *
* objects, or methods requiring vendor *
* specific objects to be passed as *
* parameters will not work in the *
* traditional manner. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
Attempting to invoke a non-standard JDBC method on a JDBC
object (such as the OracleResultSet.getOPAQUE method) requires
casting the JDBC object to the vendor JDBC object. However,
since WebSphere's JDBC objects implement the JDBC interfaces,
not the specific vendor interfaces, this results in a
ClassCastException.
Similarly, attempting to invoke a vendor-specific method which
takes as a paramter a vendor-specific JDBC object results in a
ClassCastException when the vendor code attempts to cast the
WebSphere specification-compliant interfaces to the vendor
object.
Customers need a way to invoke these methods and pass the
underlying vendor object while still allowing these objects
to participate in WebSphere Connection Pooling.
Problem conclusion
Two static WebSphere-specific methods are added to solve the
two cases addressed in this APAR. The
com.ibm.websphere.rsadapter.WSCallHelper.jdbcCall method
allows for the invocation of vendor-specific methods on a
JDBC object. The
com.ibm.websphere.rsadapter.WSCallHelper.jdbcPass method
allows customers to pass the vendor specific objects to
another method. See technote 1142347 on the WebSphere
Support website for more details and javadoc on these methods.
Temporary fix Comments
APAR information |
APAR number |
PQ78067 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
00W |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2003-09-03 |
Closed date |
2003-11-10 |
Last modified date |
2003-11-10 |
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
Publications Referenced
Applicable component levels |
R003 PSN |
UP |
R00A PSN |
UP |
R00W PSY |
UP |
|