cancel
Showing results for 
Search instead for 
Did you mean: 

Found no correlation ID in sender JMS communication channel

Former Member
0 Kudos

Hi Experts,

Our Scenario is Synch/Asynch scenario without BPM and we are using SAP Nfe standard content in our landscape.

Since the JMS adapter does not support synchronous communication, we have implemented synchronous communication using RequestOnewayBean,WaitResponseBean module in the receiver JMS adapter and NotifyResponseBean in the Sender JMS adapter.

Request message flow

SAP GRC --- Proxy --> SAP PI ---JMS--->WMQ

Response message flow

WMQ---JMS---> SAP PI ---Proxy ---> SAP GRC

Correlation Settings in Receiver JMS communication channel

--> Set JMS correlation ID to - XI Message ID

--> Store JMS correlation id of request.

--> Set time period for duplicate check for EOIO[Sec] - 86400

Correlation setting in sender JMS communication channel

--> Set XI message ID to - GUID [Recommended Value]

--> Set XI conversion ID to - stored JMS correlation id of request.

Error screenshot:-

Interface is working fine from long time and suddenly we got this error. As per my understanding response messages are not available in the MQ before message processing timeout, so the request messages got cancelled automatically after the specified timeout. May be MQ is placing response messages after timeout and SAP PI is don't have the active request message with correlation id to process the message.

Here are our open points

--> We would like to know the possible reasons for this error?

--> Will it be a SAP PI or WMQ issue?

--> Can we take any action from SAP PI to resolve this issue?

--> How to resolve this error?

--> Can we hold the synchronous request messages till it gets a response message irrespective of message timeouts[5 mins]?

--> If the response message is available in WMQ after timeout and there are bunch of response messages available in Queues [WMQ] can we check the correlation ID of each message and pick the relevant  messages from queue? [ I think this doesn't make sense because it is a synchronous communication, so we should receive response message within specified timeout] correct me if I'm wrong?

--> How to intimate source system about the error message status?

   

     For example, If we don't receive response message from the target application in synchronous scenarios, can we initiate some error message to source system?

Thanks in advance.

Regards

Revathi

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Revathi,

Can you please share some more details on channel configuration especially for Processing tab so that it will be easy to trace the issue.

Please try to use the below config, may be it will be helpful.

Thanks

Sagarika

Former Member
0 Kudos

Hello,

Can someone address the above queries?

Regards

Reavthi