IBM Support

PM34365; 7.0.0.15: java.lang.abstractmethoderror: java/sql/wrapper.iswrapperfor

Download


Abstract

java.lang.AbstractMethodError: java/sql/Wrapper.isWrapperFor on Oracle data source

Download Description

PM34365 resolves the following problem:

ERROR DESCRIPTION:
After upgrading WebSphere Application Server V7.0 to Fix Pack V7.0.0.15, the following errors may be generated in the SystemOut.log if an Oracle JDBC driver that is not meant for Java 1.6 is used. This includes the Oracle 11g ojdbc5.jar (meant for Java 1.5) or the Oracle 10g ojdbc14.jar (meant for Java 1.4 or 1.5). If the Oracle 11g ojdbc6.jar is used, the problem that is addressed by this APAR will not occur.


[3/9/11 11:29:30:054 CET] 00000011 RemoteExcepti E CNTR0020E:
EJB threw an unexpected (non-declared) exception during
invocation of method "start" on bean
"BeanId(TestBeanmethod#TestBean.jar#TestBean, null)". Exception
data: java.lang.AbstractMethodError:
java/sql/Wrapper.isWrapperFor(Ljava/lang/Class;)Z
at
com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCl
eanup(OracleDataStoreHelper.java:358)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.preTestConne
ction(WSRdbManagedConnectionImpl.java:5825)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.preTestConne
ction(WSRdbManagedConnectionImpl.java:5719)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2593)
at
com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionMa
nager.java:1059)
at
com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionM
anager.java:696)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcD
ataSource.java:668)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcD
ataSource.java:635)

Or:

[3/24/11 15:53:02:269 GST] 00000026 RegisteredSyn E WTRN0074E:
Exception caught from after_completion synchronization
operation:
java.lang.AbstractMethodError:
java/sql/Wrapper.isWrapperFor(Ljava/lang/Class;)Z
at
com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCl
eanup(OracleDataStoreHelper.java:358)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupState
s(WSRdbManagedConnectionImpl.java:4218)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRd
bManagedConnectionImpl.java:4038)
at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1531)

Or:

[3/24/11 21:18:52:218 EDT] 0000001a LocalTranCoor 3 An Error
occurred in afterCompletion.
java.lang.AbstractMethodError:
java/sql/Wrapper.isWrapperFor(Ljava/lang/Class;)Z
at
com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCl
eanup(OracleDataStoreHelper.java:358)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupState
s(WSRdbManagedConnectionImpl.java:4218)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRd
bManagedConnectionImpl.java:4038)
at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1531)

Since the error is happening in the connection cleanup, the
cleanup of connections may not complete, resulting in J2CA0045E
errors and ConnectionWaitTimeoutExceptions:

J2CA0045E: Connection not available while invoking method
createOrWaitForConnection for resource jdbc/testds

com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException:
Connection not available, Timed out waiting for 180033
at
com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java
:1664)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2471)
...


In addition, if connection pool tracing is enabled (WAS.j2c=all:RRA=all), the trace will show incorrect connection pool statistics. That is, the connection pool is shown to have no shared, unshared, or free connections, while the total number of connections indicates that there are connections in the pool. This makes it very difficult to determine the cause of the J2CA0045E error and ConnectionWaitTimeoutException.

LOCAL FIX:
Use the Oracle 11g ojdbc6.jar, which is supported for use with Java 1.6. This driver can be used to connect to Oracle 11g or Oracle 10g databases. Reverting back to WebSphere Application Server V7.0 Fix Pack V7.0.0.13 or earlier will also prevent the problem.

PROBLEM SUMMARY

* USERS AFFECTED: All users of IBM WebSphere Application Server

PROBLEM DESCRIPTION:
java.lang.AbstractMethodError:
java/sql/Wrapper.isWrapperFor on
Oracle data source

RECOMMENDATION:
None

1) The method java.sql.Wrapper.isWrapper() was added in java SDK 6 and when passing an argument, that is a class compiled using older java versions to this method causes the AbstractMethodError. WebSphere WebSphere Application Server database connectivity code internally used this method and with the JDBC Provider classpath configured with the Oracle JDBC Driver ojdbc15.jar or jdbc14.jar(compiled using SDK 5 and SDK 1.4.2 respectively) can result in AbstractMethodError.

java.lang.AbstractMethodError:
java/sql/Wrapper.isWrapperFor(Ljava/lang/Class;)Z
at
com.ibm.websphere.rsadapter.OracleDataStoreHelper.doConnectionCl
eanup(OracleDataStoreHelper.java:358)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupState
s(WSRdbManagedConnectionImpl.java:4218)
at
com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanup(WSRd
bManagedConnectionImpl.java:4038)
at com.ibm.ejs.j2c.MCWrapper.cleanup(MCWrapper.java:1531)
at com.ibm.ejs.j2c.FreePool.returnToFreePool(FreePool.java:508)
at com.ibm.ejs.j2c.PoolManager.release(PoolManager.java:1846)
at
com.ibm.ejs.j2c.MCWrapper.releaseToPoolManager(MCWrapper.java:23
78)

2)When the AbstractMethodError is encountered in the connection cleanup path, connection cleanup may not be complete and can lead to J2CA0045E and ConnectionWaitTimeoutException

FreePool E J2CA0045E: Connection not available while
invoking method createOrWaitForConnection for resource
jdbc/testds

com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException:
Connection not available, Timed out waiting for 180033
at
com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java
:1664)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2471)


3) Also there may be traces showing incorrect pool statistics. The connection pool is shown to have no shared, unshared, or free connections, but the total number of connections indicates that there are connections in the pool.

For example:

Total number of connections: 26 (max/min 50/1, reap/unused/aged 180/1800/0, connectiontimeout/purge
180/EntirePool)

(testConnection/inteval false/0, stuck timer/time/threshold 0/0/0, surge time/connections 0/-1)
Shared Connection information (shared partitions 200)
No shared connections

Free Connection information (free distribution table/partitions 25/1)

No free connections

UnShared Connection information

No unshared connections

PROBLEM CONCLUSION:
The WebSphere Application Server database connectivity code has been changed to avoid the AbstractMethodError.
The fix for this APAR is currently targeted for inclusion in fix pack 7.0.0.19. Refer to the Recommended Fixes page for delivery information:
http://www.ibm.com/support/docview.wss?uid=swg27004980

Prerequisites

Please download the UpdateInstaller below to install this fix.

Installation Instructions

Please review the readme.txt for detailed installation instructions.

[{"INLabel":"Readme","INLang":"US English","INSize":"14478","INURL":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PM34365/readme.txt"}]
On
[{"DNLabel":"7.0.0.15-WS-WAS-IFPM34365","DNDate":"05/10/2011","DNLang":"US English","DNSize":"20563","DNPlat":{"label":"AIX","code":"PF002"},"DNURL":"http://www.ibm.com/support/fixcentral/quickorder?fixids=7.0.0.15-WS-WAS-IFPM34365&product=ibm%2FWebSphere%2FWebSphere+Application+Server&source=dbluesearch","DNURL_FTP":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PM34365/7.0.0.15-WS-WAS-IFPM34365.pak","DDURL":"http://public.dhe.ibm.com:7618;sw_websphere;appserv/support/fixes/PM34365/7.0.0.15-WS-WAS-IFPM34365.pak"},{"DNLabel":"7.0.0.17-WS-WAS-IFPM34365","DNDate":"05/10/2011","DNLang":"US English","DNSize":"20560","DNPlat":{"label":"AIX","code":"PF002"},"DNURL":"http://www.ibm.com/support/fixcentral/quickorder?fixids=7.0.0.17-WS-WAS-IFPM34365&product=ibm%2FWebSphere%2FWebSphere+Application+Server&source=dbluesearch","DNURL_FTP":"ftp://public.dhe.ibm.com/software/websphere/appserv/support/fixes/PM34365/7.0.0.17-WS-WAS-IFPM34365.pak","DDURL":"http://public.dhe.ibm.com:7618;sw_websphere;appserv/support/fixes/PM34365/7.0.0.17-WS-WAS-IFPM34365.pak"}]

Technical Support

Contact IBM Support using SR (http://www.ibm.com/software/support/probsub.html), visit the WebSphere Application Server support web site (http://www.ibm.com/software/webservers/appserv/was/support/), or contact 1-800-IBM-SERV (U.S. only).

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Java 2 Connectivity (J2C)","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"7.0.0.15;7.0.0.17","Edition":"Base;Express;Network Deployment","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg24029891