JMS_EXCEPTION with Soap Headers (WS-Security) authentication in Inbound Web services over JMS (Doc ID 825843.1)

Last updated on MARCH 02, 2017

Applies to:

Siebel CRM - Version 8.0 [20405] and later
Information in this document applies to any platform.


Symptoms

JMS_EXCEPTION at impersonated (SecureWebService) Inbound WS call processed by JMS Received causes inconsistent behavior: message data are updated in Siebel Db, but message self rolled back into input JMS Queue.

The behavior appears in the following sequence:

1. The JMS Receiver is set to dispatch all received message by the "SecureWebService" named subsystem (EAI Data Handling profile);

2. External application puts a message with SOAP XML request into the JMS Queue. The SOAP Header of the request includes WS-Security fields with Siebel user credentials;

3. The JMS Receiver pick ups the SOAP XML message from the JMS Queue;

4. The JMS Receiver impersonates the user (changes its session context to the specified Siebel User), by the information from WS-Security fields in the SOAP Header;

5. The received SOAP Request is get dispatched to accordant Inbound Web Service implementation (a business service or a workflow process);

6. The Web Service implementation completes the processing (for example updates or/and queries Siebel Data)

7. The EAI Transaction commits the updates in Siebel Db.

8. The JMS Receiver fails to commit the message processing to the JMS Queue (to remove the message from the Queue), because of the raised "JMS_EXCEPTION" java error without detailed information.

9. As result the message stays in the JMS Queue and can be picked up by JMS Receiver again for processing, disregarding of successful completion it at previous run.

10. The Siebel Db is updated, while the JMS Messaging Provider does not receives positive sign to remove the processed message from the JMS Queue as "committed".

* * *

This behavior has been reproduced in 8.0.0.6 SIA and 8.1.1 SIA products and may affect other 8.x Release.

The traces appearing in the JMS Receiver log (8.0.0.6 [20423] ENU) were:

"...
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... Begin: Business Service 'Web Service Inbound Dispatcher' invoke method: 'Dispatch' ...
...
WebSvcInboundWebSvcInbound WSInboundTrace 3 ... Envelope Processing
WebSvcInboundWebSvcInbound WSInboundTrace 3 ... Impersonate
...
WebSvcInboundWebSvcInbound WSInboundTrace 3 ... Executing web service operation '...' by calling ...
...
WebSvcInboundWebSvcInbound WSInboundTrace 3 ... Completed inbound web service execution.
...
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... End: Business Service 'Web Service Inbound Dispatcher' invoke method: 'Dispatch' ...
EAITransport EAITransportGenericEAITransportGeneric 3 ... Dispatch Service: 'Web Service Inbound Dispatcher', Method: 'Dispatch' completed successfully
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... Business Service 'EAI Transport Dispatch Service' invoke method 'GenericDispatch' ...
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... End: Business Service 'EAI Transport Dispatch Service' invoke method: 'GenericDispatch' ...
ObjMgrBusServiceLogObjMgrBusServiceLog Delete 4 ... Business Service 'EAI Transport Dispatch Service' ... was unregsitered ...
ObjMgrBusServiceLogObjMgrBusServiceLog Delete 4 ... Business Service 'EAI Transport Dispatch Service' was deleted ...

ObjMgrSessionLogObjMgrSessionLog Warning 2 ... (physmod.cpp (4998)) SBL-DAT-00473: No transaction is in progress

 
ObjMgrBusServiceLogObjMgrBusServiceLog Create 4 ... Business Service 'EAI JMS Java Business Service Caller' was created ...
ObjMgrBusServiceLogObjMgrBusServiceLog Create 4 ... Business Service 'EAI JMS Java Business Service Caller' ... was regsitered ...
EAITransport EAITransportDebugEAITransportDebug 4 ... Invoking JMS Java method Commit
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... Begin: Business Service 'EAI JMS Java Business Service Caller' invoke method: 'Commit' ...
...
EAITransport EAITransportDebugEAITransportDebug 4 ... Finished copying properties
EAITransport EAITransportDebugEAITransportDebug 4 ... Finished copying type
EAITransport EAITransportDebugEAITransportDebug 4 ... Finished copying value
EAITransport EAITransportDebugEAITransportDebug 4 ... End Creating instance of output property set
...

ObjMgrBusServiceLogObjMgrBusServiceLog Error 1 ... (javabsvc.cpp (181)) SBL-EAI-05000: Business Service call returned error code JMS_EXCEPTION and message: An unexpected error occurred (see StackTrace): null


ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... Business Service 'EAI JMS Java Business Service Caller' invoke method 'Commit' ...
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... End: Business Service 'EAI JMS Java Business Service Caller' invoke method: 'Commit' ...

ObjMgrBusServiceLogObjMgrBusServiceLog Error 1 ... (jmsbsvc.cpp (323)) SBL-EAI-05103: A JMS exception occurred in EAI JMS Transport: 'An unexpected error occurred (see StackTrace): null'.

 
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... Business Service 'EAI JMS Transport' invoke method 'ReceiveDispatch' ...
ObjMgrBusServiceLogObjMgrBusServiceLog InvokeMethod 4 ... End: Business Service 'EAI JMS Transport' invoke method: 'ReceiveDispatch' ...
..."

 

The SOAP XML Request was made like the example below:

<s:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ...>
  <s:Header>
    <ws:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
      <ws:UsernameToken>
        <ws:Username>...</ws:Username>
        <ws:Password ..>...</ws:Password> 
      </ws:UsernameToken>
    </ws:Security>
  </s:Header>
  <s:Body>...</s:Body>
</s:Envelope>

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