Socket Timeout Exception error - trying to connect to Web Se

webMethods 6.1
I’m trying to connect to a Web Service that was created by a co-worker. We created a service that does a simple (or so I thought) http post to his server. I’m sending a unique EAI tracking number to the web server and that’s all I have to do. I have been told that the web server allows anonymous access and allows http posting.

The process involves sending an item out of SAP, and then I am to run this special service which sends this unique number to the web server. However, I am constantly getting SocketTimeoutException errors and am trying my best to figure out where the problem lays: on my side (WM 6.1) or the Web Server. I’ve asked the owner of the Web Server to up his command timeout to 500 seconds. Our timeout has been upped to 300 seconds. Yes, I know that this is abnormal, but I’m just trying to get a clue as to who is causing the issue.

Now for the weirder part, I have incorporated the save pipeline and the restore pipeline in the main SAP code. When I run the item out of SAP in the normal process, I get Socket Timeout Exception errors when it comes to the part of the program that involves sending the unique number to the web service, but if I do a restore pipeline and step through it (F7) in developer, I do NOT get a Socket Timeout Exception error and everything runs fine. There’s no long pause and the step lasts at the most 2 or 3 seconds. Huh???

Can anyone make any sense out of what I’ve just stated? Any other tests that I can try? This was something that I was supposed to have up and running last Friday.

Thanks for your help and if there are any questions, please let me know.

That’s a strange problem.

Of course, running a service via steps is quite different to running it normally in that each step is a seperate internal service invoke (wm.server.flow:stepFlow).

I would try two approaches:

  1. Run pub.client:http (POST and no authentication) with a test SOAP message and check that this goes through without socket error. This would ensure that the web service part is OK.

  2. Make sure no services are running, then trigger the service from SAP and while it takes time to process, go to the IS Admin page and check Service Usage. Retrieve all currently running services. Check this list against the code and determine which service is the lowest level. This should be the culprit.

Good luck!

Is the service on IS a Web Service Connector?
Is the SOAP encoding RPC/encoded or Document/literal?

Is there anything in the pipeline left over from the SAP call that could be making the Web Server call fail? Sometimes savePipelineToFile/restorePipelineFromFile will through out objects of types is doesn’t know how to serialize, so a restored pipeline has less stuff in it.

Compare what is one the console from pub.flow:tracePipeline to see the exact contents (and the Java object types of each value) before the invoke of the Web Server service in both scenarios.