Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

REST service times out SocketTimeoutException

SA-16741

Summary



User is getting SocketTimeoutException when carrying below steps

Steps done to get this error (although sporadic):-

1. Change the service requestor package to non-auth/stateless
2. Modify the pooling tab to have all values as 0 in that tab(idle count, time, max – 0/0/0)
3. Change the service requestor package to auth/stateful

As per the Developer help document, "Use the Pooling tab to configure a requestor pool for the services in this service package when they are stateless and unauthenticated. This tab is disabled if, on the Context tab, the Processing Mode field is set to Stateful or the Requires authentication? option is selected."

If this is the case, why would the pool count number come into picture ? 

Further Questions :-

1. Why does stateful and authenticated make use of pooling ? It shouldn't as per help documentation.
2. If it does make use of pooling, then what is the recommended value to be placed?


EXPLANATION

Here’s the explanation for the reported behavior:

For stateless authenticated requestors we also rely on requestor pooling, the only difference is while returning a requestor, we return a bogus requestor-id(a blank string) back to the pool , and actually destroy the requestor, we return a blank id to maintain the SMA counters in sync. 
 
In current case the requestor pooling is defined as MaxActive 0 ,MaxIdle 0 and MAxWait 0, this configuration itself is incorrect, as the code takes it literally to be zero, requestors will be available in the pool ever , hence the application requests for a new requestor for a pool and waits till the requestor/Containers Work Manager times out. In case if Maxactive is negative it will allow unlimited requestors. 
 
This is the desired behavior and its is the same behavior for stateful services as well.
 
Please note that there are 2 phases in execution of a soap service 
-In the first phase we open up the service package - for this we use requestor pooling 
-In the second phase we execute the service activity and we dont use requestor pooling here 

However the statements in the help topics seem to be rather confusing with the statements, hence have submitted a documentation bug BUG-223565 for the for the revision of the concerned help topics.


 

Published January 31, 2016 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us