Consultor Eletrônico



Kbase P21348: What is the -Mm parameter?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/3/2010
Status: Verified

GOAL:

What is the -Mm parameter?

GOAL:

How to use the -Mm parameter?

GOAL:

Where do you have to set the -Mm parameter ?

FACT(s) (Environment):

All Supported Operating Systems
Progress/OpenEdge Versions

FIX:

The -Mm parameter sets the standard message buffer size in bytes.

The Message Buffer Size (-Mm) parameter is relevant only for network protocols; it is ignored for messages passed using UNIX pipes or NETBIOS. -Mm controls message size between Progress database servers and the 4GL/ABL clients - there is no equivalent for SQL-92/ODBC clients. The -Mm sets the /maximum/ message size. It determines the size of buffers for sending and receiving that are allocated on both ends of the connection. Shorter messages are often sent.

From the Progress Startup Command and Parameter Reference Guide:

"PROGRESS uses message buffers to move records (messages) between servers and remote clients. Records (plus 40-byte headers) larger than the message buffer size are fragmented into multiple messages. If your database records are large, increase this parameter to avoid record fragmentation. However, if the network works more efficiently with small messages, reduce -Mm and fragment larger records.

The -Mm is not a connection parameter, it is a startup parameter that is only recognized if it appears either on the startup command line or in a parameter file. If you start a database using the -Mm parameter the client must also be started using with same -Mm setting. When you pass ?Mm in your client parameter string it will be applicable to all sessions of this client - so if that client session is connecting to multiple databases, these all need to be started with the same ?Mm parameter.

This parameter must be specified for each separate broker started for the database.

For example:

$ proserve dbname -Mm 4096 [-S <serviceName1> +other database startup parameters]
$ proserve dbname -m3 -Mm 4096 [-S <serviceName2> +other database startup parameters]
$ _probrkr -S <serviceName> -H <hostName> -Mm 8192

$ prowin32 dbname -Mm 4096 [-S <serviceName> +other client session startup parameters]

If the database brokers are being started under the AdminServer the -Mm parameter is set per broker in the "Message buffer size" entry:
Configuration Properties > Right mouse click the appropriate server group and select properties > Message buffer size

The multi-user default value is 1024, the minimum is 350, and the maximum can be 32600.