My Oracle Support Banner

Sending In A Valid SessionToken After An EAI Task Is Closed From Session Timeout, "stop task" Command, Component Shutdown or Siebel Server Shutdown Spawns Off 2 Running EAI Tasks In A Multi Server Environment (Doc ID 2781661.1)

Last updated on AUGUST 11, 2021

Applies to:

Siebel CRM - Version 17.0 [IP2017] to 21.5 [Release V17]
Information in this document applies to any platform.

Symptoms

When using Session Management and SessionTokens, an EAI task can close out from the following:

a. Sending the SessionToken in the request with SessionType = None

<SessionType xmlns="http://siebel.com/webservices">None</SessionType>
<siebel-header:SessionToken xmlns:siebel-header="http://siebel.com/webservices">SESSION_TOKEN_VALUE</siebel-header:SessionToken>

This type of request will instruct Siebel to close the EAI task (stop the task and close out the session) as well as mark the SessionToken value as invalidated, no longer valid, no longer to be recognized nor used by the Siebel application.

In this particular scenario, the EAI task closed out as well as mark the SessionToken value as invalidated, no longer valid, no longer to be recognized nor used by the Siebel application.

There is a separately reported issue with this scenario where sending an invalidated SessionToken after SessionType=None causes 5 Running EAI tasks. Please refer to this KM for more information:

         • Sending In An Invalidated Session Token With Session Type = Stateless Causes Creation Of 5 EAI Tasks In Running State (Doc ID 2780797.1)


b. Session Timeout - the EAI task closes when it has been idle for the amount of time specified for the SessionTimeout parameter; however, the SessionToken IS NOT invalidated, SessionToken is still valid.

c. Using a "stop task" command - which will stop the running EAI task; however, the SessionToken IS NOT invalidated, SessionToken is still valid.

d. Shutting down the EAI component - which will close out all the running EAI tasks for the component; however, the SessionToken IS NOT invalidated, SessionToken is still valid.

e. Shutting down the Siebel server (service) - which then also shuts down EAI and other server components and closes out all their running tasks; however, the SessionToken IS NOT invalidated, SessionToken is still valid.

In the above scenarios (b) - (e), the SessionToken value is still valid even though the EAI task which issued the SessionToken has closed out. Thus, when sending in the still-valid SessionToken, it will do an implicit login with the credentials from the SessionToken value to create/open a (one single) new EAI task to run the request.


However, it has been observed that instead of creating/opening one single EAI request for the SessionToken, it creates 2 EAI Tasks in Running status to process the same SessionToken request.


The 2 Running EAI task is created as follows:

•  The 1st which opened encountered an error, log file showing message "SBL-UIF-00880: Invalid Session Token - The token might have been expired or logged out by the user", yet the task remains in Running status

•  The 2nd which opened shortly afterwards processes the request with the SessionToken successfully and the task remains in Running status

The above behaviour only occurs when multiple Siebel servers with EAI OM component enabled are online within the enterprise. Meaning, the behavior occurs in a multi Siebel server environment when more than one Siebel server (having EAI OM enabled on it) is online.

The behavior does not occur when there is only one single Siebel server in the enterprise, or if there is only one single Siebel server instance online in a multi server environment.

 

Steps to reproduce the behaviour:

1. Configure 2 (or more Siebel servers) within the Enterprise. Please refer to Siebel Installation Guide for more details.

2. Send a request with SessionType = Stateless and username/password to open a new session

<UsernameToken xmlns="http://siebel.com/webservices">sadmin</UsernameToken>
<PasswordText xmlns="http://siebel.com/webservices">siebel</PasswordText>
<SessionType xmlns="http://siebel.com/webservices">Stateless</SessionType>

This returns a response with a SessionToken, example:

<siebel-header:SessionToken xmlns:siebel-header="http://siebel.com/webservices">SESSION_TOKEN_01</siebel-header:SessionToken>

Where SESSION_TOKEN_01 is an actual SessionToken string returned in the Siebel response.

This also created an EAI task with a specific Id, example EAIObjMgr_enu_0011_11534353


3. Use Siebel Server Manager to close the EAI Task Id EAIObjMgr_enu_0011_11534353

           stop task 11534353 for server siebel2

           list active task for component EAIObjMgr_enu                             ; it shows 0 EAI task Running.
 

4. Send in another request with the SessionToken returned from earlier

<siebel-header:SessionToken xmlns:siebel-header="http://siebel.com/webservices">SESSION_TOKEN_01</siebel-header:SessionToken>

Where SESSION_TOKEN_01 is still valid and has not yet expired.

This spawns off 2 EAI Running tasks:

a.  The 1st which opened on one of the server and encountered an error, yet the task remains in Running status.

The EAIObjMgr_*.log file shows the following message:

The request was processed through this task and returned a response and a new token value.

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

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


In this Document
Symptoms
Changes
Cause
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.