I was talking to a customer today about a recent problem where they ran out of XCF groups and as a result couldn’t start up their queue managers. The fix for this was to reformat their sysplex couple datasets using a higher value for the ITEM NAME(GROUP) NUMBER( xxx ) parameter.
Once they had got their queue managers running again they started asking about how many XCF groups an MQ queue sharing group (QSG) uses. (You can list all current XCF groups using the
D XCF,GROUP system command.)
Now the immediate knee-jerk answer to this is one: the XCF group which gets created when the QSG is created. The name of this group will be CSQGxxxx where xxxx is the QSG name. For example on our development plex the XCF group for my QSG is CSQGSQ21. If I issue the
D XCF,GROUP,CSQGSQ21 system command I can see the members of the group, which are the names of my queue managers.
However there are more! MQ QSGs use serialized list structures for the admin structure, and application structures. As these are serialized list structures XES will automatically request an XCF group per structure. Each of these groups will be named IXCLOxxx where xxx is a number in hex.
So for a QSG with 2 application structures you will get a total of 4 XCF groups allocated: one for the QSG, plus three groups for the three structures.
IXCLOxxx XCF groups are created for multiple reasons, not just for MQ. You can figure out which ones are used by MQ by issuing the following system command for each IXCLOxxx XCF group.
This will give you something like the following output which will have your queue manager started task name in it, as well as your structure names.
I will get the KnowledgeCentre updated to make it more obvious that these XCF groups are created.
So the moral of the story is make sure you have enough free XCF groups for your QSG!