TIBCO IntegrationManager (IM) throws InvocationTargetException error inconsistently under load conditions when calls are made to Enterprise Java Beans(EJB).

TIBCO IntegrationManager (IM) throws InvocationTargetException error inconsistently under load conditions when calls are made to Enterprise Java Beans(EJB).

book

Article ID: KB0089239

calendar_today

Updated On:

Products Versions
TIBCO IntegrationManager -
Not Applicable -

Description

Description:
TIBCO IntegrationManager (IM) throws InvocationTargetException error inconsistently under load conditions when calls are made to Enterprise Java Beans(EJB). It is not a data issue as the same requests are sent again which can succeed.

Symptoms:
Once TIBCO IntegrationManager (IM) engine is started and then hit with a load test, then
  • there will at first be a handful of "java.lang.IllegalArgumentException: object is not an instance of declaring class" errors,
  • then the flood of "java.lang.reflect.InvocationTargetException" errors will follow
  • A stack trace indicates that a rootException here is the "java.lang.ClassCastException"

Cause:

This issue can be seen in following cases:

Incorrect order of EJB Client libraries causes misleading errors.

Without having interface JAR files, Web Logic Server (WLS) uses different application classloaders to load individual JAR files on the server side.

If JAR files are deployed individually then the same class is loaded with different application loader results into different class hierarchies.

During concurrent invoke requests, different application loaders load the same class which results in class cast exceptions.

For more details on classloader on WLS, refer to  http://e-docs.bea.com/wls/docs81/programming/classloading.html

Issue/Introduction

TIBCO IntegrationManager (IM) throws InvocationTargetException error inconsistently under load conditions when calls are made to Enterprise Java Beans(EJB).

Resolution

TIBCO IntegrationManager(IM) engine needs to have client ejb stubs in its classpath to avoid such exceptions under the load conditions. This can be done by: 
  • Initializing ejbs at start-up by having either use the init method of a custom task. Details of the init method of a custom task can be located in the IM process design guide->Chap 15.
  • Triggering IM initialization process once during start-up using the timer channel.

Additional Information

IM process design guide->Chap 15