I'm not seeing the expected results. I need some help to figure out what I'm doing wrong. This is what I've tried so far:
Defined a uniform cluster with the two qmgrs set as QC90 and QC91. Identical commands are run on each so they are uniform (other than qmgr names).
I've defined channel CLNT.QC9 for the clients to use when connecting. The queue name is MQDEV.QUEUE.V1.
*
* Channel clients use to connect.
DEFINE CHANNEL('CLNT.QC9') CHLTYPE(SVRCONN) SHARECNV(1) REPLACE
SET CHLAUTH('CLNT.QC9') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(CHANNEL) CHCKCLNT(REQUIRED) DESCR('Allows connection via APP channel') ACTION(REPLACE)
*
* Local queue definitions:
DEFINE QLOCAL('MQDEV.QUEUE.V1') CLWLUSEQ(ANY) REPLACE
Both qmgrs are running in separate Docker containers. I've verified that these are communicating over the sdr/rcvr channels. For example, from QC91:
8 : dis chstatus(D*)
AMQ8417I: Display Channel Status details.
CHANNEL(DEVUC_QC91) CHLTYPE(CLUSRCVR)
CONNAME(172.19.0.4) CURRENT
RQMNAME(QC90) STATUS(RUNNING)
SUBSTATE(RECEIVE)
AMQ8417I: Display Channel Status details.
CHANNEL(DEVUC_QC90) CHLTYPE(CLUSSDR)
CONNAME(172.19.0.4(9414)) CURRENT
RQMNAME(QC90) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
I haven't connected any receiving clients since I want to examine the queue depth at the end of a series of PUTs. My PUT client is NodeJS-based (mq-mqi-nodejs). When I run the client I'm specifying these options on the MQOPEN:
let od = new mq.MQOD();
od.ObjectName = queueName;
od.ObjectType = MQC.MQOT_Q;
let openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_BIND_NOT_FIXED;
mq.Open(hConn, od, openOptions, function (err, hObj) {
...
}
... and then MQPUT is called as follows:
let mqmd = new mq.MQMD();
mqmd.Persistence = false;
mqmd.PutApplName = pgmName;
let pmo = new mq.MQPMO();
pmo.Options = MQC.MQPMO_NO_SYNCPOINT |
MQC.MQPMO_NEW_MSG_ID |
MQC.MQPMO_NEW_CORREL_ID;
mq.PutSync(hObj, mqmd, pmo, msg, function (err) {
...
}
When I run the put command and have it queue up some number of messages I see all of these are going to the queue defined on QC90 and none ever go to QC91. Eventually, QC90's queue will hit the max depth of 5000 and MQPUT begins to fail with "queue is full" message.
What am I missing?
Thanks,
Jim
------------------------------
Jim Creasman
------------------------------