cancel
Showing results for 
Search instead for 
Did you mean: 

QoS BE -> Synchronous -> handling multiple requests

che_eky
Active Contributor
0 Kudos

Hi,

For a sync scenario as follows the QoS is always BE Best Effort:

Proxy -> PI -> SOAP

  • BE (Best Effort): The message is sent synchronously. The sender waits for a response before it continues processing.

What happens if the proxy is called by multiple users at the same time from different sessions? Will all proxy calls queue up one behind the other? or is each sync message processed independently?

If each sync message is processed independently then is there a way to force messages to queue? one behind the other? There is no need to maintain a queue order, just the ability to make sure the receiver only processes one request at a time (not multiple requests).

EOIO cannot be used as it only pertains to asynchronous scenarios.

Thanks

Che

Accepted Solutions (1)

Accepted Solutions (1)

iaki_vila
Active Contributor
0 Kudos

Hi Eky,


What happens if the proxy is called by multiple users at the same time from different sessions? Will all proxy calls queue up one behind the other? or is each sync message processed independently?

The calls are processed independently.


If each sync message is processed independently then is there a way to force messages to queue? one behind the other?

As far as i know for definition the synchronous calls cant be queued. You can control the situation in the ABAP side, you can develop ABAP code to avoid this situation, for example you can create an object and introduce a lock while the ABAP proxy is being processed. Check these links:

  SAP Lock Concept (SAP Library - The SAP Lock Concept (BC-CST-EQ))

Lock Objects - Community Profiles - SCN Wiki

Regards.

che_eky
Active Contributor
0 Kudos

Hi Iñaki,

Thanks for the tip about lock objects, that would be one solution. It is a shame SAP PI does not seem to offer a solution for queuing sync messages at application level.

Che

iaki_vila
Active Contributor
0 Kudos

Hi Che,

I said as per my knowledge there isn't a way to enqueue synchronous communication and i think it is normal because there isnt persistence because the response is  waited for the sender and the sender shouldn't wait eternally. I only know that you can prioritize queues for sync. Please, you can wait if someone else knows a standard way to do it.

Regards.

Harish
Active Contributor
0 Kudos

Hi Che,

How you are calling the sync proxy in scenario (from user screen, from batch job or from work flow)?

regards,

Harish

che_eky
Active Contributor
0 Kudos

Hello Harish,

Proxy will be called from a user screen with the results (from response) written to a Z table. Does is it matter?

Che

Harish
Active Contributor
0 Kudos

Hi Che,

If we use from batch job or work flow then you don't need to do any additional configuration. For user screen call you need to use lock object.

regards

Harish

Answers (0)