WA1055 WebSphere MQ Java Application Programming Training and Courseware Course Outline

1. MQ Java Programming
  • Major Topics
2. Preparing WMQ Java Application Programs
  • Accessing WMQ objects From Applications
  • Preparing WMQ Java Applications
  • WMQ Java Application Environment
    • Required Software
    • Sample CLASSPATH
    • WINDOWS WMQ V5.3
    • Connection Modes
  • Application Programs
    • MQSeries client
    • Sample MQPGM Client code
  • Java Application Programs - Applet
  • Application Programs - MQSeries server
  • Sample MQSeries Programs
  • WMQ Procedural Program - Structure
3. WMQ Base Classes
  • Coding WMQ Java Applications - List of supported WMQ Java Classes (V5.3)
  • Coding WMQ Java Applications – List of supported WMQ Interfaces (V5.3)
  • WMQ Basic Java Classes
4. Accessing WMQ objects
  • Accessing WMQ objects - procedural code
  • Accessing WMQ objects - Java Applications
  • Basic Java Objects
  • Connecting to the Queue Manager
  • Connecting to the Queue Manager (MQCONNECT)
  • MQCONNECT Completion Codes/MQCONNECT Reason Codes
  • Disconnecting from the Queue Manager
  • Accessing a Queue
    • Open a Queue - using the Qmgr Class
    • Open Options
    • Open Options - combining options
    • Open Completion Codes
    • Closing a Queue - close() method of MQQueue class
    • Dynamic Queues - Definition
  • MQOPEN - Create Dynamic Queue
  • Dynamic Queue - Sample Java Code
  • Alias Queues - Definition
5. Accessing The Message Object
  • MQMessage Class
  • WMQ Message
  • Putting a message on the queue
    • Building an output Message
    • Setup the Put Message Options (PMO)
    • Put a Message on the queue
    • Using MQPUT (vs MQPUT1)
    • Put Completion Codes/Put Reason Codes
    • Put a Message on the queue - JAVA EXAMPLE
  • Getting a Message from the queue
    • Setting the Data buffer Position
    • Setup the message Descriptor
    • Setup the Get Message Options (GMO)
    • Get a Message from the queue
    • Get Completion Codes
  • Retrieving data from the message buffer
  • Get a Message from the queue - JAVA EXAMPLE
  • MQGET with the wait option
  • WAIT - the problem
  • MQGET with the set signal option
  • SET SIGNAL EXAMPLE (MVS) - the problem
  • SET SIGNAL - Completion Codes
  • SIGNAL PSEUDOCODE
  • Browsing messages
  • Browse cursor
  • Get message under browse cursor
6. WMQ Triggering
  • WMQ Triggering - Concepts
  • WMQ Triggering - Definition
  • Components of Triggering
  • Processing Sequence - I
  • Processing Sequence - II
  • Starting the trigger monitor
  • Fields in the trigger message
  • Java EXAMPLE - PGMTRIG1 (triggered)
  • Java Sample MQTrigger Class
7. WMQ Message Handling
  • Message Persistence – Concepts
  • Message Persistence / Recovery
  • Message Priority
  • Message Expiry
  • Message Types
    • DATAGRAM
    • REQUEST - REPLY Messages - Synchronous model - Request/Reply
    • REQUEST - REPLY Messages - Asynchronous model - Request/Reply
    • REQUEST message/MQPUT Setup
    • Report messages
    • REPORT message – MQPUT Setup
  • JAVA EXAMPLE – REQPGM MQPUT
  • Sample Message descriptor
  • Java EXAMPLE – REPLYPGM using MQPUT1
  • MSGID and CORRELID – Message and correlation identifiers
  • MSGID and CORRELID – Correllate request message with the reply
  • MSGID and CORRELID – Reply/Report messages with CorrelId
  • USE OF MSGID / CORRELID – PROG-A Pseudo Code
  • USE OF MSGID / CORRELID – PROG-B Pseudo Code
  • Pass MSGID and CORRELID – PASS MSGID / CORRELID – PROG-1 Pseudo Code
  • PASS MSGID / CORRELID – PROG-2+3 Pseudo Code
  • PASS MSGID / CORRELID – PROG-4 Pseudo Code
  • MSGID and CORRELID – reset as needed for EACH MQGET !!!
  • MSGID and CORRELID – or use Match Options
  • MESSAGE DATA CONVERSION – Definition
  • Data Conversion – Implementation
8. WMQ Minor Calls
  • Accessing The MQManagedObject - MQManagedObject Class
    • MQQueueManager object
    • MQQueue object
  • MQManagedObject - inquire
  • MQManagedObject - set
  • MQManagedObject - inquire - Java EXAMPLE
  • Coordination of WMQ unit of work
  • WMQ Logical Unit of Work - Transaction
  • Sample local UOW processing
  • Local UOW processing - with DB updates
  • Global UOW processing - with DB updates
  • Coordination of WMQ unit of work - Java Implementation
    • MQBEGIN
    • MQCMIT
    • MQBACK
9. WMQ Advanced Topics
  • Message Groups
  • Message Groups - Concepts
  • GROUP / SEGMENT IDENTIFIER
  • GROUPING MESSAGES - Specify Grouping on the PUT options
  • GROUPING MESSAGES - Specify Grouping on the GET options
  • Message segmentation
  • GROUP / SEGMENT IDENTIFIER - Specify SEGMENTATION on the PUT options
  • GROUP / SEGMENT IDENTIFIER - Specify SEGMENTATION on the GET options
  • GROUP / SEGMENT IDENTIFIER - GROUP ID + SEGMENT ID MQPUT Pseudo Code
  • GROUP / SEGMENT IDENTIFIER - GROUP ID + SEGMENT ID MQGET Pseudo Code
  • DISTRIBUTION LISTS
  • DISTRIBUTION LISTS - Cocepts
  • Distribution List - MQOPEN - using a procedural CALL
  • Distribution List - MQOPEN - procedural Notes
  • Distribution List - MQPUT - using a procedural CALL
  • Distribution List - MQPUT Notes
  • Distribution List - MQCLOSE
  • Distribution List - Java Implementation
  • Distribution List - Building the Distribution List (DL) in Java
  • Distribution List - Build Distribution List - Java sample
  • Distribution List - Error checking - Multiple MQCC+MQRC
10. Java Programming - WMQ Security
  • WMQ Access Control
  • Access Control Lists
  • Access Control for MQI
  • Audit: MQSeries Security Events
  • Message Context
  • MQMD Context Fields
  • Setting Context by Application
  • Setting No Context by Application
  • Passing Context
  • Pass Context - Sample
  • Using Alternate User Authority
  • Alternate User ID - Sample
  • Access Control for MQSeries Clients
11. Java Programming - Exercises
  • Exercise 1
  • Exercise 2
  • Exercise 3
  • Exercise 4
  • Exercise 5
12. Sample Java Programs
  • Java Sample Program - Request Pgm 1
  • Java Sample Program - Request Pgm 2
  • Java Sample Program - Request Pgm 2
  • Java Sample Program - Reply Pgm 1
  • Java Sample Program - Reply Pgm 2