+

Search Tips | Advanced Search

Inhibiting clustered publish/subscribe

Introducing the first direct routed clustered topic into a cluster forces every queue manager in the cluster to become aware of every other queue manager, and potentially causes them to create channels to each other. If this is not desirable, we should instead configure topic host routed publish/subscribe. If the existence of a direct routed clustered topic might jeopardize the stability of the cluster, due to scaling concerns of each queue manager, we can completely disable clustered publish/subscribe functionality by setting PSCLUS to DISABLED on every queue manager in the cluster.

As described inDirect routing in publish/subscribe clusters, when you introduce a direct routed clustered topic into a cluster, all partial repositories are automatically notified of all other members of the cluster. The clustered topic might also create subscriptions at all other nodes (for example, where PROXYSUB(FORCE) is specified) and cause large numbers of channels to be started from a queue manager, even when there are no local subscriptions. This puts an immediate additional load on each queue manager in the cluster. For a cluster that contains many queue managers, this can cause a significant reduction in performance. Therefore the introduction of direct routed publish/subscribe to a cluster must be carefully planned.

When you know that a cluster cannot accommodate the overheads of direct routed publish/subscribe, we can instead use topic host routed publish/subscribe. For an overview of the differences, see Designing publish/subscribe clusters.

If you prefer to completely disable publish/subscribe functionality for the cluster, we can do so by setting the queue manager attribute PSCLUS to DISABLED on every queue manager in the cluster. This setting disables both direct routed and topic host routed publish/subscribe in the cluster, by modifying three aspects of queue manager functionality:

  • An administrator of this queue manager is no longer able to define a Topic object as clustered.
  • Incoming topic definitions or proxy subscriptions from other queue managers are rejected, and a warning message is logged to inform the administrator of incorrect configuration.
  • Full repositories no longer automatically share information about every queue manager with all other partial repositories when they receive a topic definition.

Although PSCLUS is a parameter of each individual queue manager in a cluster, it is not intended to selectively disable publish/subscribe in a subset of queue managers in the cluster. If you selectively disable in this way, we will see frequent error messages. This is because proxy subscriptions and topic definitions are constantly seen and rejected if a topic is clustered on a queue manager where PSCLUS is enabled.

We should therefore aim to set PSCLUS to DISABLED on every queue manager in the cluster. However, in practice this state can be difficult to achieve and maintain, for example queue managers can join and leave the cluster at any time. At the very least, we must ensure that PSCLUS is set to DISABLED on all full repository queue managers. If you do this, and a clustered topic is subsequently defined on an ENABLED queue manager in the cluster, this does not cause the full repositories to inform every queue manager of every other queue manager, and so the cluster is protected from potential scaling issues across all queue managers. In this scenario, the origin of the clustered topic is reported in the error logs of the full repository queue managers.

If a queue manager participates in one or more publish/subscribe clusters, and also one or more point-to-point clusters, we must set PSCLUS to ENABLED on that queue manager. For this reason, when overlapping a point-to-point cluster with a publish subscribe cluster, we should use a separate set of full repositories in each cluster. This approach allows topic definitions and information about every queue manager to flow only in the publish/subscribe cluster.

To avoid inconsistent configurations when we change PSCLUS from ENABLED to DISABLED, no clustered topic objects can exist in any cluster of which this queue manager is a member. Any such topics, even remotely defined ones, must be deleted before changing PSCLUS to DISABLED.

For more information about PSCLUS, see ALTER QMGR (PSCLUS).

Parent topic: Designing publish/subscribe clusters


Related information

Last updated: 2020-10-04