Home

 

Broker configuration parameters

MaxMsgRetryCount=number

When the broker fails to process a command message under syncpoint (for example a publish message that cannot be delivered to a subscriber because the subscriber queue is full and it is not possible to put the publication to the dead-letter queue), the unit of work is backed out and the command retried this number of times before the broker attempts to process the command message according to its report options instead.

The default is MaxMsgRetryCount=5.

StreamsPerProcess=number

The broker consists of a broker main process (runmqbrk) and a number of broker worker processes (amqfcxba). Each worker process is capable of supporting one or more streams. Depending upon the broker configuration (for example the operating system, number of streams, number of publishers, subscribers and retained messages, whether a non-fastpath routing exit is in use), varying this number can alter capacity or throughput (or both).

If you have a large number of lightly loaded streams, increase this value.

The defaults are:

AIX

  • StreamsPerProcess=10   (RoutingExitConnectType=Standard)

  • StreamsPerProcess=1    (RoutingExitConnectType=Fastpath)

  • StreamsPerProcess=1    (no routing exit)

HP-UX, Linux, and Solaris

  • StreamsPerProcess=10

Windows

  • StreamsPerProcess=10

OpenCacheSize=number

Each broker stream thread (2 threads for each stream) keeps a cache of recently used open queues. This parameter specifies the maximum number of queues in the cache.

The default is OpenCacheSize=128.

OpenCacheExpiry=number

Each broker stream thread (2 threads for each stream) keeps a cache of recently used open queues. If a queue in the cache is not used for approximately OpenCacheExpiry seconds, the queue is removed from the cache (closed).

The default is OpenCacheExpiry=300.

PublishBatchSize=number

The broker normally processes publish messages within syncpoint. It can be inefficient to commit each publication individually, and in some circumstances the broker can process multiple publish messages in a single unit of work. This parameter specifies the maximum number of publish messages that can be processed in a single unit of work.

The default is PublishBatchSize=5.

PublishBatchInterval=number

The broker normally processes publish messages within syncpoint. It can be inefficient to commit each publication individually, and in some circumstances the broker can process multiple publish messages in a single unit of work. This parameter specifies the maximum time (in milliseconds) between the first message in a batch and any subsequent publication included in the same batch. A batch interval of 0 indicates that up to PublishBatchSize messages can be processed, provided that the messages are available immediately.

The default is PublishBatchInterval=0.

ChkPtMsgSize=number

The broker stores individual publisher and subscriber registrations as messages on its internal queues. Periodically, it might consolidate a number of these registrations into a smaller number of larger messages called checkpoint messages. This action is called checkpointing and is performed to reduce the number of messages that need to be read to restore the publisher and subscriber registrations at broker and stream restart.

The ChkPtMsgSize parameter determines the default size of each checkpoint message in bytes, which in turn determines the number of registrations that each checkpoint message can contain.

The default is ChkPtMsgSize=100000.

ChkPtActiveCount=number

The broker stores individual publisher and subscriber registrations as messages on its internal queues. Periodically it might consolidate a number of these registrations into a smaller number of larger messages called checkpoint messages. This action is called checkpointing and is performed to reduce the number of messages that need to be read to restore the publisher and subscriber registrations at broker and stream restart.

The number of changes that need to be made to part of the registration state of an individual stream during normal broker operation before checkpointing is considered for that part depends on the ChkPtActiveCount parameter.

The default is ChkPtActiveCount=400. A lower value makes checkpointing occur more frequently. A higher value makes checkpointing occur less frequently. A value of 0 disables checkpointing completely during normal operation and would be applicable if checkpoint activity was having an adverse effect on broker throughput.

ChkPtRestartCount=number

The broker stores individual publisher and subscriber registrations as messages on its internal queues. Periodically it might consolidate a number of these registrations into a smaller number of larger messages called checkpoint messages. This action is called checkpointing and is performed to reduce the number of messages that need to be read to restore the publisher and subscriber registrations at broker and stream restart.

The number of changes that need to have been made to part of the registration state of an individual stream during broker or stream restart before checkpointing is considered for that part depends on the ChkPtRestartCount parameter.

The default is ChkPtRestartCount=40. This is lower than the ChkPtActiveCount on the assumption that stream or broker restart is a more suitable time for the registration state to be checkpointed. A value of 0 disables checkpointing completely during restart.

RoutingExitPath=[path]module_name(function_name)

Before the broker sends a publication to a subscriber, the broker invokes the exit identified by the RoutingExitPath (if any).

The default is no routing exit.

RoutingExitConnectType=FASTPATH|STANDARD

If the broker is configured to use a routing exit, the exit runs within a broker process. If the exit conforms to the requirements of a fastpath application (MQCNO_FASTPATH_BINDING), the broker process can use a fastpath connection to the queue manager. This attribute informs the broker if the exit meets the standards necessary for a fastpath application.
Note:
This attribute is relevant only if a RoutingExitPath is specified. For performance reasons RoutingExitConnectType=FASTPATH is desirable.

