IBM Support

SecureRandom performance problem in WebSphere Application Server 7.0

Troubleshooting


Problem

You see a performance decrease on WebSphere Application Server 7.0 when connecting and reading from an Oracle database server using ojdbc6.jar. This is only a problem with WebSphere Application Server 7, and is not a problem with previous versions of WebSphere Application Server.

Symptom

Your Javacore files could show threads running in java/sql/DriverManager.getConnection(DriverManager.java

Javacore files generated at the time of the performance decrease will possibly see threads running IBM JCE "SHA1PRNG" algorithm. Here's an example:
com/ibm/crypto/provider/SHA1PRNG.a(BytecodePC:77(Compiled Code))


com/ibm/crypto/provider/SHA1PRNG.a(BytecodePC:25(Compiled Code))
com/ibm/crypto/provider/SHA1PRNG.b(BytecodePC:471(Compiled Code))
com/ibm/crypto/provider/SHA1PRNG.c(BytecodePC:5)
com/ibm/crypto/provider/SHA1PRNG.engineNextBytes(Bytecode PC:2)
java/security/SecureRandom.nextBytes(SecureRandom.java:433(Compiled Code))
oracle/security/o5logon/O5LoginClientHelper.generateOAuthResponse(Bytecode PC:5(Compiled Code))
oracle/jdbc/driver/T4CTTIoauthenticate.marshalOauth(T4CTTIoauthenticate.java:457)
oracle/jdbc/driver/T4CConnection.logon(T4CConnection.java:367)
oracle/jdbc/driver/PhysicalConnection.<init>(PhysicalConnection.java:508)
oracle/jdbc/driver/T4CConnection.<init>(T4CConnection.java:203)
oracle/jdbc/driver/T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
oracle/jdbc/driver/OracleDriver.connect(OracleDriver.java:510)
oracle/jdbc/pool/OracleDataSource.getPhysicalConnection(OracleDataSource.java:275)

Cause

The root cause to this is a change in the Oracle JDBC driver code to make use of the JREs SecureRandom generator for authentication. The IBM JRE default SecureRandom provider meets several government Security specifications which in turn means that it can take longer to return than other providers.

Environment

WebSphere Application Server 7.0, Oracle database servers, ojdbc6.jar, IBM Java 6, IBM JCE

Resolving The Problem

The fix for this problem is available for WebSphere 7.0 by installing IBM Java 6 SR9 which is available here:
http://www.ibm.com/support/docview.wss?uid=swg24028881

More information on this fix is here:
http://www.ibm.com/support/docview.wss?uid=swg1IZ82926

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Java Security (JSSE\/JCE)","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF033","label":"Windows"}],"Version":"7.0","Edition":"Base","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 June 2018

UID

swg21428878