Enhanced ABL session management
- Last Updated: February 11, 2026
- 3 minute read
- OpenEdge
- Version 13.0
- Documentation
In OpenEdge 12.2, the PAS for OpenEdge multi-session agent self-manages ABL sessions, so that whenever an ABL session creation fails, subsequent requests are queued instead of failing, and executed when an ABL session becomes available.
This addresses failures due to resource unavailability in a production
environment and supports continuous operations of ABL applications. The enhanced ABL
Session Management functionality allows PAS for OpenEdge to dynamically change its
in-memory maxABLSessionsPerAgent based on resource
availability.
ABL Session Management reduces the in-memory value of of maxABLSessionsPerAgent if the multi-session agent
reaches the limit of allowed concurrent connections to a resource. Instead of
connections failing due to exceeding the number of concurrent connections to a
resource, the multi-session agent alerts the PAS for OpenEdge Session Manager to
queue the requests, or start up a new multi-session agent (if one is available),
rather than return a failed request.
The value of is maxABLSessionsPerAgent
is represented in-memory with the property dynmaxablsessions.
This behavior is enabled by default.
Here’s how it works
To provide an example use case:
A PAS for OpenEdge instance has its maxABLSessionsPerAgent set to 200 in the openedge.properties file.
The PAS for OpenEdge instance connects to an OpenEdge database that
has a Maximum Number of Users (-n) set to 100.
In this example, the database prevents more than 100 concurrent incoming requests, so the multi-session agent cannot start more than 99 ABL sessions when required. Therefore, any additional requested ABL sessions will fail due to exceding resource limits.
If a large connection event (a "storm of requests") occurs where a burst of people send requests, the multi-session agent turns the request storm into new sessions. The multi-session agent then sends the sessions to the OpenEdge database to request a resource. The database rejects concurrent requests after the 100th is received, and then remaining requests return as failed.
With the enhanced ABL Session Management, when the multi-session
agent receives the 100th request, the minAvailableABLSessions property triggers the
multi-session agent to change its in-memory maxABLSessionsPerAgent value to 99. This is because the multi-session
agent is alerted that there are no more available sessions due to an error message
from the database.
With the maxABLSessionsPerAgent set
to 99 in-memory, the PAS for OpenEdge Session Manager queues the remaining requests
until an existing ABL session becomes available. The Session Manager then routes a
queued request to an available ABL session in the multi-session agent. Instead of
failing, the requests are queued in the Session Manager until a session opens in the
multi-session agent.
Controlling Min and Max Available ABL Sessions
The minAvailableABLSessions property
has been added to openedge.properties in
support of enhanced ABL Session Management. This property specifies the smallest
number of available ABL sessions that are reserved by the multi-session agent during
its operation. The minAvailableABLSessions property
tries to pre-start an ABL session to ensure a resource connection is available. If
the multi-session agent detects that the number of available sessions has fallen
below the default value of 1, the multi-session agent signals to the Session Manager
to lower the maxABLSessionsPerAgent to the number
of current ABL sessions.
You can set the value of minAvailableABLSessions higher than 1 to request that more additional
available ABL sessions be reserved for incoming requests.
When the number of minAvailableABLSessions falls below the threshold defined in openedge.properties, then the value of the maxABLSessionsPerAgent property changes to match the
number of current ABL sessions.
The change of the maxABLSessionsPerAgent value occurs in-memory rather than being
written into the openedge.properties file. This
in-memory ABL session limit is stored in the property dynmaxablsessions.
Enhanced ABL Session Management APIs
You can view, update, and reset the in-memory value of the maxABLSessionsPerAgent (dynmaxablsessions) property using OEJMX queries or the REST APIs
provided by the OE Manager application.