Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SDI 7.2.0.1 and JDBCConnector: trouble with NoClassDefFoundError exception for PSCache

80 views
Skip to first unread message

David Mak

unread,
Nov 11, 2014, 11:24:44 AM11/11/14
to
I've got a relatively straight-forward assembly line in a configuration where a JDBCConnector feed is in use.

From the eclipse UI, I can connect to the database from the input map tab, but when executing the configuration, I get the following exception:

handleException , initialize, java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache

If I look in jars/connectors/JDBCConenctor.jar, I do see the relevant class:

com/ibm/di/connector/JDBCConnector$PSCache.class

We are running SDI7.2 FP1 with the updated JVM/JRE.

Has anyone else seen this? Is there some property I'm missing for prepared statements to work? I also tried disabling prepared statements in the advanced configuration options, but still get this error.

TIA,
David

Full exception log entry:

11:00:57,311 INFO - [ReadAlumniRegistrationEmail] CTGDIS495I handleException , initialize, java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache
11:00:57,314 ERROR - [ReadAlumniRegistrationEmail] CTGDIS810E handleException - cannot handle exception , initialize
java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache
at com.ibm.di.connector.JDBCConnector.getPrepared(JDBCConnector.java:3663)
at com.ibm.di.connector.JDBCConnector.selectEntries(JDBCConnector.java:696)
at com.ibm.di.server.AssemblyLineComponent.executeOperation(AssemblyLineComponent.java:3374)
at com.ibm.di.server.AssemblyLineComponent.doConnectorSelectEntries(AssemblyLineComponent.java:1268)
at com.ibm.di.server.AssemblyLineComponent.doInitialize(AssemblyLineComponent.java:1209)
at com.ibm.di.server.AssemblyLineComponent.initialize(AssemblyLineComponent.java:1151)
at com.ibm.di.server.AssemblyLine.initConnectors(AssemblyLine.java:1912)
at com.ibm.di.server.AssemblyLine.msInitConn(AssemblyLine.java:3566)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3376)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:3000)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2983)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2952)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1319)
11:00:57,315 ERROR - CTGDIS266E Error in InitConnectors. Exception occurred: java.lang.Exception: java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache
java.lang.Exception: java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache
at com.ibm.di.server.AssemblyLineComponent.handleException(AssemblyLineComponent.java:2444)
at com.ibm.di.server.AssemblyLineComponent.doInitialize(AssemblyLineComponent.java:1212)
at com.ibm.di.server.AssemblyLineComponent.initialize(AssemblyLineComponent.java:1151)
at com.ibm.di.server.AssemblyLine.initConnectors(AssemblyLine.java:1912)
at com.ibm.di.server.AssemblyLine.msInitConn(AssemblyLine.java:3566)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3376)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:3000)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2983)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2952)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1319)
Caused by: java.lang.NoClassDefFoundError: com/ibm/di/connector/JDBCConnector$PSCache
at com.ibm.di.connector.JDBCConnector.getPrepared(JDBCConnector.java:3663)
at com.ibm.di.connector.JDBCConnector.selectEntries(JDBCConnector.java:696)
at com.ibm.di.server.AssemblyLineComponent.executeOperation(AssemblyLineComponent.java:3374)
at com.ibm.di.server.AssemblyLineComponent.doConnectorSelectEntries(AssemblyLineComponent.java:1268)
at com.ibm.di.server.AssemblyLineComponent.doInitialize(AssemblyLineComponent.java:1209)
... 8 more

Eddie Hartman

unread,
Nov 11, 2014, 4:53:09 PM11/11/14
to
This looks strange, David, I would recommend opening a PMR with our awesome L2 team.

David Mak

unread,
Nov 11, 2014, 5:14:04 PM11/11/14
to
On Tuesday, November 11, 2014 4:53:09 PM UTC-5, Eddie Hartman wrote:
> This looks strange, David, I would recommend opening a PMR with our awesome L2 team.

Thanks for the look over Eddie! Yes, I opened the PMR at the same time I posted: 48133,L6Q,000

I just got off the phone with Jason Williams who was very helpful. Unfortunately, out troubleshooting process resulted in the problem resolving itself. We did two things:

1) Revert the JVM/JRE to the original version.
2) Remove the user accounts JAVA_HOME and the $JAVA_HOME/bin path from the user environment.

This resulted in the problem disappearing. What odd is, we next reversed the above actions one by one to determine which solved the problem:

1) Re-add the new JVM/JRE.

After this, the problem was still gone.

2) Add back the env variables when the problem existed.

Unfortunately, this didn't result in the problem recurring.

So... our conclusion is that there must have been some cached class files in the JVM that must have been flushed/rebuilt based on our actions.

IBM are closing the PMR and documenting this behavior.

Eddie Hartman

unread,
Nov 13, 2014, 11:44:16 AM11/13/14
to
They say life is all about the journey. But TDIing is mostly about the destination. Glad you go where you wanted to go, David :)
0 new messages