Configuration 3 describes how queue-sharing groups and shared queues can be used, with no effect on the backend payroll server application, to transfer messages between queue managers QMG1 and QMG3.
![]() |
The flow of operations is:
This configuration is certainly the simplest to configure. However, it should be noted that distributed queuing or intra-group queuing would need to be configured to transfer replies (generated by the payroll server application connected to queue manager QMG3) from queue manager QMG3 to queue manager QMG2, and then on to queue manager QMG1. (See What this example shows for the configuration used to transfer replies back to the payroll request application.)
The definitions required for Configuration 1 are as follows (please note that the definitions do not take into account triggering, and that only channel definitions for communication using TCP/IP are provided).
Remote queue definition
DEFINE QREMOTE(PAYROLL.QUERY) DESCR('Remote queue for QMG3') REPLACE + PUT(ENABLED) RNAME(PAYROLL) RQMNAME(QMG3) XMITQ(QMG2)
Transmission queue definition
DEFINE QLOCAL(QMG2) DESCR('Transmission queue to QMG2') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG2') XMITQ(QMG2) CONNAME('MVSQMG2(1415)')
This is the place where you should replace MVSQMG2(1415) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG2')
Reply-to queue definition
DEFINE QLOCAL(PAYROLL.REPLY) REPLACE PUT(ENABLED) GET(ENABLED) + DESCR('Reply queue for replies to payroll queries sent to QMG3')
Transmission queue definition
DEFINE QLOCAL(QMG1) DESCR('Transmission queue to QMG1') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED) DEFINE QLOCAL(QMG3) DESCR('Transmission queue to QMG3') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definitions (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG1') XMITQ(QMG1) CONNAME('WINTQMG1(1414)')
This is the place where you should replace WINTQMG1(1414) with your queue manager connection name and port.
DEFINE CHANNEL(QMG2.TO.QMG3) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG3') XMITQ(QMG3) CONNAME('MVSQMG3(1416)')
This is the place where you should replace MVSQMG3(1416) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG1') DEFINE CHANNEL(QMG3.TO.QMG2) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG3')
Local queue definition
DEFINE QLOCAL(PAYROLL) DESCR('Payroll query request queue') REPLACE + PUT(ENABLED) USAGE(NORMAL) GET(ENABLED) SHARE DEFINE QLOCAL(QMG2) DESCR('Transmission queue to QMG2') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definitions (for TCP/IP)
DEFINE CHANNEL(QMG3.TO.QMG2) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG2) XMITQ(QMG2) CONNAME('MVSQMG2(1415)')
This is the place where you should replace MVSQMG2(1415) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG3) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG2)
The definitions required for Configuration 2 are as follows (please note that the definitions do not take into account triggering, and that only channel definitions for communication using TCP/IP are provided). It is assumed that queue managers QMG2 and QMG3 are already configured to be members of the same queue-sharing group.
Remote queue definition
DEFINE QREMOTE(PAYROLL.QUERY) DESCR('Remote queue for QMG3') REPLACE + PUT(ENABLED) RNAME(PAYROLL) RQMNAME(QMG3) XMITQ(QMG2)
Transmission queue definition
DEFINE QLOCAL(QMG2) DESCR('Transmission queue to QMG2') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG2') XMITQ(QMG2) CONNAME('MVSQMG2(1415)')
This is the place where you should replace MVSQMG2(1415) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG2')
Reply-to queue definition
DEFINE QLOCAL(PAYROLL.REPLY) REPLACE PUT(ENABLED) GET(ENABLED) + DESCR('Reply queue for replies to payroll queries sent to QMG3')
Transmission queue definition
DEFINE QLOCAL(QMG1) DESCR('Transmission queue to QMG1') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED) DEFINE QLOCAL(SYSTEM.QSG.TRANSMIT.QUEUE) QSGDISP(SHARED) + DESCR('IGQ Transmission queue') REPLACE PUT(ENABLED) USAGE(XMITQ) + GET(ENABLED) INDXTYPE(CORRELID) CFSTRUCT('APPLICATION1') + DEFSOPT(SHARED) DEFPSIST(NO)
This is the place where you should replace APPLICATION1 with your defined CF structure name. Also note that this queue, being a shared queue, need only be defined on one of the queue managers in the queue sharing group.
Sender channel definitions (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(SDR) TRPTYPE(TCP) REPLACE + DESCR('Sender channel to QMG1') XMITQ(QMG1) CONNAME('WINTQMG1(1414)')
This is the place where you should replace WINTQMG1(1414) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG1')
Queue Manager definition
ALTER QMGR IGQ(ENABLED)
Local queue definition
DEFINE QLOCAL(PAYROLL) DESCR('Payroll query request queue') REPLACE + PUT(ENABLED) USAGE(NORMAL) GET(ENABLED) SHARE
Queue Manager definition
ALTER QMGR IGQ(ENABLED)
The definitions required for Configuration 3 are as follows (please note that the definitions do not take into account triggering, and that only channel definitions for communication using TCP/IP are provided). It is assumed that queue managers QMG2 and QMG3 are already configured to be members of the same queue-sharing group.
Remote queue definition
DEFINE QREMOTE(PAYROLL.QUERY) DESCR('Remote queue for QMG3') REPLACE + PUT(ENABLED) RNAME(PAYROLL) RQMNAME(QMG3) XMITQ(QMG2)
Transmission queue definition
DEFINE QLOCAL(QMG2) DESCR('Transmission queue to QMG2') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(SDR) TRPTYPE(TCP) + REPLACE DESCR('Sender channel to QMG2') XMITQ(QMG2) CONNAME('MVSQMG2(1415)')
This is the place where you should replace MVSQMG2(1415) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG2')
Reply-to queue definition
DEFINE QLOCAL(PAYROLL.REPLY) REPLACE PUT(ENABLED) GET(ENABLED) + DESCR('Reply queue for replies to payroll queries sent to QMG3')
Transmission queue definition
DEFINE QLOCAL(QMG1) DESCR('Transmission queue to QMG1') REPLACE + PUT(ENABLED) USAGE(XMITQ) GET(ENABLED)
Sender channel definitions (for TCP/IP)
DEFINE CHANNEL(QMG2.TO.QMG1) CHLTYPE(SDR) TRPTYPE(TCP) + REPLACE DESCR('Sender channel to QMG1') XMITQ(QMG1) CONNAME('WINTQMG1(1414)')
This is the place where you should replace WINTQMG1(1414) with your queue manager connection name and port.
Receiver channel definition (for TCP/IP)
DEFINE CHANNEL(QMG1.TO.QMG2) CHLTYPE(RCVR) TRPTYPE(TCP) + REPLACE DESCR('Receiver channel from QMG1')
Local queue definition
DEFINE QLOCAL(PAYROLL) QSGDISP(SHARED) DESCR('Payroll query request queue') + REPLACE PUT(ENABLED) USAGE(NORMAL) GET(ENABLED) SHARE + DEFSOPT(SHARED) DEFPSIST(NO) CFSTRUCT(APPLICATION1)
This is the place where you should replace APPLICATION1 with your defined CF structure name. Also note that this queue, being a shared queue, need only be defined on one of the queue managers in the queue sharing group.
No definitions are required on QMG3.