Skip to Content

Timeout in asynchronous File to SOAP scenario

Dear Experts,

I have an outbound ASYNCHRONOUS scenario from SAP (File) to External system (SOAP).

The source file size is large and it takes more then 6 minutes to get it uploaded in the target, which will eventually increase as the file size is expected to be more.

The issue is since that since it is taking long time to send the payload, the channel ends up with HTTP 403 Forbidden error, which we expect is because of Timeout.

Because of the error in channel, it tries resend the message three more times and sets it as failed.

Below are the logs for more detail:

  • 12.09.2016 16:56:31.070 Error Exception caught by adapter framework: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 403 Forbidden
  • 12.09.2016 16:56:31.071 Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: HTTP Error response for SOAP request or invalid content-type.; HTTP 403 Forbidden
  • 12.09.2016 16:56:31.073 Error Message status set to NDLV

I have put Timeout parameter in the receiver SOAP channel but it is not working, not sure if the module is applicable for Asynchronous Scenario.

We replicated the scenario via SOAP UI also and gives a timeout.

  • Tue Sep 13 17:38:40 CEST 2016:ERROR:Exception in request: java.net.SocketTimeoutException: Read timed out

When I explicitly increase SOAP UI Timeout to 10 minutes it works fine.

Could you please suggest how can we increase the Timeout in an asynchronous SOAP scenario?

Kindly help.

BR,

Shashank

TimeoutModule.JPG (25.6 kB)
SOAPUI_Error.JPG (30.2 kB)
Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

4 Answers

  • Sep 13, 2016 at 04:15 PM
    Add comment
    10|10000 characters needed characters exceeded

  • Sep 13, 2016 at 05:20 PM

    Shashank,

    Why do you get timeout issue for async?😕 My guess SOAP adapter is waiting for the HTTP 200 response code from webservice.

    try with Parameter XI.Timeout = milliseconds in module parameter.

    When I explicitly increase SOAP UI Timeout to 10 minutes it works fine.

    What response do you get after increasing the timeout in SOAPUI , check the raw tab of response in SOAP UI.

    br,

    Manoj

    Add comment
    10|10000 characters needed characters exceeded

    • Shashank,

      The i would suggest if any of timeout parameters are not working then you can split the message into smaller size using multimapping.

      Because lets say you set the timeout parameter and later in production you get message of bigger size and then again your web-service takes time (more then the timeout mentioned) to process data and sent http code back which results again in error.

      Br,

      Manoj

  • Sep 14, 2016 at 03:54 AM

    Hi Shashank!

    As far as I know, HTTP error "403 Forbidden" means that server denies access for requested resource. So I would suggest to check if your request from PI to WS is correct.

    Also when you tried to query web service from SOAP UI you didn't get 403/Forbidden but timeout error.

    Do you get error in PI in several minutes interval after sending request or right after sending? If second, it's definitely not the timeout issue on this step.

    Regards, Evgeniy.

    Add comment
    10|10000 characters needed characters exceeded

  • Sep 16, 2016 at 02:07 PM

    Dear Experts,

    The Module parameter - XMBWS value seems to be getting suppressed from some system level time out setting.

    Could you please help me in finding where the timeout parameters are set at Adapter Engine level for a SOAP channel?

    BR,

    Shashank

    Add comment
    10|10000 characters needed characters exceeded

    • Hi Praveen,

      I have referred the Note and as I have used XMBWS parameter in my SOAP Receiver adapter, but seems like the timeout I have mentioned in the channel module is getting suppressed by system level timeout setting.

      Regarding the module name change, i believe that the below mentioned parameters are applicable only for Sender channel where as my scenario is Async. with SOAP as receiver adapter:

      - if Module Name = XISOAPAdapterBean - use XI.Timeout

      - if Module Name = CallSapAdapter - use syncTimeout


      Regards,

      Shashank