Java Data Bean creates a separate thread for each SISNAPI connection. Connection pooling keeps the connections open and thus keeps the Java threads alive. (Doc ID 1075637.1)

Last updated on MARCH 02, 2017

Applies to:

Siebel Tools - Version 8.0.0.4 [20417] to 8.1.1.7 [21238] [Release V8]
Information in this document applies to any platform.
Checked for relevance on 30-AUG-2016.

Symptoms

Scenario
----------
A Java program starts several threads.

Each thread instantiates its own copy of a Siebel Java Data Bean (JDB) object.

The threads execute some Siebel operations and then close the session by calling logoff().

Issue
-------
A monitoring tool revealed that all threads continued to be active even after the call to logoff(). They were staying alive as long as the main thread stayed alive.

Loss of functionality
-----------------------
Pending threads will accumulate on the Java virtual machine (JVM). Each pending thread consumes some memory, which eventually leads to an out-of-memory situation. So ultimately either the JVM or the Siebel object manager needs to be restarted in order to terminate all pending threads.

Significance of loss
---------------------
"Zero downtime" operation of the Java program is not possible. Operation will be interrupted frequently; either by out of memory errors, or by scheduled server restarts.

Expected behavior
---------------------
After invoking logoff(), the thread should stop immediately and release any resources it has allocated.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms