Hi Jim,
I have nothing to add to Morag's response with respect to the channel connames, but I can comment on the k8s service piece.
If you had a single queue manager across multiple machines (Native HA for example) then you would want a single service definition, which would load balance to a working instance).
If you had several queue managers (but not a uniform cluster) and you wanted the service to load balance incoming client connection requests across the available queue managers, then you would want to have a single service. However, this wouldn't work for queue manager or cluster channels, only for client connections.
For a uniform cluster, I believe you will need a separate service for each member of the cluster, since they are all separately addressable queue managers. The service definition provides the hostname for the queue manager, and you need separate ones so that dynamic balancing of the client connections can be performed. You also need the cluster channels to be able to form connections, and if you have channels coming in from other queue managers, they need to be able to reach the queue managers too.
It seems odd to me that you would have the 3 instances in a single stateful set. I would have expected each MQ queue manager to have its own stateful set, but I haven't tried to set up a uniform cluster in k8s myself, so that might be a misconception on my part.
Regards,
------------------------------
Neil Casey
Senior Consultant
Syntegrity Solutions
Melbourne, Victoria
IBM Champion (Cloud) 2019-21
------------------------------
Original Message:
Sent: Mon October 25, 2021 06:03 PM
From: Jim Creasman
Subject: Uniform cluster questions
I'm creating Helm charts to deploy a 3-node uniform cluster into our Kubernetes environment. There are two repos in the cluster (QC90 & QC91). The third member (QC92) is not a repo. This appears to be working correctly in that when I run "dis chstatus(psinv*)" on each member I see all the expected sender and receiver channels there with status of RUNNING.
I have a few questions regarding the setup.
1) When I run "dis chl(psinv*) conname" to display the connection names I see this. Note the CONNAME value for the first sender channel is truncated. Is this normal? I know from the qm.ini file the CONNAME value I'm supplying has the full length, same as the others.

2) For the two receiver channels I see the same channel name (PSINV_QC90) is used. Is that correct? I'm using this command to define these:
DEFINE CHANNEL('+AUTOCL+_+QMNAME+') CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('+CONNAME+') CLUSTER('+AUTOCL+') REPLACE

3) (Perhaps more of a K8s question) Since I'm doing this in a Kubernetes environment should I deploy a Service for each MQ server instance in the Statefulset? I currently have a single Service for the three.
Thanks,
Jim
------------------------------
Jim Creasman
------------------------------