Skip to Content
0

EOIO in multiple Receiver Scenario

Dec 12, 2017 at 06:32 AM

82

avatar image
Former Member

Hi All,
I have a multiple receiver scenario. The Input message is routed to 3 different
receiver systems. I have enabled EOIO in the sender channel.

My requirement is that even if any of the message fails for Receiver 1,
the subsequent messages to the other Receivers also should be blocked.

But for each of the 3 receivers, a separate Serialization Context is created.
Failure of a message for a particular Receiver blocks the other messages of that Receiver alone .
THe messages for other Receivers gets executed as usual.

Can someone advise, how to enable single EOIO queue(Serialization_Context) for all the multiple
Receivers? If a message for a Receiver fails, the subsequent messages to other Receivers also should be
blocked.

Thanks

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

5 Answers

avatar image
Former Member Dec 12, 2017 at 12:46 PM
0

Hi All,

Thanks for your responses. I too was under same assumption. But it is not the case. SequenceID is same for all Receivers. (what is given in the sender channel) , say A_EOIO

But SerializationContext is different for every Receiver (Eg, XI_OUTBOUND_A_EOIO_[Receiver1], XI_OUTBOUND_A_EOIO_[Receiver2]

) and hence the sequencing number for each Receiver.

Also , came across the below note which says, Serialization Context is created based on Queue ID and Receiver Service.

2505543 - Enable ordered EOIO processing of multiple XI messages in one transaction in SOAP sender adapter

"EOIO messages in Adapter Engine are serialized according to their Serialization Context which for XImessages depends on queue ID and receiver information (Party and Service)"

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Dec 12, 2017 at 12:48 PM
0

Tried 'Maintain Order at Runtime' as well. Even then serialization happens only based on Receiver System

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hi Prabu!

So it should. When "Maintain Order at Runtime" option is selected, separate EOIO queue is created for messages coming to different interfaces of the selected receiver. And these messages are processed in order you set by placing receiver interfaces. So if you have Receiver system with three interfaces - three messages will be put to separate EOIO queue. For the next message another queue with three messages in it will be created as well. And so on.

Regards, Evgeniy.

0
Ariel M. Bravo Ayala Dec 12, 2017 at 09:52 AM
0

Hi Prabu,

Have you tried selecting the checkbox "Maintain Order at Runtime" in your ICO/Receiver Determination?

According to SAP's documentation:

Specify mappings for the defined receiver inbound interfaces and specified cases.

When assigning multiple inbound interfaces, specify the Quality-of-Service:

If multiple inbound interfaces are assigned by the integrated configuration, the messages are forwarded according to the quality of service Exactly Once in Order (EOIO) at runtime. This means that the order in which the inbound interfaces are entered in the integrated configuration determines the order in which the messages are received.

You can change this default by deselecting the Maintain Order at Runtime checkbox. In this case, the quality of service Exactly Once (EO) is used to forward the message to the inbound interfaces.


Bests,

Ariel Bravo Ayala


Share
10 |10000 characters needed characters left characters exceeded
Evgeniy Kolmakov Dec 12, 2017 at 11:39 AM
0

Hi Prabu!

As far as I remember, when EOIO Quality of Service is set in sender adapter along with queue name, all the messages are put to the same named queue. And if the delivery fails for one of the messages in that queue, all sub-sequent messages goes to "To be delivered" status until the blocking message is resent or cancelled.

Regards, Evgeniy.

Share
10 |10000 characters needed characters left characters exceeded
Evgeniy Kolmakov Dec 12, 2017 at 02:47 PM
0

Hi Prabu!

Did you try to set Module parameter XMBWS.OrderedEOIOEnabled as described in the given note?

Regards, Evgeniy.

Share
10 |10000 characters needed characters left characters exceeded