What’s New in IBM MQ V8 Pub/Sub?
ValerieLampkin 27000182R2 Visits (7199)
As suspected, a visit to the Hursley Lab does have benefits for MQ fans. I had the chance to meet with MQ developers and architects, allowing the opportunity to ask questions directly to those who write the code. I was lucky to attend an informal presentation on pub/sub from David Ware to learn some of the MQ V8 pub/sub features and capabilities. The upcoming IBM Redbooks publication on MQ V8 enhancements will cover the pub/sub changes in more detail but thought it would be great to pass along a bit of the knowledge I have learned during my Hursley trip. The Redbooks publication is currently in draft mode (as of 3 July, 2014) and is available now: "IBM WebSphere MQ V8 Features and Enhancements" (the URL will remain the same once it is out of draft mode)
Two of the major enhancements for pub/sub are enhanced status reporting and routed pub/sub for clusters. To use the new features of MQ V8 pub/sub, you need to know how "ROUTED PUB/SUB" works. MQ clusters using pub/sub now have two modes of routing publications, either directly or through a "topic host". This allows MQ administrators to have more scalability and control of how the pub/sub flows. The CLROUTE parameter is a new attribute added in MQ V8 and is used to specify how publications are routed. You can set it with the Explorer or with runmqsc command: "DEFINE TOPIC … CLUSTER(…) CLRO
Note that the TopicHost parameter is defined on a queue manager that is not the full repository (similar to other scenarios where the recommendation is to keep full repositories clear of other duties so they can be primarily focused on the cluster cache administration). More information about these topologies and scenarios where they are best suited will be examined in the IBM Redbooks publication for MQ V8 enhancements.
Another new parameter that pub/sub administrators will find useful is CLSTATE. CLSTATE gives feedback on the current state of topic objects. It may show as ACTIVE, INVALID, or PENDING. Anything other than ACTIVE implies a problem that should be investigated. Pending means the definition has not yet been propagated by full repositories and would be seen on a topic host queue manager. Invalid may be seen on a full repository and indicates the topic will not be forwarded to the other queue managers in the cluster.
Be aware that topic host routing in a cluster requires MQ V8. There may be other queue managers in the cluster that don't participate in pub/sub but at a minimum, the following queue managers must be at V8 or above:
Any older queue managers will not be aware of the topic host routed topic definition and continue to behave as if it was not defined in the cluster.
Finally, an important pub/sub concept is Proxy Subscriptions. To put it simply, "proxy subs" are a way the queue manager can notify all of the other queue managers in the pub/sub topology that it wants messages matching certain topics. Sometimes these proxy subscriptions caused quite of a bit of churn as subscriptions were dynamically created and deleted. By setting the parameter for PROXYSUB(FORCE) a wildcarded proxy sub is sent for the point in the topic tree and decreases the volume of individual proxy subs but does potentially increase the amount of publication traffic.
Proxy subscriptions can be viewed using the MQ Explorer GUI or using runmqsc command "display sub(*) subtype(proxy) topicstr destqmgr" allowing you to see which queue managers will receive a publication for which topic.
Although it may seem the changes in MQ V8 were heavily weighted on the z/OS side, I have found many enhancements for those of us who spend the majority of our time on distributed platforms. The "IBM WebSphere MQ V8 Features and Enhancements" Redbooks publication will provide a more in-depth look at the pub/sub topics I have mentioned here and many other topics as well. Also, check out the newly updated MQ V8 product documentation in the IBM Knowledge Center.
Special Thanks to David Ware for his assistance with this blog entry. See David's Impact presentation on slide share: "Using Publish/Subscribe in an MQ Network"