cancel
Showing results for 
Search instead for 
Did you mean: 

Converting QoS from EO to EOIO in Receiver JMS Adapter

Former Member
0 Kudos

Hello All -

We are currently working with SAP XI 3.0 SP12. Our scenario is something like this:

IDoc -> XI (BPM) -> JMS Adapter

The BPM splits up the incoming IDoc into multiple JMS messages.

The problem is that when the BPM sends the message to the JMS adapter the QoS changes from EOIO to EO. This essentially means that when the messages are written to the JMS Queues, there is no gurantee that they would be written in exactly the same order in which they are produced.

The requirement is to write the messages in exactly the same order in the target queues.

One solution is to capture the transport level acknoledgements and then send the next message from the BPM only on the receipt of the acknoledgement which takes a lot of time.

Is there any other mechanism to ensure the messages going out in an EOIO fashion.

Ashish

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Ashish,

unfortunately it seems to be the only possibility to wait for the ACKs. Within the current release the BPM will always only use EO (SAP Note 833740).

I'm not sure, why it takes a long time to get the ack. we have implemented scenarios where we wait for acks, which run pretty fast, so maybe there is some potential for performance optimization there?

best regards

Christine

Former Member
0 Kudos

Hi Ashish/Christine,

It will help if any one of you explain how to configure this wait for acks !! we have a similar scenario(ccBPM has a receieve -> transform -> send) with one source & one target system. Will just specifying the mode as "transport ack" in the send step help ? i tried that and didn't work , may be i am missing something here

Thanks

Saravana

Former Member
0 Kudos

Hi Saravana,

good news i got from Michal just recently, there is a note underway, which will offer a correction so that EOIO will no longer be changed to EO in BPM (note number 905049, but it's not released yet).

What you can do is specify transport ack and then the BPM will send out a message and wait at the send step until the ack has been sent back. If your receiver supports acks, this should be the solution. If you say, it is not working, what exactly is not working?

Best regards

Christine

Former Member
0 Kudos

Its like this , i ve file -> bpm -> idoc scenario. 've configured EOIO as the QOS for both adapters. file adapter is configured to pick up a pattern , say *.abc.

The picking option is "By Date". Say there are 5 files in the directory before a particular polling interval which has about 5 sec time delay b/w them in their timestamp.

Now the file adpater picks the files in order , delivers it to ccBPM, i can see 5 diff ccBPM instances(diff workitem IDs).

Say, the third file has less data , the transformation happens faster in the 3rd ccBPM instance and so it delivers it to the idoc adapter vefore the 1st or 2nd one completes. So my order is lost.

Now , i tried setting "transport ack" in send step , but didnt help.Is there any other specific setting to be done ?

Thanks

Saravana

Former Member
0 Kudos

ok, in this case the problem is, that you deliver the files to different BPM instances. You have to define a BPM which will take all files in the same instance. The order can only be maintained via acks for messages within the same BPM instance.

br

christine

Former Member
0 Kudos

Christine, Is there a way we can control a specific integration process like this ? I have the default settings on, a simple ccBPM design, like i said with a receieve -> transform -> send

Thanks

Saravana