0

I have an esb from which i make a webservice call. The webservice call works well within the organization. We upgraded the Mule ESB version from 3.2.2 to 3.8.5. Both versions work well for us however when vendor calls the web service he get a Socket Time out error. We have TLSv1.2 enabled in Mule ESB. The Timeout happens after exactly 20 seconds. However we do not have a timeout set to 20 seconds , for the WS it is set at 60 seconds. The client uses .net technology. When we use postman to call the WS locally we do not face any issues. The WS call is simple POST request which accepts xml. Client gets the header information first but then timeout occurs before complete response is received. Is this related to Multipart form data? Let me know your thoughts.

Nik D.
  • 31
  • 1
  • 9

2 Answers2

0

By default, the time period is 1000 milliseconds in mule, but you can set another value through the parameter responseTimeout.

 <http:outbound-endpoint address="http://test.com/ws" method="post" exchange-pattern="request-response" responseTimeout="5000"/> 

But Ideally for Webservice consuming, When you configure the Webservice Consumer connector ,goto-->References-->Http Configuration reference-->Click Edit-->Other settings-->Response Time out as 60000 (which is 60 seconds) .Then your esb call can wait till 60 seconds .Depends on response time you can either increase or decrease time out .Hope this helps..

Kamal Vamsi
  • 128
  • 4
  • We are trying with following- – Nik D. Sep 12 '18 at 19:18
  • We want to see if after this change client can access the ESB. We believe this is an issue with Multipart form data that is why only the header info is received and complete response is not received by client. Also , looked into the followingWanted to use HttpMuleMessageFactory which is used prior to Mule ESB 3.4.x – Nik D. Sep 12 '18 at 19:27
  • Still getting following error on client end- java.net.SocketException: Connection reset Connection lost. Response has 0 lines Connection lost while reading header. – Nik D. Sep 17 '18 at 14:53
  • After the configuration, looks like the client timeout is happening immediately. Any suggestions? – Nik D. Sep 17 '18 at 15:25
0

Upgrading Mule to version 3.8 you also should port the flow to the new components. Replace the http:outbound-endpoint by using http:request. Configure the responseTimeout property. I had situations like these before. Try to change the parseResponse or/and requestStreamingMode. Depending on the WS, Mule can run into a wait.

<http:request-config name="requestConfig" ... responseTimeout="120000"  />

<http:request path="/api/v1/orders" method="POST" config-ref="requestConfig">
   <!-- configure the elements you need -->
</http:request>

By the way, Mule also has a component for Webservice (SOAP) consumption. If you need help by migration from Mule 3.3 (or other) to any version, just let me know.

Ben Asmussen
  • 964
  • 11
  • 15