HTTP client call does not time out

We have a situation where HTTP requests from a WM Flow service to an external system hang instead of timing out.

The WM service uses HTTPS POST to send a large document to an external system for processing. Usually the external system responds within 3 seconds, but on occasions it can take up to 2 hours to respond. Given that watt.net.timeout=30, we would expect the WM service to abort after 30 seconds, but instead it hangs until the HTTP response is received from the external system.

The timeout works correctly when on long running calls on a different endpoint, but for this external system WM just doesn’t time out.

In general, what are the possible causes of this behavior?

Some details:
• The call is HTTPS using client certificate authentication.
• The call is made via a proxy server.
• The payload document can be up to 40Mb.
• The pub.client:http call does not specify timeouts, so we expect it to use watt.net.timeout.
• The hanging call can occur immediately after many other calls have completed quickly. Subsequent calls are also fast.
• WebMethods: version 10.3
• OS: Windows Server 2016
• Java: 1.8.0_261 OpenJDK 64-Bit Server VM

Hi Michael,
Couple of things.

  1. There is a “timeout” field in the pub.client:http service and it can be set accordingly instead of server level setting using watt.net.timeout.
  2. When it hangs, please take multiple thread dumps and share it.
  3. Enable the “Network Services” component to TRACE and also set “watt.net.socketpool.debug” and share the wrapper.log and server.log.

Thanks.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.