cancel
Showing results for 
Search instead for 
Did you mean: 

Is in PI7.1 possible asynchronous communication between SOAP and ABAPProxy?

Former Member
0 Kudos

Hi,

when method execute_asynchronous has disapeared since XI/PI 7.1, is

there still way how to use ABAP proxy in asynchronous way?

We need to build asynchronous connection SOAP->PI->ABAP_Proxy.

In PI, both interfaces are defined as asynchronous (outbound for SOAP and

inbound for ABAP Proxy).

Despite of this fact, when message is sent, it is processed

synchronous way.

I have set breakpoint in my implementation of method for ABAP Proxy

message processing. When message is sent and breakpoint is reached,

whole connection stays open (between SOAP and PI and between PI and

ABAP Proxy) and waits for processing method (the breakpointed one) to

return. Only when processing method returns, is connection finelly

closed.

If i understand it correctly, this is synchronous behavior. In

asynchronous behavior, as i understand it, should be connection

between PI and ABAP Proxy of application server closed immediately

after message has been delivered. This mean before my processing

method is even called.

The same could be said about SOAP and PI communication. Connection

should be closed immediately after PI has received message. From

definition of asynchronous communication of PI is obvious, that PI

should receive message correctly and close connection to sender system

even when receiver is unreachable. It should deliver message later

when, receiver system is back on line. So why it keeps connection to

sender system open while it waits for receiver?

Why is this happening, when both interfaces are defined as

asynchronous? Could be the reason for this, if APPLICATION

ACKNOWLEDGEMENT is set on by default? If so, how can i change it

to SYSTEM ACKNOWLEDGEMENT, or disable it at all?

Or is this kind of asynchronous communication even possible since

XI/PI 7.1 ?

Processing of message we are sending can take some time, so we dont

want connection pending open while waiting for finish of

processing. Thats the reason why we have chose asynchronous model to

use.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Check the QoS in Sender SOAP channel. It must EO and BE.

Former Member
0 Kudos

Quote from How to Use the J2EE SOAP Adapter:

"If you select Best Effort, the Web service client will receive a response

message in the SOAP body. Otherwise, the Web service client will not receive a

response message if no error occurs."

"if no error occurs" - that is the problem. In either case he still

waits if some error occure or not. I dont want it. Once PI has

received message, I want the connection with sender to be closed. If

there will be error in communication between PI and reciever, I want

to see it only in PI log. That mean no notification to sender to be

send about that error.

Is that possible?

Answers (2)

Answers (2)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

It is possible. SOAP sender channel quality of service give EO. Create both sender and receiver interface asynchornous. Doesn't mattter whether you AAE or IE configuration.

Shabarish_Nair
Active Contributor
0 Kudos

yes indeed very much.

do have a look into - /people/michal.krawczyk2/blog/2009/06/20/pixi-abap-proxies-say-goodbye-to-executeasynchronous-method

Former Member
0 Kudos

It says just that Execute_Asynchronous was replaced by method named by

name of interface itself. And explains reasons why.

I can see there nothing that says how to force that method to behave

asynchronous, or how to force ABAP Proxy to not do APPLICATION

ACKNOWLEDGEMENT.

Or how to set ABAP Proxy to close connection before processing method is called and not to wait while it will return.

Shabarish_Nair
Active Contributor
0 Kudos

Are you using an AAE based communication or the normal ABAP proxy call?

As long as the service Interface is asynchronous and in case you are using AAE, ensuring that the QoS is EO, it should work