Subscription points and topics
Named subscription points are emulated by topics and topic objects.
To add subscription points manually, see Add a subscription point.
Subscription points in IBM MQ
IBM MQ maps subscription points to different topic spaces within the IBM MQ topic tree. Topics in command messages without a subscription point are mapped unchanged to the root of the IBM MQ topic tree and inherit properties from SYSTEM.BASE.TOPIC.
Command messages with a subscription point are processing using the list of topic objects in SYSTEM.QPUBSUB.SUBPOINT.NAMELIST. The subscription point name in the command message is matched against the topic string for each of the topic objects in the list. If a match is found, then the subscription point name is prepended, as a topic node, to the topic string. The topic inherits its properties from the associated topic object found in SYSTEM.QPUBSUB.SUBPOINT.NAMELIST.
The effect of using subscription points is to create a separate topic space for each subscription point. The topic space is rooted in a topic that has the same name as the subscription point. Topics in each topic space inherit their properties from the topic object with the same name as the subscription point.
Any properties not set in the matching topic object are inherited, in the normal fashion, from SYSTEM.BASE.TOPIC.
Existing queued publish/subscribe applications, using MQRFH2 message headers, continue to work by setting the SubPoint property in the Publish or Register subscriber command messages. The subscription point is combined with the topic string in the command message and the resulting topic processed like any other.
IBM WebSphere MQ Version 7.0, or later, applications are unaffected by subscription points. If an application uses a topic that inherits information from one of the matching topic objects, that application interoperates with a queued application using the matching subscription point.
Example
An existing WebSphere Message Broker (now known as IBM Integration Bus ) publish/subscribe application that was migrated to IBM MQ created two topic objects, GBP and USD, with the corresponding topic strings 'GBP' and 'USD'.
Existing publishers to the topic NYSE/IBM/SPOT, migrated to run on IBM MQ, that use the subscription point USD create publications on the topic USD/NYSE/IBM/SPOT. Similarly existing subscribers to NYSE/IBM/SPOT, using the subscription point USD create subscriptions to USD/NYSE/IBM/SPOT.
Subscribe to the dollar spot price in a IBM WebSphere MQ Version 7.0, or later, publish/subscribe program by calling MQSUB. Create a subscription using the USD topic object and the topic string 'NYSE/IBM/SPOT', as illustrated in the 'C' code fragment.strncpy(sd.ObjectName, "USD", MQ_TOPIC_NAME_LENGTH); sd.ObjectString.VSPtr = "NYSE/IBM/SPOT"; sd.ObjectString.VSLength = MQVS_NULL_TERMINATED; MQSUB(Hconn, &sd, &Hobj, &Hsub, &CompCode, &Reason);
- Set the CLUSTER attribute of the USD and GBP topic objects on the cluster topic host.
- Delete all the copies of the USD and GBP topic objects on other queue managers in the cluster.
- Make sure that USD and GBP are defined in SYSTEM.QPUBSUB.SUBPOINT.NAMELIST on every queue manager in the cluster.