Use the clrmqbrk command to clear the broker's memory of a neighboring (parent or child) target broker. On iSeries, the command name is CLRMQMBRK. Use this command in exceptional circumstances only.
The broker cancels all subscriptions from the target broker. The broker must be stopped when this command is issued. The command is synchronous, and when it has completed the broker can be restarted normally. No messages are read from any of the input queues.
After restart, the broker detects any messages on its input queues that came from this broker, and processes them according to their report options.
You need to clear the memory of the broker at each end of the connection. This means that you must issue this command (or an equivalent) to both the parent and the child broker. If you do not clear the memory of the broker at each end of the connection, one broker continues to send messages to the other broker, which are processed according to their report options. This might lead to a build-up of messages on the dead-letter queue, and unnecessary report messages being sent across the network.
Deleting a broker with dltmqbrk requires first deleting its children. If this is impractical (for example, if the child broker is no longer reachable) the clrmqbrk command can be used to make the child broker appear deleted to its parent so that the parent can be deleted. The child broker must be deleted whenever practical.
You can also use this command at the child with the -p parameter to break the link with its parent. Using such a pair of clrmqbrk commands, one at the child and one at the parent, causes the child and its descendants (if any), together with their publishers and subscribers, to be isolated from the rest of the network. The child now becomes the root node of a hierarchy. It can operate this way or be restarted with another parent (or even with its old parent) provided the new parent is not also a descendant.
AIX, HP-UX, Linux, Solaris, and Windows
>>-clrmqbrk--+- -p --------------+-- -m QMgrName--------------->< '- -c ChildQMgrName-'
AIX, HP-UX, Linux, Solaris, and Windows
iSeries
>>-CLRMQMBRK--+- BRKPARENT--+-(*YES)-+---+----------------------> | '-(*NO)--' | '- CHILDMQM(ChildQMgrName)-' >-- MQMNAME(QMgrName)------------------------------------------><
iSeries
In a broker network like this:
grandparentQM | parentQM | childQM
remove the parentQM from the network like this:
breaks the link between the broker on grandparentQM and its child on parentQM.
breaks the link between the broker on parentQM and its parent.
breaks the link between the broker on parentQM and its child on childQM.
breaks the link between the broker on childQM and its parent.
If the broker on childQM is started by strmqbrk -m childQM -p grandparentQM at restart, the broker network now looks like this:
grandparentQM | childQM
If you do not issue the clrmqbrk command at both ends of a connection, for example, by omitting step 3 above, and you try to reconnect the brokers on parentQM and childQM at restart, reconnection fails with an AMQ5839 message at the parent, an AMQ5822 message at the child, and an AMQ5839 FDC file is generated. If you issue the clrmqbrk command at both ends of the connection now, it will not fix the problem. You must issue the following commands, assuming that the parent and child brokers are running with channels between them:
Wait a few seconds for the failed registration message to reach the child.
Note that there is no parent argument. Wait a few seconds for the failed registration message to be removed.
These commands restore the connection between the brokers on parentQM and childQM and leave the network looking like this:
parentQM | childQM
Notices |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
zclemqb |