gtpa2m1f | Application Programming |
The administrative functions in the TPF implementation of an MQSeries local queue manager are similar to, but not exactly the same as, other platforms. Some of the functions are unique because of the loosely coupled nature of TPF systems, while other differences result because TPF maintains some of the MQSeries object definitions in system heap for performance.
When you define the MQSeries profile, the TPF system automatically provides a system queue called DEAD.LETTER.QUEUE and a SPECIAL.RECOVERY.QUEUE; these are the only default queues provided. Other platforms provide several other default queues. Any message that arrives at the TPF system whose destination queue name cannot be resolved is put on the dead-letter queue. All users are expected to create a monitor for the dead-letter queue that determines what to do with messages that arrive there. The special-recovery queue is used by transaction services to recover uncommitted messages on processor shared queues.
In a loosely coupled environment, normal local queues can be shared between processors or they can be processor unique. When you define a local queue by using the ZMQSC DEF QL command, you can specify that you want all processors to see the queue by specifying a value of YES for the COMMON parameter. When you specify YES for the COMMON parameter, a single TPF collection support (TPFCS) persistent identifier (PID) is used for the queue that all of the processors can see. Messages added to the queue from one processor can be retrieved from another processor. If you specify a value of NO for the COMMON parameter, the queue resides in memory for each processor and is made persistent using the TPF recovery log.
Once you have specified whether the queue is shared or not, you cannot change this attribute using the ZMQSC ALT QL command. To change it, you will need to delete the queue and redefine it with the new attribute.
All transmission queues are processor unique because they all are associated with channels that are also, by definition, processor unique. Remote queues are really virtual and actually get resolved to physical transmission queues.
Channels, by nature, are processor unique. Each processor establishes an MQSeries channel connection to an adjacent MQSeries system. As a matter of convenience, the TPF system provides a CPU parameter for the ZMQSC DEF CHL and ZMQSC ALT CHL commands. Therefore, if you are on processor A, you can define or change channels on processor B even while processor B is down.
Because channel definitions reside in memory and you do not want to lock the tables for each access, changes to these definitions do not occur immediately. For changes to channel definitions, the channel must be stopped and restarted.