Salesforce

Tuning PASOE OpenEdge Database Connections

« Go Back

Information

 
TitleTuning PASOE OpenEdge Database Connections
URL NameTuning-PASOE-OpenEdge-Database-Connections
Article Number000121540
EnvironmentProduct: OpenEdge
Version: 11.6 and later
OS: All supported platforms
Other: PASOE (Progress AppServer for OpenEdge)
Question/Problem Description

How to calculate the number of OpenEdge database connections a PASOE instance will use at full load ?
How to tune the PASOE OpenEdge Database Connections ?

Steps to Reproduce
Clarifying Information

A PASOE deployment will have mostly one or more OpenEdge databases connected to it.  
Because OpenEdge database servers are a finite resource, it is very important that the ABL application not totally deplete the OpenEdge database server's pool of User connections.   PASOE server(s) is one part of the ABL application whose configuration should not allow its consumption of OpenEdge database User connections exceeds what the database is started with.  

This article describes how to calculate the number of OpenEdge database connections a PASOE instance will use at full load, which then allows a better plan and size of the User connection pool.

The process of tuning PASOE's consumption of OpenEdge database connections follows very closely that same process in classic AppServers. The terms and configuration properties used to do the tuning differ between PASOE and classic AppServers, but the fundamentals remain the same: do not allow creation of more ABL session connections than what is set in the -n Users to the OpenEdge database server.  Failure to do so can have a serious impact on the application.

In a classic AppServer each ABL Session (aka Agent processes) that connects to an OpenEdge database uses 1 User connection which is also truth in PASOE: each ABL session running in its multi-session Agent processes uses 1 database User connection.

Where each classic AppServer broker has a configuration for the maximum number of active (i.e. running) ABL Sessions its broker can have at any point in time, a PASOE instance has a corresponding configuration to control the maximum number of active ABL Sessions.
Just like a classic AppServer who's physical properties can appear in multiple ubroker.properties file groups, a PASOE's physical properties can appear in multiple <instance>/conf/openedge.properties file groups.

Where a classic AppServer can scale by configuring multiple brokers to serve the same ABL business application, a PASOE instance can be replicated to serve the same ABL business application.  

Where a classic AppServer single/multiple broker configuration can execute only a single ABL business application ( identified by its PROPATH, database connections, & startup options ), a PASOE instance can have multiple. So in PASOE, the maximum number of active ABL Sessions per ABL application needs to be calculated. (In most cases one PASOE instance equals one ABL business application).

The key to configuring the number of database connections needed by either a classic AppServer or PASOE will be determined by knowing the maximum number of active ABL Sessions. 

Error Message
Defect Number
Enhancement Number
Cause
Resolution

Each PASOE instance can have multiple apps deployed.
Each deployed app can have multiple multi-session Agents configured.
Each multi-session Agent can have multiple ABL sessions configured.
Each initiated ABL session counts as a user in the database.

Please follow the steps below to calculate the maximum number of active ABL Sessions per ABL business application:

Legend:  PASOE instance name:   <inst-name>
               ABL application name:     <app-name> 

  1. From Proenv, choose the ABL business application name ( <app-name> ) where the calculation will be done for.  In most cases the PASOE instance will only have one.
       pasman oeprop -I <inst-name>  AppServer.applications
     
  2. Find the ABL business application's maxABLSessionsPerAgent & maxAgents properties
      pasman oeprop -I <inst-name>  AppServer.SessMgr.<app-name>.maxABLSessionsPerAgent
        pasman oeprop -I <inst-name>  AppServer.SessMgr.<app-name>.maxAgents
     
  3. Now perform the maximum number of active ABL Sessions calculation:

    Network database connections:
         maxABLSessions = ( maxABLSessionsPerAgent * maxAgents )

    Shared-memory connections:
         maxABLSessions = (( maxABLSessionsPerAgent * maxAgents ) + maxAgents )
     
  4. If ABL business application is scaled by starting multiple PASOE instances, multiply the per-instance number of ABL Sessions by the maximum number of PASOE instances:
    maxABLSessions = ( maxABLSessions * <max inst-name> )
     
  5. Adjust the OpenEdge database's -n startup parameter to maxABLSessions plus what is needed to support all other database clients
     

Use the maxABLSessions calculated value to adjust the OpenEdge database user limits.

Another property to keep in mind is the numInitialSessions property. The PASOE instance will pre-starts the amount of ABL Sessions defined in this property when the PASOE instance is started up. So for example if this is set to 5, then 5 ABL Sessions will be started when the PASOE instance is started up, each making a connection to the database.


For Example:

oepas1 PASOE instance openedge.properties

[AppServer]
    applications=Testapp

[AppServer.SessMgr.Testapp]
    maxABLSessionsPerAgent=200
    numInitialSessions=10
    maxAgents=2


In this case, Testapp will initially start 10 ABL Sessions and can potentially have up to 402 concurrent users in the database if connected via shared memory.  

The database would have to be configured to handle 402 total PASOE users + the existing ABL and SQL users outside of PASOE + 15 buffer user slots for internal processes like a backup. Please refer to the following KB article for more information on configuring the database: How to set the values for the startup parameters -Ma, -Mn and -n

Workaround
Notes
Keyword Phrase
Last Modified Date8/27/2024 10:08 AM

Powered by