Combining publication and subscription scopes
From IBM WebSphere MQ Version 7.0 onwards, publication and subscription scope work independently to determine the flow of publications between queue managers.
Publications can flow to all queue managers that are connected in a publish/subscribe topology, or only to the local queue manager. Similarly for proxy subscriptions. Which publications match a subscription is governed by the combination of these two flows.
Publications and subscriptions can both be scoped to QMGR or ALL. If a publisher and a subscriber are both connected to the same queue manager, scope settings do not affect which publications the subscriber receives from that publisher.
If the publisher and subscriber are connected to different queue managers, both settings must be ALL to receive remote publications.
Suppose publishers are connected to different queue managers. If we want a subscriber to receive publications from any publisher, set the subscription scope to ALL. We can then decide, for each publisher, whether to limit the scope of its publications to subscribers local to the publisher.
Suppose subscribers are connected to different queue managers. If we want the publications from a publisher to be sent to all the subscribers, set the publication scope to ALL. If we want a subscriber to receive publications only from a publisher connected to the same queue manager, set the subscription scope to QMGR.
Example: football results service
Suppose we are a member team in a football league. Each team has a queue manager connected to all the other teams in a publish/subscribe cluster.
The teams publish the results of all the games played on their home ground using the topic, Football/result/Home team name/Away team name. The strings in italics are variable topic names, and the publication is the result of the match.
Each club also republishes the results just for the club using the topic string Football/myteam/Home team name/Away team name.
Both topics are published to the whole cluster.
The following subscriptions have been set up by the league so that fans of any team can subscribe to the results in three interesting ways. Notice that we can set up cluster topics with SUBSCOPE(QMGR). The topic definitions are propagated to each member of the cluster, but the scope of the subscription is just the local queue manager. Thus subscribers at each queue manager receive different publications from the same subscription.
- Receive all results
-
DEFINE TOPIC(A) TOPICSTR('Football/result/') CLUSTER SUBSCOPE(ALL)
- Receive all home results
-
DEFINE TOPIC(B) TOPICSTR('Football/result/') CLUSTER SUBSCOPE(QMGR)
Because the subscription has QMGR scope, only results published at the home ground are matched. - Receive all my teams results
-
DEFINE TOPIC(C) TOPICSTR('Football/myteam/') CLUSTER SUBSCOPE(QMGR)
Because the subscription has QMGR scope, only the local team results, which are republished locally, are matched.
Parent topic: Configure distributed publish/subscribe networks
Related concepts
- Combining topic spaces in publish/subscribe networks
Related tasks
- Configure a publish/subscribe cluster
- Moving a cluster topic definition to a different queue manager
- Adding extra topic hosts to a topic host routed cluster
- Connect a queue manager to a publish/subscribe hierarchy
- Disconnect a queue manager from a publish/subscribe hierarchy
Related information