0

I have designed a message flow with IIB by using the following component

HttpInput(REST) - ESQLComputeNode - SOAP Request - ESQLComputeNode2 - HTTPReply

I have exposed a REST service from this application to invoke by the user and then based on the user's input I build the SOAP message and request it through the SOAP request node,

But when the message reached to SOAPRequest node it always gives me Socket Timeout Exception,

  1. SOAP service can be invoked successfully with SoapUI or POSTMAN with the same network connectivity.
  2. I have checked the accuracy of the endpoint so many times and I can assure you that there is no such issue on that.

3. However, that SOAP URL cannot be resolved by the browser and it always gives me "The Site cannot be reached "

  1. I tried the tracert and telneting the destination and it works fine ,
  2. I have imported the WSDL into my workspace and the message is developed based on that wsdl's namespaces.
  3. I have obtained the generated message before invoking the web service on IIB and tried that message on SOAPui and it still works fine.
  4. I have tried by changing the SOAPrequest's operation mode to "Invoke a generic web service " and still unable to connect and gives the same socket timeout exception.

I have been struggling with this issue for a month and can anyone find a solution for me to get rid of this annoying error.

I am in a doubt that this could occur due to the 3rd point I have mentioned above, but still it works fine with SoapUI and POSTMAN.

Rohan
  • 607
  • 5
  • 5
  • Could you check how long your soap service takes to respond ? Also, see if any short timeout set is causing the issue. – Rohan Apr 14 '20 at 05:30
  • Normally soap service provides the response with less than a second, about 200-400ms, From the soap request node I have set the time out to 180 seconds, this was set just for testing purposes. – Thilanka A. Weerasinghe Apr 14 '20 at 12:16
  • Are you trying curl from the IIB server where your flow is deployed and curl works fine? **Regarding browser to check, you could expose a simple loopback webservice on IIB(HTTPInput->HTTPReply) and call it from browser and see if you get the same result. That way if the result is consistent with respect to the response you are getting from SOAP service, you know that browser never works in your environment. – Rohan Apr 14 '20 at 15:09
  • Service exposed by me through the IIB is working even on the browser it says get method not supported, means I have exposed it as a POST service and there is nothing wrong with the service which I have exposed, I said when I put the SOAP service's endpoint on the browser it doesn't resolve, it's not the service I exposed – Thilanka A. Weerasinghe Apr 14 '20 at 15:17
  • Could I ask on where is the IIB server running...is it on your machine on or a remote server ? – Rohan Apr 14 '20 at 17:25
  • it's running on both my local machine and company's server machines, I tried on both my local and server instances, unfortunately I got the same issue on both instances – Thilanka A. Weerasinghe Apr 15 '20 at 10:36
  • I thought the local IIB service deployed on your local machine should have worked fine through the browser as you would be using localhost in your url endpoint to get to it. Another thing to try would be whether your IIB WebUI works fine ? Here is the link => https://developer.ibm.com/integration/blog/2015/03/30/get-started-web-user-interface-webui-ibm-intergration-bus-v10/ ....may be check whether it works locally and for the remote server ? – Rohan Apr 15 '20 at 13:42
  • there is nothing wrong with the application and services which I have exposed via IIB, what I meant was the external SOAP service which consumes by IIB application cannot be resolved by the browser as well as cannot be invoked from IIB application since it throws a SOCKET timeout exception, but it works fine on postman and soapUI - above all scenarios were tested on my local machine – Thilanka A. Weerasinghe Apr 16 '20 at 13:36
  • It all depends on what network path your source to target takes......data traffic from browsers MAY be going through web-proxy server which MAY have certain web traffic rules written on what can be browsed....also, check the exact http endpoint being invoked through your IIB flow by getting debug trace file.....see...if its http vs https endpoint....this can be issue sometimes....if nothing helps.....collaborate with your network team to see exactly see where are the packets dropping – Rohan Apr 16 '20 at 14:08
  • there is no any proxy configuration since nowadays I m connecting through a mobile vpn connectivity due to covid19 lockdown, tracing with network team is the last option I have to consider, however I am planning to submit a ticket to IBM as well.,btw thank you for your valuable time spent for me, ill keep posting about the progress, meantime if you find any solution please update – Thilanka A. Weerasinghe Apr 16 '20 at 18:54
  • What I meant was based on how your company network is configured, you traffic from your browser MAY be going through a web-proxy server. This is generally done so that one only gets to legitimate sites in an organization. I believe the first thing IBM would ask is IIB debug trace and network packet capture between source and destination based on my experience with IIB/MQ related network issues. Yes, please keep us updated. Thank You. – Rohan Apr 16 '20 at 18:59

2 Answers2

0

It sounds very much like a network configuration problem. I would

If necessary, perform the curl command while the network team do a trace to find out where it is getting blocked.

kimbert
  • 2,376
  • 1
  • 10
  • 20
0

Removing soap envelope from the request message and it resolves the issue.