The following Ten Commandments (and Amendments) have been collected from the MQ ListServer. If developers and MQAdmins follow these Commandments and Amendments then they will have far, far fewer headaches (and 2:00 AM phone calls).
Ten Commandments
- Thou shalt not use a queue as a database.
- Thou shalt backup your pagesets, filesystems, and logs.
- Thou shalt routinely apply maintenance to your IBM MQ systems.
- Thou shalt use MQCLOSE and MQDISC when terminating an application.
- Thou shalt not use MQGET with WAIT UNLIMITED without specifying MQGMO_FAIL_IF_QUIESCING.
- Thou shalt secure all client-channel connections to a queue manager.
- Thou shalt create standard naming conventions.
- Thou shalt provide systems management tools for administrators and users.
- Thou shalt not create a IBM MQ network without mapping out all connections and object relations on paper first.
- Thou shalt not attempt to apply asynchronous methods to all problems simply because IBM MQ is a wonderful product.
Amendments
- Thou shalt apply security to queue objects.
- Thou shalt have JMS applications capture and log the LinkedException for all JMSExceptions.
- Thou shalt have Unit Of Work (UOW) use the minimum amount of resources (short in duration).
- Thou shalt not use MQOPEN, MQGET or MQPUT without specifying MQ*O_FAIL_IF_QUIESCING (where MQ*O is MQOO or MQGMO or MQPMO).
- Thou shalt have triggered applications completely drain a queue before exiting.
- Thou shalt have applications transfer unknown or invalid messages to an application back-out queue and not to the Queue Manager’s Dead Letter Queue.
- Thou shalt have client applications automatically reconnect to a queue manager after any type of failure.
2 Responses to Ten Commandments of IBM MQ