Skip to main content

Communication between Queue Managers

Communication between Queue Managers in MQ 7.5

Creating MQ connection between two queue managers, QMA & QMB

1. Creating queue manager QMA

ALTER QMGR +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.19.41) +
   CCSID(437) +
   CLWLUSEQ(LOCAL) +
*  COMMANDQ(SYSTEM.ADMIN.COMMAND.QUEUE) +
*  CRDATE(2018-05-19) +
*  CRTIME(15.19.41) +
   DEADQ('QMA.DLQ') +
   DEFXMITQ('QMA') +
*  PLATFORM(WINDOWSNT) +
*  QMID(QMA_2018-05-19_15.19.41) +
   SSLCRYP(' ') +
   SSLKEYR('C:\Program Files\IBM\WebSphere MQ\qmgrs\QMA\ssl\key') +
   SUITEB(NONE) +
*  VERSION(07050002) +
   FORCE

DEFINE LISTENER('LISTENER.TCP') TRPTYPE(TCP) CONTROL(QMGR) +
   PORT(1424) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.20.15) +
   REPLACE

2. Creating queue manager QMB

ALTER QMGR +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.21.08) +
   CCSID(437) +
   CLWLUSEQ(LOCAL) +
*  COMMANDQ(SYSTEM.ADMIN.COMMAND.QUEUE) +
*  CRDATE(2018-05-19) +
*  CRTIME(15.21.08) +
   DEADQ('QMB.DLQ') +
   DEFXMITQ('QMB') +
*  PLATFORM(WINDOWSNT) +
*  QMID(QMB_2018-05-19_15.21.08) +
   SSLCRYP(' ') +
   SSLKEYR('C:\Program Files\IBM\WebSphere MQ\qmgrs\QMB\ssl\key') +
   SUITEB(NONE) +
*  VERSION(07050002) +
   FORCE

DEFINE LISTENER('LISTENER.TCP') TRPTYPE(TCP) CONTROL(QMGR) +
   PORT(1434) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.21.30) +
   REPLACE

3. Create a local queues
on QMA -
DEFINE QLOCAL('Queue.A') +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.50.23) +
*  CRDATE(2018-05-19) +
*  CRTIME(15.50.23) +
*  CURDEPTH(2) +
   DEFPSIST(YES) +
   DISTL(NO) +
   MAXDEPTH(5000) +
   REPLACE

on QMB -
DEFINE QLOCAL('Queue.B') +
*  ALTDATE(2018-05-19) +
*  ALTTIME(16.18.58) +
*  CRDATE(2018-05-19) +
*  CRTIME(16.18.58) +
   DEFPSIST(YES) +
   DISTL(NO) +
   MAXDEPTH(5000) +
   REPLACE

DEFINE QREMOTE('RM.Q.A') +
*  ALTDATE(2018-05-19) +
*  ALTTIME(16.02.21) +
   DEFPSIST(YES) +
   RQMNAME('QMA') +
   RNAME('Queue.A') +
   XMITQ('SYSTEM.CLUSTER.TRANSMIT.QUEUE') +
   REPLACE


4. Create Sender and Receiver channels

on QMA -

DEFINE CHANNEL('QMA.QMB') +
   CHLTYPE(SDR) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(16.00.00) +
   CONNAME('localhost(1434)') +
   DISCINT(6000) +
   TRPTYPE(TCP) +
   XMITQ('SYSTEM.CLUSTER.TRANSMIT.QUEUE') +
   REPLACE

DEFINE CHANNEL('QMB.QMA') +
   CHLTYPE(RCVR) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.25.40) +
   TRPTYPE(TCP) +
   REPLACE

on QMB - 
DEFINE CHANNEL('QMA.QMB') +
   CHLTYPE(RCVR) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(15.24.41) +
   TRPTYPE(TCP) +
   REPLACE

DEFINE CHANNEL('QMB.QMA') +
   CHLTYPE(SDR) +
*  ALTDATE(2018-05-19) +
*  ALTTIME(16.00.33) +
   CONNAME('localhost(1424)') +
   DISCINT(6000) +
   TRPTYPE(TCP) +
   XMITQ('SYSTEM.CLUSTER.TRANSMIT.QUEUE') +
   REPLACE

5. Test

Put the message on the remote queue RM.Q.A of QMB and check the queue depth of Queue.A on QMA.


Comments

Popular posts from this blog

Managing High load failure scenarios for the Aggregation node in WMB message flows A common scenario in WMB message flows is when the aggregation message flows call multiple validation  services which are supposed to return a reply within 2 minutes. In normal scenarios, 10 to 50 requests are handled per minute. In high volume load scenarios, more than 100 requests are received per minute which leads to the failure of aggregation message flows. The aggregate replies from validation services will pile up on the aggregation reply queues making any new requests impossible. The piled up requests have to be cleared and only then the failed requests can be retried using a retry message flow which reads the aggregation requests from the input backout queue and processes them once again. This issue requires attention from IBM and can be fixed by having queue depth monitors and triggers on the aggregate request and reply queues. I would like to bring this issue to the notice of IBM

Accessing the DB (database) from a compute node in a message flow in WMB

Accessing the DB from a compute node in a message flow in WMB 1. Add the datasource name in the oracle ini files 2. Run the mqsetdbparms command >>-mqsisetdbparms-- BrokerName -- -n -- ResourceName ---------------> >-- -u -- UserId -------------------------------------------------> >--+- -p -- Password ------------------------------+--+-----+----><    '- -i -- SSHIdentityFile --+------------------+-' '- -f-'        '- -r -- Passphrase -'     3. Configure the DSN name in the compute node and run the sql query through the compute node