Salesforce

What are the configurable timeouts under PASOE?

« Go Back

Information

 
TitleWhat are the configurable timeouts under PASOE?
URL NameHow-to-configure-PASOE-to-clean-up-idle-resources-automatically
Article Number000180611
EnvironmentProduct: OpenEdge
Version: 11.6.x, 11.7.x, 12.x
OS: All supported platforms
Other: Progress AppServer for OpenEdge (PASOE)
Question/Problem Description

What are the configurable timeouts under PASOE?
How to terminate idle MS-Agent sessions?
How to terminate a PASOE ABL application ABL session?
​How to terminate an idle MS-Agent?
How to change the default timeout for idle HTTP/S sessions?
Is it possible to automatically clean up idle sessions without configuring the Idle Session Timeout ?
How to clean up the sessions if a client terminates abnormally?
How to use idle*Timeout settings found in OpenEdge.properties file ?

  • idleResourceTimeout
  • idleSessionTimeout 
  • idleAgentTimeout
  • idleConnectionTimeout
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause

 

 

Resolution

Before getting into the configuration itself, it is important to review the terminology below from the respective README files as it explains what each timeout does. 

OpenEdge 11.7.x openedge.properties.README reads:

 

idleResourceTimeout=300000
Timeout value in milliseconds to determine the frequency with which the PASOE server checks for idle resources. Any resource (e.g. connection, 
agent, or client session) that has not been accessed more recently than  the specified timeout for that property will be terminated. If this property is set to zero, then idle resource checking is disabled.
 
Note: The idleResourceTimeout is fully supported starting with OpenEdge 11.7.2 onwards. Check the notes section for the restrictions that may apply due to known issues (now fully addressed in OpenEdge 11.7.5)     

idleSessionTimeout=300000

This applies to the APSV transport. 
 
Timeout value in milliseconds for an idle SessionManager session.
If a SessionManager session is idle for more than the specified timeout value, then the session will be deleted when idleResource cleanup is done.
                  
idleAgentTimeout=300000
Timeout value in milliseconds for an idle agent.
If an agent is idle for more than the specified timeout value, then the session will be deleted when idleResource cleanup is done.
           
idleConnectionTimeout=300000

See below. 

Unlike stated in the openedge.properties.README prior to release 11.7.3, time unit for idleSessionTimeout, idleAgentTimeout, idleConnectionTimeout parameters are in milliseconds.


OpenEdge 12.x openedge.properties.README reads:
 
idleSessionTimeout=1800000

Timeout value in milliseconds for an idle SessionManager session. The APSV
transport uses this value to set the expiration time of the HTTP Session
when using HTTP Sessions. It defaults to 30 minutes, which is the same
value used by the other transports. Their HTTP Session expiration is controlled
in web.xml. This does not require idleResourceTimeout to be set because it is
handled by Tomcat.
 
The following figure describes the Progress Application Server for OpenEdge primary subsystems.
 

Each number (1-5) in the figure represents a corresponding section below associated with the subsystem and the flow of information.

 
Primary PASOE Subsystems
 
As shown in the diagram above, clients connect via the HTTP protocol which is a connectionless protocol.

 

These are the three main types of sessions when using PASOE:

  • Apache Tomcat HTTP Sessions (1)
  • PASOE SessionManager Sessions (2)
  • PASOE ABL Sessions (5)

The Apache Tomcat HTTP Sessions are mapped 1-to-1 with the PASOE SessionManager Sessions when the PASOE instance is configured to use HTTP sessions and when HTTP chunking is enabled. Refer to item (2) for more information.

 

The order of operations for timeout properties:

  • agentListenerTimeout
    • connectionWaitTimeout + requestWaitTimeout
      • idleConnectionTimeout
      • sessionExecutionTimeLimit
  • idleSessionTimeout
  • idleAgentTimeout

Terminate idle HTTP sessions (1)

Note: In OpenEdge 12.x, this only applies to the WEB, REST, and SOAP transports. See idleSessionTimeout(2) for the APSV transport configuration. The idleSessionTimeout property overwrites the default timeout which is set in web.xml. In the case of OpenEdge 11.7, idleSessionTimeout is disabled when the idleResourceTimeout is set to 0, so in such a scenario the default timeout in web.xml will be used for the APSV transport. In OpenEdge 12.x, the idleSessionTimeout is always used for the APSV transport, so it does not use the timeout defined in web.xml.
 
To configure this timeout, edit the session-timeout property in conf/web.xml to set the maximum amount of time (in minutes) that can elapse between client HTTP requests before the client's HTTP session (identified with JSESSIONID) expires and is no longer usable.

This does not require idleResourceTimeout to be set because Tomcat handles it.
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

 A value of -1 means the HTTP session will never expire.

The previous setting, psc.as.session.timeout from catalina.properties, that initially served the same purpose is now deprecated.

For further information refer to KB article Changing 'psc.as.session.timeout' option has no effect in PASOE