The default is RoutingExitConnectType=STANDARD.

RoutingExitAuthorityCheck=yes|no

Before the broker sends a publication to a subscriber the broker must have validated the subscribers authority to write to the subscriber queue. If the routing exit changes the message destination, the authority check already performed by the broker is not valid. This attribute informs the broker if the authority check should be repeated for any changed destination.
Note:
The performance implications of setting RoutingExitAuthorityCheck=yes are considerable if the routing exit frequently changes the destination.

The default is RoutingExitAuthorityCheck=no.

RoutingExitData=string

If the broker is using a routing exit, the broker invokes the routing exit passing an MQPXP structure as input. The data specified using this attribute is provided in the ExitData field. The string can be up to MQ_EXIT_DATA_LENGTH characters in length.

The default is 32 blank characters.

SyncPointIfPersistent=yes|no

If this attribute is specified, when the broker reads a publish or delete publication message from a stream queue during normal operation the broker specifies MQGMO_SYNCPOINT_IF_PERSISTENT. This makes the broker receive nonpersistent messages outside syncpoint. If the broker receives a publication outside syncpoint, the broker forwards that publication to subscribers known to the broker outside syncpoint.

When using SyncPointIfPersistent=yes it is possible that a nonpersistent publication might not be delivered to all subscribers known to a broker (for example, if an immediate broker shutdown occurred while a publish message was being processed). If SyncPointIfPersistent=yes is specified, the broker performance for publishing nonpersistent publications improves.

The default is SyncPointIfPersistent=yes.

DiscardNonPersistentInputMsg=yes|no

If the broker cannot process a nonpersistent input message, the broker might attempt to write the input message to the dead-letter queue (depending on the report options of the input message). If the attempt to write the input message to the dead-letter queue fails, and the MQRO_DISCARD_MSG report option was specified on the input message or DiscardNonPersistentInputMsg=yes, the broker discards the input message. If DiscardNonPersistentInputMsg=no is specified, the broker will only discard the input message if the MQRO_DISCARD_MSG report option was set in the input message.

The defaults are:

  • DiscardNonPersistentInputMsg=no if SyncPointIfPersistent=no.

  • DiscardNonPersistentInputMsg=yes if SyncPointIfPersistent=yes.

Note:
If SyncPointIfPersistent=yes is set, DiscardNonPersistentInputMsg=no must not be set.

DLQNonPersistentResponse=yes|no

If the broker attempts to generate a response message in response to a nonpersistent input message, and the response message cannot be delivered to the reply-to queue, this attribute indicates whether the broker should write the undeliverable response message to the dead-letter queue.

The default is DLQNonPersistentResponse=yes.

DiscardNonPersistentResponse=yes|no

If the broker attempts to generate a response message in response to a nonpersistent input message, and the response message cannot be delivered to the reply-to queue or written to the dead-letter queue, this attribute indicates whether the broker can discard the undeliverable response message.

The default is:

  • DiscardNonPersistentResponse=no if SyncPointIfPersistent=no.

  • DiscardNonPersistentResponse=yes if SyncPointIfPersistent=yes.

Note:
If SyncPointIfPersistent=yes is set, DiscardNonPersistentResponse=no must not be set.

DLQNonPersistentPublication=yes|no

If the broker fails to send a nonpersistent publication to a subscriber, this attribute indicates whether the broker should put the publication to the dead-letter queue.

The default is DLQNonPersistentPublication=yes.

DiscardNonPersistentPublication=yes|no

If the broker fails to send a nonpersistent publication to a subscriber and cannot write the publication to the dead-letter queue, this attribute indicates whether the broker can discard the publication.

The default is:

  • DiscardNonPersistentPublication=no if SyncPointIfPersistent=no.

  • DiscardNonPersistentPublication=yes if SyncPointIfPersistent=yes.

Note:
If SyncPointIfPersistent=yes is set, DiscardNonPersistentPublication=no must not be set.

GroupId=group_identifier

Specifies the group that owns the stream queues created by the broker, except the admin stream (for example, SYSTEM.BROKER.DEFAULT.STREAM). Users in this group can access the stream queues. If this group does not exist, the broker cannot run.

If not specified, the following defaults are used (this normally means that all users can access the stream queues):

AIX, Linux, and Solaris

  • GroupId=nobody

HP-UX

  • GroupId=nogroup

iSeries

  • GroupId=*PUBLIC

Windows

  • GroupId=Users

Note:
For WebSphere MQ for Windows, the GroupId is set to 'Users' or the national language equivalent.

JmsStreamPrefix=JMS

Identifies stream names. For example, stream names beginning with JMS are restricted to JMS semantics.

The default is JMS.

We can use JMS characteristics to improve your broker performance.



 

Home