PAS for OpenEdge instances contain numerous configuration options, which can either improve the application performance at runtime or if misconfigured, prove detrimental to overall system health. To make maximum use of system resources, for every application, you must consider when adjusting the default values of the available properties files, because these files control everything from the HTTP server operation to the ABL runtime.

This content, written primarily from a DevOps and administration perspective, covers the context of why and when certain values may need to be altered. The purpose is to provide more insight into the processes of managing and monitoring your PAS instances with the intent of validating the effects of modifying configuration options.

The primary goal is to maximize capacity through your PAS instances. This is typically measured by concurrent client connections and is primarily limited by the maximum agents and the maximum connections/sessions per agent. With respect to the terms sessions and connections which may be used in the following content it is worth remembering the following with regards to tuning a PAS instance:
  • Sessions (or ABL Sessions) control the memory consumption per MSAgent process. Each session requires some amount of memory to execute the ABL business logic.
  • Connections (or Client Connections) distribute the CPU load across concurrent threads in an MSAgent process. Increasing the number of connections means increasing the number of requests to be handled by an MSAgent process, and thus higher processor activity.

The flowchart refers to the key subsystems within a PAS for OpenEdge instance and the path for a request through an ABL Web App. Items numbered 1 through 6 correspond to areas of Tomcat and OpenEdge, which are managed by specific properties files and are expalined below:
  • Item 1—This is governed by the psc.as.executor.maxthreads value in catalina.properties and affects all client connections to the web server container for a PAS instance.

    Each request will be serviced from the executor thread pool, which grows according to the number of active requests plus the value for psc.as.executor.minsparethreads, up to the maxthreads value. For more information, see Configure Tomcat properties.

  • Item 2—This is affected by the psc.as.[http|https].connectiontimeout values in catalina.properties.
  • Item 3—This refers to the Spring Security settings in oeablSecurity.properties and oeablSecurity.csv. For more information, see Configure security properties.
  • Item 4—Multiple values from the SessMgr sections of openedge.properties file affects connectionWaitTimeout and maxConnectionsPerAgent/maxABLSessionsPerAgent.
    • For stateless connections (web, rest, soap transports)—A free ABL Session is defined as any unused connection in any MSAgent which has an available ABL Session.
    • For the APSV transport—Bound ABL Sessions define free as any unused connection to the same MSAgent which contains the bound ABL Session.

    For more information, see Configure OpenEdge properties.

  • Item 5—This is affected by the requestWaitTimeout in the SessMgr sections of openedge.properties.
  • Item 6—This is affected by the completeActiveReqTimeout in the AgentMgr sections of openedge.properties.
Other configuration areas include: