[IBM i]

Queue manager journals on IBM i

Use this information to understand how IBM® MQ for IBM i uses journals in its operation to control updates to local objects.

Each queue manager library contains a journal for that queue manager, and the journal has the name QM GRLIB/AMQ A JRN, where QM GRLIB is the name of the queue manager library, and A is a letter, A in the case of a single instance queue manager, that is unique to the queue manager instance.

QM GRLIB takes the name QM, followed by the name of the queue manager in a unique form. For example, a queue manager named TEST has a queue manager library named QMTEST. The queue manager library can be specified when creating a queue manager using the CRTMQM command.

Journals have associated journal receivers that contain the information being journaled. The receivers are objects to which information can only be appended and will fill up eventually.

Journal receivers use up valuable disk space with out-of-date information. However, you can place the information in permanent storage to minimize this problem. One journal receiver is attached to the journal at any particular time. If the journal receiver reaches its predetermined threshold size, it is detached and replaced by a new journal receiver. You can specify the threshold of journal receivers when you create a queue manager using CRTMQM and the THRESHOLD parameter.

The journal receivers associated with the local IBM MQ for IBM i journal exist in each queue manager library, and adopt a naming convention as follows:

AMQ Arnnnnn
where
A
is a letter A-Z. It is A for single instance queue managers. It varies for different instances of a multi-instance queue manager.
nnnnn
is decimal 00000 to 99999 that is incremented by 1 for the next journal in the sequence.
r
is decimal 0 to 9, that is incremented by 1 each time a receiver is restored.
The sequence of the journals is based on date. However, the naming of the next journal is based on the following rules:
  1. AMQArnnnnn goes to AMQAr(nnnnn+1), and nnnnn wraps when it reaches 99999. For example, AMQA099999 goes to AMQA000000, and AMQA999999 goes to AMQA900000.
  2. If a journal with a name generated by rule 1 already exists, the message CPI7OE3 is sent to the QSYSOPR message queue and automatic receiver switching stops.

    The currently-attached receiver continues to be used until you investigate the problem and manually attach a new receiver.

  3. If no new name is available in the sequence (that is, all possible journal names are on the system) you need to do both of the following:
    1. Delete journals no longer needed (see Journal management on IBM i ).
    2. Record the journal changes into the latest journal receiver using ( RCDMQMIMG ) and then repeat the previous step. This allows the old journal receiver names to be reused.

The AMQAJRN journal uses the MNGRCV(*SYSTEM) option to enable the operating system to automatically change journal receivers when the threshold is reached. For more information on how the system manages receivers, see IBM i Backup and Recovery.

The journal receiver's default threshold value is 100,000 KB. You can set this to a larger value when you create the queue manager. The initial value of the LogReceiverSize attribute is written to the LogDefaults stanza of the mqs.ini file.

When a journal receiver extends beyond its specified threshold, the receiver is detached and a new journal receiver is created, inheriting attributes from the previous receiver. Changes to the LogReceiverSize or LogASP attributes after a queue manager has been created are ignored when the system automatically attaches a new journal receiver

See Changing configuration information on IBM i for further details on configuring the system.

If you need to change the size of journal receivers after the queue manager has been created, create a new journal receiver and set its owner to QMQM using the following commands:

CRTJRNRCV JRNRCV(QM GRLIB/AMQ Arnnnnn) THRESHOLD(xxxxxx) +
TEXT('MQM LOCAL JOURNAL RECEIVER')
CHGOBJOWN OBJ(QM GRLIB/AMQ Arnnnnn) OBJTYPE(*JRNRCV) NEWOWN(QMQM)
where
QMGRLIB
Is the name of your queue manager library
A
Is the instance identifier (usually A).
rnnnnn
Is the next journal receiver in the naming sequence described previously
xxxxxx
Is the new receiver threshold (in KB)
Note: The maximum size of the receiver is governed by the operating system. To check this value look at the THRESHOLD keyword on the CRTJRNRCV command.
Now attach the new receiver to the AMQAJRN journal with the command:

CHGJRN JRN(QMGRLIB/AMQ A JRN) JRNRCV(QMGRLIB/AMQ Annnnnn)

See Journal management on IBM i for details on how to manage these journal receivers.