cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP adapter receiver timeouts on async messages

Former Member
0 Kudos

We get timeouts on big "async" message of 2 M or so we send to remote system over SOAP receiver adapter. The backend process takes over 40 mts which we really don't care since we have Exactly Once as QOS. And the does message get there.

We timeout at the end of 5 mts. I'm thinking of using XMBWS parameter but not sure what good it will be.

The overall status of the message is "not delivered". Here's what's in the audit message. And each message has 3 retries (4 failures) - though the remote system received it and too forever to process it.

2007-11-06 12:47:16 Success SOAP: request message entering the adapter with user PIISUSER

2007-11-06 12:52:19 Error SOAP: call failed: java.net.SocketTimeoutException: Read timed out

2007-11-06 12:52:20 Error SOAP: error occured: com.sap.aii.af.ra.ms.api.RecoverableException: Read timed out: java.net.SocketTimeoutException: Read timed out

2007-11-06 12:52:20 Error Exception caught by adapter framework: Read timed out

I need to accomplish the following -

1. Not have the "not delivered" status.

2. Several retries - which might get fixed if the status is "delivered"

By the way, the FAQ for SOAP is going through some modifications and therefore not available on the service marketplace.

Thanks,

Pam

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi.

Check out this Note :

Note 893713 - XI 3.0 SOAP receiver adapter with explicit timeout

https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=893713&nlang=E...

Hope this will help.

Nilesh

Former Member
0 Kudos

From the note 893713 it looks like the timeout is really for syncronous messages. Can you confirm? It makes sense for an sync interface. How does the timeout help an sync interface? My interface is an async interface.

Thanks.

bhavesh_kantilal
Active Contributor
0 Kudos

Pam,

I wish the SOAP adapter FAQ was up and running.

In the same FAQ, there is one question that describes the call to a Web service in an Asynch using SOAP adapter. In brief the answer is,

When SOAP adapter is used to call a web service in a asynchronous mode, the SOAP adapter still expects a HTTP 200 Response from the web service with a empty SOAP payload.

Your timeout happens as the SOAP adapter is waiting for this HTTP 200 Response with Empty Payload. You might need to change the web service code to send this response to XI as it continues to process the message.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

Thanks for your quick response. Where can I see the HTTP code. All I have access to is the Audit log and general details.

Status Not Delivered

Error Category XI_J2EE_ADAPTER_SOAP

Error Code GENERAL_ERROR

Profile XI

Transport HTTP

Delivery Semantics Exactly Once

Can you tell what HTTP error code I'm getting. Where else can I look?

Thanks.

bhavesh_kantilal
Active Contributor
0 Kudos

Pam,

The webservice would need to return this to XI.

In your case the webservice is not returning the same and hence you are getting the timeout error.

Regards

Bhavesh

Former Member
0 Kudos

Bhavesh,

Even for an async message?

Thanks,

Pam

bhavesh_kantilal
Active Contributor
0 Kudos

Yep, even for an asynch call.

The SOAP adapter FAQ explains this in detail.

Regards

Bhavesh

Former Member
0 Kudos

Thank you Bhavesh for your prompt reply. I'll wait for the FAQ to be republished on SAP marketplace.

Here's my other dilemma.

The backend process, we have no control of, will not make changes to their process. This is inventory load and takes about 40 mts on their side.

What repercussions will I face if I up the value of the timeout by adding XMBWS parameter just for this comm channel. Would I be hogging up resources / will just sit idle. Any thoughts.

Thanks,

Pam

Former Member
0 Kudos

Bhavesh, I'll close this thread and start a new one. I believe your've answered my basic concerns very well. Thank you.

Former Member
0 Kudos

sorry, cannot find radio buttons to award points. Does this happen once in a while?

bhavesh_kantilal
Active Contributor
0 Kudos

Pam,

I believe you can use the same thread.

Anyways, even if you do increase the timeout to this high level would you be making a synch call? Is the source willing to wait for the corresponding time for the response?

How many times is this interface going to run? If it is frequent then a wait time of 45 minutes is not recommended. I would try to work with the Web service team to provide you the asynch Response of HTTP 200 with a empty SOAP Envelope.

Regards

Bhavesh

Former Member
0 Kudos

The interface runs once every hour and each time it consumes 45 minutes to respond. Do you advise that just for this business service we allow a wait time of 50 minutes...meaning have the http/SOAP socket open for that period. The remote system is not in a position to fix this for now. Any final thougths?

Thanks, Pam

bhavesh_kantilal
Active Contributor
0 Kudos

hmm.. am not sure..

Any special reason you want to increase the timeout?

Is it not ok if the SOAP adapter error's out with the time out error instead? Not an ideal solution, but this looks to be the only way to do this until the Webservice sends you the response expected by XI

Regards

Bhavesh

Answers (1)

Answers (1)

Former Member
0 Kudos

I wanted to add one of more question

3. What is the benefit of incresing timeout value using parameter XMBWS on a async message? Does this elapse time indicate the time allocated for the message to write to java heap/memory on the remote side?

Thanks!!