Limitations and considerations for uniform clusters
Limitations and other points to consider when you are configuring uniform clusters.
Importance of uniformity between queue managers
By default, any application that declares itself as reconnectable
might be
rebalanced to an alternative queue manager in a uniform cluster at any time. This means that any
resource, for example, queue, topic, or authority record that is required by such applications must
be declared on all queue managers in the uniform cluster.
Consistency of queue manager configuration is not policed. It is up to your system administrator to configure members of the cluster so that they have a similar configuration.
However, you can aid consistency by using the Automatic configuration from an MQSC script at startup capability to share MQSC scripts that define objects for the cluster and therefore ensure that all have the same definitions. For more information, see Creating a new uniform cluster.
This uniformity extends to full repository queue managers for the cluster. Although for traditional IBM® MQ clusters it is often considered best practice to separate the full repositories onto stand-alone systems, in a uniform cluster, the model is that full repositories fully participate in the cluster and process application workloads alongside other nodes.
Overlapping uniform clusters and traditional IBM MQ clusters
A uniform cluster queue manager can participate in at most one uniform cluster, and it can also be a member of any number of standard IBM MQ clusters. It might be helpful to think of the uniform cluster as acting as a single queue manager in the wider cluster.
- A uniform cluster queue manager acting as a full repository, must only be a full repository for the uniform cluster itself.
- Likewise, partial repository queue managers that are members of a uniform cluster, but might
also belong to a wider traditional IBM MQ cluster, cannot
be used as a repository outside the uniform cluster.
For more information, see How to choose cluster queue managers to hold full repositories.
The reason is that queue managers that are full repositories for a combination of traditional IBM MQ clusters and uniform clusters, encourage a divergence of data held in the cluster cache across the members of the uniform cluster, and therefore move against the use of the uniform cluster feature as intended.
To replace a single full repository queue manager with a uniform cluster, separate the full repository from the application work that is in progress on it, and move only the application work into the uniform cluster.
When you are using automatic definitions for uniform clusters, cluster channels cannot be shared for use in other clusters, that is, you set the CLUSTER attribute to the automatic cluster, and the CLUSNL attribute must be empty.
Application balancing considerations
- When there are fewer application instances than queue managers in the cluster.
- During a short period after client applications connect to, or leave, the cluster.
To prevent client applications from being rebalanced too often, especially when applications connections are coming and going, limits are set on how often the uniform cluster asks client applications to be rebalanced. After a period of high connect or disconnect activity, it might take several minutes for the remaining application instances to be evenly balanced across the uniform cluster.
For more information, see Application balancing troubleshooting.
Application affinities
Not all applications are suitable for automatic rebalancing across a uniform cluster. Only applications that specify MQCNO_RECONNECT are rebalanced. Applications that have an affinity to a particular queue manager must either specify the MQCNO_NO_RECONNECT option or MQCNO_RECONNECT_Q_MGR. The latter allows HA failover but not rebalancing.
Examples of applications that create an implicit affinity to a queue manager:
- Applications that create durable subscriptions.
- Applications that create permanent dynamic queues, for example, to receive reply messages.
- Applications that expect strict message ordering or require all messages in a sequence be processed by the same application instance or both.
These applications must specify MQCNO_NO_RECONNECT or MQCNO_RECONNECT_Q_MGR options rather than MQCNO_RECONNECT.
For more information, see Reconnection options.
Message availability
- Replicated storage that supports a container instance that is automatically restarted by container orchestration. For more information, see Single resilient queue manager.
- RDQM queue managers. For more information, see RDQM high availability.
- Multi instance queue managers. For more information, see Multi-instance queue managers.
- Native HA. For more information, see Native HA.
- IBM MQ Appliance HA. For more information, see High availability.
Scalability and performance of uniform clusters
To enable the closer integration and sharing of application state between queue managers in a uniform cluster, a higher level of intercommunication is needed than in a traditional IBM MQ cluster. Therefore, scaling to large numbers of queue managers in a single uniform cluster is not recommended because the additional communication has detrimental effect on performance.
For both performance and management reasons, it is preferable to think of a uniform cluster as acting as a single traditional queue manager that provides messaging to a number of related applications, but is not a sole messaging service across an enterprise. In this pattern, small numbers, up to 10, queue managers are typically sufficient to support large numbers of client application connections. Application balancing makes it simple to start with small numbers, for example 3 queue managers, and scale up by adding more queue managers.