Salesforce

PASOE client requests may fail after a period of inactivity

« Go Back

Information

 
TitlePASOE client requests may fail after a period of inactivity
URL NamePASOE-client-requests-may-fail-after-a-period-of-inactivity
Article Number000117449
EnvironmentProduct: OpenEdge
Version: 11.7.x, 12.x
OS: Windows
Other: .Net OpenClient, Java OpenClient, PASOE
Question/Problem Description
- PASOE clients running with APSV transport fails with an error message after a period of inactivity. For example:
 
ABL Client
Failure reading response from Application Server. (14810)

.NET Open Client
Communication layer message: General Error: 9998. (7175)

- The PASOE Session Manager log file contains multiple "unable to find existent HTTP session" messages.
Steps to Reproduce
Clarifying Information
The PASOE clients use a session-free connection to the PASOE instance.

The PASOE Session Manager log file contains multiple "unable to find existent HTTP session" messages.

No load-balancing in the configuration.
 
Error MessageCommunication layer message: General Error. 9998

Communication layer message: <message text>. (7175)

Failure reading response from Application Server. (14810)

unable to find existing HTTP session for specified sessionID

<anytimestamp> [catalina-exec-3] ERROR c.p.appserv.adapters.apsv.Request - APSV(EC7DB1DA9830A7F3684CF43916EC816DE9A9880A0B69.oepas1) : unable to find existing HTTP session for specified sessionID. (18328)
<anytimestamp> [catalina-exec-3] ERROR c.p.appserv.adapters.apsv.Request - APSV(EC7DB1DA9830A7F3684CF43916EC816DE9A9880A0B69.oepas1) : An error occurred processing the POST request :  Unexpected error : com.progress.appserv.broker.exception.BrokerException$SessionNotFoundException: Session. (18320)
Defect Number
Enhancement Number
Cause
The PASOE APSV transport is equivalent to the classic AppServer's AIA adapter (web server application) and is used to transport AppServer network protocol messages in HTTP request and response messages. It is the same AppServer network messages as is used in an AppServer, AppServerDC, AppServerS or AppServerDCS URL connection types. If a "session" times out due to inactivity (i.e. idle session timeout) the AppServer network protocol effectively disconnects the AppServer client and it must reconnect to establish a new "session".

Since the AppServer network protocol connections between client and server are always point-to-point (even when using the Session-Free session model), PASOE and the APSV transport work together and use the HTTP session to ensure that the point-to-point connection between the AppServer client and the AppServer (i.e. the PASOE Session Manager) is maintained across multiple HTTP request/response messages by using the Session ID. So as mentioned above, if the Session Manager HTTP Session is terminated it is equivalent to the client being disconnected.
Resolution
It was determined that the Progress Product is functioning as designed.

An enhancement request has been submitted as an Idea on the Progress Community. To promote the Idea, click on this link: https://openedge.ideas.aha.io/ideas/OPENEDGE-I-762. Customer feedback is valuable and Idea submissions are monitored by our Product Management team. Enhancement requests are reviewed during the planning phase of each new product release and a list of the enhancements chosen for implementation can be found in the Release Notes documents that accompany each release. Once an Idea is submitted the Progress Software Community will have the opportunity to comment on and vote for the Idea. It's priority will be evaluated as customer demand weighs in through Article Feedback and through vote count in the Ideas Portal

For detailed information on how to submit an Idea, please refer to Knowledge Base article How to submit an enhancement request for a Progress product?.

This enhancement has not been implemented in the product. As an alternative use the workaround below.
 
Workaround
Use one of the following workarounds:
  • Turn off HTTP Sessions in OpenEdge.Properties file. Doing this will prevent the use of load balancers for  the APSV transport and the use of the Enhanced Connected() method.
Go to the openEdge.properties file and change the useHTTPSession property for the relevant webapp APSV transport from 1 to 0  (e.g. useHTTPSessions=0).
OR
  • Extend the HTTP Session timeout to a length acceptable for the user application.
For APSV, this is done through the idleSessionTimeout property in openedge.properties. Since OpenEdge 12, this value is used for the APSV transport regardless of the idleResourceTimeout value. Refer to the following KB article for more information: How to configure PASOE to clean up idle resources automatically ?
OR
  • Build a background process to ping the connection to ensure it's alive.
OR 
  •  Be sure the application is disconnected from the AppServer using the Dispose() method when transactions are complete.
Notes
Keyword Phrase
Last Modified Date8/31/2023 11:24 PM

Powered by