Hi Jim,
One further thought on Morag's response if you haven't used group names in a CCDT before.
In you queue manager name in the MQCONNX, prefix the name with * (asterisk). That tells MQ to search the CCDT for a queue manager name values which is the string following the asterisk, but to not check that the actual queue manager matches the name. Otherwise when the client connects, it checks the actual queue manager name against the string from MQCONNX and fails because they are different.
Regards,
------------------------------
Neil Casey
Senior Consultant
Syntegrity Solutions
Melbourne, Victoria
IBM Champion (Cloud) 2019-21
------------------------------
Original Message:
Sent: Tue June 15, 2021 04:37 PM
From: Jim Creasman
Subject: Uniform Clusters and CCDT
We recently upgraded our MQ server and client base images for our cloud deployments to 9.2. We want to begin using the Uniform Cluster pattern. This means switching our clients over to using CCDT files. I'm reading through the documentation to understand the nuts and bolts and have a few general questions. I was able to deploy a local 2-node cluster in Docker and have a simple set of pub/sub clients connecting to this through CCDT files (JSON format).
- In setting up the cluster I gave each node's queue manager a different name (e.g., PQ1 and PQ2). Is this necessary? Seems all nodes in the cluster could have the same name for the queue manager. The host/port portion of the connection would always identify a specific server.
- My test clients are written in NodeJS, using the mq-mqi-nodejs package. When I set up the connection I am able to specify the CCDT file location using the MQCNO.CCDTUrl parameter. However, when calling Connx I also have to pass the queue manager name as a parameter. Effectively, I'm passing the queue manager name twice -- once in CCDT file and once as a parameter. Is this correct? I thought the point of the CCDT was to specify a channel name object that contains everything necessary (including queue manager name) for a client to connect.
- The documentation shows an example of a CCDT JSON file with two channels defined with the same name, but different connection info and queue manager names. What is the point of this illustration? Is this a case where the queue manager name is needed to pick the connection? Or, does the client just go down the list until it makes the connection?
- Since I'm setting up a uniform cluster should I care which node my client connects to? In fact, if I specify a queue manager name when making the connection, and that specific server is in the process of restarting, then I would expect the connection to be picked up by the next available node.
Thanks in advance for your help.
Jim
------------------------------
Jim Creasman
------------------------------