Before you read a detailed account of PAS for OpenEdge tuning, know that there are a few parameters that you can tune to affect the performance of your application immediately. If the parameters are set correctly, they could improve the performance of your application in production.

The following illustration shows a configuration in which neither the server nor ABL application agents throttle connections to the database because the PAS for OpenEdge instance and ABL Applications have been tuned:

The illustration shows a PAS for OpenEdge instance that:
  • Can run 200 concurrent client requests to a single stateless/statefree ABL application.
  • Includes a hot-standby multi-session agent that enhances application availability. A hot-standby is a redundant method in which one system runs simultaneously with an identical primary system.

This configuration can be mimicked in your environment or altered based on your needs. This example configuration does not show how to load balance multiple instances or applications. This topic explains how to tune a single instance to get the best performance. Scaling and sizing considerations are discussed in the Scaling considerations in PAS for OpenEdge and Load balance PAS for OpenEdge instances.

Server-side tuning recommendations

To set a server configuration that can deliver the best application performance, change these parameters:

Server Configuration Properties Description
psc.as.executor.maxthreads=200

The maximum number of client requests ( request execution threads) that can be executed by the server before they are placed in a wait queue.

The maximum applies to all deployed Java or ABL applications.

  • psc.as.http.maxqueuesize=100
  • psc.as.https.maxqueuesize=100
The maximum number of client requests that can be queued waiting for a request execution thread.

The server configuration properties can be set using the PASMAN config utility. For more information, see Use PASMAN to configure an instance.

The sum total of the above properties (maxthreads and maxqueuesize) plus the size of the client request data affects the total process memory size of the PAS for OpenEdge instance process.

The psc.as.executor.maxthreads configuration property determines the high-water limit for how many concurrent client requests the PAS for OpenEdge instance can execute. Because each client request executes in one of these threads, the value must be as large or larger than the sum total number of client requests by all deployed Java or ABL applications. PAS for OpenEdge, which runs an embedded version of Tomcat, does not load balance client requests by deployed application. Therefore, if the thread size is not large enough, you may find that client requests to random applications are queued and pause in the behavior of the application. The number of queued threads is set with the psc.as.http.maxqueuesize or psc.as.https.maxqueuesize configuration property. For more information on tuning the server configuration, see PAS for OpenEdge server-side tuning.

ABL web application tuning tips

To set an ABL web application configuration that can deliver the best application performance, change these parameters:

ABL Application Configuration Description
numInitialAgents=2 Start two MS Agent OS processes: one handles all client requests and one remains idle in hot-standby mode.
  • minAgents=2
  • maxAgents=2
Maintain two running MS Agent processes at all times, where if one agent stops a second is automatically started.
maxConnectionsPerAgent=200 Set to the maximum number of concurrent client requests handed by the PAS for OpenEdge server (Set equal to psc.as.executor.maxthreads).
maxABLSessionsPerAgent=200 Set equal to the maxConnectionsPerAgent in stateless/statefree ABL application architectures.
The ABL web application configuration properties can be set using the OEPROP utility. For example:
oeprop.[sh|bat] AppServer.SessMgr.numInitialAgents=2
oeprop.[sh|bat] AppServer.SessMgr.minAgents=2
oeprop.[sh|bat] AppServer.SessMgr.maxAgents=2
oeprop.[sh|bat] AppServer.SessMgr.maxConnectionsPerAgent=200
oeprop.[sh|bat] AppServer.SessMgr.maxABLSessionsPerAgent=200

The described configuration runs the maximum client request load (maxConnectionsPerAgent) of 200 using one agent OS process and the second agent OS process stays in standby mode until the first agent OS process exits by system administrator directive or failure. The system administrator does not have to manually create a second agent OS process if one terminates because PAS for OpenEdge automatically creates the second process.

The sample ABL web application configuration assumes that after load testing, a single agent OS process can run 200 client requests concurrently without exceeding OS process, CPU, memory, or IO limits. For more information about tuning ABL application configurations, see Tune OpenEdge web applications and MS Agents.

For information about machine sizing and to download a sample application that can be used for testing the tuning properties and size of the PAS for OpenEdge instance, see the PAS for OpenEdge ATM Benchmark Test and Machine Sizing Guide on Progress Communities.