java.lang.VerifyError in WebSphere Portal Server SystemOut.log when connecting to an Oracle database
 Technote (troubleshooting)
 
Problem(Abstract)
When IBM® WebSphere® Portal Server attempts to connect to an Oracle database using the Oracle 9i driver, the following java.langVerifyError is logged. This problem can only occur on a Portal Server where both the Cloudscape™ JDBC Provider and Oracle JDBC Provider are configured.

[7/27/06 8:32:39:976 EDT] 52645202 WebGroup E SRVE0026E [Servlet
Error]-[(class: com/ibm/db2j/jdbc/EmbeddedDriver20, method:
getNewLocalConnection signature:
(Ljava/lang/String&#59;Ljava/util/Properties&#59;)Ldb2j/ai/c&#59
;) Wrong return type in method]: java.lang.VerifyError: (class:
com/ibm/db2j/jdbc/EmbeddedDriver20, method: getNewLocalConnection
signature: (Ljava/lang/String;Ljava/util/Properties;)Ldb2j/ai/c;) Wrong
return type in method
with
Nested Exception is java.lang.VerifyError: (class:com/ibm/db2j/jdbc/EmbeddedDriver20, method: getNewLocalConnection signature: (Ljava/lang/String;Ljava/util/Properties;)Ldb2j/ai/c;)
Wrong return type in method
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java(Compiled Code))
at java.sql.DriverManager.getCallerClass(DriverManager.java:468)
at java.sql.DriverManager.getDrivers(DriverManager.java:362)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:319)
at
oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:169)
at
oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:149)
 
Cause
The cause of this problem is not in the Oracle 9i driver, but is due to a mismatch in the default versions of the Cloudscape drivers used by Portal Server 5.0.2.3 compared to the versions of WebSphere Application Server V5.0.2.

The java.lang.VerifyError occurs because the Oracle JDBC driver triggers DriverManager processing. This processing verifies that the registered DriverManagers are valid. While verifying the Cloudscape driver, the processing uses the WebSphere Application Server Cloudscape driver, which does not contain the EmbeddedDriver20 class.

The "EmbeddedDriver20" class is not in previous versions of Cloudscape. WebSphere Portal Server V5.0.2.3 installs Cloudscape 5.1.60.21 in the Portal Server installation image; versions of WebSphere Application Server 5.0.2 install Cloudscape 5.0.13. The version inconsistency causes the "VerifyError".

 
Resolving the problem
The solution is to make the Cloudscape JDBC drivers used by Portal Server and WebSphere Application Server consistent.

This is the recommended way to do this.

1. Run the <install_root>/cloudscape51/installCloudScape51.bat or .sh script to change the version of Cloudscape drivers.

2. Note: If you run the install Cloudscape script to change Cloudscape versions, then you may need to take the following steps:
a. If you have databases that were created using Cloudscape 5.0, you will need to migrate them to Cloudscape 5.1. Some of the WebSphere Application Server samples use a defaultDB which uses Cloudscape. See Cloudscape Version 5.1 post installation instructions in the IBM WebSphere Application Server Information Center.

b. After applying a WebSphere Application Server 5.0.2 cumulative fix, you will need to re-run the installCloudScape script. This is because the cumulative fix install will replace the Cloudscape JAR files in the <install_root>/lib directory.
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
Historical Number
76423
342
758
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > DB Connections/Connection Pooling
Operating system(s): Windows
Software version: 5.0.2
Software edition:
Reference #: 1246504
IBM Group: Software Group
Modified date: Sep 25, 2006