Feedback
Did this article resolve your question/issue?

   

Article

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

« Go Back

Information

 
TitleHow to set the values for the startup parameters -Ma, -Mn and -n
URL NameHow-to-set-the-values-for-the-startup-parameters-Ma-Mn-and-n
Article Number000136998
EnvironmentProduct: Progress
Version: 8.x, 9.x
Product: OpenEdge
Version: All Supported Versions
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?
How to set the values for the startup parameters -n, -Mn, -Mpb, and -Ma.
Tuning with -Mn, -Ma, -Mi and -n parameters
Example of how all the "-Mn", "-Ma", "-Mi" and "-n" are used with each other

Common errors associated with incorrectly configuring -n, -Mn, -Mpb, and -Ma: (748), (5291), and (1154).
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution

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)
  • 1 per online backup (only 1 is expected but should be factored into -n)
  • 1 per promon session

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(-Ma)=8 
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].

For further information refer to Article  How to set up a secondary login broker for SQL-92 connections for Progress/OpenEdge database?  

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 Article:

Workaround
Notes
References to other Documentation:

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

Progress Articles:
Related to configuration:
 How to set up a secondary login broker for SQL-92 connections for Progress/OpenEdge database?
Note that before version 9.1x the SQL broker could not serve more than one session per server.
 How to configure a secondary SQL broker for an OEM/OEE Managed database?

Related to error messages:
 Default -Ma and -Mn does not allow -n remote users
 Error 5291 when connecting to a database.
 Error code: 0x80020009 when running a Crystal Report
 OE Architect application fails to connect to the database with error 748
 Getting errors (748) and (1154) due to -Mpb set too low
 
Last Modified Date5/12/2021 7:58 PM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.