IBM MQ Applications Development Workshop

This course is designed for personnel who will be developing and/or supporting IBM MQ applications. The course is an intensive, practical, 'hands-on' workshop. For public presentations the course is taught with students using COBOL in a z/OS environment or Java in a Windows environment.

For one-company, on-site presentations this course can be run using the compiler environment and platform of the customer's choice. Options for the workshop include z/OS, Windows, .Net, UNIX and Solaris, using COBOL, C or Java Base Class MQI.

What you will learn

On successful completion of this course you will be able to:

  • establish a connection to an MQ Queue Manager
  • understand the concepts of Queues, Queue Managers and MQ messages
  • describe MQ program design considerations and the MQI
  • explain triggering, syncpoints and message grouping and segmentation
  • discuss Distributed Queuing enablement
  • understand and describe Clustering
  • explain the role of MQ system integrator
  • open/close predefined and dynamic queues
  • pass data between MQ programs using queues
  • pass Request/Reply messages between programs
  • use Msgid & Correlid to PUT and subsequently GET selected messages from a queue
  • understand the effect of putting and getting messages under Syncpoint control
  • understand the effect of using persistent messages.

Who Should Attend

Experienced programmers with existing knowledge of IBM MQ.


Experience of writing and/or supporting applications programs. Attendees will also need to have a sound grasp of the fundamentals of IBM MQ, which can be gained by prior attendance on the course Technical Introduction to IBM MQ.


3 days

Fee (per attendee)

£1650 (ex VAT)

Course Code



IBM MQ Overview

Islands of information and IBM MQ; What's in a name?; Software layers; IBM MQ features; Wide platform coverage; The MQI - a common application programming interface; Time independent or asynchronous processing; Assured message delivery; Support of different application styles; MQ - some comparisons; Queues; Messages; MQPUT; MQGET; Queue Managers and database managers; A significant difference between queues and database tables...; Messages and queues; Shared queues; The Queue Manager; Basic message structure; Asynchronous messaging; Synchronous messaging; Multiple requesters, one responder; Parallel messaging; Re-using MQ application processes as business objects; Meshed business objects; Remote messaging (distributed queuing); MQ clients.

The MQI Major Calls

Communicating with Queue Managers; Application protection; Purpose of MQCONN; MQCONN call sample; The connection handle; Default Queue Managers; The MQCONN call and CICS; MQCONN & single threaded applications; MQCONN & multi-threaded applications; MQCONN & the MQ client; Environment variables; The Client Channel Definition Table; The MQCONNX call; The MQDISC call; The MQI completion codes; MQCONN common reason codes; MQOPEN and MQCLOSE; MQOPEN & security; Queue name resolution; The MQOD object descriptor; The MQOD object descriptor for RPG; The MQC public interface for Java; The MQOD fields; Creating dynamic queues with MQOPEN; Controlling the name of dynamic queues; The open options fields; The open input options field; MQOPEN share options; Other MQOPEN options; Open options and clustering; Open options for clustering; Identity & context open options; MQOPEN sample call; MQCLOSE sample call; The MQCLOSE options.

The MQMD Message Descriptor

The MQMD layout; The MQMD layout for RPG; MQMD: report options, message type, message expiry, feedback field, encoding field, encoding field usage, coded character set id, format field, priority, persistence, message id, correlation id, context information, context options, context userid field, context accounting field, application identity, context put information, Setting some MQMD values.

PUT Message Options

MQPMO: structure, options field, layout, layout for RPG, resolved queue.

The MQPUT Call

MQPUT usage; MQPUT sample call; Section summary; Practical session.

GET Message Options

MQGMO structure; MQGMO structure for RPG; MQGMO fields; MQGMO options field; MQGMO WAITINTERVAL.

The MQGET Call

MQGET usage; MQGET sample call; Section summary; Practical session.


MQPUT1 call description; MQPUT1 sample call; Practical session; Summary.

MQI Facilities

Message id and correlation id; MSGID & CORRELID overview; Message & correlation id formats; Message retrieval using MSGID & CORRELID; Retrieved messages; Section summary.


MQGET WAIT overview; Usage; MQGMO wait options; MQGMO set signal (z/OS); MQGMO set signal (Windows).

Request/Reply Messaging

Request/Reply overview; Request/Reply client side; Request/Reply client & server; Request/Reply timeouts; Summary; Practical session.


MQPUT & syncpoint control; Recovery co-ordination with manager; Recovery co-ordination without manager; MQ recovery co-ordination of XA compliant resource manager(s); Options controlling syncpoints; Mark skip backout; MQCMIT; Summary; Practical session.


Why trigger?; Trigger message generation; Processing the trigger message; Syncpoint considerations; Summary; Practical session.

Minor Calls and Messaging

MQINQ and MQSET; MQINQ call format; Selectors and selector counts; MQINQ integer attributes; MQINQ character attributes; MQINQ code sample; MQSET call format; Summary; NAMELISTs.

Publish & Subscribe

Introduction; Terms and terminology; Publications; An orphan subscription; Defining topics; Command prompt; MQ Explorer; A publish and subscribe environment; Publish APIs within applications; Publish sample programs; Publish MQ Explorer; Subscribe APIs within applications; Subscribe MQ Explorer; AMQSSBX; RFHUTIL; Topic alias; Subscription/publication testing under Explorer.

Message Properties

Message headers; Format; Message format; Message flowing to a previous version; API introduction; API example; Commands: MQCRTMH, MQSETMP, MQINQMP, MQDLTMP; Testing properties RFHUTIL; Viewing properties using MQ Explorer.

© RSM Technology 2020