IV81554: Custom class loader and SOAP calls are causing conflicts


We have a custom class loader that implements the IConnect interface. The class loader allows us to submit a request into TRIRIGA. It is set up according to the following IBM documentation (“Configuring servlet proxies“).

We have noticed an issue where sometimes, when user A is creating a request using the class loader, and at the same time, user B is calling TRIRIGA using SOAP calls (e.g. TRIRIGA CAD Integrator), the class loader assumes that it was user B making the call instead of A. We are easily able to replicate the issue using the steps below:

  • 1. User A repeatedly submits request using the class loader.
  • 2. User B uses the SOAP UI to make a simple runNamedQuery SOAP call.
  • 3. Request created by User A will have User B listed as the Assignee and Auto Recorded By.

This is resulting in a lot of issues, because users are seeing requests in their queue that they never even created.

The issue is that the Connector for Business Applications (CBA) session management logic is not cleaning the thread local values after CBA completes the process. This leads to a situation where the custom class loader can pick up a thread used by a SOAP request at a later point, and the thread local variables will have the incorrect session values. The fix is to clean the thread locals after they are used by a SOAP request in CBA. We resolved an issue where custom class loader calls and CBA SOAP requests that were running simultaneously occasionally caused session user conflicts.

Continue reading

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s