IBM Support

Reports that use JNI data sources will not run with WebSphere 64-bit edition

Troubleshooting


Problem

An exception occurs on 64-bit WebSphere servers when running reports from ClearQuest data sources that require the Java Native Interface (JNI).

Symptom


The following error messages are examples of exceptions that can occur in the SystemOut.log and SystemErr.log when running the reports. These exceptions occur because the underlying load libraries in the JINI are 32-bit and cannot be initialized in a 64-bit environment.

[9/2/11 13:16:15:564 EDT] 00000023 SystemErr     R Caused by: java.lang.reflect.InvocationTargetException
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R at sun.reflect.GeneratedConstructorAccessor28.newInstance(Unknown Source)
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39)
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R at java.lang.reflect.Constructor.newInstance(Constructor.java:515)
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R at com.ibm.rational.stp.client.internal.core.ProtocolSubprovider.setProtocolProvider(ProtocolSubprovider.java:614)
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R ... 83 more
[9/2/11 13:16:15:565 EDT] 00000023 SystemErr     R Caused by: java.lang.NoClassDefFoundError: com.rational.clearquest.cqjni.CQClearQuest (initialization failure)
[9/2/11 13:16:15:566 EDT] 00000023 SystemErr     R at java.lang.J9VMInternals.initialize(J9VMInternals.java:140)
[9/2/11 13:16:15:566 EDT] 00000023 SystemErr     R at com.ibm.rational.stp.client.internal.cqjni.CqJniProtocol.<init>(CqJniProtocol.java:2323)
[9/2/11 13:16:15:566 EDT] 00000023 SystemErr     R ... 87 more
[9/2/11 13:16:15:576 EDT] 00000019 SystemErr     R CRVAP0049E (internal-error):  Cannot instantiate protocol provider: com.rational.clearquest.cqjni.CQClearQuest (initialization failure)
  ...java.lang.reflect.InvocationTargetException:
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.realException(StpExceptionImpl.java:493)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.<init>(StpExceptionImpl.java:572)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.cs.internal.util.StpExceptionImpl.<init>(StpExceptionImpl.java:538)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.client.internal.core.ProtocolSubprovider.setProtocolProvider(ProtocolSubprovider.java:620)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.client.internal.cq.CqJniOnlyProvider.<init>(CqJniOnlyProvider.java:48)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at com.ibm.rational.stp.client.internal.cq.CqJniOnlyProvider.<init>(CqJniOnlyProvider.java:58)
[9/2/11 13:16:15:577 EDT] 00000019 SystemErr     R at sun.reflect.GeneratedConstructorAccessor27.newInstance(Unknown Source)
[9/2/11 13:16:15:578 EDT] 00000019 SystemErr     R at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:39)
[9/2/11 13:16:15:578 EDT] 00000019 SystemErr     R at java.lang.reflect.Constructor.newInstance(Constructor.java:515)
[9/2/11 13:16:15:578 EDT] 00000019 SystemErr     R at javax.wvcm.ProviderFactory.createProvider(ProviderFactory.java:93)

You may also see a log message like the one below:

[9/2/11 13:47:19:085 EDT] 00000017 SystemErr     R Caused by: java.lang.UnsatisfiedLinkError: cqjniproxy (A file or directory in the path name does not exist.)
[9/2/11 13:47:19:086 EDT] 00000017 SystemErr     R at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:993)
[9/2/11 13:47:19:086 EDT] 00000017 SystemErr     R at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:962)
[9/2/11 13:47:19:086 EDT] 00000017 SystemErr     R at java.lang.System.loadLibrary(System.java:465)
[9/2/11 13:47:19:086 EDT] 00000017 SystemErr     R at com.rational.clearquest.cqjni.CQJNIBaseObj.<clinit>(Unknown Source)

Cause

ClearQuest Reporting Driver JNI data sources call into a 32-bit JNI library. WebSphere 64-bit edition does not support running 32-bit JNI applications within a 64-bit WebSphere profile.

Diagnosing The Problem

The problem can occur for the following cases:

  • Launching data-pull reports that are hosted on a 64-bit WebSphere Application Server.
  • Attempting to use the ClearQuest Client remote reporting capability to run data-push reports using a 64-bit WebSphere Application Server.
  • Running reports in Rational Insight that use a 64-bit WebSphere Application Server for hosting ClearQuest data services.

Note: Similar exceptions occur on Unix platforms due to the issue described by technote 1327214.

If you are unsure about whether your WebSphere installation uses a 64-bit Java Runtime Environment (JRE), perform the steps below:

  1. Navigate to the java subdirectory of the WebSphere installation. The actual file paths may vary depending on the options you selected during product installation.

    Windows:
    \Program Files\IBM\WebSphere\AppServer\java\bin

    Unix/Linux:
    /opt/IBM/WebSphere/AppServer/java/bin
  2. Run the command below to determine the JRE version.

    Windows:
    .\java -fullversion

    Unix/Linux:
    ./java -fullversion

If the version string contains 64, the JRE is 64-bit.

Resolving The Problem

Solution 1

One way to solve this problem is to use the 32-bit version of WebSphere Application Server. The 32-bit version of WebSphere can be installed on 64-bit servers.

Solution 2

Data pull reports can be modified to use Change Management Server data sources to access ClearQuest..

BIRT: See the ClearQuest Information Center topic Using the BIRT Report Designer for information about configuring Change Management Server data sources.

Crystal Reports: See the ClearQuest Information Center topic Creating a new connection for information about configuring Change Management Server connections.



You can also configure a default Change Mangement Server in the Report Server for Crystal Reports to run the data-push reports that use the ClearQuest Client remote reporting capability. Defining a default Change Management Server causes JNI database connection requests to be routed to the default Change Management Server. After installing and configuring the Report Server for Crystal Reports, edit the report server configuration file to specify the location of the Change Management Server.
  1. Edit the following file:

    <cq-web-profile>/installedApps/dfltCell/RationalClearQuestWebReport.ear/CQWebReportModule.war/WEB-INF/classes/crconfiguration.properties
  2. Change the value of the Change_Management_Server property to the URL for the server you configured as shown in this example:

    Change_Management_Server=http://myWindowsCMServer:12080/TeamWeb/services/Team
  3. Save the changed configuration file. Then, restart the server.

[{"Product":{"code":"SSSH5A","label":"Rational ClearQuest"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Reporting","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
16 June 2018

UID

swg21515079