This section describes how to perform load balancing by moving a shared queue from one Coupling Facility structure to another. It also describes how to move a non-shared queue to a shared queue, and how to move a shared queue to a non-shared queue.
When you move a queue, you need to define a temporary queue as part of the procedure. This is because every queue must have a unique name, so you cannot have two queues of the same name, even if the queues have different queue dispositions. WebSphere MQ tolerates having two queues with the same name (as in step 2), but you cannot use the queues.
To move queues and their messages from one CF structure to another, use the MQSC MOVE QLOCAL command (described in WebSphere MQ Script (MQSC) Command Reference). When you have identified the queue or queues that you want to move to a new CF structure, use the following procedure to move each queue:
DEFINE QL(TEMP_QUEUE) LIKE(QUEUE_TO_MOVE) PUT(ENABLED) GET(ENABLED) QSGDISP(QMGR)
MOVE QLOCAL(QUEUE_TO_MOVE) TOQLOCAL(TEMP_QUEUE)
DELETE QLOCAL(QUEUE_TO_MOVE)
DEFINE QL(QUEUE_TO_MOVE) LIKE(TEMP_QUEUE) CFSTRUCT(NEW) QSGDISP(SHARED)
When the queue is redefined, it is based on the temporary queue created in step 3.
MOVE QLOCAL(TEMP) TOQLOCAL(QUEUE_TO_MOVE)
DELETE QL(TEMP_QUEUE)
Figure 42 shows a sample job for moving a queue from one CF structure to another.
//UTILITY EXEC PGM=CSQUTIL,PARM=('CSQ1') //STEPLIB DD DSN=thlqual.SCSQANLE,DISP=SHR // DD DSN=thlqual.SCSQAUTH,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * COMMAND DDNAME(MOVEQ) /* //MOVEQ DD * ALTER QL(QUEUE_TO_MOVE) PUT(DISABLED) DELETE QL(TEMP_QUEUE) PURGE DEFINE QL(TEMP_QUEUE) LIKE(QUEUE_TO_MOVE) PUT(ENABLED) GET(ENABLED) QSGDISP(QMGR) MOVE QLOCAL(QUEUE_TO_MOVE) TOQLOCAL(TEMP_QUEUE) DELETE QL(QUEUE_TO_MOVE) DEFINE QL(QUEUE_TO_MOVE) LIKE(TEMP_QUEUE) CFSTRUCT(NEW) QSGDISP(SHARED) MOVE QLOCAL(TEMP_QUEUE) TOQLOCAL(QUEUE_TO_MOVE) DELETE QL(TEMP_QUEUE) /*
The procedure for moving a non-shared queue to a shared queue is very similar to the procedure for moving a queue from one CF structure to another (see Moving a queue from one Coupling Facility structure to another). Figure 43 gives a sample job to do this.
//UTILITY EXEC PGM=CSQUTIL,PARM=('CSQ1') //STEPLIB DD DSN=thlqual.SCSQANLE,DISP=SHR // DD DSN=thlqual.SCSQAUTH,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * COMMAND DDNAME(MOVEQ) /* //MOVEQ DD * ALTER QL(QUEUE_TO_MOVE) PUT(DISABLED) DELETE QL(TEMP_QUEUE) PURGE DEFINE QL(TEMP_QUEUE) LIKE(QUEUE_TO_MOVE) PUT(ENABLED) GET(ENABLED) MOVE QLOCAL(QUEUE_TO_MOVE) TOQLOCAL(TEMP_QUEUE) DELETE QL(QUEUE_TO_MOVE) DEFINE QL(QUEUE_TO_MOVE) LIKE(TEMP_QUEUE) CFSTRUCT(NEW) QSGDISP(SHARED) MOVE QLOCAL(TEMP_QUEUE) TOQLOCAL(QUEUE_TO_MOVE) DELETE QL(TEMP_QUEUE) /*
The procedure for moving a shared queue to a non-shared queue is very similar to the procedure for moving a queue from one CF structure to another (see Moving a queue from one Coupling Facility structure to another). Figure 44 gives a sample job to do this.
//UTILITY EXEC PGM=CSQUTIL,PARM=('CSQ1') //STEPLIB DD DSN=thlqual.SCSQANLE,DISP=SHR // DD DSN=thlqual.SCSQAUTH,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD * COMMAND DDNAME(MOVEQ) /* //MOVEQ DD * ALTER QL(QUEUE_TO_MOVE) PUT(DISABLED) DELETE QL(TEMP_QUEUE) PURGE DEFINE QL(TEMP_QUEUE) LIKE(QUEUE_TO_MOVE) PUT(ENABLED) GET(ENABLED) QSGDISP(QMGR) MOVE QLOCAL(QUEUE_TO_MOVE) TOQLOCAL(TEMP_QUEUE) DELETE QL(QUEUE_TO_MOVE) DEFINE QL(QUEUE_TO_MOVE) LIKE(TEMP_QUEUE) STGCLASS(NEW) QSGDISP(QMGR) MOVE QLOCAL(TEMP_QUEUE) TOQLOCAL(QUEUE_TO_MOVE) DELETE QL(TEMP_QUEUE) /*
Notices |
Downloads |
Library |
Support |
Feedback
![]() ![]() |
csq84hv |