cancel
Showing results for 
Search instead for 
Did you mean: 

Logical routing, message branching and QoS

Former Member
0 Kudos

Ok, this might looks basic, but after reviewing documentation I still have some doubts about those subjects combined.

- Message branching is said to happen when PI finds multiple receivers in receiver determination. But what happens with interface determination? If there are more than one inbound interfaces in interface determination doesn't the message get branched again? If not how can it be processed by Integration Engine?

- I have some doubts about QoS when multiple receivers are found in receiver determination too.

According to [SAP Help|http://help.sap.com/saphelp_nwpi711/helpdata/en/28/68073c8e56f658e10000000a114084/frameset.htm]

If multiple receivers are determined and the quality of service is Exactly Once (EO) or Exactly Once In Order (EOIO) then the message is branched.

Message Branching for EO

If multiple messages are going to the same receiver, an internal queue name is generated from the message ID of the original message, to ensure that the correct processing sequence is maintained. As a result, the quality of service switches from EO to EOIO.

Message Branching for EOIO

To ensure that the message branching can be tracked, the message ID of the original message is saved with each new message.

+To guarantee that the processing sequence from the receiver list is maintained for messages with the same receiver, the queue name specified by the application is included in each new message. +

Does this mean then that the new branched messages are all put in the same queue with QoS EOIO? Is this queue only for them or is it a generic common queue for all EOIO messages?

- And now for multiple inbound interfaces in interface determination combined with multiple receivers in receiver determination.

Do all the branched messages (if multiple inbound interfaces in interface determination produce branching too) are treated with QoS EOIO and put in the same queue? What about if I deselect "maintain order at runtime"? What would be the resulting QoS and how would the branched messages be put in the queue (if there's only one queue for all of them)?

Thanks in advance.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

> - Message branching is said to happen when PI finds multiple receivers in receiver determination. But what happens with interface determination? If there are more than one inbound interfaces in interface determination doesn't the message get branched again? If not how can it be processed by Integration Engine?

>

A new message with a new message ID is created from the original message for each interface/receiver pair in the receiver list.

So, if there are more than one IB interfaces , the message should get branched, as a new Message id is being created for each interface / receiver pair...

Regards.

XA

Former Member
0 Kudos

A new message with a new message ID is created from the original message for each interface/receiver pair in the receiver list.

I should learn to read better

About QoS I'm still unsure at what would happen exactly with message branching for EO QoS specified in the sender side, or if sender doesn't provide a queue name using EOIO. And beyond that, what will be the order in the queue of the branched messages?

Example. 3 receivers found in receiver determination A, B and C (in that order). For receiver A there's only one interface determined of name SI1, for B there are two, SI2 and SI3 (in that order), for C only one again, of name SI4. QoS specified from sender is EO.

This should generate these four new messages according to combinations: A-S1, B-S2, B-S3 and C-S4.

There will be only a new EOIO queue for all these messages? If so what's the relative order of the messages, A-S1, B-S2, B-S3 and C-S4? (being A-S1 the first message to be processed and C-S4 the last). If I deselect "maintain order at runtime" of interface determination (for receiver B), will only affect to relative order of B-S2 and B-S3 interfaces? If so I guess the possible orders would be A-S1, B-S2, B-S3, C-S4 and A-S1, B-S3, B-S1, C-S4 depending on how arrive the messages relative to receiver B to the pipeline.

Well these are my doubts right now.

Former Member
0 Kudos

A new message with a new message ID is created from the original message for each interface/receiver pair in the receiver list.

>

> I should learn to read better

>

The Help Docs are kind of dry and abstract and many a times, we might miss to read the points b/w a line or two

> About QoS I'm still unsure at what would happen exactly with message branching for EO QoS specified in the sender side, or if sender doesn't provide a queue name using EOIO. And beyond that, what will be the order in the queue of the branched messages?

Are you sure , you will be allowed to save the EOIO queues in the sender side .. if you don't provide the Queue name.. I can see that the Queue name is marked mandatory

>

> Example. 3 receivers found in receiver determination A, B and C (in that order). For receiver A there's only one interface determined of name SI1, for B there are two, SI2 and SI3 (in that order), for C only one again, of name SI4. QoS specified from sender is EO.

> This should generate these four new messages according to combinations: A-S1, B-S2, B-S3 and C-S4.

>

> There will be only a new EOIO queue for all these messages? If so what's the relative order of the messages, A-S1, B-S2, B-S3 and C-S4? (being A-S1 the first message to be processed and C-S4 the last). If I deselect "maintain order at runtime" of interface determination (for receiver B), will only affect to relative order of B-S2 and B-S3 interfaces? If so I guess the possible orders would be A-S1, B-S2, B-S3, C-S4 and A-S1, B-S3, B-S1, C-S4 depending on how arrive the messages relative to receiver B to the pipeline.

>

> Well these are my doubts right now.

I concur with your understanding of the same.. but obviously.. the names of the Queues will be determined as per the standard logic

Best Regards,

XA

Former Member
0 Kudos

Are you sure , you will be allowed to save the EOIO queues in the sender side .. if you don't provide the Queue name.. I can see that the Queue name is marked mandatory

Answers (1)

Answers (1)

Former Member
0 Kudos

HI,

Also, Did you notice , the difference in the message ID generation of Queues in the case of EO ( where it will generate a random ID ) and in the case of EOIO ( where it will generate a random ID in combination with the queue name specified by the application)

?

For your case, I believe that , a separate EOIO, queue will be generated each time ..

Regards,

XA