MQ03 - WebSphere MQ Application Programming with COBOL
Duration3 Days (customisation)
Availability

Course Description

The course is aimed at developers who require the basic skills of designing and writing application programs which issue calls to the Message Queuing Interface (MQI). The course is aimed at experienced applications developers who need to develop programs which use WebSphere MQ messaging techniques.

Pre-requisites

A basic understanding of the concepts of WebSphere MQ message queuing and COBOL programming. These can be gained by attending courses MQ01 and BT05.

Objectives

Whilst covering the basics of WebSphere MQ, this course also aims to give an insight into the programming and issuing of calls to the Message Queuing Interface.

On completion of this course the student will be able to:

  • Understand basic messaging concepts
  • Understand queues and message management
  • Understand and use the supplied panels, utilities and programs in a batch and CICS environment to manipulate WebSphere MQ objects
  • Understand and use the Message Queuing Interface
  • Understand and use Message Handling
  • Understand and use Queue and Message Attributes
  • Understand and use MQI calls and the MQI Options
  • Understand and use transactions
  • Understand and use triggers
  • Understand and use remote queuing
  • Understand and use MQSET and MQINQ calls

Environment

Development will be performed using:

  • IBM Mainframe
  • CICS and/or TSO Batch

Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

Course Details

MESSAGING CONCEPTS
Islands of Automation
Program to Program Communication
Queues and Messages
Synchronous Processing
Asynchronous Processing
Time Independence
Client / Server Processing
Parallel Processing
Batch Processing
Queue Manager
Message Structure
WebSphere MQ Clients
WEBSPHERE MQ INTRODUCTION
WebSphere MQ
Operating Platforms
WebSphere MQ Concepts
Programming API
MQ Series Framework
QUEUES AND MESSAGES
Queue Managers
Remote Queue Managers
Queue Types
Local Queues
Remote Queues
Alias Queues
Dynamic and Model Queues
Transmission Queues
System Queues
Clustering
Message Structure
MQ Message Descriptor (MQMD)
Datagram Type Messages
Request/Reply Type Messages
Report Type Messages
Message Priority
Message ID and Correlation ID
Message Persistence
Message Expiry
Message Grouping and Segmentation
MQ Objects
COMMAND SETS
Command Sets
Control Commands
WebSphere MQ Script Commands (MQSC)
PCF Commands
CONTROL COMMANDS
Control Commands
Control Commands on Windows Platforms
Control Commands on UNIX Platforms
CRTMQM - Create a Queue Manager
STRMQM - Start a Queue Manager
ENDMQM - Stop a Queue Manager
DSPMQ - Display a Queue Manager
DSPMQAUT - Display authorisations
DSPMQFLS - Display Files
RUNMQSC - Issue MQSC Commands
RUNMQTRM - Start a Trigger Monitor
MQ SCRIPT COMMANDS
MQSC Commands
Batch Script Commands
Commands in z/OS
Starting and Stopping MQSC
Manipulating Queue Managers
Manipulating Local Queues
Manipulating Alias Queues
Manipulating Model Queues
Manipulating Trigger Objects
alter process
alter qmgr
alter qalias
alter qlocal
alter qmodel
alter qremote
clear qlocal
define process
define qalias
define qlocal
define qmodel
define qremote
display process
display qmgr
display qstatus
display queue
z/OS OPERATING AND CONTROL PANELS
Control Panel Access
Control Panel Rules
WebSphere MQ Main Menu
Object Type
Object Disposition
Queue Manager
Define a Local Queue
Defining Other Objects
Listing Object Definitions
Altering Object Definitions
Managing Objects
Perform Action
Channel Status
CICS and WEBSPHERE MQ
WebSphere MQ in CICS Applications
MQ API
Application Triggering
WebSphere MQ CICS transactions
CICS ADAPTER CONTROL PANELS
CICS Control Functions
CICS Adapter Control Panels
Starting a Connection
Stopping a Connection
Modifying a Connection
Displaying Connection Details
Starting a Trigger Monitor (Task Initiator)
Stopping a Trigger Monitor (Task Initiator)
Displaying Instances of a Trigger Monitor (Task Initiator)
Displaying CICS Task Information
CSQUTIL MQ UTILITY PRORAM
CSQUTIL Utility Program
JCL Requirements
PARM Statement
Return Codes
Command Management Function
Display Command
Client Channel Definition
Copying Queues - COPY Function
Copying Queues - SCOPY Function
Copying Queues - EMPTY Function
PROGRAMMING WITH MQI
MQ Interface (MQI)
Programming Languages
Completion Code
Reason Code
MQCONN Call
MQCONNX Call
MQOPEN Call
MQPUT Call
MQGET Call
MQPUT1 Call
MQCLOSE Call
MQDISC Call
MQINQ Call
MQSET Call
MQBEGIN, MQCMIT and MQBACK Calls
Message Descriptor
DATA TYPES
Data Types
Elementary Data Types
MQBYTE
MQBYTEn
MQCHAR
MQCHARn
MQHCONN
MQHOBJ
MQLONG
MQPTR
Data Types in Programming Languages
STRUCTURES
Data Structures
Structures for MQI Calls
Structures in Message Data
Structures in C
Structures in COBOL
Structures in PL/I
Structures in Visual Basic
MQCONN CALL
MQCONN
Syntax
Parameters
Completion and Reason Codes
MQCONNX CALL
MQCONNX
Syntax
Parameters
Completion and Reason Codes
MQCONNX Options (MQCNO)
MQOPEN CALL
MQOPEN
Syntax
Parameters
Object Descriptor
MQOPEN Options
MQOPEN Multiple Options
Completion and Reason Codes
Opening Different Queues
Queue Name Resolution
Alias Queues
Model Queues
Dynamic Queues
MQOPEN Call for Model Queues
MQCLOSE CALL
MQCLOSE
Syntax
Parameters
MQCLOSE Options
Completion and Reason Codes
MQDISC CALL
MQDISC
Syntax
Parameters
Completion and Reason Codes
MQPUT CALL
MQPUT
Syntax
Parameters
MQPUT Options (MQPMO)
Message Descriptor
Persistence
Priority
Expiry
Completion and Reason Codes
MQGET CALL
MQGET
Syntax
Parameters
MQGET Options (MQGMO)
Buffer Lengths
Completion and Reason Codes
MQPUT1 CALL
MQPUT1
Syntax
Parameters
REMOTE QUEUING
Remote Queuing
Multiple Message Hops
Message Types
Request and Replies
Local Reply Queues
Remote Reply Queues
Dead Letter Queue
Exception Reports
Encoding
CodedCharSetId
Format
CONTROLLING MESSAGE RETRIEVAL
Controlling Message Retrieval
Request / Reply Queues
Message Retrieval - Application Parallelism
Message Retrieval - All Messages
Message Retrieval - By MsgId And CorrelId
Message Retrieval - With Reports
Wait and Wait Interval
Set Signal
TRANSACTION SUPPORT
Transactions
Local and Global Transactions
Syncpoint Option
MQPUT within Syncpoint
MQGET within Syncpoint
Syncpoint Control
MQCMIT
MQBACK
MQBEGIN
Poisoned Messages
Remote Updates
TRIGGER PROCESSING
Triggering
Trigger Types
Trigger Parameters
Trigger and Syncpoint
MQI SECURITY
Message Context
Default Context
Passing Context
Context Handling
Set Context
Alternate User Authority
MQINQ CALL
MQINQ
Syntax
Parameters
Completion and Reason Codes
MQSET CALL
MQSET
Syntax
Parameters
Completion and Reason Codes
MESSAGE GROUP AND SEGMENTATION
Segments and Groups
Message Groups
Group Logical Messages
Retrieving Logical Messages
Groups and Unit of Work
Message Segmentation
Segmentation by Queue Manager
Segmentation by Application
COMPLETION AND REASON CODES
Completion and Reason Codes
Completion Codes
Reason Codes
DEBUGGING MQ
Debugging WebSphere MQ Applications
Error Logging
Program Abends
SAMPLE PROGRAMS
Windows WebSphere MQ Supplied Programs
AMQSPUT
AMQSGBR and AMQSBCG
AMQSGET
AMQSREQ
AMQSECH
AMQSINQ
AMQSSET
COBOL WebSphere MQ Supplied Programs
CSQ4BVK1
CSQ4BVA1
CSQ4BVJ1
CSQ4TVH - Message Handler
CICS COBOL WebSphere MQ Supplied Programs
CSQ4CVK1
CSQ4BVA1
CSQ4CVJ1
CSQ4CVC1
COBOL RECORD STRUCTURES
Message Descriptor - MQMD
Object Descriptor - MQOD
Get Message Options Structure - MQGMO
Put Message Options Structure - MQPMO
Dead Letter Header - MQDLH
Trigger Message - MQTM
Transmission Queue Header - MQXQH
Constants For MQI - CMQV

Course Format

Demonstration sessions and practicals make up a large part of the course, allowing delegates to reinforce the lectures given. During these sessions the delegate will gain experience of Websphere MQ, specifically MQI.

Examples are used extensively, ranging from simple code snippets to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.