How to set the values for the startup parameters -Ma, -Mn and -n

« Go Back


Article Number000020228
EnvironmentProduct: Progress
Version: 8.x, 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Question/Problem Description
How to set the values for the startup parameters -Ma, -Mn and -n
How to plan the Maximum Clients Per Server (-Ma)?
How to calculate the numbers of clients per server?
What is the recommended number of clients per server?
Tuning with -Mn, -Ma, -Mi and -n parameters
Example of how all the "-Mn", "-Ma", "-Mi" and "-n" are used with each other
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number

The parameters that impact the number of connection to a single database are:

"-n" Parameter: Sets the maximum numbers of connections to the database, that counts all, remote and local connections.
"-Mi" Parameter: Sets the minimum number of remote connections that should to be connected to a server process before broker spawns a new server if -Mn has not yet being reached.
"-Mn" Parameter: Sets the maximum number of servers that can be started. 
       (In Progress Explorer the above reference is the same as the Maximum servers within the Configuration properties)
"-Ma" Parameter: Sets the maximum number of remote connections that a server can have.
"-Mpb" Parameter:  Sets the maximum number of servers that a particular broker can spawn. 
       (In Progress Explorer the above reference is the same as the number of servers in the servergroup properties)

When running, the database will increase the count of sessions (-n value) for:

Each process connected to shared memory:

  • 1 per remote server
  • 1 per auxiliary process (page writer -- biw / apw -- and watchdog)
  • 1 per self-service client
  • 1 for the broker processes (1 for the main broker + 1 per additional broker)

Each remote client connected to a server.

To set -Ma, -Mn and -n startup parameters appropriately define:

  1. The maximum number of concurrent remote users.
  2. The maximum number of concurrent local users (self service clients).
  3. Set -Ma as high as possible but lower than 11 (increasing above 10 clients per server may degrade performance, decreasing it under 5 will require more server processes creating unnecessary overhead).

The default value for -Ma is 5 and its maximum value is 2048, this value represents the maximum number of queued client processes. If the application requires long and heavy queries and there is performance degradation, -Ma may need to be decreased.

  1. Calculate -Mn (the number of required servers) by dividing the maximum remote users by the value of -Ma, plus 1 for each extra secondary broker if any.
  2. The product value(-Ma) * value(-Mn) must be equal to the maximum number of remote users.
  3. The formula for -n is: value(-n) = (maximum # of remote users) + (maximum # of local users) + 2.

Where the value "2" in the formula above will be used by proMon and proShut utilities connect to the DB.

  1.  Keep the following relation:

value(-Ma) * value (-Mn) < value(-n)

Example 1:

Remote users: 32
Local users: 15

Value(-Mn)=(Remote users)/Value(-Ma)= 32/8 = 4 (plus 1 for each extra secondary broker if any)

Set -Mn 4, -Ma 8, -n 49

Example 2:

In this example assume that 40 users are needed and 8 extra connections are given for promon and other background processes like the Watchdog, the Asynchronous Page Writers, etc.

proserve sports2000 -S prosv00 -Mi 3 -Ma 4 -Mn 13 -n 60

The sports2000 should be replaced with the dbname, prosv00 replaced with the correct port number or service name for remote connections.  When using multiple brokers, the count of servers (-Mn) can be split across brokers using -Mpb:

proserve sports2000 -S prosv00 -n 60 -Mn 13 -Mi 4 -Mpb 6
proserve sports2000 -m3 -S prosv01 -Mi 4 -Mpb 6

The "-Mpb" setting of 6 for each broker allows each port to spawn a maximum of 6 servers each. -Mn is set to the total number of remote servers that can be spawned [6 for the primary broker + 6 for the secondary broker + 1 for the secondary login broker since each secondary login  is counted as a server = 13].

Example 3:

The following example shows how to edit -Ma, -Mn and -n using OpenEdge Management and OpenEdge Explorer.

1.Open OpenEdge Explorer or OpenEdge Management.

2.Select the resources tab. 

User-added image

3.Select the database that needs to be edited

 User-added image

4. Select Configuration

 User-added image

5. Select configuration.<DBNAME>.defaultconfiguration 

User-added image

6. Select Edit.
    Edit Max Users and Max Servers to the required number.
    Select Save.
    Select Configuration to return to the Configuration Page.

User-added image

7. Select servergroup.<DBNAME>.defaultconfiguration.defaultservergroup

 User-added image

8. Select Edit

 User-added image

9. Edit Maximum clients per server and Minimum clients per server to the required amount and select save.

User-added image

 10. For multiple broker configurations repeat steps 5 through 9, as described in our Article 000043767: How to configure a secondary SQL broker for an OEM/OEE Managed database?


References to other Documentation:

Progress Database Administration Guide and Reference, "PART III", 18 Database Startup Parameters

Progress Article(s):
000021731, How to set up a secondary login broker for SQL-92 connections for Progress 9.1D and above
000043767, How to configure a secondary SQL broker for an OEM/OEE Managed database?

Note that before version 9.1x the SQL broker could not serve more than one session per server.
Last Modified Date8/2/2018 11:14 PM

Did this article resolve your question/issue?


Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025