Add a subscription point

How to extend an existing queued publish/subscribe application that we have migrated from an earlier version of IBM® Integration Bus with a new subscription point.


Before you begin

  1. Check that the subscription point is not already defined in SYSTEM.QPUBSUB.SUBPOINT.NAMELIST.
  2. Check if there is a topic object or a topic string with the same name as the subscription point.


IBM WebSphere MQ Version 7.1, or later, applications do not use subscription points, but they can interoperate with existing applications that do, using the subscription point migration mechanism. Important: The subscription point migration mechanism has been removed from IBM MQ Version 8.0. If you need to migrate your existing applications, you must carry out the procedures described in the documentation for your version of the product, before you migrate to the latest version.

Subscription points do not work with queued publish/subscribe programs that use MQRFH1 headers, which have been migrated from IBM MQ Version 6, or earlier.

There is no need to add subscription points to use integrated publish/subscribe applications written for IBM MQ Version 7.1, or later.


Procedure

  1. Add the name of the subscription point to SYSTEM.QPUBSUB.SUBPOINT.NAMELIST.

    • On z/OS®, the NLTYPE is NONE, the default.
    • Repeat the step on every queue manager that is connected in the same publish/subscribe topology.
  2. Add a topic object, preferably giving it the name of the subscription point, with a topic string matching the name of the subscription point.

    • If the subscription point is in a cluster, add the topic object as a cluster topic on the cluster topic host.
    • If a topic object exists with the same topic string as the name of the subscription point, use the existing topic object. You must understand the consequences of the subscription point reusing an existing topic. If the existing topic is part of an existing application, you must resolve the collision between two identically named topics.
    • If a topic object exists with the same name as the subscription point, but a different topic string, create a topic with a different name.
  3. Set the Topic attribute WILDCARD to the value BLOCK.

    Blocking subscriptions to # or * isolates wildcard subscriptions to subscription points, see Wildcards and subscription points.

  4. Set any attributes that you require in the topic object.


Example

The example shows a runmqsc command file that adds two subscription points, USD and GBP.
DEFINE TOPIC(USD) TOPICSTR(USD)
DEFINE TOPIC(GBP) TOPICSTR(GBP) WILDCARD(BLOCK)
ALTER NL(SYSTEM.QPUBSUB.SUBPOINT.NAMELIST) NAMES(SYSTEM.BROKER.DEFAULT.SUBPOINT, USD, GBP)
Note:
  1. Include the default subscription point in the list of subscription points added using the ALTER command. ALTER deletes existing names in the namelist.
  2. Define the topics before altering the namelist. The queue manager only checks the namelist when the queue manager starts and when the namelist is altered.