Day one of this course provides delegates with a sound understanding of IBM MQ (formerly MQSeries) messaging system. The following three days are a practical, 'hands-on' workshop. The course is taught with students using either COBOL or C, the practicals running in a Windows environment.
This course can be presented using the compiler environment and platform of the customer's choice. Options for the workshop include Windows, .Net, UNIX and Solaris, using COBOL, C or Java Base Class MQI.
Attendees should have the appropriate skills in the language and programming environment to be used for writing and deploying MQ applications.
Delegates will learn how 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.
Basic Messaging Concepts
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.
Queue Managers, Queues & Messages
Queue types; Local queues; Alias queues; Model and dynamic queues; Remote queues; The Message Descriptor; Datagram message type; Request/Reply messages; Report messages - COA; Report messages - COD; Message priority; Message-id and correlation-id; Message retrieval by message or correlation id; Using Msgid and CorrelIid; Message persistence; Message persistence - logging; Circular logging in distributed MQ; Linear logging in distributed MQ; Message expiry; Message expiry usage; Message translation - encoding; Message translation - coded character set.
The MQI, Triggering and Syncpoints
The MQI layer; The MQI - language Interfaces; The MQI calls; Program preparation; Load Module structure; MQCONN; MQCONN sample call; MQOPEN; MQOPEN sample call; MQPUT; MQPUT sample call; MQGET; MQGET sample call; MQCLOSE; MQCLOSE sample call; MQPUT1; MQDISC; MQDISC sample call; Triggering - why?; Using triggering; Triggering overview; Trigger message contents; Syncpoint control; MQCMIT; MQGET under syncpoint control; Syncpoints and non-resource managed objects; Recovery co-ordination without a transaction manager; MQ recovery co-ordination of XA compliant resource manager(s); Recovery with a transaction manager; A distributed business transaction without MQ; A distributed business transaction with MQ; Message grouping and segmentation.
MQ Distributed Queuing
Distributed queuing components; Remote queues; Transmission queues; Message Channel Agents; MCA configuration; Channel types; Triggering channels; Dead letter queues; Client/server or MQI channels; Setting up a client/server channel; MQ clustering; Cluster resilience; Choosing the target instance of a cluster queue.
Installing MQ; Administration mechanisms; Control commands; MQSC (MQ script) commands; Runmqsc: displaying Queue Manager properties; Runmqsc: displaying queue properties; MQ Explorer: looking at Queue Managers; MQ Explorer: looking at queues and channels; z/OS ISPF panels: looking at queues; Instrumentation events.
IBM MQ Security
Channel Exits; Security Exits; Secure Sockets Layer (SSL); Channel Authentication Records; Access Control; Message Descriptor (MQMD) Context Information; Advanced Message Security.
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; Queue Manager grouping with the MQ client; 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.
Message id and correlation id; MSGID & CORRELID overview; Message & correlation id formats; Message retrieval using MSGID & CORRELID; Retrieved messages; Section summary.
MQGET with WAIT
MQGET WAIT overview; Usage; MQGMO wait options; MQGMO set signal (z/OS); MQGMO set signal (Windows).
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 headers; Format; Message format in WebSphere MQ V7; Message flowing to a previous version; API introduction; API example; Commands: MQCRTMH, MQSETMP, MQINQMP, MQDLTMP; Testing properties RFHUTIL; Viewing properties using MQ Explorer.