Terminate idle SessionManager sessions (2)

  • The idleSessionTimeout property in openedge.properties determines how long in milliseconds a SessionManager session can be inactive before that session is automatically shut down. Setting this property to 0 will disable the SessionManager Idle Session Timeout. Also refer to the following KB article for additional information: idleSessionTimeout feature fails when using HTTP sessions with APSV transport
  • In OpenEdge 11.7.x, it requires the idleResourceTimeout property (in milliseconds) to be greater than 0 for the idleSessionTimeout property to be enabled.
  • In OpenEdge 12.x, the idleSessionTimeout property works independently from the idleResourceTimeout propertly when using the APSV transport, but only if the PASOE web application is configured to use the following:
    • HTTP sessions (useHTTPSessions=1 in openedge.properties)
    • HTTP Chunking (enableRequestChunking=1 in openedge.properties).

The client should also support HTTP Chunking for this to work. HTTP Chunking is supported with the ABL client since OpenEdge 11.6.

  • SessionManager sessions are listed in OpenEdge Explorer (OEE) or OpenEdge Management (OEM) within the "Client sessions" page. The SessionManager sessions that look similar to "746D6688553187BEFED5E0B607A3CCBFCC31FCDA72DE.oepas1" are SessionManager sessions that were mapped to Tomcat HTTP Sessions (1) and they can be terminated by the SessionManager Idle Session Timeout. SessionManager sessions that look similar to "fAT2HG2NRY60HAkPVFDBGQ" are not using Tomcat HTTP Sessions and will only be terminated if both the idleSessionTimeout and idleResourceTimeout properties are greater than 0..
  • When the use of HTTP Sessions is disabled (useHTTPSessions=0 in openedge.properties) or when HTTP chunking is disabled (enableRequestChunking=0 in openedge.properties), then the SessionManager Idle Session Timeout is only triggered if the idleResourceTimeout property is greater than 0. If the idleResourceTimeout property is set to 0, then the SessionnManager sessions will not be deleted when a client connection is terminated abnormally, so this could eventually exhaust the maxConnectionsPerAgent setting.
  • If a client does not support HTTP Chunking, then no HTTP sessions will be used for that client. This also means that the SessionManager Idle Session Timeout (idleSessionTimeout) will not be triggered for the SessionManager sessions that are created for this client, unless both the idleSessionTimeout and idleResourceTimeout properties are greater than 0.
  • This setting does NOT affect ABL Sessions (5) on the MS-Agents ("Agent sessions" page in OEE/OEM).

Terminate idle connections between the PASOE Session Manager and the ABL multi-session agents (3)

  • idleConnectionTimeout determines how long in milliseconds a socket connection (3) between the PASOE server and an ABL Multi-Session Agent (MS-Agent) can be idle before it is automatically disconnected. 
  • Requires idleResourceTimeout to be greater than 0 for the idleConnectionTimeout property to be enabled.             

Terminate idle ABL Multi-Session Agents  (4)

  •  idleAgentTimeout - determines how long in milliseconds an ABL MS-agent process can be idle before it is automatically shut down.
  • Requires idleResourceTimeout to be greater than 0 for the idleAgentTimeout property to be enabled.
The downside of this property is that when an agent is terminated and maxAgents is greater than 1, a burst of requests can cause all the agents to start simultaneously, to alleviate this since OpenEdge 11.7.2 additionally configure:
  • The property minAgents, which was added to alleviate the burst effect. This will always assure the minimum set of agents are running even when MSAgents get terminated after idleResourceTimeout
  • The property agentStartLimit can be configured to throttle how many agents will be started simultaneously when the Session Manager determines more agents are needed and thereby smooth out the proliferation of agents when PAS dynamic ABL session scaling would otherwise cause a phenomenon referred to as "Agents Explosion" or an "Agent Storm". For further information refer to Article: When does a new Multi-Session Agent (MSA) start ?

Terminate idle ABL multi-session agent sessions (ABL sessions) without terminating the Agent. (5)

None of these settings configured in the openedge.properties will automatically clean up MS-Agent idle ABL Sessions. HTTP is a connection-less protocol that does not require a valid socket to be opened at all times

In order to manually terminate idle MS-Agent ABL sessions, but not terminate the MS-Agent, use either OEJMX or the OEMANAGER REST API, What are the terminate options for the "terminateABLSession" REST API or OEJMX query?

An enhancement request has been submitted as an Idea on the Progress Community to automatically terminate MS-Agent ABL Sessions. To promote the Idea, click on this link: https://openedge.ideas.aha.io/ideas/OPENEDGE-I-940. 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?.
 
There are some new properties in OpenEdge 12.7 or later that can trim a ABL session based on preconfigured thresholds (Not timeouts):
  • It is possible to choose from total memory usage by an ABL session, number of failed requests or number of total requests.
  • The related property names within the openedge.properties file are: 
    • ablSessionActiveMemoryLimitFinish
    • ablSessionActiveMemoryLimitStop
    • ablSessionMemoryLimit
    • ablSessionMemoryDump
    • ablSessionFailureLimit
    • ablSessionRequestLimit
Refer to the following documentation for more information: https://docs.progress.com/bundle/pas-for-openedge-management/page/Configure-OpenEdge-properties.html

 
Workaround
Notes
Keyword Phrase
Last Modified Date6/22/2026 4:26 PM

Powered by