The Subscription Descriptor (MQSD) is how applications tell IBM MQ pub/sub what they want to hear. Publishers put messages to topic strings; subscribers register interest with MQSD fields—topic name or wildcard, destination queue for delivered copies, whether the subscription is durable, and a subscription name for administration. Without understanding MQSD, developers JMS subscribe successfully in labs but cannot map broker behavior to MQI on the mainframe bridge. Operations sees SUB objects in DISPLAY SUB and ties them to MQSD SubName and TopicString. This tutorial explains MQSD layout, MQSUB registration flow, durable versus non-durable DestQName delivery, shared subscriptions, wildcard topics, authority on destinations, and how MQSD relates to administratively defined SUB objects versus application-registered subs.
Publisher MQPUT to topic STOCK/PRICE/IBM. Subscriber fills MQSD with TopicString STOCK/PRICE/# or exact match, DestQName SUBSCRIBER.INBOX, and durability flag. MQSUB or equivalent registers subscription. Queue manager copies matching publications to DestQName. Subscriber MQGETs from that queue like any consumer—MQSD work is registration; everyday consumption still uses MQMD and MQGMO on the destination queue.
123456789Conceptual MQSD usage (field names per IBM MQI): TopicString = "PRICES/UK/#" DestQName = "APP.SUB.QUEUE" SubName = "UK_PRICES_SUB_01" Durable = Yes (subscription survives disconnect) After MQSUB succeeds, publications matching PRICES/UK/# arrive on APP.SUB.QUEUE for MQGET.
| Concept | Role |
|---|---|
| TopicString | Filter which publications match (+ wildcards) |
| DestQName | QLOCAL (or alias) receiving copies |
| SubName | Administrative identity for DISPLAY SUB |
| Durable | Retain subscription across disconnect |
| DestQMgrName | Target QM for destination queue |
| SubscriptionType | API-defined subscribe modes per IBM docs |
Durable subscriptions survive client disconnect—state kept on queue manager; publications may accumulate on DestQName per RETAIN and depth limits. Non-durable drops subscription when connection ends—suitable for live tick streams where history does not matter. Compare with JMS durable subscription name—must match administrative policy. Missing durable flag loses messages during redeploy when pods restart.
MQSD is the magazine subscription card: which topics you want (TopicString), which mailbox to drop copies in (DestQName), and whether the post office keeps your subscription on file when you move away (durable).
Topic strings form hierarchies separated by /. # matches multiple levels; * matches one level—exact rules in IBM topic tree documentation. Overly broad # subscriptions flood DestQName and hurt performance—design narrow filters. Administrative topic objects can restrict wildcards with authority.
Operators DEFINE SUB in MQSC creates persistent subscription objects. Applications call MQSUB with MQSD at runtime for dynamic registration. Both must agree on naming standards to avoid duplicate delivery paths. DISPLAY SUB(*) shows running subscriptions; purge orphaned subs after application bugs.
Multiple consumers share one subscription name so each message goes to only one member of the group—load balancing for pub/sub. MQSD and options flags enable shared mode per IBM release. Contrast with non-shared where every subscriber copy receives every message.
Subscriber needs authority to MQSUB, put to DestQName if creating, and get from DestQName. Topic authority controls who may subscribe to sensitive hierarchies. RACF on z/OS maps to profiles. Block subscriptions to admin topics with SUBAUTH rules.
JMS TopicSubscriber and durable subscriber APIs populate MQSD equivalents inside the client. ConnectionFactory settings affect shared durable naming. Debugging requires tracing MQSD SubName in queue manager events when subscribe fails.
MQSD is telling the news station which topics you care about and which basket at your house they should drop the newspapers in.
Design TopicString and DestQName for sports scores only, not finance.
Compare durable versus non-durable for mobile app push backend.
Run DISPLAY SUB on lab QM and map fields to MQSD concepts.
1. MQSD is mainly for:
2. DestQName is:
3. Durable subscription survives:
4. Topic string in MQSD identifies: