Hiperstation for WebSphere MQ User Guide

Transcription

Hiperstation for WebSphere MQ User Guide
Hiperstation
Hiperstation for WebSphere MQ
User Guide
Release 8.0.1
ii
Hiperstation for WebSphere MQ User Guide
Please direct questions about Hiperstation
or comments on this document to:
Compuware Customer Support
http://go.compuware.com/
This document and the product referenced in it are subject to the following legends:
Copyright 1994-2013 Compuware Corporation. All rights reserved. Unpublished rights
reserved under the Copyright Laws of the United States.
U.S. GOVERNMENT RIGHTS-Use, duplication, or disclosure by the U.S. Government is
subject to restrictions as set forth in Compuware Corporation license agreement and as
provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii)
(OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as
applicable. Compuware Corporation.
This product contains confidential information and trade secrets of Compuware
Corporation. Use, disclosure, or reproduction is prohibited without the prior express
written permission of Compuware Corporation. Access is limited to authorized users. Use
of this product is subject to the terms and conditions of the user’s License Agreement
with Compuware Corporation.
Compuware, Hiperstation, Hiperstation for VTAM, Hiperstation for Mainframe Servers,
Hiperstation for WebSphere MQ, QAHiperstation+, QAPlayback, File-AID, File-AID for
DB2, File-AID for IMS, File-AID/MVS, and File-AID/RDX are trademarks or registered
trademarks of Compuware Corporation.
ISPF, CICS, DB2, DFSMS, MVS/ESA, MVS/SP, MVS/XA, OS/390, RACF, REXX, VTAM,
BookManager, MQSeries, WebSphere MQ, zSeries, and z/OS are trademarks or registered
trademarks of International Business Machines Corporation.
Adobe® Reader® is a trademark of Adobe Systems Incorporated in the United States
and/or other countries.
All other company and product names are trademarks or registered trademarks of their
respective owners.
CWQIUG8A
October 25, 2013.
iii
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Accessing Hiperstation Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii
HTML Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
BookManager Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
PC Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Mainframe Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Known-Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Using this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Hiperstation for WebSphere MQ User Guide Overview . . . . . . . . . . . . . . . xv
Notation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Using Wild Cards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Reading Syntax Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Installing Windows Accessibility Features . . . . . . . . . . . . . . . . . . . . . . . . . xix
Selecting Font and Font Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Changing Color and Contrast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Setting Cursor Blink Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Using Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Accessibility Exceptions Work Arounds . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Known Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
FrontLine Support Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Corporate Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Chapter 1. Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Hiperstation for WebSphere MQ Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Chapter 2. Global Recording Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Adding a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Monitoring and Maintaining Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . 2-6
View Session Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
Monitor All Existing Requests (Administrator Access) . . . . . . . . . . . . . . . . 2-9
Using the Global Recording Batch Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Create a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Global Recording Request Parameter Syntax . . . . . . . . . . . . . . . . . . 2-11
Global Recording Request Parameters . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Check the Status of Existing Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Manage Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20
Retrieve Parameters from an Existing Request . . . . . . . . . . . . . . . . . . . . . 2-22
Generate a Request Parameters Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
Troubleshoot Failed Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23
iv
Hiperstation for WebSphere MQ User Guide
Merging Capture Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24
Chapter 3. Scripts and Subset Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Creating Scripts and Subset Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Script and Subset Repository Creation Overview . . . . . . . . . . . . . . . . . . . 3-1
Generate a Capture Segment Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Establish Filtering Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Header Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Header Filter Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
Message Data Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Import Filters and Options Command . . . . . . . . . . . . . . . . . . . . . . 3-12
Specify Source Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
Define Event Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14
Define Detail Data Storage and Output Requirements . . . . . . . . . . . . . . 3-15
Event Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18
Specify a Subset Repository Dataset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-21
Specify Other Output Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23
Select a Processing Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24
Script Create JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25
Browsing and Editing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26
Browse a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-26
Structure Data Type Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-27
Parameters Common to Most Script Tags . . . . . . . . . . . . . . . . . . . . 3-29
<CONTENT> Tag for Inline Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-30
<CONTENT> Tag for External Data . . . . . . . . . . . . . . . . . . . . . . . . . 3-31
<DETAIL> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
<MQ_BACKOUT...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
<MQ_CLOSE...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-32
<MQ_COMMIT...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33
<MQ_CONNECT...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33
<MQ_DISCONNECT...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34
<MQ_GET...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34
<MQ_INQUIRE...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-34
<MQ_OPEN...> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-35
<MQ_PUT...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36
<MQ_PUT1...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36
<MQ_SET...> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37
<TIME> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37
<VERSION> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-37
Edit a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38
Script Syntax Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39
<REPLACE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-40
Offset and Length Determination Macros . . . . . . . . . . . . . . . . . . . . 3-41
Hiperstation for WebSphere MQ REXX Variables . . . . . . . . . . . . . . 3-44
Editing MQ Message Data with File-AID/MVS . . . . . . . . . . . . . . . . . . . . . . . . 3-47
Assign a PF Key to MAPD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
Map an Individual Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-48
Map an Entire Data File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49
Access MAPD Help Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50
Troubleshoot Message Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-50
Chapter 4. Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introducing Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a New Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating a Playback from a Script Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing Playback Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Environment Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-1
4-1
4-2
4-4
4-5
4-5
v
MQ Group Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Script Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Submitting Your Playback for Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Selecting a Previously Saved Playback to Review . . . . . . . . . . . . . . . . . . . . . . . 4-14
Deleting a Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Generating Playback Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
WebSphere MQ - Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
WebSphere MQ - Custom Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Chapter 5. Unattended Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Unattended Playback Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Creating and Managing Playback Control Assets . . . . . . . . . . . . . . . . . . . . . . . 5-2
Attribute Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
MQGROUP Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7
SCRIPT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
COLLECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
Preparing the Log File for Unattended Playback . . . . . . . . . . . . . . . . . . . . . . . 5-16
MQ Log STEPLIB Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
Submitting the Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21
Review Playback Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21
Playback Return Code Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . 5-22
Troubleshooting with the Playback Error Summary . . . . . . . . . . . . . . . . . . . . 5-24
Chapter 6. Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Reporting Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Creating and Managing Reporting Control Assets. . . . . . . . . . . . . . . . . . . . . . . 6-2
CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
REPORT Statements for Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
HTML Exception REPORT Statement . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Response Time and Script Timing REPORT Statements . . . . . . . . . . . 6-8
REPORT Statement for Custom Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
Preparing the Log File for Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Submitting the Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
Reading and Navigating Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
HTML Exception Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
Script Timing Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
Response Time Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21
Reading Custom Reports (Field Definitions) . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24
Chapter 7. Archive Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Introducing the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Using Hiperstation as a Security Monitoring Tool . . . . . . . . . . . . . . . . . . . 7-1
Implementing Hiperstation as a Security Monitoring Tool . . . . . . . . . . . . 7-1
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
Using the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Chapter 8. Testing Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Understanding the Example Application’s Data Flow . . . . . . . . . . . . . . . . . . . . 8-1
Playing Back Multiple Scripts Serially . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Supporting Sample Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Playing Back Scripts Simultaneously (Multiple Groups) . . . . . . . . . . . . . . . . . . 8-6
Supporting Sample Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
vi
Hiperstation for WebSphere MQ User Guide
Repeating Simultaneous Playback (Count and Repeat) . . . . . . . . . . . . . . . . . . 8-9
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
Synchronizing Group Playback (USESTIME) . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
Controlling Playback Timing (USESTIME and THOPT) . . . . . . . . . . . . . . . . . 8-14
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Reversing Playback (PLAY_TO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18
Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-19
Overriding Queues (FROM_QUEUE/TO_QUEUE) . . . . . . . . . . . . . . . . . . . . . 8-19
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21
Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21
Omitting Specified Activity (SKIP(CONNECTION_ID)) . . . . . . . . . . . . . . . . . 8-22
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-23
Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-24
Playing Back with PLAY_TO(CONNECTION_ID(*)) . . . . . . . . . . . . . . . . . . . . 8-24
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-26
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-26
Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-27
Replacing Script Data with a Static Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-28
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-29
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30
Script Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-30
Log Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-33
Replacing Script Data Dynamically. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-33
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-34
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-35
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-35
Script Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-35
Log Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-38
Expanding Data During Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-38
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40
Script Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-40
Log Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-46
Replacing Data During Repeated Concurrent Playback . . . . . . . . . . . . . . . . . 8-47
Supporting Sample Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-48
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-48
Script and Log Editing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-48
Script Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-49
Log Edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-52
Analyzing and Comparing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-52
Chapter 9. Hiperstation for WebSphere MQ Profile Defaults . . . . . . . . . . . . . . . .
WebSphere MQ Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auditing WebSphere MQ Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Playback WebSphere MQ Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-1
9-1
9-6
9-8
vii
Appendix A. Data Collection and Reporting Tables . . . . . . . . . . . . . . . . . . . . . . .
PLAYBACK Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLAYBACK Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLAYBACK Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQGROUP Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQGROUP Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQGROUP Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQSCRIPT Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQSCRIPT Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQSCRIPT Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQMESSAGESET Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQMESSAGESET Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQMESSAGESET Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQOPENQUEUE Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQOPENQUEUE Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQMESSAGE Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MQMESSAGE Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-1
A-1
A-1
A-2
A-2
A-3
A-3
A-3
A-4
A-4
A-4
A-5
A-5
A-5
A-6
A-6
A-6
Appendix B. Hiperstation for WebSphere MQ Samples Index . . . . . . . . . . . . . . . B-1
Playback Control Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-1
Basic Playback Control Assets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-1
Sample Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-1
Reporting Control Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-2
JCL to Create Web Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-2
REPORT and Reporting CONTROL Statements . . . . . . . . . . . . . . . . . . . . .B-2
Script Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-3
Repository Datasets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-3
Samples Library (SQQFSAMP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B-4
Playback and Reporting JCL and JCL SYSIN . . . . . . . . . . . . . . . . . . . . . . . .B-4
Global Recording Batch Interface JCL and XML . . . . . . . . . . . . . . . . . . . .B-4
Appendix C. Customer Support Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1
Appendix D. Script Create Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-1
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
viii
Hiperstation for WebSphere MQ User Guide
ix
Figures
2-1.
2-2.
2-3.
2-4.
2-5.
2-6.
2-7.
2-8.
2-9.
2-10.
2-11.
2-12.
3-1.
3-2.
3-3.
3-4.
3-5.
3-6.
3-7.
3-8.
3-9.
3-10.
3-11.
3-12.
3-13.
3-14.
3-15.
3-16.
3-17.
3-18.
3-19.
3-20.
3-21.
4-1.
4-2.
4-3.
4-4.
4-5.
4-6.
4-7.
4-8.
4-9.
4-10.
4-11.
4-12.
4-13.
4-14.
4-15.
4-16.
4-17.
4-18.
4-19.
4-20.
4-21.
4-22.
4-23.
Hiperstation for WebSphere MQ Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2
Global Recording Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
Global Recording - Monitor MQ Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
WebSphere MQ Data Collect Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-3
WebSphere MQ - MQ Filtering Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4
WebSphere MQ Data Collect - Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5
Global Recording - Monitor MQ Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . .2-7
Global Recording - Active WebSphere MQ Sessions Screen. . . . . . . . . . . . . . . . . . .2-8
DCIJCL — Sample JCL to Add or Manage Requests. . . . . . . . . . . . . . . . . . . . . . . .2-10
SQQFSAMP Member DCIADXMQ (Part 1 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . .2-13
SQQFSAMP Member DCIADXMQ (Part 2 of 2) . . . . . . . . . . . . . . . . . . . . . . . . . . .2-14
Sample Repository Merging JCL: SYSPLEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-25
SQQFSAMP Member MCSREPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3
Capture Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-4
Hiperstation for WebSphere MQ Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-5
WebSphere MQ Header Filters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-5
WebSphere MQ - Header Filter Detail Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7
WebSphere MQ - MQ Filtering Detail Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-9
WebSphere MQ Create Scripts - Import from JCL Screen . . . . . . . . . . . . . . . . . . .3-12
MQ Create Scripts - Import Member List Screen . . . . . . . . . . . . . . . . . . . . . . . . . .3-13
WebSphere MQ Create Scripts - Input Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-14
WebSphere MQ Create Scripts - Grouping Screen . . . . . . . . . . . . . . . . . . . . . . . . .3-15
WebSphere MQ Create Scripts - Create Options Screen (1 of 2) . . . . . . . . . . . . . .3-15
WebSphere MQ Create Scripts - Create Options Screen (2 of 2) . . . . . . . . . . . . . .3-17
HTML Event Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-19
WebSphere MQ Create Scripts - Subset Output . . . . . . . . . . . . . . . . . . . . . . . . . . .3-22
Allocate Dataset Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-22
WebSphere MQ Create Scripts - Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . .3-23
WebSphere MQ Create Scripts - Process Screen . . . . . . . . . . . . . . . . . . . . . . . . . . .3-25
WebSphere MQ Create Scripts - Save JCL File . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-26
LOCPOS Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43
BRULE Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43
BRULES Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-44
Hiperstation for WebSphere MQ Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1
WebSphere MQ Playback - Selection Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-1
WebSphere MQ Playback - Datasets Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2
WebSphere MQ Script Dataset List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3
WebSphere MQ Playback - Script Member List Screen . . . . . . . . . . . . . . . . . . . . . .4-3
WebSphere MQ Playback - Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4
WebSphere MQ Playback - Log File Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
Environment Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-5
Environment Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6
Environment Timing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-7
WebSphere MQ Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
MQGROUP Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8
MQGROUP Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9
MQGROUP Timing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-10
MQGROUP WebSphere MQ Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-10
Script Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11
Script Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11
Script WebSphere MQ Options Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-12
WebSphere MQ Playback - Submit Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-13
WebSphere MQ Playback - Save JCL File Screen . . . . . . . . . . . . . . . . . . . . . . . . . .4-13
WebSphere MQ Playback - Save Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14
Hiperstation for WebSphere MQ Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15
WebSphere MQ Reporting - Selection Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15
x
Hiperstation for WebSphere MQ User Guide
4-24.
4-25.
4-26.
4-27.
4-28.
4-29.
5-1.
5-2.
5-3.
5-4.
5-5.
6-1.
6-2.
6-3.
6-4.
6-5.
6-6.
6-7.
7-1.
8-1.
8-2.
8-3.
8-4.
8-5.
8-6.
8-7.
8-8.
8-9.
8-10.
8-11.
8-12.
8-13.
8-14.
8-15.
8-16.
8-17.
8-18.
8-19.
8-20.
8-21.
8-22.
8-23.
8-24.
8-25.
8-26.
8-27.
8-28.
9-1.
9-2.
9-3.
9-4.
9-5.
9-6.
9-7.
9-8.
9-9.
C-1.
C-2.
WebSphere MQ Reporting Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15
WebSphere MQ - Basic Reports Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-16
Custom Report Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17
Table Report Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17
Form Report Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-18
Custom Report Locations Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-18
Sample Log File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-17
Sample ETRMGPAR PNLSRC Member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-18
Sample MQ Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-19
Script Analysis Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-21
Playback Error Summary Report (HTML Version) . . . . . . . . . . . . . . . . . . . . . . . . .5-24
Sample MQGROUP Text Report in Table Layout. . . . . . . . . . . . . . . . . . . . . . . . . . .6-4
Sample MQGROUP Text Report in Form Layout. . . . . . . . . . . . . . . . . . . . . . . . . . .6-5
Sample Log File Prepared for Reporting Job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-15
HTML Exception Report Mismatch Summary (Top of Report) . . . . . . . . . . . . . . .6-17
HTML Exception Report Mismatch Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-18
HTML Script Timing Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-20
HTML Response Time Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-22
Hiperstation Archive Recording Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-2
Flowchart for the Sample Customer Order And Credit Inquiry Application . . . . .8-3
Activity Captured in Sample Script SCRMS000 . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-4
Activity Captured in Sample Scripts SCRMG001, SCRMG002, SCRMG003 . . . . . .8-7
Activity Captured in Sample Script SCRCR001 . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-9
Activity Captured in Sample Script SCRTS001. . . . . . . . . . . . . . . . . . . . . . . . . . . .8-12
Activity Captured in Sample Script SCRTD001 . . . . . . . . . . . . . . . . . . . . . . . . . . .8-15
Activity Captured in Sample Script SCRPT001 . . . . . . . . . . . . . . . . . . . . . . . . . . .8-17
Activity Captured in Sample Script SCRTQ001 . . . . . . . . . . . . . . . . . . . . . . . . . . .8-20
Activity from REPOS1 to Play Back . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-23
Activity Replicated by PLAY_TO(CONNECTION_ID(*)) . . . . . . . . . . . . . . . . . . . .8-25
Credit Inquiry Activity Captured in Filtered Script FDDSD000. . . . . . . . . . . . . . .8-29
Data Replacement Logic at End of Sample Script FDDSD000 . . . . . . . . . . . . . . . .8-31
Variable Initialization in Sample Script FDDSD000 (Top) . . . . . . . . . . . . . . . . . . .8-32
Procedure Call in Sample Script FDDSD000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-33
Credit Inquiry Activity Captured in Filtered Script FDDDD000 . . . . . . . . . . . . . .8-34
Sample Script FDDDD000 with Logic to Read in External Information . . . . . . . .8-36
Data Replacement Logic at End of Sample Script FDDDD000. . . . . . . . . . . . . . . .8-37
Procedure Call in Sample Script FDDDD000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-38
Credit Inquiry Activity Captured in Filtered Script FDDDD001 . . . . . . . . . . . . . .8-39
Sample Script FDDDD001 with Logic to Allocate an External File . . . . . . . . . . . .8-41
Sample Script FDDDD001 with Data Collection Logic . . . . . . . . . . . . . . . . . . . . .8-42
Sample Script FDDDD001 with EXECIO and EXIT Statements. . . . . . . . . . . . . . .8-43
Sample Script FDDED000 with Logic to Read in External Information . . . . . . . .8-44
Data Replacement Logic at End of Sample Script FDDED000 . . . . . . . . . . . . . . . .8-45
Procedure Call in Sample Script FDDED001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-46
Credit Inquiry Activity Captured in Filtered Script FDDPD000 . . . . . . . . . . . . . .8-47
Sample Script FDDPD000 with Logic to Read in External Information . . . . . . . .8-49
Data Replacement Logic at End of Sample Script FDDPD000 . . . . . . . . . . . . . . . .8-51
Hiperstation for WebSphere MQ Profile Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . .9-1
WebSphere MQ Record/Script Create Defaults - Record Settings . . . . . . . . . . . . . .9-2
WebSphere MQ Record/Script Create Defaults - Script Create Settings. . . . . . . . . .9-3
WebSphere MQ Record/Script Create Defaults - Output Datasets. . . . . . . . . . . . . .9-5
WebSphere MQ Record/Script Create Defaults - Script Create Exec. Options. . . . .9-6
Hiperstation for WebSphere MQ Profile Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . .9-7
Auditing Defaults for WebSphere MQ Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-7
Hiperstation for WebSphere MQ Profile Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . .9-9
MQ Interactive Playback Defaults Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-10
Hiperstation - Diagnostics Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1
Customer Support Diagnostic Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-2
xi
Tables
3-1.
5-1.
5-2.
6-1.
D-1.
Structure Data Types Fields, Field Value Formats, and Associated Script Tags . . .3-28
Playback Sessions for a MQGROUP Statement with COUNT(2) REPEAT(3) . . . . .5-22
Hiperstation for WebSphere MQ Internal Return Codes . . . . . . . . . . . . . . . . . . . .5-23
Report Field Names and Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-24
Script Create Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-1
xii
Hiperstation for WebSphere MQ User Guide
xiii
Introduction
Intro1
3
2
Compuware is committed to providing user-friendly documentation in a variety of
electronic formats. This section describes the available formats and how to access them,
provides an overview of this manual and describes the conventions used within, and the
resources available to help you.
Accessing Hiperstation Documentation
The Hiperstation documentation included in the installation package contains Release
Notes in HTML format and manuals in Portable Document Format (PDF):
• Release Notes — Provides recent information for the Hiperstation product. In this
file, you can quickly access system requirements, technical notes, customer support
contact information, and a list of the new features available in the release. The
Release Notes may be updated throughout the life cycle of a release with the most
current version located on FrontLine for easy access to the latest product
information.
• Hiperstation Installation Guide — Provides installation and customization
procedures.
• Hiperstation for VTAM User Guide — Explains how to use Hiperstation for VTAM to
test 3270 and LU0 applications.
• Hiperstation for WebSphere MQ User Guide— Explains how to use Hiperstation for
WebSphere MQ to test WebSphere MQ applications.
• Hiperstation for Mainframe Servers User Guide — Explains how to use Hiperstation
for Mainframe Servers to test APPC and TCP/IP applications.
• Hiperstation Auditor User Guide — Explains how to use the Hiperstation Archive
Function.
• Hiperstation Automated Testing Vehicle (ATV) Manager User Guide — Explains how to
use the Hiperstation ATV Manager to manage your testing environment and test
cases.
• Hiperstation Messages and Codes — Explains the messages and codes that
Hiperstation produces.
• Hiperstation Scripting Reference — Introduces advanced script editing concepts and
provides reference information for technical users.
• Hiperstation Reference Summary — Summarizes the commands used in Hiperstation
for VTAM’s Domain Traveler and Session Demo features.
• Master Index — This file contains the combined index entries from all of the
Hiperstation manuals provided in PDF format. To use this file, all of the book files
and the master index file must be located in the same directory. Open the master
index file and click on an index entry. It will open the appropriate book at the
desired page.
View and print these files with Adobe Reader. Download a free copy of the latest version
of the reader from Adobe’s web site: http://www.adobe.com.
Note:
With a few minor exceptions, PDF files comply with the requirements of section
508 of the Rehabilitation Act of 1973. Refer to the Accessibility preface in any of
the user guides for information.
xiv
Hiperstation for WebSphere MQ User Guide
For your convenience, Compuware also provides the Hiperstation manuals in the
following formats:
• Hypertext Markup Language (HTML)
• BookManager Softcopy (BOO, BKI, BKS)
Access these formats on FrontLine, Compuware’s Customer Support Web site at
http://frontline.compuware.com.
1. Log-in.
2. Select the desired product.
3. Click the Documentation link on the left selection bar.
4. Select the desired release. FrontLine presents a documentation index containing links
to each of the product’s manuals in all of the available formats.
HTML Files
View HTML files with any standard Web browser. Simply click the HTML link on the
selected FrontLine documentation page.
Note:
As you review the HTML content, you may encounter the known issue regarding
screens and other graphic figures in which the image may be cropped along the
left or bottom edge.
BookManager Files
FrontLine provides three types of BookManager files:
• Books (.BOO) — The Hiperstation manuals provided with this release of the product.
• Bookshelf (.BKS) — A bookshelf providing links to all of the Hiperstation books.
• Bookindex (.BKI) — A file that facilitates bookshelf-level searches in BookManager
READ, (z/OS platform). Softcopy Reader (PC platform) does not use or recognize this
file.
The way you access and use these files depends on the platform on which you intend to
use them. This section provides access and use instructions for PC and z/OS platforms. It
also describes some known issues that you may encounter on either platform.
PC Access
View BookManager files on the PC with IBM Softcopy Reader. Download a free copy of
the reader from IBM’s Web site: http://www.ibm.com.
Note:
Several known formatting issues exist with the PC readers. For best results, view
the BookManager files on the mainframe. See “Mainframe Access” on page xv for
more information.
If the Softcopy Reader is installed, you can view the book files (.BOO) by clicking the
BkMgr link on the selected FrontLine Documentation page. However, this method
requires logging onto FrontLine each time you need to access a book. Alternatively, you
can download all of the .BKS and .BOO files. Whenever you need to access a manual,
simply open the bookshelf and double-click the manual title.
Make these files available to the user groups that have PCs by copying them to a shared
location on the network.
Introduction
xv
Mainframe Access
View BookManager files on the mainframe with IBM BookManager READ.
To make the files available on the mainframe:
1. Download all of the BookManager files.
2. Transfer the bookshelf file as text. Replace the PC file extension with the host file
extension BKSHELF.
3. Transfer the book and book index files (BOO and BKI) as binary, fixed block files with
a logical record length (LRECL) of 4096. Replace the PC file extensions with the host
file extensions BOOK and BKINDEX respectively.
Known-Issues
While using BookManager files on either platform, you may encounter the following
known issues:
• Cross-references may have formatting information in plain text after the reference.
For example:
"Chapter 2, 'Hiperstation Installation Overview' Title_Chapter[xd3 Default
Font".
Also, some or all of the cross-reference text may be missing.
• Screens may be too close to the figure captions above them.
• Screens may not have graphic borders.
• Numbered text within a table may not be formatted properly. Text may be rightjustified in cells that should be left-justified.
If you are using the Softcopy Reader on the PC, you may encounter the following
additional formatting issues:
• Note text may be preceded by a bullet instead of the word, Note and the first letter
may appear in bold text.
• In the navigation frame, the book's Index may appear as a sub-topic under the last
chapter.
• Some cross-references may not be hyperlinked or may be missing entirely.
• Text, steps in numbered procedures, and bullets may be improperly indented.
If you are working on a PC, consider using the PDF or HTML files instead.
Using this Manual
Hiperstation for WebSphere MQ User Guide Overview
This manual provides comprehensive information to teach you how to use Hiperstation
for WebSphere MQ. Its organization reflects testing process:
• Chapter 1, “Product Overview” describes test capabilities and provides an overview
of Hiperstation for WebSphere MQ’s main functions.
• Chapter 2, “Global Recording Requests” describes how to create a recording request
and monitor existing requests.
xvi
Hiperstation for WebSphere MQ User Guide
• Chapter 3, “Scripts and Subset Repositories” describes how to create scripts and
subset repositories, and how to review and edit MQ message data within a script or
detail file, and how to read and edit script contents.
• Chapter 4, “Interactive Playback” describes how to play back your scripts
interactively.
• Chapter 5, “Unattended Playback” describes how to create and manage the assets
necessary for playback and how to play back and analyze scripts.
• Chapter 6, “Reporting” describes how to generate basic and custom reports.
• Chapter 7, “Archive Functions” describes the Hiperstation archive function. For
additional information about the archive function, see the Hiperstation Auditor User
Guide.
• Chapter 8, “Testing Scenarios” details common testing scenarios and provides
instruction for using the corresponding samples to learn how to use Hiperstation for
WebSphere MQ.
• Chapter 9, “Hiperstation for WebSphere MQ Profile Defaults” provides
information on how to edit your Hiperstation for WebSphere MQ profile settings.
• Appendix A, “Data Collection and Reporting Tables” lists all of the reporting fields
and tables that can be collected during unattended playback.
• Appendix B, “Hiperstation for WebSphere MQ Samples Index” lists and describes
the sample playback and reporting control assets, scripts and repositories, and other
samples that ship with this release.
• Appendix C, “Customer Support Diagnostics” explains how to run a Customer
Support Diagnostic Report that lists all PTFs applied to your installation.
• Appendix D, “Script Create Parameters” lists all script creation parameters.
Notation Conventions
This document uses the following notations to describe Hiperstation screens and the
information you enter on those screens:
• Technical revisions made to this document are indicated by revision bars in the left
margin, as shown here.
• Sample screens generally show only the information appropriate to the
accompanying text, for example:
ZOOM:PF23 ---------------------- Hiperstation ------------------- LINE 1 OF 24
COMMAND ===> record
SCROLL ===> HALF
Record OFF Play OFF Journal OFF Compare Log OFF autoDoc OFF
***USR2312
WELCOME TO CICS/MVS *** 10:11:42
• Blank lines or standard footings, as shown below, are usually omitted from screen
illustrations.
Press ENTER to begin recording,
Use END to cancel setup.
• Information you enter is printed in boldface.
• Words defined within paragraphs are italicized.
• The phrase “select an option” refers to typing a slash next to one of the presented
options and pressing Enter.
Introduction
xvii
Using Wild Cards
Many of the fields on the Hiperstation for WebSphere MQ screens support wildcard
characters for including ranges of criteria. Following is an example, using wildcard
characters for dataset names:
– Asterisk (*): Insert the asterisk in place of the dataset name (DSN) qualifier
characters that should be substituted with incremental values during repository
selection. This wildcard pads to 8 characters. For example, enter
USER.REP*.DATABASE with first=1 and last=3 to create scripts/subset repositories
from source repositories:
USER.REP00001.DATABASE
USER.REP00002.DATABASE
USER.REP00003.DATABASE
– Question mark (?): Insert a question mark for each DSN qualifier character that
should be substituted with incremental values during repository selection. For
example, enter USER. REP??.DATABASE with first=9 and last=11 to create
scripts/subset repositories from source repositories:
USER.REP09.DATABASE
USER.REP10.DATABASE
USER.REP11.DATABASE
For information on specific fields or specific screens, see the online help.
Command Syntax
Hiperstation uses statements and commands that you will learn about later. This section
describes text conventions used in statement and command descriptions. It also explains
how to read syntax diagrams.
• Keywords are shown in UPPERCASE letters. Enter keywords and special characters as
shown. If a command or statement name can be abbreviated, the description shows
only the abbreviation in uppercase letters.
Find string [NEXT|PREV|ALL]
The uppercase F in the command FIND means that you can enter the FIND command
either as FIND or F.
• Variables and generic descriptions of parameter values are shown in lowercase letters.
• Vertical bars (|) are separators between mutually exclusive options.
• Brackets ([ ]) indicate optional parameters. All parameters not enclosed in brackets
are required.
• Ellipses (…) indicate that the value can be repeated.
Reading Syntax Diagrams
Syntax diagrams define primary command syntax.
A parameter is either a keyword or a variable.
All KEYWORDs are shown in uppercase characters and must be spelled exactly as shown.
You cannot substitute another value. If any part of a KEYWORD is shown in lowercase
characters, that part is optional.
Variables are user-specified values and are printed in lowercase italics. For example,
dataset-name indicates you are to substitute a value.
xviii
Hiperstation for WebSphere MQ User Guide
The syntax for commands is described in diagrams that help you visualize parameter use.
The following example shows a command and a parameter:
Read the diagrams from left to right and from top to bottom. These symbols help you
follow the path of the syntax:
indicates the beginning of a statement.
indicates the statement is continued on the next line.
indicates the statement is continued from the previous line.
indicates the end of a statement.
Required parameters appear on the horizontal line (the main path). Optional parameters
appear below the main path. Default parameters appear above the main path and are
optional. The command executes the same regardless of whether the default parameter is
included.
Vertically stacked parameters are mutually exclusive. If you must choose a parameter, one
item of the stack appears on the main path. If the parameters are optional, the entire
stack appears below the main path. If a parameter in a stack is the default, it appears
above the main path.
If the same parameters are used with several commands, their syntax may be documented
in a separate diagram. In the command syntax, these common parameters are indicated
with separators before and after the parameter name.
An arrow returning to the left indicates a repeatable item. If the arrow contains a comma,
separate the repeated items with a comma.
Accessibility
In accordance with section 508 of the Rehabilitation Act of 1973, Compuware has
committed to making its products and services easier to use for everyone including
people with disabilities.
Introduction
xix
Hiperstation is a mainframe application that runs on IBM’s OS/390 and z/OS operating
systems. It has an ISPF interface that is accessed with IBM 327x-type terminals or with
3270 terminal emulator software. Since the mainframe environment offers few
accessibility features, Compuware has focused its attention, with regard to accessibility,
on 3270 terminal emulator software running on personal computers (PCs) with Microsoft
Windows 2000 or more current. Hiperstation supports, with a few exceptions, Microsoft
Windows accessibility features and Window-based Assistive Technology (AT) software
and devices, such as Braille devices, screen readers, magnifiers, etc.
Note: Hiperstation is intended for use by mainframe software developers, programmers,
and testers. Much of the input and output used or produced by Hiperstation,
such as Job Control Language (JCL) and hexadecimal contents or dumps of
memory, are not easily understood by the general public. Unfortunately, as in the
case of hexadecimal dumps, data in these formats can be confusing to screen
readers and therefore confusing to the people who use them. Effective use of this
application requires the specialized knowledge of a mainframe systems software
developer or programmer.
Hiperstation accessibility was evaluated using:
• Freedom Scientifics’ JAWS screen reader
• Attachmate Corporation’s myExtra Presentation Services tn3270 emulator
• Microsoft’s Windows accessibility features
• Adobe Reader using the “Read Out Loud” function
This evaluation not only identified accessibility exceptions, but revealed emulator and
screen reader compatibility issues that in some cases can be remedied through
appropriate configuration.
Installing Windows Accessibility Features
Microsoft Windows operating systems offer several accessibility features to aid
individuals who have difficulty typing or using a mouse, who are blind or have low
vision, or who are deaf or are hard-of-hearing. Install these features during setup or later
using the Windows installation disks. Refer to the “accessibility” topics in the Windows
Help system for information on installing and using these features. Visit the Microsoft
Web site, http://www.microsoft.com/enable, for additional information and tutorials.
Selecting Font and Font Size
Microsoft Windows and emulator software packages offer font and font size settings to
accommodate users with low vision. The emulator software’s tool bars and dialog boxes
typically use the font specified in the operating system, while the terminal presentation
uses the font and font size specified in the emulator. To change the font or font size:
• Presented on the toolbars and dialog boxes, refer to the Windows Help system.
• Presented in the terminal window, refer to the emulator’s documentation or Help.
Some screen readers recommend certain fonts and font sizes for compatibility. For
example, Freedom Scientifics recommends setting the font to a common or “plain” font
such as Lucida, Courier, or Times New Roman, and setting the font size to 10 points or
smaller. Refer to the screen reader’s documentation or Help for these recommendations.
Changing Color and Contrast
Color and contrast settings can assist users with low vision. ISPF and most emulator
software packages offer color and contrast settings. If you are accessing Hiperstation with
a terminal, use ISPF settings. Otherwise, adjust the color and contrast in the emulator
software. Refer to ISPF Help or the emulator’s documentation or Help.
xx
Hiperstation for WebSphere MQ User Guide
Setting Cursor Blink Rate
The blink rate of the cursor can affect users with photosensitive epilepsy. Additionally,
some screen readers require a specific blink rate. Some readers automatically adjust the
blink rate while others expect you to adjust the rate. Refer to:
• The Microsoft Windows Help to find out how to set the cursor blink rate.
• The screen reader’s documentation or Help to find out the recommended blink rate.
Using Keyboard Shortcuts
Keyboard access to application functions support users who cannot use a mouse.
Microsoft Windows provides keyboard access to all functions within the operating
system, such as:
• Displaying or hiding the Windows Start Menu
• Showing the Desktop
• Minimizing all windows
• Searching for files
• Accessing the help system
• Controlling the behavior of the Windows accessibility features, for example, toggling
the listening status to the microphone, or cycling focus backward and forward.
Most Windows-based applications also provide keyboard access to their functions. The
combination of keys required to execute a given function is called a keyboard shortcut.
Refer to the “Keyboard Shortcuts” topics in the Windows Help system for a complete list
of Windows shortcuts. For a list of the shortcuts that are available in the emulator
software or any third-party accessibility tool, such as the JAWS screen reader, refer to the
software’s documentation or Help.
Accessibility Exceptions Work Arounds
During Hiperstation accessibility evaluation, some exceptions were encountered where
some accessibility features or AT were not fully supported. The causes of and solutions for
these exceptions are currently under investigation by Compuware Corporation.
Known Exceptions
Accessibility exceptions include:
• Function Key (F Key) information at the bottom of the screen is not read by the
screen reader on some screens. This is believed to be caused by an external interface.
See “Solutions” for a viable work-around.
• Some system error and warning messages are not read by the screen reader when
issued. Believed to be caused by an external interface. See “Solutions” for a viable
work-around.
• Some pop-up dialog boxes or windows do not capture exclusive focus and are not
read correctly by the screen reader. This is believed to be caused by an external
interface. No known solution is currently available.
• System error and warning messages do not capture visual focus for the screen
magnifier. This is believed to be caused by an external interface. No known solution
is currently available.
• Some entry and display fields lack individual labels. When entry fields are accessed
using the Tab key, the entire individual line is read.
Introduction
xxi
• Current Web-based reports are not easily navigated using the keyboard and lack table
element coordinate tags. Additionally, some of these reports contain color-coded
elements — for example, the color of some elements conveys meaning.
Solutions
When the screen reader fails to read the F Key information upon entry to a new screen,
do one of the following:
• Use the arrow keys to move the cursor down to the lines with the F Key information.
The screen reader reads each line as the cursor is placed on it.
• Press the Page Up key for the screen reader to reread the entire screen.
When the screen reader fails to read an error or warning message, an audio alert occurs if
this feature is enabled on your system. Press the Up key to place the cursor on the line
containing the error message, usually on the top or title line. The screen reader reads the
line and its error message individually.
Getting Help
Compuware provides a variety of support resources to make it easy for you to find the
information you need.
FrontLine Support Web Site
You can access online information for Compuware products via our FrontLine support
site at http://frontline.compuware.com.
FrontLine provides access to critical information about your Compuware products. You
can review frequently asked questions, read or download documentation, access product
fixes, or e-mail your questions or comments. The first time you access FrontLine, you are
required to register and obtain a password. Registration is free.
Compuware now offers User Communities, online forums to collaborate, network, and
exchange best practices with other Compuware solution users worldwide. Go to
http://groups.compuware.com to join.
Contacting Customer Support
If you have difficulty with Hiperstation, refer to the information in the appropriate user’s
guide for help or consult with the Hiperstation technical representative at your site. If
the problem persists, please obtain the following information before calling Compuware:
1. The release number of the product being used
2. The release number of the transaction processing utility (such as CICS, IMS/DC, or
ISPF) being used
3. The operating system being used to help determine operating system dependencies
4. If an abend occurs, note the displacement and the module in which it occurs, and if
possible, obtain a copy of the system dump.
5. The sequence of issued transactions and/or commands that resulted in the problem
and the data type involved.
Phone
• USA and Canada: 1-800-538-7822 or 1-313-227-5444.
xxii
Hiperstation for WebSphere MQ User Guide
• All other countries: Contact your local Compuware office. Contact information is
available at http://frontline.compuware.com.
Web
You can report issues via the Report and Track Calls tab on the FrontLine home page.
Note:
Please report all high-priority issues by phone.
Mail
Hiperstation for WebSphere MQ Customer Support
Compuware Corporation
One Campus Martius
Detroit, MI 48226-5099
Corporate Web Site
To access Compuware’s site on the Web, go to http://www.compuware.com.
The Compuware site provides a variety of product and support information.
Note: Hiperstation provides a report that helps Customer Support diagnose an issue. See
Appendix C, “Customer Support Diagnostics” for details. Although it is not
required, generating the report before calling may expedite diagnosis.
1-1
Chapter 1.
Product Overview
Chap 1
Hiperstation for WebSphere MQ Overview
Hiperstation for WebSphere MQ is a powerful testing tool used to perform a variety of
functions. For example:
• Application Developers can use it to unit test new features.
• Quality Assurance personnel can use it to perform system, integration, and regression
testing to validate application functions.
• System Programmers can use it to verify Transmission Queue, Channel Initiator
(CHIN), and System Queue settings.
• MQ Administrators can use it to test triggers, verify queue definitions, and ensure the
overall integrity of the MQ environment.
• System Security or Audit personnel can use it to record all activity occurring on the
system for audit purposes.
Regardless of your testing requirements, you must fully understand the structure of your MQ
environment in order to use Hiperstation for WebSphere MQ.
Note:
It is very important to understand that Hiperstation for WebSphere MQ will,
when told, attempt to GET or PUT messages to or from trigger queues,
transmission queues, and system queues. In some cases this will be protected by
security, but most of the time it will not. For example, if Hiperstation for
WebSphere MQ captures a channel initiator getting a message from the transmit
queue and subsequently does a PLAY_TO of that, Hiperstation will attempt to
reload the transmit queue with an outbound message. This might not be what
you want. Another example: when replaying CICS GETs from a trigger queue,
playback could GET a trigger that does not belong to that application.
The four basic functions involved in MQ testing are:
• Recording activity — capture all application MQ traffic regardless of the application
type (batch, CICS, IMS, WebSphere Application Server, and so on) or record specified
activity based on queue managers, queues, jobnames, time frames, and so on.
• Creating scripts from recorded activity — filter captured activity to generate scripts
for various types of testing. Scripts contain formatted information that you can read
and Hiperstation for WebSphere MQ can process. Add REXX logic to:
– create dynamic scripts that facilitate data-driven testing. For example, create a
script that performs an account inquiry, then add REXX logic that reads
hundreds of account numbers from an external file and performs the inquiry on
each account.
– create a smart script that modifies application flow based on message content.
For example, add logic to an account inquiry script to have Hiperstation for
WebSphere MQ terminate playback if the inquiry returns a “system busy”
message.
1-2
Hiperstation for WebSphere MQ User Guide
• Playing back scripts — play back a script against the application being tested to
compare recorded application responses to live application responses. Test both
client and server with the same script by reversing the direction of playback. You can
also use this feature to build testing baselines or analyze script contents for
comparison reporting.
• Reporting — generate basic, predefined reports or build custom reports containing
the information you specify, presented the way you indicate. Generate TEXT, CSV, or
HTML reports in table or form layout.
Subsequent chapters within this manual detail each of these tasks. The last chapter
provides several comprehensive testing scenarios to help you understand the full range of
testing capabilities, as well as to teach you how to use Hiperstation for WebSphere MQ.
This release ships with samples that support these scenarios. Use the samples, along with
the appropriate instructional chapters, to replicate the tasks involved in each scenario.
For example, using the sample capture repository and scripts and subset repositories,
create scripts with the filtering specifications from a given scenario. Then verify your
work by using the reporting samples to generate a report that compares the sample
scripts to the scripts you created.
2-1
Chapter 2.
Global Recording Requests
Chap 2
Recording MQ activity is the first step of testing. Use the Monitor MQ Requests option
or the Global Recording Batch Interface to create and monitor recording requests.
Recorded activity is written to a sequential dataset or series of datasets referred to as a
capture repository. Testing scripts are then generated from the capture repository. Save
time by merging related repositories before generating scripts. For example, capturing
activity across multiple systems (LPARs), results in at least one repository per system.
Rather than generating scripts from each repository, merge them first, then generate
scripts.
Note:
Hiperstation for WebSphere MQ now supports disabling of User Key CSA
allocation. See the IBM publication, MVS Initialization and Tuning Reference, for
more information.
Adding a Global Recording Request
Important Note:
Repository datasets may contain sensitive information such as account numbers, payroll
information, credit card information, or clear text passwords. The scripts generated from
the repositories are formatted for browsing as well as playback. Ensure security by
implementing external security rules for all repository, script, and detail datasets.
Capture all MQ activity on the LPAR (logical partition) for the duration of the Global
Recording Started Task or limit capture to any or all of the following criteria:
•
•
•
•
•
•
Time frame
Queue Manager
Queue/Object name
Jobname
Completion Code
Reason Code
Selecting capture criteria that supports the testing you need to perform requires a
thorough understanding of triggers, trigger monitors, initiation queues, transmission
queues, channel initiators (CHIN), SYSTEM queues, and how they are implemented in
your environment. The following list provides Global Recording considerations regarding
these aspects of MQ messaging.
Note:
It is very important to understand that Hiperstation for WebSphere MQ will,
when told, attempt to GET or PUT messages to or from trigger queues,
transmission queues, and system queues. In some cases this will be protected by
security, but most of the time it will not. For example, if Hiperstation for
WebSphere MQ captures a channel initiator getting a message from the transmit
queue and subsequently does a PLAY_TO of that, Hiperstation will attempt to
reload the transmit queue with an outbound message. This might not be what
you want. Another example: when replaying CICS GETs from a trigger queue,
playback could GET a trigger that does not belong to that application.
2-2
Hiperstation for WebSphere MQ User Guide
• Triggers, Trigger Monitors, and Initiation Queues
When queue triggers are activated, the activity generated by WebSphere MQ to put
the trigger message into the appropriate initiation queue is not visible, and therefore
cannot be recorded by Global Recording. Trigger monitors, however, appear as
normal jobs or transactions to Global Recording. When creating a recording request,
it is your responsibility to ensure that trigger monitor activity (including jobs or
transactions initiated by the trigger monitor) is not recorded if it is not wanted in the
script.
• Transmission Queues
Normally, transmission queue activity is not directly part of a WebSphere MQ
application stream. If you need to record and play back MQ activity to or from a
transmission queue, be aware that the channel initiator can execute asynchronous
MQ API functions against that transmission queue independent of user applications.
It is your responsibility to ensure that the collected data and scripts contain only the
desired information.
• Channel Initiator (CHIN)
The CHIN is usually a long-running task. This means that some of the MQ_CONN,
MQ_DISC, MQ_OPEN, or MQ_CLOSE activities related to the MQ sessions being
recorded may not be readily available within the recording time frame.
• SYSTEM Queues
Be aware that MQ API activities to and from many MQ SYSTEM queues are available
to Global Recording. It is your responsibility to secure those queues from
unauthorized or inadvertent record or playback sessions.
To add a recording request:
1. From the Hiperstation Product Menu, select option 3 Hiperstation for
WebSphere MQ. The Hiperstation for WebSphere MQ Main Menu appears (Figure 21).
Figure 2-1. Hiperstation for WebSphere MQ Main Menu
----------------Option ===>
Hiperstation for WebSphere MQ - Main Menu
-----------------
Product Release: 08.00.01
1
2
3
4
5
6
Monitor MQ Requests
Create MQ Scripts
Playback MQ Scripts
MQ Playback Reporting
MQ Archive Requests
MQ Archive Web Reports
Add/Review your MQ recording requests
Create MQ scripts from a repository
Execute and save playbacks of MQ scripts
Report on database created from playback
Add, Review or Terminate MQ archive requests
Manage MQ archive web reports
2. Select option 1 Monitor MQ Requests. If recording requests do not exist for your user
ID, the Global Recording * Requests screen appears (Figure 2-2).
Global Recording Requests
2-3
Figure 2-2. Global Recording Requests Screen
------------------------- Global Recording * Requests ------------------------COMMAND ===>
******************************************************************************
*
*
*
No Global Recording Requests were found for your User ID.
*
*
*
******************************************************************************
Enter END to exit, ENTER to add a new request.
3. Press Enter to add a request or use END to exit the screen.
If your user ID has existing requests, the Global Recording - Monitor MQ Requests
screen appears (Figure 2-3). If there are no existing requests, the WebSphere MQ Data
Collect screen appears (Figure 2-4).
Figure 2-3. Global Recording - Monitor MQ Requests Screen
Hiperstation ------- Global Recording - Monitor MQ Requests ------- Row 1 of 1
Command ===>
Scroll ===> PAGE
Line commands are: (C)ancel, (F)orce, (P)Stop, (R)estart, (D)isable,
(S)elect, (U)pdate, (A)dd, (V)iew, or
(9)Switch repositories
Request
Active
Total
Owner
Sessions Sessions
------- -------- -------USER005
*******************************
Repository
Dataset
-------------------------------------------USER005.TEST.MQREC.REPOS01
BOTTOM OF DATA ********************************
4. Place the cursor on the line next to any existing request, type A and press Enter. The
WebSphere MQ Data Collect screen (Figure 2-4) appears.
Figure 2-4. WebSphere MQ Data Collect Screen
Hiperstation ------------- WebSphere MQ Data Collect --------- Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to data collection criteria below or select a filter to edit the
expanded fields. Use OK command when complete.
Restrict script input to
HH : MM :
Start Time . . 00 : 00 :
End Time . . . 00 : 00 :
certain times:
SS
MM / DD / YYYY
00
Start Date . . 00 / 00 / 0000
00
End Date . . . 00 / 00 / 0000
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
S
*
_
_
_
_
_
_
_
_
*
Ftr
***
001
002
003
004
005
006
007
008
***
Act QMGR Queue/Object name
Jobname Comp Reas
**** **** ******************************************** ******** **** ****
INCL *
**** **** ******************************************** ******** **** ****
2-4
Hiperstation for WebSphere MQ User Guide
5. Create filters to capture or omit activity based on queue manager, queue/object
name, jobname, completion code, or reason code. Hiperstation for WebSphere MQ
requires at least one filter containing queue manager criteria. Complete only the
fields for desired filtering criteria. Events that match all criteria on any of the include
filters and none of the criteria on any of the exclude filters are captured. EXCLUDEs
take precedence over INCLUDEs.
6. To limit capture to a specific time frame, enter a start and end time and date. To
begin recording immediately and terminate it at your request, leave these fields
blank. Valid date ranges are January 1, 2001 through December 31, 2040.
7. Enter line commands in the S column to add new filters, to copy or delete existing
filters, or to access filter detail screens. Delete cannot be used if the selected filter is
the only filter in the filter list, or if the filter is currently being used by an active
Global Recording request. Repeat is useful for creating several similar filters. Insert
adds a new filter containing default values, and the total number of filters cannot
exceed 999. Select displays the MQ Filtering Detail screen (Figure 2-5) for the selected
filter.
Figure 2-5. WebSphere MQ - MQ Filtering Detail
Hiperstation ------------- WebSphere MQ - MQ Filtering Detail ---------------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number . . . . 001 of 001
Filter action . . . . Include (Include or Exclude)
Field Name
*********************
Queue manager name .
Queue/Object name . .
Jobname . . . . . . .
Completion code . . .
Reason code . . . . .
Note:
RO
**
EQ
EQ
Filtering Criteria
******************************************************
OM*
TARGET.*
The MQ Filtering Detail screen contains the same information as the
WebSphere MQ Data Collection screen, however, some of the fields
accommodate longer entries. Use this screen to enter long queue manager
and queue names or to modify the relational operator (RO) used for each of
the selected filter’s criteria.
By default, all filtering criteria use the EQ (equals to) relational operator. In the RO
field, enter any of the following two-letter codes or symbols for the relational
operator you require:
RO
RO Code
RO Symbol
Equal to
EQ
== or =
Not equal
NE
¬= or !=
Less than
LT
<
Greater than
GT
>
Less than or equal to
LE
<=
Greater than or equal to GE
>=
When you are done, use END to return to the WebSphere MQ Data Collect screen.
8. Fill in the rest of the fields for the filter.
Global Recording Requests
2-5
To include a range of criteria or all queue managers, use the asterisk (*) wildcard
character. If you do not want an entire range, create separate filters for each of the
applicable criteria.
a. Type INCL or EXCL in the Act field. INCL captures the event. EXCL excludes the
event from capture.
b. The QMGR field is required. Enter the name of the queue manager to capture or
exclude from capture. Wildcards are supported.
c. Enter the Queue or Object Name to capture or exclude from capture. Wildcards
are supported. Leave blank to capture or omit activity from all queues belonging
to the specified queue managers.
d. Enter the Jobname to capture or exclude from capture. Wildcards are supported.
Leave this field blank if you do not wish to filter by jobname. The jobname is
defined by the application that creates the MQ message.
e. In the Comp field, enter the numeric completion code associated with the
jobnames you wish to capture or omit from capture. Valid values are 0 (successful
completion), 1 (warning - partial completion), or 2 (call failed). Leave this field
blank if you do not wish to filter by completion code.
f. In the Reas field, enter the numeric reason code associated with the jobnames
you want to capture or omit from capture. Numeric reason code 0 = no reason
code. Other reason codes can be from 2001 to 2360 and are listed in IBM’s
WebSphere MQ Application Programming Reference Guide. Leave this field blank if you
do not wish to filter by reason code.
9. When you have finished entering filtering criteria, type OK on the command line
and press Enter. The WebSphere MQ Data Collect - Output screen appears (Figure 26).
Figure 2-6. WebSphere MQ Data Collect - Output Screen
Hiperstation ------------ WebSphere MQ Data Collect - Output -----------------Command ===>
Choose where to store the data, then press ENTER to continue.
Repository dataset:
Dataset name . . . . . . 'USER005.TEST.MQREC.REPOS??'
First and last number . 01
15
(Needed if wildcard in dataset name)
Re-use repository options: (Enter "/" to select)
Delete existing data
/ Append to existing data
Overwrite existing data when all segments are full
Amount of data to use:
Message data from GETs . . . ALL
Message data from PUTs . . . ALL
(ALL or number of bytes)
(ALL or number of bytes)
10. Fill in the fields on this screen to specify where to store captured data, whether to
append or overwrite existing data, and to limit the number of message bytes to
capture for each PUT or GET.
You can store all captured data in one large sequential dataset or segment the dataset
to make data more accessible. Once a segment is full, Global Recording closes that
segment and begins writing captured data to the next specified segment. Switch
segments during recording to access recently captured data without interrupting
recording. See “Monitoring and Maintaining Existing Requests” on page 2-6.
a. In the Repository dataset fields, type a Dataset name for the dataset to use for
storing captured information. To create a segmented dataset, use the asterisk (*)
or question mark (?) wildcard characters in the dataset name field and define a
range with the First and last number fields:
2-6
Hiperstation for WebSphere MQ User Guide
Note: Begin each segment of the dataset name with an alpha character (A-Z) or
@#$, including segments with wildcard characters.
b. In the Re-use repository options section, select one of the following options:
• Delete existing data deletes all information in the specified repository or
repository segment. Use this option to replace existing repository datasets.
• Append to existing data begins writing new data at the end of existing data.
• Overwrite existing data when all segments are full begins overwriting data
in the first specified segment, once the last specified segment is full. If you
do not select this option, recording terminates once the last segment is full.
This field applies to segmented repositories only.
Note:
Overwrite deletes all existing data in a segment before writing new
data to that segment. It does not delete data until Global Recording
locates and processes activity that matches the request criteria. If no
activity matches, the dataset is not overwritten.
c. Amount of data to use defines the amount, in bytes, of GET and PUT messages
to capture. These options support application debugging and reduce the demand
on system resources. For example, if you need to inspect the first 200 bytes of
message data for debugging purposes, specify 200 on both sub-parameters. If you
are testing transaction speed and want to avoid storing and processing
unnecessary data, limit capture of GET messages. If your testing requires
comparing actual and expected values during playback, enter 'ALL'.
11. Press Enter to continue.
12. If you specified a dataset that has not been allocated, the Allocate a WebSphere MQ
Repository screen appears. If necessary, modify the default values and press Enter to
allocate the dataset. All repository segments are allocated with the same settings.
If you specified a dataset that has been migrated, the Recover Migrated Data Set
screen appears. Press Enter to recover the dataset or END to cancel recovery and
reenter dataset information.
If the dataset has already been allocated, the Global Recording - Monitor MQ
Requests screen appears. See the next section, “Monitoring and Maintaining Existing
Requests”.
Monitoring and Maintaining Existing Requests
The Monitor MQ Requests screen (Figure 2-7) typically displays all of the recording
requests that you have created. However, if you access this screen as an administrator, it
displays all existing recording requests created by all users. See “Monitor All Existing
Requests (Administrator Access)” on page 2-9. Active recording requests are highlighted.
Note:
For definitions of the fields on this screen, see the online help.
Global Recording Requests
2-7
Figure 2-7. Global Recording - Monitor MQ Requests Screen
Hiperstation ------- Global Recording - Monitor MQ Requests ------- Row 1 of 1
Command ===>
Scroll ===> PAGE
Line commands are: (C)ancel, (F)orce, (P)Stop, (R)estart, (D)isable,
(S)elect, (U)pdate, (A)dd, (V)iew, or
(9)Switch repositories
Request
Active
Total
Owner
Sessions Sessions
------- -------- -------USER005
*******************************
Repository
Dataset
-------------------------------------------USER005.TEST.MQREC.REPOS01
BOTTOM OF DATA ********************************
You can use this screen to add, cancel, force, stop, restart, disable, update, or view a
recording request, switch capture repository segments, and view session information.
Place the applicable line command next to the selected request and press Enter.
• C (cancel) cancels and deletes the request. All buffered information is also deleted,
which may result in partially recorded business transactions. To avoid losing
important data, STOP the request and wait until the request terminates before issuing
the CANCEL command. Use ISPF file management tools to delete any repository or
repository segments created by the request.
• F (force) terminates recording immediately and deactivates the request. This option
may result in partially recorded business transactions. To terminate capture of new
sessions, but allow capture to finish for in-flight sessions, use STOP instead.
Note: If the request specifies segmented repositories, the Force command will cause
an automatic switch to a new segment.
• P (stop) stops capture of new sessions and deactivates the request. Global Recording
continues to capture all sessions that are in-flight at the time the STOP is issued.
• R (restart) restarts the request. The request becomes active as soon as the time frame
specified within the request is met. Use this option to activate an inactive request.
Note:
Starting with Release 2.4, security is checked not only at program start, but
also whenever a global recording request is restarted. If security has changed
for the request owner or rules have been changed, requests that ran before
may no longer run.
• D (disable) disables the selected request. Use this option to prevent the request from
automatically starting when the Global Recording started task is brought up or when
the request’s start time is reached. Disabled requests present an asterisk(*) next to the
dataset name. STOP or FORCE the request prior to disabling it.
• S (select) displays a list of all objects and connections currently being captured. See
the next section, “View Session Information”.
• U (update) presents request information for update. Recording must be terminated
and the request must be inactive. Issue a STOP or FORCE to terminate recording and
deactivate the request. Once editing is complete, issue a RESTART command to
reactivate the request.
• A (add) adds a request. See “Adding a Global Recording Request” on page 2-1.
• V (view) views the selected request. The request cannot be modified in view mode.
• 9 (switch repositories) closes the current repository segment and begins writing to
the next segment. Use this feature to access recently recorded information without
interrupting capture.
2-8
Hiperstation for WebSphere MQ User Guide
Note: If you selected Overwrite existing data when all segments are full (Figure 26 on page 2-5), Hiperstation for WebSphere MQ begins writing data to the
first segment after the last segment is full. If the first segment is in use,
Hiperstation for WebSphere MQ produces a “Dataset Full” message and
begins writing to the next segment.
View Session Information
View an active request’s session information to verify recording criteria. If you see
activity you did not intend to capture, Cancel, Force, or Stop the request. If you Force the
request, you can Update it and Restart it.
Each line on the Active WebSphere MQ screen represents a “session”. It shows both:
• Object sessions (MQ_OPEN through MQ_CLOSE)
• Connection sessions (MQ_CONNECT through MQ_DISCONNECT or
MQ_ENDTHREAD)
At times, this screen shows connection sessions that do not appear to be related to the
activity your applications create. For example, a connection session could be shown for a
queue manager even though your application has never opened a queue managed by that
queue manager. This can occur because the events that cause tracking of a connection
session (MQ_CONNECT, MQ_COMMIT, and MQ_BACKOUT) do not have an associated
queue name, only a queue manager name. Hiperstation for WebSphere MQ displays these
connection sessions because they might eventually be associated with a queue name, on
an MQ_OPEN or MQPUT1 call, that matches your filtering criteria.
Data for connection sessions (MQ_CONNECT, MQ_COMMIT, MQ_BACKOUT,
MQ_DISCONNECT, and MQ_ENDTHREAD events) is written to your repository in ONLY
two cases:
• A filter matches the queue manager name and the recording request has the queue
name fully wildcarded (for example, QNAME=*), or
• A filter matches the queue manager name and there is an active object session, an
MQ_OPEN was seen, but not an associated MQ_CLOSE, that also matches the
filtering criteria.
Only connection-oriented events that occur within the bounds of an object-oriented
session are considered to be “of interest” if the filtering criteria contains an explicit
queue name. If you want a complete record of all events, fully wildcard the queue name.
1. To view session information, type S next to an active request on the Monitor MQ
Requests screen and press Enter. The Global Recording - Active WebSphere MQ
Sessions screen appears (Figure 2-8).
2. Press End to return to the Monitor MQ Requests screen.
Figure 2-8. Global Recording - Active WebSphere MQ Sessions Screen
Hiperstation --- Global Recording - Active WebSphere MQ Sessions -- Row 1 of 1
Command ===>
SCROLL ===> CSR
---- -------------------------------------- Session Start Last Update at Total
QMGR Queue/Object Name
MM/DD HH:MM:SS MM/DD HH:MM:SS Bytes
---- -------------------------------------- -------------- -------------- ----MQ06 *
07/31 13:47:42 07/31 13:47:42
0
******************************* BOTTOM OF DATA ********************************
Note:
For a definition of the fields on this screen, see the online help.
Global Recording Requests
2-9
Monitor All Existing Requests (Administrator Access)
Providing you have the appropriate authority, you can access the Monitor MQ Requests
option as an administrator. Use this feature to monitor and manage all existing recording
requests. See your Hiperstation installer if you need administrator access.
Note: If you need to update or restart a request, you can also require authority to update
the script and/or repository datasets specified in the recording request. Your
Hiperstation installer enables the security validation, while your Security
Administrator maintains the authorities.
To see all of the existing recording requests:
1. On the Command line of the Hiperstation for WebSphere MQ - Main Menu, type
ADMIN and press Enter. The screen title updates to indicate administrator access
mode.
2. Select the Monitor MQ Requests option and press Enter. The Monitor MQ Requests
screen appears (Figure 2-7 on page 2-7).
Using the Global Recording Batch Interface
Hiperstation for WebSphere MQ provides a batch interface to Global Recording. Use it
along with a job scheduler to automate capture initiation and termination. For example,
to initiate recording every morning at 8:00 AM and terminate it at 5:00 PM, create a job
to RESTART the request and a job to STOP the request. Use a job scheduler to submit the
jobs at the appropriate times.
Use the online and batch interfaces together. For example:
• Create a recording request with the online interface, then manage it with scheduled
jobs.
• Initiate recording with the batch interface, then use the Monitor MQ Requests option
view a list of sessions being capture.
Create a Global Recording Request
This section explains how to create a Global Recording request, check the status of
existing requests, manage existing requests, retrieve parameters from an existing request,
generate a request parameters skeleton, and troubleshoot failed jobs.
Global Recording writes captured activity to a specified dataset or range of datasets called
a capture file or a repository. Testing scripts are generated from the capture repository.
To capture activity, create a recording request. If you specify a time-frame for the request,
it becomes active at the designated start time. If you do not specify a time-frame, it
becomes active immediately. Capture begins when all of the criteria for an active request
are met.
Creating a Global Recording request with the batch interface involves defining the
parameters of the request. Parameters are defined in extensible markup language (XML).
The batch interface’s XML parser provides limited syntax support. Be sure to review
“Global Recording Request Parameter Syntax” on page 2-11 prior to writing or modifying
parameters.
To create a Global Recording request with the batch interface:
1. Define the Global Recording request parameters. See “Global Recording Request
Parameters” on page 2-12.
2-10
Hiperstation for WebSphere MQ User Guide
2. Use SQQFSAMP member DCIJCL (Figure 2-9 on page 2-10) to execute the ADD
request function.
a. Insert job statement information at the top of the sample.
b. Make sure the UPROCS statement points to the procedures library that contains
DCIPROC.
c. After the request is created, the batch interface returns a request key that contains
information about the request. Use the request key as input for request
management jobs (see “Manage Existing Requests” on page 2-20). The key is
written to the location specified on the FEEDBACK DD. To save the key in your
personal library, specify a sequential dataset, PDS(E) and member, or a generation
data group (GDG).
Note:
Allocate the dataset or GDG with a fixed block record format and an 80
byte record length.
d. On the SYSTSIN DD statement, make sure ADD is specified on the PARM
keyword.
e. On the SYSIN DD statement, either supply the name of the dataset containing
the request parameters or enter the parameters in-line.
Note:
In-stream parameters cannot exceed 80 bytes. If you edited the
parameters on a PC and copied them back to a dataset exceeding 80
bytes, point the DD to the dataset rather than pasting the parameters
into the job.
Figure 2-9. DCIJCL — Sample JCL to Add or Manage Requests
********************************* Top of Data **********************************
//* INSERT JOB CARD HERE...............................................
/*JOBPARM SYSAFF=sysn
//*********************************************************************
//* JCL TO ADD OR MODIFY 3270, APPC, TCP/IP, OR WEBSPHERE MQ GLOBAL
*
//* RECORD REQUESTS.
*
//*
*
//* UPROCS:
DATASET THAT CONTAINS THE DCIPROC.
*
//*
*
//* FEEDBACK: OUTPUT XML THAT MAY BE USED AS INPUT TO SUBSEQUENT
*
//*
STEPS.
*
//*
*
//* SYSTSIN: TSO BACKGROUND INPUT STREAM.
*
//*
ISPSTART PGM(QACDCIP) - EXECUTE THE GLOBAL RECORD
*
//*
BATCH INTERFACE (GRBI)
*
//*
PARM(command) - IS THE COMMAND PASSED TO THE GRBI
*
//*
*
//* SYSIN:
XML INPUT.
*
//*
*
//*********************************************************************
//UPROCS JCLLIB ORDER=('COMPWARE.SQQFSAMP')
<-REVIEW
//DCI
EXEC PROC=DCIPROC
//FEEDBACK DD *
//SYSTSIN DD *
ISPSTART PGM(QACDCIP) PARM(ADD)
<-REVIEW
/*
//SYSIN
DD DISP=SHR,DSN=COMPWARE.SQQFSAMP(DCIADXMQ)
<-REVIEW
******************************** Bottom of Data ********************************
3. After the job is prepared, submit it in one of the following ways:
– Submit the job from the ISPF Edit session to execute it immediately. Type SUB on
the Command line and press Enter.
– Schedule the job to run at a specific time. See your job scheduler’s
documentation for help.
Global Recording Requests
2-11
Note: DCI produces real return codes, as opposed to always returning a zero value. This
allows you to determine whether global record or archive record requests started.
It also allows JCL creation where job steps may or may not be executed based on
whether the DCI request succeeded.
Global Recording Request Parameter Syntax
Global Recording request parameters are defined in XML. Write the parameters from
scratch or start with a sample or a generated parameter set. Store the parameters in a
dataset or paste them right into the JCL. Use a standard file editing tool to modify the
parameters.
Note: The batch interface contains a proprietary XML parser that supports a limited set
of XML elements. It recognizes only the syntax described in this section.
Most recording request XML parameters are comprised of an opening tag, followed by a
value and a closing tag. Opening and closing tags must be contained in angle brackets.
The closing tag must be proceeded by a back slash inside the angle brackets. For example:
<Queue_Manager> '*' </Queue_Manager>
If the parameter’s value contains spaces, it must be placed in single quotation marks. In
the samples and generated parameter sets, the parameter values always appears inside
single quotes.
Some parameters require a format indicator followed by a value supplied in single
quotation marks. For example, the Request ID tag accepts a hexadecimal or character
value. Indicate the format of the value by placing an X or a C before the value, outside of
the quotation marks.
<Request_ID> C'HS_REQ'</Request_ID>
The batch interface ignores spaces between the tag and the tag’s value. For example, the
following parameter is interpreted the same way as the previous Queue Manager
parameter example:
<Queue_Manager>
</Queue_Manager>
'*'
To make the samples and generated parameter sets easier to read, most parameters are
formatted with the opening tag and value on one line and the closing tag on the
following line.
XML parameters are hierarchal. That is, some parameters have a group of related subparameters. For example, the Start_Time, End_Time, Start_Date and End_Date are subparameters of the Scheduled_Capture parameter. Sub-parameters must be nested within
opening and closing parent parameter tags. For example,
<Scheduled_Capture>
<Start_Date>
'00/00/0000'
</Start_Date>
<Start_Time>
'00:00:00'
</Start_Time>
<End_Date>
'00/00/0000'
</End_Date>
<End_Time>
'00:00:00'
</End_Time>
</Scheduled_Capture>
Depending on the request you are creating, there may be several levels of nesting. For
example, all of the MQ Global Recording request parameters are sub-parameters of the
<MQS> protocol parameter. The start and end time and date parameters are subparameters of Scheduled_Capture, which is a sub-parameter of the <MQS> protocol
parameter.
2-12
Hiperstation for WebSphere MQ User Guide
<MQS>
<Request_ID>
C'MY_REQ'
</Request_ID>
<Scheduled_Capture>
<Start_Date>
'00/00/0000'
</Start_Date>
<Start_Time>
'00:00:00'
</Start_Time>
</Scheduled_Capture>
</MQS>
Note:
This example shows tag nesting. It is not a complete set of request parameters.
Indenting nested tags is not necessary. However, it makes editing much easier. In the
samples and generated parameter sets, each level of nesting is indented one space.
Finally, an XML stream can contain comments that the batch interface ignores.
Comment text must be prefixed with an opening angle bracket, an exclamation point
and two dashes and followed with two dashes and closing angle bracket. For example:
<!--This is an XML comment. -->
Global Recording Request Parameters
Global Recording request parameters are defined in XML. Start with one of the following:
• The parameters from an existing request. See “Retrieve Parameters from an Existing
Request” on page 2-22.
• A parameters skeleton. See “Generate a Request Parameters Skeleton” on page 2-23.
• SQQFSAMP member DCIADXMQ: Contains all available MQ Global Recording
request parameters.
• SQQFSAMP member DCIADDMQ: Contains a subset of commonly used MQ
recording request parameters.
Store the parameters in a sequential dataset or a PDS member in your personal library or
write them directly in the JCL. Use a standard file editing tool such as ISPF Edit to write
or modify the parameters.
Notes:
a. XML tags are case-sensitive. Make sure the ISPF Caps function is set to off when
editing the parameters. Type CAPS OFF on the Command line and press Enter.
b. To work with a parameters file on the PC:
• Use the IBM utility IEBGENER to copy the dataset into an HFS file.
• FTP the file to the PC. To avoid EBCDIC to ASCII translation issues, transfer
the file as 'text'.
Use an XML editor, such as Notepad, to edit the tags. Pay attention to syntax
interpretation. The Global Recording batch interface cannot recognize tags that
have been reformatted based on the viewer’s interpretation. For example, some
editors format tags that have no values as follows <tag/>. Encase blank values in
single quotes to avoid this particular interpretation issue. All tags must conform
to the syntax rules described in “Global Recording Request Parameter Syntax” on
page 2-11.
To avoid record truncation when transferring the parameters back to the
mainframe, copy them into a fixed block dataset with a logical record length that
supports the longest record.
Global Recording Requests
2-13
This section provides an illustration of sample DCIADXMQ (Figure 2-10) and defines all
of the available MQ Global Recording request parameters. Parameter hierarchy is shown
and defined within the parameter definitions.
Figure 2-10. SQQFSAMP Member DCIADXMQ (Part 1 of 2)
********************************* Top of Data **********************************
<MQS>
<Request_ID>
X'000000000000'
</Request_ID>
<Scheduled_Capture>
<Start_Date>
</Start_Date>
<Start_Time>
</Start_Time>
<End_Date>
</End_Date>
<End_Time>
</End_Time>
</Scheduled_Capture>
'00/00/0000'
'00:00:00'
'00/00/0000'
'00:00:00'
<Capture_File>
<Dataset>
'COMPWARE.SAMPLE.CAPTURE.FILE*'
</Dataset>
<First_Number>
'1'
</First_Number>
<Last_Number>
'10'
</Last_Number>
<!-- Valid 'Initial_Disposition' values are APPEND or OVERWRITE -->
<Initial_Disposition>
'APPEND'
</Initial_Disposition>
2-14
Hiperstation for WebSphere MQ User Guide
Figure 2-11. SQQFSAMP Member DCIADXMQ (Part 2 of 2)
<Allocation>
<Management_Class>
</Management_Class>
<Storage_Class>
</Storage_Class>
<Volume_Serial>
</Volume_Serial>
<Device_Type>
</Device_Type>
<Data_Class>
</Data_Class>
<Space_Units>
</Space_Units>
<Primary_Quantity>
</Primary_Quantity>
<Secondary_Quantity>
</Secondary_Quantity>
<Block_Size>
</Block_Size>
</Allocation>
</Capture_File>
<Recording_Options>
<Reuse_Capture_File>
</Reuse_Capture_File>
</Recording_Options>
<Data_To_Keep>
<Data_From_GETS>
</Data_From_GETS>
<Data_From_PUTS>
</Data_From_PUTS>
</Data_To_keep>
''
''
''
'SYSDA'
''
'TRKS'
'10'
'5'
'9004'
'NO'
'ALL'
'ALL'
<MQS_Capture_Filters>
<Filter Record="1">
<!-- Valid 'Action' values are INCLUDE or EXCLUDE -->
<Action>
'INCLUDE'
</Action>
<!-- Valid '_RO' values are EQ, NE, GT, LT, GE, or LE -->
<Queue_Manager_RO>
'EQ'
</Queue_Manager_RO>
<Queue_Manager>
'*'
</Queue_Manager>
<Queue_Object_Name_RO> ''
</Queue_Object_Name_RO>
<Queue_Object_Name>
''
</Queue_Object_Name>
<Jobname_RO>
''
</Jobname_RO>
<Jobname>
''
</Jobname>
<Comp_Code_RO>
''
</Comp_Code_RO>
<Comp_Code>
''
</Comp_Code>
<Reason_Code_RO>
''
</Reason_Code_RO>
<Reason_Code>
''
</Reason_Code>
</Filter>
</MQS_Capture_Filters>
</MQS>
******************************** Bottom of Data ********************************
Protocol Parameter Tag
MQS
Identifies the type of Global Recording request to add. This is a parent tag to all other
parameters described in this section. Begin and end the XML input stream with
opening and closing MQS tags.
Global Recording Requests
2-15
General Request Parameter Tags
Request ID
The ID of the Global Recording request. To assign a request ID, supply a six-byte
hexadecimal or character value in single quotes. Place a format indicator in front of
the value outside of the quotation marks. X indicates hexadecimal values and C
indicates character values. For example:
– <Request_ID> X'010203040506' </Request_ID>
– <Request_ID> C'HSREQ1'</Request_ID>
The batch interface pads hexadecimal values that are less than six bytes with zeros
and character values that are less than six bytes with spaces.
This tag is optional. If you do not supply a request ID, the system assigns one when
the request is created.
Scheduled Capture Parameter Tags
Scheduled_Capture
Sets a start time and duration for the request. The request activates at the defined
start time and date and remains active until the specified end time and date, unless
the capture repository fills up and the Reuse_Capture_File tag is set to 'NO'.
Omit this entire block of tags if you want capture to begin immediately and remain
active indefinitely.
The following parameters are Scheduled_Capture sub-parameters. Supply the
applicable parameters between the opening and closing Scheduled_Capture tags.
Start_Date
The date the request is to be activated. Specify a two digit month, a two digit day,
and a four digit year separated by forward slashes: 'MM/DD/YYYY'.
If you specify a start date with no time, the request activates at the beginning of
the given day — that is, midnight (00:00:00).
Start_Time
The time the request is to be activated. Specify a two digit hour, a two digit
minute, and a two digit second separated by colons: 'HH:MM:SS'.
If you specify a start time, a start date is required.
If you do not specify a start time or date, the request activates immediately.
End_Date
The month, day, and year to deactivate the request. Specify a two digit month, a
two digit day, and a four digit year separated by forward slashes: 'MM/DD/YYYY'.
If you specify an end date with no time, the request deactivates at the end of the
given day — that is, midnight (24:00:00).
End_Time
The time the request is to be deactivated. Specify a two digit hour, a two digit
minute, and a two digit second separated by colons: 'HH:MM:SS'.
If you do not specify an end time or date, the request remains active until you
STOP, FORCE or CANCEL it or until the repository is full if you did not set the
Reuse_Capture_File tag to 'YES'.
If you specify an end time, an end date is required.
2-16
Hiperstation for WebSphere MQ User Guide
Capture File Parameter Tags
Capture_File
Defines the dataset to use for storing the captured data.
The following parameters are Capture_File sub-parameters. Supply the applicable
parameters between the opening and closing Capture_File tags.
Dataset
The name of the dataset to use for storing captured information. This is a
required parameter. It accepts 44 characters.
To create a segmented capture file, use either the asterisk (*) or question mark (?)
wildcard characters in the dataset name. Define a range for the wildcard
characters with the First_Number and Last_Number tags:
Note: Begin each segment of the dataset name with an alpha character (A-Z) or
@#$, including segments with wildcard characters.
First_Number
Defines the first value to use for wildcard characters specified on the Dataset tag.
Supply a value up to seven digits. If you did not use a wildcard, do not include
this tag.
Last_Number
Defines the last value to use for wildcard characters specified on the Dataset tag.
Supply a value up to seven digits. If you did not use a wildcard, do not include
this tag.
Initial Disposition
Indicates whether to append or overwrite data contained in the specified dataset.
Valid values are 'APPEND' or 'OVERWRITE'. This tag is unnecessary if the
specified dataset does not exist. If the specified dataset does exist, and you do not
provide an initial disposition value, Global Recording appends the new data to
the existing data.
Note: The dataset is overwritten when Global Recording captures and processes
activity that matches the request criteria. If no activity matches, the
dataset is not overwritten.
Allocation
Allocation parameters for the capture file dataset. If you do not supply allocation
parameters and the specified dataset does not exist, the batch interface allocates
it with default values set by the installer. Generally, the default values are
appropriate. However, you can override any or all of the default parameters by
using the following Allocation sub-parameters.
Supply the applicable parameters between the opening and closing Allocation
tags.
Management_Class
The management class to apply to the new dataset. Management classes are
defined by the storage administrator at your site.
Storage_Class
The storage class to apply to the new dataset. Storage classes are defined by
the storage administrator at your site.
Volume_Serial
The serial number of the volume on which the dataset is to be stored.
Global Recording Requests
2-17
Device_Type
The type of device on which the dataset is to be stored. Can be a generic unit
such as 'SYSDA'.
Data_Class
The data class to apply to the new dataset. Data classes are defined by the
storage administrator at your site.
Space_Units
The type of units used to store the data. Valid values are: TRKS (Tracks), CYLS
(Cylinders), BLKS (Blocks), BYTES, KB (kilobytes), or MB (megabytes). Space
units combined with the primary and secondary quantities define the
amount of space allocated for the dataset.
Primary_Quantity
The number of space units to allocate initially. Once Global Recording fills
the primary quantity, it allocates the secondary quantity.
Secondary_Quantity
The number of space units to allocate after the primary quantity is full.
Block_Size
The maximum length, in bytes, of the blocks of data that the system reads in
as it processes a dataset.
Recording Option Parameter Tags
Recording_Options
Defines recording request actions.
The following parameter is a Recording_Options sub-parameter. If you supply this
tag, be sure to place it between the opening and closing Recording_Options tags.
Reuse_Capture_File
This parameter applies to segmented capture files only. It causes Global
Recording to continue capturing activity after the capture file segments are full.
After the last segment fills, Global Recording begins writing to the first segment
again, replacing the oldest captured activity.
To enable this option, supply this tag with a value of 'YES'. If you omit this tag or
supply it with a value of 'NO', recording terminates after the last segment is full.
Data To Keep Tags
Data_To_Keep
Defines the amount, in bytes, of GET and PUT message data to capture. These
options support application debugging and reduce the demand on system resources.
For example, if you need to inspect the first 200 bytes of message data for debugging
purposes, specify 200 on both sub-parameters. If you are testing transaction speed
and want to avoid storing and processing unnecessary data, limit capture of GET
messages.
If your testing requires comparing actual and expected values during playback,
specify 'ALL' or omit these parameters altogether.
The following parameters are Data_to_Keep sub-parameters. Supply the applicable
parameters between the opening and closing Data_to_Keep tags.
Data_From_GETS
The number of bytes to capture from each GET message. This is an optional
parameter. If you omit this tag, Global Recording captures all message data.
2-18
Hiperstation for WebSphere MQ User Guide
Data_From_PUTS
The number of bytes to capture from each PUT message. This is an optional
parameter. If you omit this tag, Global Recording captures all message data.
MQS Capture Filter Tags
Filter Record="x"
Defines a filter for recording. Capture or ignore activity based on queue manager,
queue/object name, jobname, completion code, or reason code.
Supply this tag with a filter number enclosed in double quotation marks. For
example, <Filter Record="1">. To create multiple filters, copy this block of tags and
increment the value of x for each filter.
The batch interface requires at least one filter, containing minimally the
Queue_Manager sub-parameter. All other sub-parameters are optional. If you want to
record all MQ activity on the system, create a filter and specify a wildcard on the
Queue_Manager parameter. For example:
<Filter Record="1">
<Queue_Manager> ‘*’
</Queue_Manager>
</Filter>
Each sub-parameter, except Action, has a corresponding relational operator (RO)
parameter. Use these parameters to indicate how events are evaluated for each
filtering criterion. Valid values are:
– 'EQ' for Equal to
– 'NE' for Not Equal
– 'LT' for Less Than
– 'GT' for Greater Than
– 'LE' for Less than or Equal to
– 'GE' for Greater than or Equal to
Specify the RO based on your MQ environment and your recording needs. For
example, to capture all events handled by a specific queue manager, except the
events from a specific queue, set the Queue_Manager_RO to EQ and the
Queue_Object_name_RO to NE and supply the queue manager and queue names on
the corresponding tags.
If you do not supply an RO value for a given parameter, Global Recording uses EQ.
The following parameters are Filter Record="x" sub-parameters. Nest the applicable
sub-parameters between an opening <Filter Record="x"> tag and a closing </Filter>
tag.
Action
The action that Global Recording is to take when an MQ event matches all of the
filter’s criteria. Supply a value of 'INCLUDE' or 'EXCLUDE'.
Global Recording captures events that match all criteria on any of the “include”
filters and none of the criteria on any of the “exclude” filters. If an event does
not match any filter or if matches both an “include” and “exclude” filter, it is not
captured.
It you omit the parameter, Global Recording assumes the filter is an “include”
filter.
Queue_Manager_RO
The relational operator used to evaluate events based on the Queue_Manager
value.
Global Recording Requests
2-19
Queue_Manager
The name of the queue manager to capture or exclude from capture. This is a
required parameter. Supply:
• A specific queue manager.
• A range of queue managers by supplying the beginning of the queue
manager name followed by an asterisk (*).
• All queue managers by supplying a single asterisk or omitting the tag
altogether.
Queue_Object_Name_RO
The relational operator used to evaluate events based on the Queue_Object_name
value.
Queue_Object_Name
The queue or object name to capture or exclude from capture. Specify:
• A specific queue/object name.
• A range of queues/objects by supplying the beginning of the queue/object
name followed by an asterisk (*).
• All queues/objects by supplying a single asterisk or omitting the tag
altogether.
Jobname_RO
The relational operator used to evaluate events based on the Jobname value.
Jobname
The jobname to capture or exclude from capture. Specify:
• A specific job name.
• A range of job names by supplying the beginning of the job name followed
by an asterisk (*).
• All job names by supplying a single asterisk or omitting the tag altogether.
Note:
The jobname is defined by the application that creates the MQ message.
Comp_Code_RO
The relational operator used to evaluate events based on the Comp_Code value.
Comp_Code
The numeric completion code associated with the jobnames you need to capture
or omit from capture. Valid values are 0 (successful completion), 1 (warning partial completion), or 2 (call failed).
Reason_Code_RO
The relational operator used to evaluate events based on the Reason_Code value.
Reason_Code
The numeric reason code associated with the jobnames you need to capture or
omit from capture. Numeric reason code 0 = no reason code. Other reason codes
can be from 2001 to 2360 and are listed in IBM’s WebSphere MQ Application
Programming Reference Guide.
Check the Status of Existing Requests
Use the KEYS function to:
2-20
Hiperstation for WebSphere MQ User Guide
• Check the status of a specific Global Recording request.
• Generate status information for all of your existing Global Recording requests that
you created. You can also use this feature to locate a forgotten request ID.
Each request has an associated request key that consists of the following information:
• Protocol — The protocol of the activity that the request is to record.
• Status — The status of the request (Stopped, Active, or Disabled).
• Request ID — The six byte ID assigned to the request.
• Capture File — Name of the capture file (also known as Repository Dataset).
This is the same information that the batch interface returns when you create a request.
In fact, if you are checking the status of a specific request, use the returned request key as
the input for the KEYS function.
Use SQQFSAMP member DCIJCL (Figure 2-9 on page 2-10) to execute the KEYS function.
1. Insert job statement information at the top of the sample.
2. Make sure the UPROCS statement points to the procedures library that contains
DCIPROC.
3. Keys are written to the location defined by the FEEDBACK DD statement. To save the
key in your personal library, specify a sequential dataset, PDS(E) and member, or a
generation data group (GDG)
Note:
Allocate the GDG with a fixed block record format and an 80 byte record
length.
4. On the SYSTSIN DD statement, specify KEYS on the PARM keyword.
5. KEYS function parameters are also defined in XML. The parameters required differ
depending on the information you need to produce.
– To check the status of a specific request, the KEYS function requires the protocol,
request ID, and capture file associated with the request. On the SYSIN DD, either
supply the name of the dataset containing the request key or enter the
parameters in-line. For example:
// SYSIN DD *
<MQS>
<Request_ID>
C'HS_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USER253.MQ.HS.REC??’
</Dataset>
</Capture_File>
</MQS>
If the ADD request FEEDBACK went to SYSOUT, copy and paste the request key
from the JES job log.
– To generate status information for all of the existing MQ requests that you
created, the KEYS function requires the protocol parameter. For example:
// SYSIN DD *
<MQS>
</MQS>
6. Submit the job.
Manage Existing Requests
Use the batch interface request management functions to:
Global Recording Requests
2-21
• Stop recording
• Delete or update a request
• Restart an inactive request
• Disable a request to prevent it from automatically restarting
• Switch the capture file segment to review captured activity without interrupting
recording.
All of these functions require information found in the request key that the batch
interface returns when you create a request. If you do not have the request key but you
know the request ID and capture file name, write the parameters directly into the job. If
you do not know this information, use the KEYS function to produce a list of existing
requests. See “Check the Status of Existing Requests” on page 2-19.
Use SQQFSAMP member DCIJCL (Figure 2-9 on page 2-10) to execute request
management functions.
Note:
DCIJCL contains the FEEDBACK DD statement that supports request creation.
Request management functions do not write output to this DD. To see request
modification messages, review the PRGLOG DD in the JES job log.
1. Insert job statement information at the top of the sample.
2. Make sure the UPROCS statement points to the procedures library that contains
DCIPROC.
3. On the SYSTSIN DD statement, specify one of the following request management
functions on the PARM keyword:
CANCEL
Cancels and deletes the request. All buffered information is also deleted, which
may result in partially recorded business transactions. To avoid losing important
data, STOP the request and wait until the request terminates before issuing the
CANCEL command.
Use ISPF file management tools to delete any repository or repository segments
created by the request.
FORCE
Terminates recording immediately and deactivates the request. This option may
result in partially recorded business transactions. To terminate capture of new
sessions, but allow capture to finish for in-flight sessions, use STOP instead.
STOP
Stops capture of new sessions and deactivates the request. Global Recording
continues to capture all sessions that are in-flight at the time the STOP is issued.
RESTART
Restarts the request. The request becomes active as soon as the time frame
specified within the request is met. Use this option to activate an inactive
request.
DISABLE
Disables the request. When the Global Recording started task is brought up, all
requests, except disabled requests, are restarted.
Note:
SWITCH
STOP or FORCE the request prior to disabling it.
2-22
Hiperstation for WebSphere MQ User Guide
Closes the capture file segment that is currently being written and opens the
next segment. This option is available only if the capture file dataset name
contains a wildcard character (* or ?).
4. The request management functions require the protocol, request ID, and capture file
associated with the request. On the SYSIN DD, either supply the name of the dataset
containing the request key or enter the parameters in-line. For example:
// SYSIN DD *
<MQS>
<Request_ID>
C'HS_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USER253.MQ.HS.REC??’
</Dataset>
</Capture_File>
</MQS>
5. Submit the job.
Note:
The batch interface does not supply an update function. Use a combination of
other functions to modify a request.
1. Use the VIEW function to retrieve the parameters from the request. See
“Retrieve Parameters from an Existing Request” on page 2-22.
2. Modify the parameters. See “Global Recording Request Parameters” on page
2-12 for parameter definitions.
3. Use the STOP, FORCE, or CANCEL functions to stop recording.
4. If you use STOP or FORCE to stop recording, wait for recording to terminate,
then use CANCEL to delete the request.
5. Use the ADD function to create a new request using the modified parameters.
Execute steps 3-5 as separate jobs or separate steps within a single job.
Retrieve Parameters from an Existing Request
The VIEW function writes the parameters from a specified request to a location you
define. Use it to:
• Review or validate a request’s parameters.
• Save time adding a new request. Rather than writing Global Recording request
parameters from scratch, retrieve the parameters from a similar request and modify
them to meet your needs.
• Update a request. Retrieve the parameters from the request you need to update.
Modify the parameters. STOP the request. CANCEL the request. ADD a new request
using the modified parameters.
Note:
If there are no existing requests, you do not specify a request ID, or the specified
request ID does not exist, the VIEW function produces a request parameters
skeleton, which is a complete set of parameters with default values.
Use SQQFSAMP member DCIJCL (Figure 2-9 on page 2-10) to execute the VIEW function.
1. Insert job statement information at the top of the sample.
2. Make sure the UPROCS statement points to the procedures library that contains
DCIPROC.
3. The batch interface writes VIEW function output to the location specified on the
FEEDBACK DD. To save the VIEW output in your personal library, specify a
sequential dataset, PDS(E) and member, or a generation data group (GDG)
Global Recording Requests
Note:
2-23
Allocate the GDG with a fixed block record format and an 80 byte record
length.
4. On the SYSTSIN DD statement, specify VIEW on the PARM keyword.
5. When retrieving parameters from a specific request, the VIEW function requires the
protocol, request ID, and capture file associated with the request. On the SYSIN DD,
either supply the name of the dataset containing the request key or enter the
parameters in-line. For example:
// SYSIN DD *
<MQS>
<Request_ID>
C'HS_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USER253.MQ.HS.REC??’
</Dataset>
</Capture_File>
</MQS>
6. Submit the job.
Generate a Request Parameters Skeleton
If there are no existing requests, you do not specify a request ID, or the specified request
ID is not found, the VIEW function produces a request parameters skeleton. A request
parameters skeleton is a complete set of Global Recording parameters with default values.
Generate a skeleton to:
• Save time creating a new request.
• See all of the available parameters.
• Reference the syntax of a particular tag.
Use SQQFSAMP member DCIJCL (Figure 2-9 on page 2-10) to execute the VIEW function.
1. Insert job statement information at the top of the sample.
2. Make sure the UPROCS statement points to the procedures library that contains
DCIPROC.
3. The batch interface writes VIEW function output to the location specified on the
FEEDBACK DD. To save the VIEW output in your personal library, specify a
sequential dataset, PDS(E) and member, or a generation data group (GDG)
Note:
Allocate the GDG with a fixed block record format and an 80 byte record
length.
4. On the SYSTSIN DD statement, specify VIEW on the PARM keyword.
5. On the SYSIN DD, supply the opening and closing protocol tags for the type of
request you need to create. For example:
// SYSIN DD *
<MQS>
</MQS>
Troubleshoot Failed Jobs
An ISPF background task initiates and terminates the Global Recording batch interface.
ISPF issues a return code for the background task. Do not confuse this return code with
the Global Recording batch interface’s return code. The batch interface writes its return
code to the PRGLOG DD. Providing your installer accepted the default, PRGLOG resides
in the JES job log.
2-24
Hiperstation for WebSphere MQ User Guide
The Global Recording batch interface adds and modifies recording requests based on the
parameters you supply. The Global Recording started task executes the requests. The
batch interface reports messages pertaining to request creation or modification, while the
started task reports messages pertaining to recording. Locate:
• Batch interface status and error messages in the PRGLOG in the JES job log.
• Global Recording started task error and status message in the JES job log and SYSTEM
log.
Merging Capture Repositories
Hiperstation for WebSphere MQ provides an MVS batch utility that combines the
information in two or more specified repositories. It orders the activity by time stamp. If
you need to generate scripts from multiple repositories, save time by merging the
repositories first. For example, rather than generating scripts four times from repositories
captured on four different systems (LPARs), merge the repositories and generate scripts
once.
To merge two or more repositories:
1. Copy member SYSPLEX from the samples library, typically SQQFSAMP, to your
personal JCL library.
2. Open SYSPLEX (Figure 2-12 on page 2-25) with a standard editing tool such as ISPF
Edit.
3. Place job statement information at the top of the sample.
4. Make sure the STEPLIB DD points to the Hiperstation load library and the C and C++
LE datasets at your installation.
5. On the REPIN DD statement, specify the repositories to be merged. Place each fully
qualified repository dataset name on a separate line. If the repository is segmented,
supply the repository name with the appropriate wildcard characters, followed by a
space, then a ‘first’ value, a space, and a ‘last’ value. ‘First’ and ‘last’ are numeric
values between 1 and 9999999. ‘First’ must be lower than ‘last’. These values are used
to resolve the repository segment dataset names.
6. On the SYSIN DD statement, supply the job parameters, as shown in the sample, or
the name of the dataset containing the job parameters. Whether the parameters are
defined inline or in an external dataset, put each parameter on a separate line. For
the parameters that require a value, follow the parameter name with a space, then an
equals sign (=), another space, and then the value.
Parameter definitions follow Figure 2-12 on page 2-25.
7. Submit or schedule the job. To submit the job immediately, type SUB on the
Command line and press Enter.
Global Recording Requests
2-25
Figure 2-12. Sample Repository Merging JCL: SYSPLEX
********************************* Top of Data **********************************
//*....... JOB ...PLACE YOUR INSTALLATION'S JOBCARD HERE...
//*********************************************************************
//*********************************************************************
//SYSPLEX EXEC PGM=SYSPLEXM,REGION=0M,PARM='0'
//STEPLIB DD DSN=COMPWARE.SQQFLOAD,DISP=SHR
//
DD DISP=SHR,DSN=CEE.SCEECPP
//
DD DISP=SHR,DSN=CEE.SCEERUN
//SYSPRINT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//*********************************************************************
//* REPIN IS WHERE THE REPOSITORY SETS TO BE MERGED ARE ENTERED.
//* EACH SET IS ENTERED ON A NEW LINE WITH THE FORMAT:
//* <DATASET_SPECIFICATION> <FIRST_INTEGER> <LAST_INTEGER> <IGNORED>
//*********************************************************************
//REPIN
DD *
COMPWARE.SYS1.REPOS1*
1
10
COMPWARE.SYS2.REPOS2*
1
10
COMPWARE.SYS3.REPOS3*
1
10
COMPWARE.SYS4.REPOS4*
1
10
/*
//*********************************************************************
//* REQUIRED:
//* REP_MERGE
= FULLY QUALIFIED REPOSITORY SET SPECIFICATION, USING
//*
* (ASTERISK) AND ? (QUESTION MARK) AS APPROPRIATE.
//*
EXAMPLE: BFHCXY0.HTTP1*.REPOS
//* OPTIONAL:
//* FIRST
= REPOSITORY SET SPECIFICATION FIRST NUMBER. DEFAULT 0.
//* LAST
= REPOSITORY SET SPECIFICATION LAST NUMBER. DEFAULT 0.
//* REP_SPACE
= CAPTURE FILE SPACE UNIT. MUST BE TRK(DEFAULT) OR CYL.
//* REP_UNIT
= CAPTURE FILE UNIT NAME. DEFAULT IS SYSDA.
//* REP_PRI
= CAPTURE FILE PRIMARY SPACE, IN CAP_SPACE UNITS.
//* REP_SEC
= CAPTURE FILE SECONDARY SPACE, IN CAP_SPACE UNITS.
//* REP_STORCLAS = CAPTURE FILE SMS STORAGE CLASS - SYSTEM DEFAULT.
//* REP_DATACLAS = CAPTURE FILE SMS DATA CLASS - SYSTEM DEFAULT.
//* REP_MGMTCLAS = CAPTURE FILE SMS MANAGEMENT CLASS - SYSTEM DEFAULT.
//* MAX_MSG_SIZE = MAXIMUM SIZE UNSEGMENTED REPOSITORY MESSAGE HANDLED
//*
BY CONVERTER. UNITS ARE 1K, DEFAULT IS 32 (32,768).
//* TCP
= ALLOWS TCP REPOSITORIES TO BE USED. APPC AND MQ
//*
ARE ALSO VALID VALUES. DEFAULT MQ.
//*********************************************************************
//SYSIN
DD *
REP_MERGE = COMPWARE.MERGED.NEWREP*
/*
******************************** Bottom of Data ********************************
SYSPLEX Job Input Parameters
REP_MERGE
The dataset to contain the merged repositories. This parameter is required. Specify a
fully qualified repository dataset name. The utility dynamically allocates this dataset,
so be sure to supply a DSN that does not exist. To segment the new repository, specify
the dataset name with the appropriate wildcard characters and supply a FIRST and
LAST parameter (discussed next).
FIRST
The first value to use for resolving the wildcard characters specified in the repository
name. Supply a value between 1 and 999999999. The default value is 0. If the
specified repository name does not contain a wildcard character (* or ?), do not
supply this parameter.
LAST
The last value to use for resolving the wildcard characters specified in the repository
name. Supply a value between 1 and 999999999. The default value is 0. If the
specified repository name does not contain a wildcard character (* or ?), do not
supply this parameter.
2-26
Hiperstation for WebSphere MQ User Guide
REP_SPACE
The type of units used to store the data. Valid values are: TRK (Tracks) or CYL
(Cylinders). Space units combined with the primary and secondary quantities define
the amount of space allocated for the dataset.
REP_UNIT
The type of device on which the dataset is to be stored. This value can be up to eight
characters long. The default value, if the parameter is not specified, is SYSDA.
REP_PRI
The number of space units (tracks or cylinders) to allocate initially. Specify a value
between 1 and 99999. If not specified, the default value of 1 is used. Once the utility
fills the primary quantity, it allocates the secondary quantity (REP_SEC).
REP_SEC
The number of space units to allocate after the primary quantity is full. Specify a
value between 1 and 99999. If not specified, the default value of 1 is used.
REP_STORCLAS
The storage class to apply to the output dataset. Storage classes are defined by the
storage administrator at your site. This is an optional parameter and has no default
value.
REP_DATACLAS
The data class to apply to the output dataset. Data classes are defined by the storage
administrator at your site. They provide default values for dataset definition
parameters such as SPACE, RECFM, and LRECL. This is an optional parameter and has
no default value.
REP_MGMTCLAS
The management class to apply to the output dataset. Management classes are
defined by the storage administrator at your site. They control attributes of SMS
managed datasets such as migration, back up, compression, retention period, and
space reclamation. This is an optional parameter and has no default value.
MAX_MSG_SIZE
The maximum size of an application message handled by this utility. Specify the size,
in kilobytes, of the largest message expected. Valid values are 1 to 99999. For
example, MAX_MSG_SIZE = 64 indicates that the first 65,536 bytes of each message
will be processed. This is an optional parameter. If not specified, the utility uses 32K
as the default.
MQ/TCP/APPC
The record-type selection parameter. This parameter indicates the type of record to
select from the input repository. Valid value are MQ, TCP, and APPC. If no recordtype selection parameter is supplied, the utility uses MQ.
Note:
This utility supports both Hiperstation for WebSphere MQ and Hiperstation
for Mainframe Servers. The TCP and APPC record-type selection parameters
apply to merging repositories captured with Hiperstation for Mainframe
Servers.
3-1
Chapter 3.
Scripts and Subset Repositories
Chap 3
Creating Scripts and Subset Repositories
Repositories contain recorded activity in a compressed format. Scripts contain formatted,
human-readable data generated from a repository. Play back the scripts you create to test
applications that use MQ messaging or browse them to review MQ data flows.
Once you have recorded activity, use the Create MQ Scripts option to:
• Build testing scripts from the capture repository.
• Generate subset repositories containing specified activity.
• Generate logs and reports such as script logs that list all of the scripts created, detail
data files that contain the contents of the message buffers, and event summaries
(CSV or HTML format) that list all of the events that match your filtering criteria.
Hiperstation for WebSphere MQ processes the entire repository during script creation.
The larger the repository, the longer it takes to create scripts. Additionally, scripts require
more storage than raw data. Minimize script creation time and storage overhead by
generating subset repositories containing only the desired activity. Store the data as a
repository until you need to create testing scripts.
When you are ready to create scripts, save time and spare system resources by identifying
the repository segments of interest. Script only the segments you need instead of the
entire capture repository. The Capture Segment Summary indicates when recording
began and ended for each segment of the specified repositories. Review the report with a
file browsing tool such as ISPF Browse or import it into a spreadsheet or database for easy
manipulation.
Script and Subset Repository Creation Overview
Creating scripts and/or subset repositories requires several steps. Before creating a script,
identify the type of testing you plan to perform and determine the kind of activity
required to support that testing. This section describes the script/subset repository
creation options to help you plan your testing and navigate the screens in the Create MQ
Scripts facility.
1. Establish filtering criteria (page 3-4). Include or exclude activity from the repository
based on any of the following criteria:
•
Time/Date Ranges
•
UserIdentifier
•
PutApplType
•
Queue Manager
•
Completion Code
•
ApplIdentityData
•
Queue/Object Name
•
Detail Data (message contents)
•
ApplOriginData
•
Type of Event
•
Reason Code
•
PutDate
•
Jobname
•
Put APPlName
•
PutTime
2. Select the repository or repository segments to use for creating scripts/subset
repositories (page 3-13). If you are not sure which segments contain the information
you need to script, generate a Capture Segment Summary (page 3-2).
3. Define event grouping for script creation (page 3-14). Create one script containing all
activity or a separate script for each:
3-2
Hiperstation for WebSphere MQ User Guide
–
–
–
–
–
Queue manager
Connection
Object (queue)
Jobname or/and
Event type
If you select more than one grouping option, Hiperstation for WebSphere MQ
generates a script for each combination. For example, if you select jobname and
object, and you have two jobs that use the same three queues, you would get 6
scripts.
4. Define:
– Script storage requirements (page 3-15). Do you want to store:
• Detail data (message content) in the script PDSE member?
• All detail data in separate a PDSE member?
• GET detail, PUT detail, and the scripts separately?
The script contains links to the details if the details are stored externally.
– Output requirements (page 3-17). Do you want to generate:
• A script log containing results of script generation, and the JCL and SYSIN
for playback and reporting?
• Scripts?
• Detail data files (message contents)?
• An event summary showing the events that match the specified filtering
criteria?
Do you want to append or overwrite existing files of the given type?
5. If you are creating a subset repository, specify a single dataset to contain the entire
repository or a range of datasets to segment the repository (page 3-22).
6. Specify the output dataset names for the other selected output (page 3-23).
7. Select a processing option (page 3-24): submit the job for batch processing, edit the
job, or process the job in TSO foreground. Optionally, specify a file to store the
script/subset repository creation JCL.
Use the facility in an iterative fashion to build your testing scripts. For example, on your
first pass, generate an Event Summary and review the activity in a specified repository to
help determine filtering criteria. On the second pass, set your filtering criteria and
generate another Event Summary to confirm your selections. On the third pass, generate
a subset repository containing the filtered events that you can create scripts from at any
anytime, and save your script/subset repository creation JCL. On the last pass, generate
the scripts and script log to test your application.
Hiperstation for WebSphere MQ retains your field selections in your ISPF profile. After
you process your first request, press End to step backward through the screens for the
next iteration. After you exit the facility, import filters, options, or both, providing you
saved the script/subset repository creation JCL.
Generate a Capture Segment Summary
The Capture Segment Summary report shows when recording began and ended for each
segment of one or more specified capture repositories. Use it to help you identify the
information contained in each segment. For example, if you need to script activity that
was captured on Monday morning from 8:00 am to 12:00 pm, but you are not sure which
repository segment contains the information, generate this report.
Scripts and Subset Repositories
3-3
Import the report into a spreadsheet or database for easy manipulation. For example,
generate the report against every repository on the system, import it into a spreadsheet,
and use it as an index. Sort the spreadsheet by repository name or dates.
To generate a Capture Summary Report:
1. Locate sample member MCSREPT (Figure 3-1) in the Hiperstation samples library,
SQQFSAMP, or in your site’s JCL library.
2. Insert job statement information at the top of the sample.
3. Make sure the STEPLIB DD statement points to the Hiperstation load library at your
installation.
4. To write the report to a new or existing dataset, replace SYSOUT=* on the CAPSUM
DD statement with the appropriate dataset information. The logical record length of
the dataset must be minimally 132 bytes.
5. Supply report creation parameters after the SYSIN DD * statement. Place each
parameter on a separate line. Parameter definitions follow Figure 3-1.
Figure 3-1. SQQFSAMP Member MCSREPT
********************************* Top of Data **********************************
//*....... JOB ...PLACE YOUR INSTALLATION'S JOBCARD HERE...
//********************************************************************
//*---------------------------------------------------------------- *
//*
*
//* HIPERSTATION MANAGE CAPTURE SEGMENTS REPORT EXECUTION
*
//*
*
//*---------------------------------------------------------------- *
//********************************************************************
//*
*
//* THE FOLLOWING ITEM MUST BE CHANGED FOR SITE SPECIFICS:
*
//*
*
//* NOTE 1: NAME OF THE HIPERSTATION LOAD LIBRARY.
*
//*
*
//* SYSIN DD IS USED TO PROVIDE REPORT PARAMETERS
*
//*
*
//* NOTE 2: LIST THE REPORT PARAMETERS INCLUDING
*
//*
THE REPOSITORY OR REPOSITORIES YOU WISH TO REPORT ON
*
//*
*
//********************************************************************
//REPORT EXEC PGM=MCSREPT
//STEPLIB DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFLOAD
<==NOTE 1
//SYSPRINT DD SYSOUT=*
//CAPSUM
DD SYSOUT=*
//SYSIN
DD *
<==NOTE 2
GMT
DSN=USERID.TEST.MULTSEG.REPOSIT*
FIRST=1
LAST=3
DSN=USERID.TEST.REPOSITX
******************************** Bottom of Data ********************************
– The optional NORECALL parameter prevents recall of migrated datasets for
report creation. This parameter, if specified, must precede all DSN parameters.
– The optional GMT parameter reports timestamps in Greenwich Mean Time
(GMT). If omitted, Hiperstation reports the time values based on the system’s
local time. If you are reporting on repositories captured on systems in different
time zones, include the GMT parameter to avoid confusion over time
adjustment. For example, a repository that was captured at 8:00 AM EST is sent to
an office in California. If the report is run in California without the GMT
parameter, the start time shows 05:00:00 due to adjustment for the three hour
difference in time zones. With the GMT parameter, the report shows 13:00:00
regardless of the system on which the report is generated. This parameter, if
specified, must precede all DSN parameters.
– The DSN parameter specifies the name of the capture repository. To report on
multiple segments of a given repository, specify the dataset name with the same
3-4
Hiperstation for WebSphere MQ User Guide
wildcard characters as specified in the Global Recording request. Then supply the
FIRST and LAST parameters. To report on multiple repositories, include a DSN
parameter, and, if applicable, a FIRST and LAST parameter for each repository.
The FIRST and LAST parameters must follow the dataset name to which they
apply. For example,
DSN=USER25.MQ.REPOS??
FIRST=01
LAST=10
DSN=USER25.TCPIP.REPOS08
DSN=USER25.3270.REPOS??
FIRST=01
LAST=05
– The FIRST parameter is the first value used and the LAST parameter is the last
value used to resolve the wildcards in the repository name specified on the
preceding DSN parameter.
6. Submit the job.
Review the report with a file browsing tool such as ISPF Browse. If the report is large,
consider importing it into a spreadsheet or database application for easy
manipulation. For example, import it into a spreadsheet and sort by start time.
If you include the GMT parameter on the report creation job, ‘ALL TIMES GMT’
appears at the top of the start date and time column.
Figure 3-2. Capture Summary Report
HIPERSTATION - CAPTURE SEGMENT SUMMARY
USER25.TEST1.REPOS01
USER25.TEST1.REPOS02
USER25.TEST1.REPOS03
ALL TIMES GMT
12/21/06 20:08:23
12/21/06 20:10:39
12/21/06 20:23:18
12/21/06 20:10:14
12/21/06 20:23:14
12/21/06 20:31:35
Access the Create MQ Scripts Option
To access Create MQ Scripts, select option 2 on the Hiperstation for WebSphere MQ Main
Menu (Figure 2-1 on page 2-2) and press Enter.
The WebSphere MQ Header Filters screen appears (Figure 3-4 on page 3-5).
Establish Filtering Criteria
Hiperstation for WebSphere MQ supports two types of filtering:
• Header filters for filtering MQ events based on the MQ message header information,
such as queue manager, object ID, jobname, and so on.
• Message data filters for filtering MQ events based on message data content.
Depending on the granularity of filtering required, you may need to create several filters.
For example, to include the activity on two different queue managers, create a separate
filter for each. Together, the filters are known as a filter set. The filter set is saved at the
end of the script/subset repository creation process. You can import the filter set the next
time you create scripts or subset repositories.
Events that match all of the criteria on any one of the include filters and none of the
criteria on any of the exclude filters, are written into the script or subset repository.
Note:
EXCLUDE takes precedence over INCLUDE.
The filter set is compared to all MQ events EXCEPT:
• MQ_CONNECT
Scripts and Subset Repositories
3-5
• MQ_OPEN
• MQ_CLOSE
• MQ_DISCONNECT
These four events are written into the scripts or subset repositories if the events they
support match the filter criteria. For example, if an MQ_GET matches an include filter’s
criteria, it and the corresponding MQ_CONNECT, MQ_OPEN, MQ_CLOSE, and
MQ_DISCONNECT are written into the script.
Consider the events you wish to include or to exclude when defining your criteria. If you
define criteria that does not apply to a specific type of event, Hiperstation for
WebSphere MQ considers it a mismatch and will not select it for inclusion/exclusion. For
example, if you define PutApplType criteria on an include filter, MQ_SET events will not
appear in the script because they do not have a PutApplType parameter and therefore do
not match the filter.
Header Filters
Use the Header Filters screen to create, edit, import, and delete WebSphere MQ header
filters.
To maintain WebSphere MQ header filters:
1. From the Hiperstation for WebSphere MQ Main Menu, select option 2 Create MA
Scripts (Figure 3-3).
Figure 3-3. Hiperstation for WebSphere MQ Main Menu
----------------Option ===>
Hiperstation for WebSphere MQ - Main Menu
-----------------
Product Release: 08.00.01
1
2
3
4
5
6
Monitor MQ Requests
Create MQ Scripts
Playback MQ Scripts
MQ Playback Reporting
MQ Archive Requests
MQ Archive Web Reports
Add/Review your MQ recording requests
Create MQ scripts from a repository
Execute and save playbacks of MQ scripts
Report on database created from playback
Add, Review or Terminate MQ archive requests
Manage MQ archive web reports
The WebSphere MQ - Header Filters screen appears (Figure 3-4).
Figure 3-4. WebSphere MQ Header Filters Screen
Hiperstation --------- Websphere MQ - Header Filters --------- Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to the MQ Header filtering criteria below or select a filter to
edit the expanded fields. Use OK command when complete, or IMPORT to load
settings from JCL.
Restrict script input to
HH : MM :
Start Time . . 00 : 00 :
End Time . . . 00 : 00 :
certain times:
SS
MM / DD / YYYY
00
Start Date . . 00 / 00 / 0000
00
End Date . . . 00 / 00 / 0000
Line commands are: (S)elect, (R)epeat, (D)elete, (I)nsert, or (M)essage Data
S Ftr M Act QMGR Queue/Object Name
Evnt Jobname UserIdent
Comp Reas
***** * **** **** *********************** **** ******** ************ **** ****
001
INCL M530
002
INCL
SET
003
INCL *
004
005
006
007
008
3-6
Hiperstation for WebSphere MQ User Guide
2. Import a filter, discussed on page 3-12, or create a new filter. Complete only the fields
for the criteria you wish to use for filtering.
Note: Do not use quotes around filter values. Doing so will generate invalid records,
which will create errors when script create executes.
Many of the fields on this screen support the asterisk (*) wildcard character for
including ranges of criteria. If you do not want an entire range, create separate filters
for each of the applicable criteria.
If any of the field names are too long, leave the field blank and use the S line
command to go to the MQ Filtering Detail screen (Figure 3-5 on page 3-7).
a. Fill in the Start and End Date and Time to specify a time period for generating
scripts or subset repositories. Valid date ranges are from January 1, 2001 through
December 31, 2040. Hiperstation for WebSphere MQ populates these fields with
imported settings or the last specified values. Zero out all values if you do not
want to filter activity based on time and date.
b. M (Message Data Filter) field displays an addition symbol (+) if a message data
filter is associated with the header filter or a question mark (?) if an imported
filter contains invalid data values. Type M next to the filter and press Enter to see
the Message Data Filter screen. If you are not sure which value to edit, press End
to have Hiperstation for WebSphere MQ present an error message in the upper
right corner of the screen. Make your corrections and press End to return to the
Header Filter screen.
c. In the Act field, enter INCL or EXCL to include or exclude MQ events that match
the filter criteria.
d. In the QMGR field, specify the name of the queue managers to include in or
exclude from the script or subset repository. Wildcards are supported.
e. In the Queue/Object Name field, specify the queue or object names to include in
or exclude from the script or subset repository. Wildcards are supported.
f. In the Evnt field, enter the type of MQ event to include in or exclude from your
script or subset repository. Valid event types are PUT (includes PUT1), GET, SET,
CMIT, INQ, or BACK.
g. Enter the jobnames associated with the events to include in or exclude from the
script or subset repository. The jobname is part of the message’s origin
information and is defined by the application that created the message.
Wildcards are supported.
h. In the UserIdent field, enter the user identifiers associated with the events to
include in or exclude from the script or subset repository. The user identifier is
part of the message’s origin information and it is defined by the application that
created the message. Wildcards are supported.
i. In the Comp field, enter the numeric completion code associated with the events
to include in or exclude from the script or subset repository. Valid values are 0
(successful completion), 1 (warning - partial completion), or 2 (call failed).
j. In the Reas field, enter the numeric reason code associated with the events to
include in or exclude from the script or subset repository. Numeric reason code 0
= no reason code. Other reason codes can be from 2001 to 2360 and are listed in
IBM’s WebSphere MQ Application Programming Reference Guide.
3. To increase the granularity of the header filters or to add message data filtering
information, enter the appropriate line commands and press Enter. You can enter
multiple line commands at the same time. When you press Enter, the commands are
processed sequentially.
S (select) presents the selected header filter’s detail screen, which offers additional
filtering criteria and longer fields for QMGR and Queue/Object name. See “Header
Filter Detail” on page 3-7.
Scripts and Subset Repositories
3-7
R (repeat) creates a copy of the selected filter. Use this to quickly create several
similar filters. I (insert) adds a new blank filter after the selected filter. You can create
up to 999 filters.
D (delete) deletes an existing filter. This command cannot be used if the selected
filter is the only filter in the filter list.
M (message data) presents the message data filter associated with the given header
filter. Use this screen to define criteria for filtering events based on MQ message data.
See “Message Data Filters” on page 3-9.
The IMPORT command imports selected options from a dataset containing script
create JCL. The IMPORT command displays the WebSphere MQ Create Scripts Import from JCL screen. See “Import Filters and Options Command” on page 3-12,
for more information.
4. When you have finished defining filter criteria, type OK on the Command line and
press Enter to continue. Go to “Specify Source Repository” on page 3-13.
Header Filter Detail
Use the Header Filter Detail screen to specify long queue manager and queue/object ID
names or to increase the granularity of the selected filter.
To add or edit header filter detail:
1. In the S column, on the Header Filter screen (Figure 3-4 on page 3-5), type an S next
to the desired header filter and press Enter. The Header Filter Detail screen appears.
2. Complete the fields for only the criteria that you want to filter.
Figure 3-5. WebSphere MQ - Header Filter Detail Screen
Hiperstation ---------WebSphere MQ - Header Filter Detail --------------------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number
Filter action
001 of 008
Include
(Include or Exclude)
Field Name
RO Filtering Criteria
******************* ** ********************************************************
Queue manager name EQ *
Queue/Object name
Jobname
Event
PutApplName
PutApplType
ApplIdentityData
ApplOriginData
Completion code
Reason code
PutDate
PutTime
UserIdentifier
Note: Do not use quotes around filter values. Doing so will generate invalid records,
which will create errors when script create executes.
The Filter Number field displays a value assigned to this filter that you cannot
change.
a. The Filter Action field displays the filter action specified on the Header Filter
screen. It indicates whether the messages that match the selected filter will be
included in or excluded from the script or subset repository. Modify if necessary.
Valid values are Include and Exclude.
3-8
Hiperstation for WebSphere MQ User Guide
b. In the RO field, enter the relational operator to apply to the filtering criteria. EQ
is the default. Enter the two letter code or symbol for the required operator. Valid
operators are:
RO
RO Code
RO Symbol
Equal to
EQ
== or =
Not equal
NE
¬= or !=
Less than
LT
<
Greater than
GT
>
Less than or equal to
LE
<=
Greater than or equal to
GE
>=
c. Specify a Queue Manager Name to include in or exclude from the script or
subset repository. Wildcards are supported.
d. Specify an Queue or Object Name to include in or exclude from the script or
subset repository. Wildcards are supported.
e. Enter the Jobname associated with the MQ activity. Wildcards are supported.
f. In the Event field, enter the type of activity to include in or exclude from the
script or subset repository. Valid values are GET, PUT (includes PUT1), SET, INQ,
CMIT, or BACK.
g. In the PutApplName field, enter the name of the application responsible for
putting the message on the queue to include or exclude associated activity.
h. In the PutApplType field, enter the type of application, without the proceeding
‘MQAT_’, responsible for putting messages on the queue to include or exclude
associated activity. Valid types are: AIX, CICS, CICS_BRIDGE, CICS_VSE, DOS,
DQM, GUARDIAN, IMS, IMS_BRIDGE, JAVA, MVS, NOTES_AGENT, NSK, OS2,
OS390, OS400, QMGR, UNIX, VMS, VOS, WINDOWS, WINDOWS_NT, XCF,
DEFAULT, UNKNOWN, USER_FIRST, USER_LAST, and NO_CONTEXT. User
defined types are not supported other than the USER_FIRST/USER_LAST range
values.
i. In the ApplIdentityData field, enter the application identity data from the
message origin information to include or exclude the associated activity.
ApplIdentityData is defined by the application that created the message.
j. In the ApplOriginData field, enter the application origin data from the message
origin information to include/exclude associated activity. ApplOriginData is
defined by the application that created the message.
k. Enter the numeric Completion Code associated with the events to include in or
exclude from the script or subset repository. Valid values are 0 (successful
completion), 1 (warning - partial completion), or 2 (call failed).
l. Enter the numeric Reason Code associated with the events to include in or
exclude from the script or subset repository. Numeric reason code 0 = no reason
code. Other reason codes can be from 2001 to 2360 and are listed in IBM’s
WebSphere MQ Application Programming Reference Guide.
m. In the PutDate and PutTime fields, specify an include/exclude message by the
date and time they were PUT on the queue. Valid date format is YYYYMMDD and
and valid time format is HHMMSSTH and they must both be numeric.
n. In the UserIdentifier field, enter the user identifiers associated with the events
to include in or exclude from the script or subset repository. The user identifier is
part of the message’s origin information. It is defined by the application that
created the message. Wildcards are supported.
Scripts and Subset Repositories
3-9
3. When all fields on this screen are filled in, press End to save the work and either
return to the WebSphere MQ -Header Filter screen, or go to the next selected filter’s
Header Filter Detail or Message Data Filter screen, discussed next, depending on the
line command entered. To exit the screen without saving your work, type CANCEL
on the Command line and press Enter.
Message Data Filters
Use message data filters to include or exclude MQ events based on information in the
MQ message data, the data tagged <CONTENT> in MQ scripts. Create, edit, or delete
message data filters with the WebSphere MQ - Message Data Filters screen.
Note: To include or exclude complete transactions, be sure the filtering criteria appears
in the messages of all MQ events involved in the transactions. If the transaction
includes non-message events such as CMIT, BACK, SET, or INQ, add a header
filter for each desired event type. Be aware that all events of the specified type
will be included/excluded.
Message filters are associated with the header filters and assume the header filter’s
ACTION property (Include or Exclude). If you want an “Include” message data filter,
associate it with an “Include” header filter.
To maintain message data filters:
1. In the S column, on the Header Filter screen (Figure 3-4 on page 3-5), type an M next
to the desired header filter and press Enter. The Message Data Filter screen appears
(Figure 3-6).
Figure 3-6. WebSphere MQ - MQ Filtering Detail Screen
Hiperstation ---------- WebSphere MQ - Message Data Filters -- Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Review and/or Edit the Message Data filters below. Use END when complete.
MQ Header filter number . . : 001
Filter action . . . . . . . : INCLUDE
Line commands are: (R)epeat, (D)elete, or (I)nsert
S
*
_
_
_
_
_
_
_
_
POS
*****
00001
00020
00024
_____
_____
_____
_____
_____
LEN
*****
00014
00004
00001
_____
_____
_____
_____
_____
RO
**
EQ
VA
NZ
__
__
__
__
__
Filtering criteria
***********************************************************
C'Hiperstation'
P
M'F0'
___________________________________________________________
___________________________________________________________
___________________________________________________________
___________________________________________________________
___________________________________________________________
The MQ Header filter number field displays the arbitrary value assigned as a unique
ID to the associated header filter. The Filter action field displays the filter action
specified on the associated header filter. It indicates whether the messages that
match the selected filter will be included in or excluded from the script and/or subset
repository. You cannot modify these fields.
2. Fill in the rest of the fields on this screen to create your message data filters.
a. In the POS field, specify the starting position, relative to one, of the message data
that you want Hiperstation for WebSphere MQ to consider for filtering. This
value must be between 1 and 32768 (32K).
Note:
When you save your work, this screen sorts the filter by position values.
3-10
Hiperstation for WebSphere MQ User Guide
b. The LEN (length) field behaves differently depending on the type of filter:
• Text, Character, and Hexadecimal filters: Specify the number of data bytes,
up to 256, to consider for filtering.
For filters with relational operators EQ, NE, LT, LE, GT, or GE, leave this field
blank to have Hiperstation for WebSphere MQ calculate the value. If you
specify a length longer than the filtering criteria, it pads Text and Character
criteria with blanks and Hexadecimal criteria with nulls (x'00').
For filters with relational operators CO (Contains) or NC (Not Contains),
specify a length or enter 0 (zero) and set the POS field to 1 to have
Hiperstation for WebSphere MQ search the entire message.
• Zoned Decimal filters: Enter the length of the data to consider for filtering.
This field is required — valid values are between 1 and 15.
• Packed Decimal filters: Specify a data length between 1 and 16 or leave this
field blank to have Hiperstation for WebSphere MQ determine the length
based on start position and the first packed sign digit in the filtering criteria.
• Mask Data filters: Leave this field blank. Mask data is always 1
byte/character (8 bits) long.
c. Enter the two-letter code or symbol, if applicable, for the relational operator (RO)
to apply to the filtering criteria. ROs behave differently depending on the filter
type. Valid operators for:
– Text, Character, and Hexadecimal filters are:
Conditional
RO Codes
RO Symbol
Description RO
EQ
== or =
Equal To
NE
¬= or !=
Not Equal
LT
<
Less Than
GT
>
Greater Than
LE
<=
Less Than or Equal To
GE
>=
Greater Than or Equal To
CO
not applicable
Contains — Hiperstation for WebSphere MQ scans the data
range stipulated with the POS and LEN fields for the value
specified in the filtering criteria field.
NC
not applicable
Not contains — Hiperstation for WebSphere MQ scans the data
range stipulated with the POS and LEN fields to ensure value
specified in the filtering criteria field is not present.
Scripts and Subset Repositories
3-11
– Zoned or Packed Decimal filters are:
Conditional
RO Codes
RO Symbol
Description RO
EQ
== or =
Equal To
NE
¬= or !=
Not Equal
LT
<
Less Than
GT
>
Greater Than
LE
<=
Less Than or Equal To
GE
>=
Greater Than or Equal To
VA
not applicable
Valid — Hiperstation for WebSphere MQ scans the specified
data range for valid zoned or packed decimal values depending
on the filter type.
NV
not applicable
Not valid — Hiperstation for WebSphere MQ scans the specified
data range for invalid zoned or packed decimal values
depending on the filter type.
– Mask filters are:
BIT RO
Codes
EQ
RO Symbol
Bit RO
== or =
Specified bits are all ones
NE
¬= or !=
Specified bits are all zeros
NO
not applicable
Specified bits are not all ones
NZ
not applicable
Specified bits are not all zeros
MX
not applicable
Specified bits are mixed ones and zeros
d. In the Filtering Criteria field, enter the filter type followed by the filtering
criteria enclosed in single quotes. If you do not specify a filter type, Hiperstation
for WebSphere MQ assumes the information in this field is Text filtering criteria.
Valid filter types are:
• T for Text, for example, T'SMITH'
Text filters are not case-sensitive. For example, SMITH, smith, Smith all
match the filtering criteria specified above.
• C for Character, for example, C'Smith'
Character filters are case-sensitive. For example, messages containing Smith
match the filter, while message containing SMITH do not.
• X for Hexadecimal, for example, X'0CDF'
The filtering criteria value must consist of an even number of hexadecimal
digits (0-9, A-F).
• N for Zoned Decimal, for example, N or N'0001'
If the relational operator is VA (Valid) or NV (Not Valid), enter only the filter
type. For all other relational operators, the filtering criteria value must
consist of decimal digits and can be preceded by an optional sign (+-).
• P for Packed Decimal, for example, P or P'0001'
If the relational operator is VA (Valid) or NV (Not Valid), enter only the filter
type. The filtering criteria value must consist of decimal digits and can be
preceded by an optional sign (+-).
• M for Mask, for example, M'11000000' or M'C0'
The filtering criteria value must consist of 8 binary or 2 hexadecimal digits,
that identify the bits, within the specified byte (POS fields), to consider for
filtering. In the example above, Hiperstation for WebSphere MQ examines
the first 2 bits of the specified byte.
3-12
Hiperstation for WebSphere MQ User Guide
3. Enter the desired line commands in the S field. You can enter multiple line
commands at the same time. When you press Enter, the commands are processed
sequentially. R (repeat) creates a copy of the selected filter. Use this to quickly create
several similar filters. I (insert) adds a new blank filter after the selected filter. You
can create up to 999 filters. D (delete) deletes an existing filter. This command
cannot be used if the selected filter is the only filter in the filter list.
4. When finished, press End to validate and save your work. Hiperstation for
WebSphere MQ either returns to the WebSphere MQ - Header Filter screen (Figure 3-4
on page 3-5) or presents the next selected filter’s Header Filter Detail or Message Data
Filter screen depending on the line commands you entered on the WebSphere MQ Header Filter screen. To exit the screen without saving your work, type CANCEL on
the Command line and press Enter.
If there are any invalid settings, Hiperstation for WebSphere MQ presents a short
error message in the upper right corner of the screen. Press the Help key to see
extended error message information. Correct the setting and press End again.
Import Filters and Options Command
To save time with script or subset repository creation, import:
• Existing filters, and/or
• Script/subset repository create options (the options specified on the script/subset
repository create screens)
To import filters, options, or both:
1. On the Header Filters screen (Figure 3-4 on page 3-5), type IMPORT on the Command
line and press Enter. The WebSphere MQ Create Scripts - Import from JCL screen
appears.
Note:
Press End to exit the screen without saving your work.
Figure 3-7. WebSphere MQ Create Scripts - Import from JCL Screen
Hiperstation ------- WebSphere MQ Create Scripts - Import from JCL -----------Command ===>
Specify the dataset containing MQ Create Scripts JCL and the items to import,
then press ENTER to continue.
What should be
3 1. Import
2. Import
3. Import
WebSphere
Project
Group .
Type .
Member
imported? (Enter number to select)
filters only
options only
all parameters
MQ Create Scripts JCL dataset:
. . . VPTST12
. . . JCL
. . . JCL
. . .
Other Data Set Name:
Data Set Name . . .
2. On the line under What should be imported?, enter:
– 1 to import filters from the specified JCL. The Header Filters screen will reflect
the imported filters — all other screens remain unchanged.
– 2 to import all of the options from the specified JCL. The filters remain
unchanged, while all other screens reflect the selections from the specified JCL.
– 3 to import the filters and options from the specified JCL.
Scripts and Subset Repositories
3-13
Specify the name of the sequential dataset, or PDS(E) and member name containing
the filters and/or options to import. To browse and/or select a member from a list, do
not specify the member name. Press Enter to continue.
3. If you entered a PDS without a member name, Hiperstation for WebSphere MQ
presents the WebSphere MQ Create Scripts - Import Member List screen (Figure 3-8).
Select the member to import and press Enter. Ensure the selection by browsing the
member first.
Figure 3-8. MQ Create Scripts - Import Member List Screen
Hiperstation -- MQ Create Scripts - Import Member List -- Row 00001 of 00051
Command ===>
Scroll ===> PAGE
Select a member to IMPORT then press ENTER or END to return.
Line Commands are: (B)rowse or (S)elect
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
Name
BACKLVL
CAJSCR00
CAJSCR01
CAJSCR02
CAJSCR03
CAJSCR04
CAJSCR05
CAJ1
CAJ3
CAJ30000
CAPTEST
CAP10000
CNOLD
CN1
DEMOS000
DEV1
Prompt
Size
132
11531
11531
5600
99
5675
175
160
137
1070
2388
2388
131
130
245
121
Created
2007/09/05
2007/09/05
2007/09/05
2007/09/09
2007/09/09
2007/09/09
2007/09/09
2007/07/02
2007/07/02
2007/07/02
2007/06/27
2007/06/24
2007/05/16
2007/05/16
2006/12/10
2006/01/20
Changed
2007/09/05 16:40:44
2007/09/05 12:55:00
2007/09/05 14:41:00
2007/09/09 16:43:00
2007/09/09 16:43:00
2007/09/09 16:43:00
2007/09/09 16:43:00
2007/07/02 12:31:13
2007/07/02 15:29:59
2007/07/02 15:58:00
2007/06/27 16:04:29
2007/06/24 15:14:00
2007/05/16 13:02:53
2007/06/04 12:15:48
2006/12/10 10:32:00
2006/01/23 13:37:26
ID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
USERID
4. Hiperstation for WebSphere MQ validates that the specified dataset contains script
create JCL and that the parameters are semantically correct instream data (DD*). If
so, it returns to the Header Filters screen (Figure 3-4 on page 3-5).
– If the specified member does not contain the appropriate JCL, Hiperstation for
WebSphere MQ cancels the import and issues an error message.
– If the member contains valid script create JCL but invalid parameters, it presents
an error message identifying the erroneous parameters. Correct the JCL and
import the filters and/or options again.
Note:
IMPORT does not validate parameter values. Hiperstation for WebSphere MQ
checks them as you pass the screens specific to the parameters. For example,
filter parameters are validated when you type OK on the Command line of the
Header Filters screen (Figure 3-4 on page 3-5) and press Enter. Hiperstation for
WebSphere MQ presents error messages in the upper right corner of the screen
identifying missing or invalid parameter values. It also displays a hash symbol
(#) in the fields of the missing values. Replace the hash symbols and correct any
inaccurate values as you pass through the screens.
Specify Source Repository
You can access the WebSphere MQ Create Scripts - Input screen (Figure 3-9) by typing OK
on the Command line of the Header Filters screen and pressing Enter. Use it to specify a
repository containing captured WebSphere MQ data to use for generating your scripts or
subset repositories. Fill in the fields and press Enter to continue.
3-14
Hiperstation for WebSphere MQ User Guide
Figure 3-9. WebSphere MQ Create Scripts - Input Screen
Hiperstation --------- WebSphere MQ Create Scripts - Input -----------------Command ===>
Specify the repository to use as input, then press ENTER to continue.
Repository dataset:
Dataset name 'USERID1.TEST.REPOS'
First and last number ._______ _______(Needed if wildcard in dataset name)
Amount of data to use:
Message data from GETs...ALL
Message data from PUTs...ALL
(ALL or number of bytes)
(ALL or number of bytes)
1. In the Dataset name field, enter the name of the repository to use for generating
your scripts/subset repositories. To select a range of source repositories, use the
asterisk (*) or question mark (?) wildcards in the dataset name designation and define
a range with the First to last number fields.
Note:
You cannot use the wildcard as the first character in any of the dataset name
segments. For example: ‘USERID1.TEST.REP*’ is valid, but ‘USERID1.TEST.*’ is
not.
2. You can specify an Amount of data to use to minimize the size of your scripts by
truncating GET and/or PUT message detail, that is, data tagged <CONTENT> in MQ
scripts. This option supports tasks such as debugging and stress testing. For example,
if you are manually inspecting scripts for debugging purposes and need to see only
the first 200 bytes of message data, truncate to 200. If you are stress testing and
interested in only the transaction speed, not data comparison, truncate GET
messages to reduce script size and demand on DASD storage. Enter ALL to include all
message detail or indicate the number of bytes, between 0-9999999, to include.
If you are intending to play back and compare actual with expected values, select
ALL. If you truncate PUT messages, your scripts may not play back properly. If you
truncate GET messages, your scripts may play back, but comparing actual to expected
values may not be possible.
Define Event Grouping
Hiperstation for WebSphere MQ can generate one script containing filtered events
ordered as they were captured or separate scripts containing filtered events grouped by
queue manager, connection, jobname, object, and/or event. Selecting more than one
grouping criteria results in a separate script for each combination.
Determine your grouping selection based on the nature of your application and the types
of testing you need to perform. For example:
• If you want to separate recorded events by CICS region, select Jobname as jobname is
always that of the CICS region.
• If each program you are testing has its own queue, group by Object to generate
scripts for testing each application independently.
• If you are testing a batch application, select Jobname and/or Connection to generate
testing scripts.
• If you want to fill the queue with PUT and PUT1 messages to prepare for application
load testing, group by Event. Play the PUT and PUT1 scripts before playing the GET
script to ensure each transaction is completed.
• If your queue managers process specific types of activity, and you want to test the
applications responsible for that activity, select Queue Manager.
Scripts and Subset Repositories
3-15
Although you can use event grouping for several purposes, it is primarily used to create
scripts for stress, load, and concurrency testing. Later in this process, you can generate a
Script Log to run a playback job. The Script Log contains one MQGROUP and SCRIPT
statement for each script created. All MQGROUPs play back simultaneously. Be mindful
of transaction interdependence. For example, while recording you request a record, then
update the record. If your grouping selection places the inquiry transaction in one script
and the update in another, the inquiry transaction may play back after the update,
resulting in a “miscompare”. Depending on the focus of your testing, this may not be an
issue.
The WebSphere MQ Create Scripts - Grouping screen appears (Figure 3-10) after you
specify the repository and press Enter on Figure 3-9 on page 3-14. On the line next to
option 1, enter the number of the grouping selection you require. If you enter 2, type a
slash (/) next to the desired grouping criteria.
Press Enter to continue.
Figure 3-10. WebSphere MQ Create Scripts - Grouping Screen
Hiperstation -------- WebSphere MQ Create Scripts - Grouping -----------------Command ===>
Choose how to group data among scripts, then press ENTER to continue.
Create a new script for each:
2
1. One script for everything
2. New combination of (one or more)
_ Queue manager
/ Connection
_ Object (queue)
/ Jobname
_ Event
Define Detail Data Storage and Output Requirements
After defining event grouping and pressing Enter, the WebSphere MQ Create Scripts Create Options (1 of 2) screen appears (Figure 3-11). Use this screen and the next to
define script detail data storage requirements and output requirements.
Figure 3-11. WebSphere MQ Create Scripts - Create Options Screen (1 of 2)
Hiperstation --- WebSphere MQ Create Scripts - Create Options (1 of 2) ------Command ===>
Where should details be stored? (Enter number to select)
1 1. Merge all details into the script
2. Separate details from script, PUT and GET data together
3. Separate details from script, PUT and GET data split
Script processing options: (Enter "/" to select)
/ Suppress time stamps in script
/ Translate detail data from ASCII to EBCDIC
_ Translate sample data from ASCII to EBCDIC
_ Include default MQAPI Script Tag parameters
Description:
1. In the Where should details be stored? section, enter the number for the desired
detail storage option, type a slash (/) next to the appropriate processing options and
press Enter.
3-16
Hiperstation for WebSphere MQ User Guide
Scripts are comprised of MQ verbs and associated detail data (data tagged
<CONTENT>). Store each script in one PDSE member containing the MQ verbs
merged with the detail data, or store the detail data separately for easy viewing and
editing. See “Editing MQ Message Data with File-AID/MVS” on page 3-47. When the
details are stored separately, the script contains MQ verbs and links to the associated
detail.
Merge all details into the script: This option writes the MQ verbs and the associated
detail, or <CONTENT>, data into the same PDSE member.
Separate details from script, PUT and GET data together: This option writes two
PDSE members: one containing all detail data, and one containing the script. Display
or edit detail data with a file formatting tool such as File-AID/MVS. See “Editing MQ
Message Data with File-AID/MVS” on page 3-47.
Separate details from script, PUT and GET data split: This option write three PDSE
members. One containing the:
– script (MQ verbs with links to associated data)
– GET data
– PUT data
2. In the Script processing options section, select any or all of the listed processing
options.
– Suppress time stamps in script: This option omits time stamps from the MQ
verbs making the script easier to browse for auditing purposes. However,
Hiperstation for WebSphere MQ uses the time stamps to synchronize playback.
Do not use this option if you intend to play back your scripts.
– Translate detail data from ASCII to EBCDIC: This option converts the content
of ASCII messages, based on the CodedCharSetId field of the MQMD, to EBCDIC.
This makes it easier to display and edit detail data in ISPF. This option has no
effect on messages already in EBCDIC. Hiperstation for WebSphere MQ adds the
TRANSLATE=A2E keyword to the script tag to indicate that translation has
occurred for a particular message. During playback, these messages are converted
back to ASCII.
– Translate sample data from ASCII to EBCDIC: When you store script and detail
data separately, Hiperstation for WebSphere MQ includes a single line, or sample,
of the detail data in the script for reference purposes. This option converts ASCII
sample data, based on the CodedCharSetId field of the MQMD, to EBCDIC. Select
this option if you plan to view your scripts in ISPF.
– Include default MQAPI Script Tag parameters: This option writes your
application's entire MQ API parameter set into the script. Normally, Hiperstation
for WebSphere MQ saves space in the script by omitting parameters with default
settings. Use this option to ensure all parameters are set appropriately.
3. Enter a Description up to 53 characters that describe the scripts or subset
repositories you are creating. This description appears at the top of the MQ Script Log
and at the top of each script.
The second WebSphere MQ Create Scripts - Create Options screen appears.
Scripts and Subset Repositories
3-17
Figure 3-12. WebSphere MQ Create Scripts - Create Options Screen (2 of 2)
Hiperstation --- WebSphere MQ Create Scripts - Create Options (2 of 2) ------Command ===>
What should be created? (Enter "/" to select)
Log entries
/ Script entries
/ Detail entries
Event summary entries in CSV format
Event summary entries in HTML format
/ Subset repository
Allow overwrite of any
Replace existing
/ Replace existing
/ Replace existing
Replace existing
members? (Enter "/" to select)
log members
script members
detail members
event summary members
4. In the What should be created? section, place a slash (/) next to the appropriate
selections and press Enter to continue.
– Log entries: This option produces an MQ Script Log that lists every script
Hiperstation for WebSphere MQ created. Each entry consists of an MQGROUP
and SCRIPT statement. It not only reports the results of script creation, but also
contains the JCL and SYSIN for playing back the scripts. Depending on your
testing requirements, you may need to modify it before playback. See “Preparing
the Log File for Unattended Playback” on page 5-16.
– Script entries: This option generates MQ testing scripts based on the
information you have provided in the previous screens.
– Detail entries: This option generates MQ detail, or <CONTENT>, data. If you are
generating scripts you intend to play back, select this option.
– If you are generating scripts and you elected to store detail data separately, but
fail to select this option, the scripts will contain an unresolved detail tag, for
example, <DETAIL COMBINED ???>. Generate the detail data. Then replace the
question marks on the detail tag in the script with the DD associated with the
dataset containing the detail.
– Event summary entries in CSV format: This option produces a comma
delimited summary of events that match the selected filtering criteria. Use this
report for tasks such as reviewing the events in a specific repository prior to
filtering or verifying the accuracy of your filtering selections prior to creating
scripts/subset repositories. This version can be imported into a spreadsheet or
database program.
– Event summary entries in HTML format: This option produces an interactive
HTML summary of events that match the selected filtering criteria. This version
of the report contains detailed information that you access by clicking links. Use
this report for tasks such as verifying the accuracy of filtering selections or
troubleshooting application or messaging issues.
Note: The event summary options are mutually exclusive. Select the format that
suits your needs. See “Event Summary” on page 3-18 for a detailed
discussion of both formats.
– Subset repository: This option produces a new repository containing the filtered
activity in a compressed format. Build smaller repositories containing specified
information to reduce storage overhead and script creation effort.
5. In the Allow overwrite of any members? section, select the items you would like
Hiperstation for WebSphere MQ to overwrite when generating the selected output.
The choices include:
– Replace existing log members
3-18
Hiperstation for WebSphere MQ User Guide
– Replace existing script members
– Replace existing detail members
– Replace existing event summary members
Event Summary
Use the Event Summary to determine and validate filtering criteria prior to generating
scripts and subset repositories.
• Before you enter filtering criteria, generate an Event Summary to review the contents
of the capture repository.
• After you enter filtering criteria, before you generate the scripts/subset repositories,
create another Event Summary to validate your filtering criteria selections.
Produce the Event Summary in CSV or HTML format, as previously described. Both
versions list all events that match the specified filtering criteria. The HTML version
provides additional connection sequence information that is hyperlinked to event detail.
As such, this section describes the HTML version.
The HTML Event Summary is comprised of three frames:
• Title frame — appears across the top of the browser window. It presents a title and
general information about the Event Summary.
• Connection Sequence frame — appears below the Title frame, on the left side of the
browser window. Initially, it presents an expandable list of Connection IDs. Click the
plus sign (+) next to a connection to see the MQ events that occurred on that
connection. Expand the MQ_OPEN events to see the associated GETs, PUTs, SETs,
INQUIREs, and CLOSEs. Click any MQ event to see the event’s detail.
• Detail frame — appears below the Title frame and to the right of the Connection
Sequence frame. Initially, it presents all events that match the specified filtering
criteria, in chronological order. When you click an MQ event in the Connection
Sequence frame, the event’s detail displays in this frame.
Scripts and Subset Repositories
3-19
Figure 3-13. HTML Event Summary
The Title frame contains the run date and time of the job in which the Event Summary
was created, the LPAR in which the job that created the Event Summary was run, the
name of the job in which the Event Summary was created, the number of the job in
which the Event Summary was created, and the repository dataset from which the Event
Summary was created.
The Connection Sequence links list all MQ events that match the specified filtering
criteria, in hierarchal order. That is,
• MQ_CONNECT calls contain: MQ_OPENs, MQ_PUT1s, MQ_COMMITs,
MQ_BACKOUTs, and MQ_DISCONNECTs.
• MQ_OPEN calls contain: MQ_GETs, MQ_PUTs, MQ_SETs, MQ_INQUIREs, and
MQ_CLOSEs.
The list initially shows only the MQ_CONNECT calls. Click the plus sign (+) preceding
MQ_CONNECT to see the events that occurred on the given connection ID. Once the
connection information is expanded, the plus sign becomes a minus sign (-). Click the
minus sign to hide the connection’s event list. Expand and collapse MQ_OPEN calls the
same way.
Note:
Hiperstation for WebSphere MQ synthesizes missing MQ_CONNECT, MQ_OPEN,
MQ_CLOSE, and MQ_DISCONNECT calls. For example, if recording begins after
the CONNECTION and OPEN occurs, Hiperstation for WebSphere MQ
synthesizes both calls based on the captured events related to the MQ_OPEN or
MQ_CONNECT. All synthesized events are marked with an asterisk (*).
Click any event to display the event’s detail in the Detail frame.
The following list shows all possible event links. The values in the parentheses after the
call correlate to the Connection ID, Object ID, and Position columns on the Time
Sequence Event Summary (see Figure 3-13 on page 3-19).
3-20
Hiperstation for WebSphere MQ User Guide
MQ_CONNECT(connection ID)-queue manager name
Connection ID is the identifier that Hiperstation for WebSphere MQ assigns each
connection during recording. All connections, including synthesized connections,
are numbered sequentially within the repository.
MQ_OPEN(connection ID, object ID)
Connection ID indicates the connection on which the OPEN occurred. Object ID is
the identifier that Hiperstation for WebSphere MQ assigned to the MQ_OPEN during
recording. All object-level events (MQ_OPEN and MQ_PUT1), including synthesized
event, are numbered sequentially within the repository. For example, MQ_OPEN(5,8)
is the eighth object-level event in the recording and took place on the fifth
connection.
MQ_PUT1(connection ID, object ID)
Connection ID indicates the connection on which the PUT1 occurred. Object ID is
the identifier that Hiperstation for WebSphere MQ assigned to the MQPUT1 during
recording. All object-level events (MQ_OPEN and MQ_PUT1), including synthesized
event, are numbered sequentially within the repository. For example, MQ_PUT1(5,9)
is the ninth object-level event in the recording and took place on the fifth
connection.
MQ_COMMIT(connection ID,,position)
Connection ID indicates the connection on which the COMMIT occurred. Position
indicates the position of this call relative to other COMMITs within the connection.
For example, MQ_COMMIT(6,,2) is the second COMMIT that occurred on the sixth
connection.
MQ_BACKOUT(connection ID,,position)
Connection ID indicates the connection on which the BACKOUT occurred. Position
indicates the position of this call relative to other BACKOUTs within the connection.
For example, MQ_BACKOUT(6,,2) is the second BACKOUT that occurred on the sixth
connection.
MQ_GET(connection ID, object ID, position)
Connection ID indicates the connection on which the GET occurred. Object ID
indicates the MQ_OPEN in which the GET occurred. Position indicates the position
of this call relative to other events within the OPEN. For example, MQ_GET(5,8,2) is
the second event in the eighth OPEN on the fifth connection.
MQ_PUT(connection ID, object ID, position)
Connection ID indicates the connection on which the PUT occurred. Object ID
indicates the MQ_OPEN in which the PUT occurred. Position indicates the position
of this call relative to other events within the OPEN. For example, MQ_PUT(5,4,2) is
the second event in the fourth OPEN on the fifth connection.
Message Detail
Link to the MQ_GET or MQ_PUT message content. Message content appears in Detail
frame.
MQ_INQUIRE(connection ID, object ID, position)
Connection ID indicates the connection on which the INQUIRE occurred. Object ID
indicates the MQ_OPEN in which the INQUIRE occurred. Position indicates the
position of this call relative to other events within the OPEN. For example,
MQ_INQUIRE(5,8,2) is the second event in the eighth OPEN on the fifth connection.
MQ_SET(connection ID, object ID, position)
Connection ID indicates the connection on which the SET occurred. Object ID
indicates the MQ_OPEN in which the SET occurred. Position indicates the position of
this call relative to other event within the OPEN. For example, MQ_SET(5,8,2) is the
second event in the eighth OPEN on the fifth connection.
Scripts and Subset Repositories
3-21
MQ_CLOSE(connection ID, object ID)
Connection ID and Object ID are the same as the corresponding MQ_OPEN.
MQ_DISCONNECT(connection ID)
Connection ID is the same as the corresponding MQ_CONNECT.
The Detail Frame provides completion and reason codes as well as current and true
lengths. All other fields correspond to MQ header fields. Refer to IBM WebSphere MQ
documentation.
Completion Code
Numeric completion code for the given call:
– 0 indicates that the call completed successfully.
– 1 indicates that the call partially completed.
– 2 indicates the call failed.
Reason Code
Numeric reason code for the given call. 0 indicates that there was no reason code.
Other reason codes can be from 2001 to 2360, and are listed in IBM’s WebSphere MQ
Application Programming Reference Guide.
Current Length
Length of the message associated with the given MQ_GET, MQ_PUT, or MQ_PUT1, up
to the maximum length specified on the WebSphere MQ Create Script - Input screen
(Figure 3-9 on page 3-14).
True Length
Actual length of the message associated with the given MQ_GET, MQ_PUT, or
MQ_PUT1.
Specify a Subset Repository Dataset
1. If you:
– did not create a subset repository, the WebSphere MQ Create Scripts - Output
screen appears next. See “Specify Other Output Datasets” on page 3-23.
– created a subset repository, the WebSphere MQ Create Scripts - Subset Output
screen appears next (Figure 3-14 on page 3-22).
Specify a single dataset to contain the entire repository or a range of datasets to
segment the repository. Hiperstation for WebSphere MQ writes the new repository
data to the first specified dataset. If the dataset contains data, it adds the new data to
the end of existing data until it completes repository creation or the dataset is full. If
there is more data to write, it continues writing to the next specified dataset.
Hiperstation for WebSphere MQ reports progress with messages indicating the
opening and closing of datasets.
Note:
To overwrite an existing repository dataset, delete the dataset first.
2. Fill in the fields and press Enter to continue or press End to return to the previous
screen without designating a dataset.
3-22
Hiperstation for WebSphere MQ User Guide
Figure 3-14. WebSphere MQ Create Scripts - Subset Output
Hiperstation ---------- WebSphere MQ Create Scripts - Subset Output ----------Command ===>
Specify the subset repository to create, then press ENTER to continue.
Subset repository dataset:
Dataset name . . . . . 'USER005.MQSERIES.SUBALP*'
10
(Needed if wildcard in dataset name)
First and last number . 0
3. In the Dataset name field, enter the name of the sequential dataset to contain the
subset repository you are generating. To create a segmented repository, use the
asterisk (*) and question mark (?) wildcards and specify a wildcard range with the
First and last number fields:
If you imported options, Hiperstation for WebSphere MQ populates all fields on this
screen with the settings saved in the options file. Otherwise, the:
– Dataset name field defaults to the last specified dataset.
– First and last number fields default to previously specified values. If you have
never used this feature before, Hiperstation for WebSphere MQ populates the
fields with the values specified on the WebSphere MQ Create Scripts - Input
screen (Figure 3-9 on page 3-14).
If the first specified dataset does not exist, Hiperstation for WebSphere MQ presents
the Allocate Dataset screen (Figure 3-15). It populates the:
– Space units, Primary quantity, and Secondary quantity fields with allocation
values from the originating (input) repository.
– Block size with the default value of 9004.
4. Fill in the field and press Enter to continue or END to exit the screen without
allocating the file.
Figure 3-15. Allocate Dataset Screen
Hiperstation -------------------- Allocate Dataset----------------------------Command ===>
Press ENTER to allocate a dataset or END to exit without allocation
Dataset name: USER005.MQSERIES.SUBALP00
SMS Management class.
SMS Storage class . .
Volume serial . . .
Device type . . . .
SMS Data class. . . .
Space units . . . .
Primary quantity. .
Secondary quantity.
Block size. . . . . .
Note:
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
SYSDA
TRKS
1
1
9004
(BLKS, TRKS, or CYLS)
(in above units)
(in above units)
For segmented repositories, Hiperstation for WebSphere MQ automatically
allocates subsequent datasets, if they do not exist, with the allocation
parameters of the first dataset.
If you elected to generate other output such as your scripts, log, event summary, etc.,
the WebSphere MQ Create Scripts - Output screen appears next. See “Specify Other
Output Datasets” on page 3-23. Otherwise, the WebSphere MQ Create Scripts Process option screen appears. See “Select a Processing Option” on page 3-24.
Scripts and Subset Repositories
3-23
Specify Other Output Datasets
If you did not create a subset repository, the WebSphere MQ Create Scripts - Output
screen appears (Figure 3-16) after defining output requirements (Figure 3-12 on page
3-17). Otherwise, it appears after specifying the subset repository dataset (Figure 3-14 on
page 3-22).
Use this screen to specify dataset names for generated output. If available, Hiperstation
for WebSphere MQ populates the fields with either previously defined or imported
information. It also marks required rows with an asterisk (*) that appears between the
Dataset name and Prefix fields.
Figure 3-16. WebSphere MQ Create Scripts - Output Screen
Hiperstation -------- WebSphere MQ Create Scripts - Output ----------------Command ===>
Enter the output dataset names, member name prefixes, member name suffixes,
and DDnames. Rows marked with * are required.
Script Datasets:
Log: . . . . . . 'USERID.TEST.LOG'_____________________________ *
Prefix: PRLOG
Suffix: 0000001
Script:. . . . . 'USERID.TEST.SCRIPT'__________________________ *
Prefix: PRSCRT Suffix: 0000001
Combined detail: 'USERID.TEST.DETAIL'__________________________
Suffix: 0000001 DDname: ________
Prefix: PRDET
GET detail:. . . ______________________________________________
Prefix: ______ Suffix: 0000000 DDname: ________
PUT detail:. . . ______________________________________________
Prefix: ______ Suffix: 0000000 DDname: ________
Event summary: . ______________________________________________
Suffix: 0000000
Prefix:
1. Enter a PDSE name, without a member name, for each row marked with an asterisk
(*). If you do not enclose the PDSE name in single quotes, Hiperstation for
WebSphere MQ prefixes it with your TSO prefix, typically your user ID, at processing
time.
Note: If you selected Event Summary in HTML format on the WebSphere MQ Create
Scripts - Create Options (2 of 2) screen (Figure 3-12 on page 3-17), specify an
existing HFS path in this field, instead of a PDSE. Also, HFS paths are
case-sensitive.
2. Enter a one- to six-character member name prefix for each row marked with an
asterisk (*). Provide a prefix that makes it easy for you to identify the type of data
stored in the members of the given dataset. Hiperstation for WebSphere MQ uses the
prefix and suffix to create complete member names. For example, prefix payroll
system testing scripts with PRTEST and set the suffix to 01 to generate members
PRTEST01, PRTEST02, and so on.
Note:
Make sure the combined number of characters for prefix and suffix does not
exceed eight.
3. Enter a one- to seven-numeral member name suffix for each row marked with an
asterisk (*). Hiperstation for WebSphere MQ uses the prefix and suffix to create
complete member names for the information stored in the given dataset. If it creates
more than one member for the dataset, it increments the suffix to create unique
member names. For example, your grouping selection produces three scripts. If the
prefix is set to PRTEST and suffix is set to 01, Hiperstation for WebSphere MQ
generates members PRTEST01, PRTEST02, PRTEST03.
4. Enter a one- to eight-character DD name for detail datasets marked with an asterisk
(*). Hiperstation for WebSphere MQ creates a <DETAIL> tag in the script that points
3-24
Hiperstation for WebSphere MQ User Guide
to the DD names you specify. It uses this information to locate the detail data during
playback.
Note:
The playback JCL contained in the log will include the DD names you enter
here. If you compose your own playback JCL, instead of using the JCL from
the log, be sure to include the same DD names.
5. Press Enter to continue.
If you enter a dataset name that does not exist, the Allocate Dataset screen appears. The
fields on this screen default to imported values or to the last specified values. Set the
record length (LRECL) for:
• Log datasets to 76 or higher.
• Script datasets to 76 or higher. To minimize CPU utilization and the amount of time
it takes to generate the scripts, set this value to 256 or higher.
• Detail datasets equal to or greater than the maximum MQ message length.
Note: Messages longer than the detail dataset LRECL will span multiple lines. If the
dataset contains messages that span multiple lines, the MAPD command,
discussed on page 3-47, will not allow you to map the entire detail dataset
into File-AID/MVS for editing. However, you will be able to map individual
messages.
• CSV event summary datasets to 158 or more.
Block size must be minimally the record length plus four — 32760 is the maximum
allowable value. Leave this field empty to have the system calculate block size for you.
Fill in the fields and press Enter to allocate the dataset or press End to exit the screen
without allocating the dataset.
If more datasets require allocation, Hiperstation for WebSphere MQ presents the
allocation screen for the next dataset. Otherwise, it presents the WebSphere MQ Create
Scripts - Process screen, discussed next.
Select a Processing Option
After you select all of your script/subset repository creation options, Hiperstation for
WebSphere MQ presents the WebSphere MQ Create Script - Process screen (Figure 3-17).
Use this screen to:
• Specify how to process your request for script and/or subset repository creation.
• Access the Save JCL File screen to save your script/subset repository creation JCL.
Note:
By default, the maximum message size that Script Create processes is 32K.
Increase this value by adding a parameter to the JCL prior to submitting the job.
Select option 2 and insert the MQCSMSG = 'value' into the list of SYSIN
parameters.
Scripts and Subset Repositories
3-25
Figure 3-17. WebSphere MQ Create Scripts - Process Screen
Hiperstation ------- WebSphere MQ Create Scripts - Process -----------------Command ===>
Select a processing option, or type SAVE on the Command line to save the
Create Scripts JCL to a dataset.
Select an option:
1. Submit batch job
2. Edit batch job
3. Process in foreground
X. Exit
Job statement information for batch job:
===> //JOBNAME JOB (ACCOUNT),'NAME'
===> //*
===> //*
===> //*
1. Enter the desired processing option on the line next to the list and press Enter to
begin processing. Processing Job Options include:
– 1. Submit batch job: Processes the script/subset repository creation job in batch
mode. Refresh your screen to see job submit and confirm messages. When the job
is complete, Hiperstation for WebSphere MQ returns you to the WebSphere MQ
Create Scripts - Process screen (Figure 3-17).
– 2. Edit batch job: Opens up the batch job for editing before processing. If you
edit the job, type SUB or SUBMIT on the Command line and press Enter to
submit the job. For a list of Script Create parameters, see Appendix D, “Script
Create Parameters”. To exit the edit session without submitting the job, type
EXIT on the Command line and press Enter.
– 3. Process in foreground: Processes the script/subset repository creation job in
TSO foreground. Your TSO terminal session is not available for other work until
the script/subset repository creation process is complete. All status messages
appear on your TSO terminal.
– X. Exit: Use this option to exit this screen without submitting the job. Use the
End key to step backward through the panels. All parameters are retained in your
ISPF profile.
2. Enter batch JOB card information in the Job statement information for batch job
area. If you use option 2, you can edit this information again before job submission.
Note: The job card information you enter here appears at the top of the log file used
to run an unattended playback job or reporting job. Be sure to enter job card
information even if you are processing in the foreground.
3. Type SAVE on the command line and press Enter. The Save JCL File screen appears
(Figure 3-18 on page 3-26). This saves your script/subset repository creation JCL to
submit at a later time or to import the next time you create scripts/subset
repositories. Use End to exit the screen without processing the job.
Script Create JCL
Save the script/subset repository creation JCL to a dataset. The next time you create
scripts and/or subset repositories, import filters, creations options, or both. See “Import
Filters and Options Command” on page 3-12.
To save the script/subset repository creation JCL to a dataset:
1. On the WebSphere MQ Create Scripts - Process screen (Figure 3-17 on page 3-25),
type SAVE on the Command line and press Enter. The Save JCL File screen appears.
3-26
Hiperstation for WebSphere MQ User Guide
2. Supply a sequential dataset or PDSE and member to contain the JCL. Type a slash (/)
in the Replace existing member field if you would like to overwrite information in
the specified sequential dataset or PDSE member. Press Enter to continue or End to
exit the screen without saving the JCL.
Figure 3-18. WebSphere MQ Create Scripts - Save JCL File
Hiperstation ------- WebSphere MQ Create Scripts - Save JCL File
Command ===>
-------------
Enter the name of the dataset where JCL will be saved, then press ENTER
to continue.
MQ Create
Project
Group .
Type .
Member
Scripts JCL dataset:
. . .
. . .
. . .
. . .
Other Data Set Name:
Data Set Name . . . 'USER005.MQ.PRSCIPTS.CREATE.JCL(PR1)'
Save JCL Options: (Enter "/" to select)
/ Replace existing members
3. If you specify a dataset that does not exist, Hiperstation for WebSphere MQ prompts
you to allocate a file for the JCL. It defaults commonly used settings for the type of
file you specify. If necessary, change default values and/or fill in empty fields. Press
Enter to allocate the dataset and save the JCL.
4. Hiperstation for WebSphere MQ returns to the Process screen (Figure 3-17 on page
3-25) and presents the Parameters saved message in the upper right corner.
Browsing and Editing Scripts
Scripts are formatted to make browsing and editing activity easy. Scripts contain tagged
data that adheres to a set of syntax rules. Browsing a script requires understanding the
purpose and information provided by each script tag. Editing a script requires
understanding script tags, syntax rules, and the relationship between the information in
the script and the statements that run playback.
This section provides information to help you browse or edit a script.
Browse a Script
Browse scripted activity for tasks such as debugging an application, validating new
functionality, and verifying database changes. Use a standard text browsing tool such as
ISPF Browse to review the contents of a script.
This section defines all of the available Hiperstation for WebSphere MQ script tags. Each
definition includes a syntax diagram that shows all of the parameters of the given script
tag. Some of the script tags contain groups of parameters, or fields, referred to as
structure data types. As such, this section begins with an explanation of the structure
data types. The script tag syntax diagrams show the associated data types. Cross-reference
the syntax diagrams with the information discussed in “Structure Data Type Fields” on
page 3-27.
Additionally, a few parameters are common to most of the script tags. To minimize
repetition, they are defined before the script tags as well.
Scripts and Subset Repositories
3-27
Structure Data Type Fields
Structure data types are groups of parameters or fields that contain information relevant
to a specific MQ object or function. For example, the MQ Get Message Options
(MQGMO) structure data type includes a series of fields relevant to the MQGET
performed by your application.
IBM has established default values for each of these fields. To minimize the length of the
scripts, Hiperstation for WebSphere MQ presents only the fields that deviate from the
default values unless you select the Include default MQAPI Script Tag parameters
option while creating scripts. This option is located on the “WebSphere MQ Create
Scripts - Create Options Screen (1 of 2)” on page 3-15.
Each of the structure data type fields requires a specific type of value, for example, some
require character strings, while others require numeric values. Although this information
is relevant to script editing, it is presented in this section for easy reference. Field value
formats include:
•
•
•
•
•
String of characters (already translated by WebSphere MQ)
Keyword as defined by IBM
Multiple keywords as defined by IBM
Whole number
Hexadecimal string
1234ABCD’X
If the value spans multiple lines, the REXX concatenation operator, ||, appears
immediately before the comma on all lines except the last.
MQMD = ‘D4F5F2F040404040404040400000000140404040404040404’X||,
‘40404040404040404040404040404040400000000000000000000000000000’X||,
‘FFFFFF000000000000000000000000000000000000000000000000’X,
Table 3-1 shows all of the fields associated with each structure data type, along with the
format of the field value. It also lists the Hiperstation for WebSphere MQ script tags that
present the given data type. Refer to the IBM WebSphere MQ documentation for field
definitions.
3-28
Hiperstation for WebSphere MQ User Guide
Table 3-1. Structure Data Types Fields, Field Value Formats, and Associated Script Tags
Structure Data Type
SDT Fields
Field Value Format
MQMD1
MQ Message Descriptor
Version
Number
Report
(In the scripts, these fields are prefixed
with the structure data type indicator. MsgType
For example, MQMD_VERSION.)
Expiry
Multiple keyword
Keyword
Hiperstation for
WebSphere MQ
Script Tags
MQ_PUT,
MQ_PUT1,
MQ_GET,
MQ_OPEN
Number or special keyword UNLIMITED
Note: Corresponds to the constant
MQEI_UNLIMITED
Feedback
Multiple keyword
Encoding
Hexadecimal
CodedCharSetId
Number
Format
String
Priority
Number
Persistence
Keyword
MsgId
Hexadecimal or special keyword NONE
Note: Corresponds to MQMI_NONE.
CorrelId
Hexadecimal or special keyword NONE
Note: Corresponds to MQCI_NONE
MQMD2
BackoutCount
Single number
ReplyToQ
String
ReplyToQMgr
String
MQ Message Descriptor
UserIdentifier
(In the scripts, these fields are prefixed
with the structure data type indicator. AccountingToken
For example, MQMD_VERSION.)
ApplIdentityData
String
(continued from previous page)
PutApplType
Keyword
PutApplName
String
PutDate
String
PutTime
String
ApplOriginData
String
GroupId
Hexadecimal or special keyword NONE
Hexadecimal
String
Note: Corresponds to MQGI_NONE
MsgSeqNumber
Number
MsgFlags
Number
MQ_PUT,
MQ_PUT1,
MQ_GET,
MQ_OPEN
Scripts and Subset Repositories
3-29
Table 3-1. Structure Data Types Fields, Field Value Formats, and Associated Script Tags
Structure Data Type
1
MQOD
MQ Object Descriptor
SDT Fields
Field Value Format
Hiperstation for
WebSphere MQ
Script Tags
Version
Number
MQ_PUT1
ObjectType
(In the scripts, these fields are prefixed
with the structure data type indicator. ObjectName_Out
(corresponds to MQ
For example, MQOD_VERSION.)
parameter
ResolvedQName)
Keyword
String
ObjectName_In
(corresponds to MQ
parameter
ObjectName)
String
ObjectQMgrName
String
DynamicQName
String
AlternateUserId
String
MQPMO1
MQ Put Message Options
Version
Number
MQGMO1
MQ Get Message Options
Version
Options
Multiple keyword
(In the scripts, these fields are prefixed
String
with the structure data type indicator. ResolvedQName
For example, MQPMO_VERSION.)
ResolvedQMgrName String
Options
(In the scripts, these fields are prefixed
with the structure data type indicator. WaitInterval
For example, MQGMO_VERSION)
Signal1
Keyword
MQ_PUT,
MQ_PUT1
MQ_GET
Multiple keyword
Hexadecimal
Hexadecimal
Signal2
Hexadecimal
ResolvedQName
String
ReturnedLength
Number
MatchOptions
Multiple keyword
GroupStatus
String
1. Script create generates the structure data type in raw format (single field, in hexadecimal format) when it cannot
parse the structure into its component fields. This single field uses the same name as the structure data type.
Playback accepts either the parsed structure data type (with its component fields) or the raw format.
2. Script create generates the structure data type in raw format (single field, in hexadecimal format) when it cannot
parse the structure into its component fields. This single field uses the same name as the structure data type.
Playback accepts either the parsed structure data type (with its component fields) or the raw format.
Parameters Common to Most Script Tags
Most of the Hiperstation for WebSphere MQ script tags include any or all of the following
parameters:
Connection_ID=number
Relates scripted events to a connection to a queue manager. Each MQ_CONNECT tag
must have a unique CONNECTION_ID. This number is roughly equivalent to the
WebSphere MQ hConn (connection handle).
Object_ID=number
Relates scripted events to an open MQ queue. Each MQ_OPEN and MQ_PUT1 tag
must have a unique Object_ID. The parameter is present on all script tags except
3-30
Hiperstation for WebSphere MQ User Guide
MQ_CONNECT, MQ_DISCONNECT, MQ_COMMIT, and MQ_BACKOUT. This number
is roughly equivalent to the WebSphere MQ hObj (object handle).
CompCode=number
The numeric completion code returned by Hiperstation for WebSphere MQ.
Reason=number
The numeric reason code returned by Hiperstation for WebSphere MQ.
event_seq_num
Hiperstation for WebSphere MQ assigns a sequential value to the events in the script.
This number appears outside of the closing script tag bracket ‘>’. For example, the
following MQ_CLOSE is the 20th event in the script:
* MQ_CLOSE *
*
<TIME>2006/06/05_14:37:15.345744
<MQ_CLOSE,
CONNECTION_ID = 3,
OBJECT_ID = 6,
COMPCODE = 0,
REASON
= 0,
MQCO = (NONE)>20
This value is not necessary to play back a script. It simply provides context for script
editing.
<CONTENT> Tag for Inline Data
CONTENT tags present the message data associated with the recorded MQPUT, MQPUT1,
and MQGET calls. One or more CONTENT tags appears immediately after an MQ_PUT,
MQ_PUT1, or MQ_GET tag. If the length of the application data is greater than the
logical record length (LRECL) of the script dataset, the detail data is presented on a series
of consecutive CONTENT tags.
When detail data is merged into the script, known as inline data, the CONTENT tag has
no attributes and is immediately followed, on the same line, by a 12-byte header and
then the application's data bytes, known as detail data. In the following example,
“....00000007” is the CONTENT tag header and the detail data begin immediately after
“7”.
<CONTENT>....00000007.......XPPJOBM400...wæìÎUR÷...ö«.\.m÷G
4444CDDECDE60310FFFFFFFF0002000EDDDDCDFFF000A957EDE000C83E49EC
000C3653553E0241000000070A0210A77716244002076C86491308CA00B417
Note:
In ISPF Edit, type HEX ON on the Command line and press Enter to see the HEX
values for all of the bytes in the CONTENT tag.
The 12-byte header describes the CONTENT tag:
• The first two bytes indicate the length of the data following the CONTENT tag. This
value includes the 12-byte header and has a maximum value of X'7FF8' (32760).
Note:
If you are editing the script, make sure this number accurately reflects the
actual number of bytes in the dataset record plus twelve for the header. If the
data record is longer than this value, playback ignores the extra bytes. If the
data record is shorter than this value, playback pads it with EBCDIC blanks
(X'40').
Scripts and Subset Repositories
3-31
• The third byte indicates the format of the CONTENT tag data. Its value is a
combination of all applicable formats from the following list.
–
–
–
–
–
–
X'20'
X'08'
X'04'
X'02'
X'01'
X'00'
indicates
indicates
indicates
indicates
indicates
indicates
an MQ script
the beginning of the CONTENT chain
the end of the CONTENT chain
truncated data
MQPUT data
MQGET data
For example, if the MQGET is comprised of three <CONTENT> tags, this byte’s value
on the:
– First tag is X'28', which indicates that this is data from an MQ script, that it is
MQGET data, and that it is the beginning of CONTENT chain.
– Second tag is X'20', which indicates this data is from an MQ script and that it is
MQGET data.
– Third tag is X'24', which indicates that this is data from and MQ script, that it is
MQGET data, and that it is the end of CONTENT chain.
If the CONTENT tag follows an MQ_PUT tag, this byte’s values on each CONTENT tag
is: X'29', X'21', and X'25' respectively.
• The fourth byte indicates the protocol of the given content data. In Hiperstation for
WebSphere MQ, the protocol value is always X'01'.
• The fifth through the twelfth bytes indicate the record number, beginning with
0000001 (X'F0F0F0F0F0F0F0F1'). This value increases by one for each subsequent
CONTENT tag.
Note:
If you use the “<REPLACE> Tag” on page 3-40 to replace application data during
playback, be mindful of this 12-byte header when calculating the offset.
Header: L L F P N N N N N N N N
Offset: 0 1 2 3 4 5 6 7 8 9 A B
Avoid manually calculating the data-replacement offset value by using the offset
determination macros that Hiperstation for WebSphere MQ provides (see “Offset
and Length Determination Macros” on page 3-41).
<CONTENT> Tag for External Data
Identifies the detail data records that are associated with the preceding MQ_PUT,
MQ_PUT1, or MQ_GET tag. The CONTENT tag includes only the FROM and TO
parameters when the detail data is stored in an external file.
FROM
A decimal number indicating the first label in the external file containing detail data
for this data flow.
TO
A decimal number indicating the last label in the external file containing detail data
for this data flow.
The value after the CONTENT tag is called 'sample data'. It is the first few bytes detail
data and is provided to support script browsing when the detail is stored separately. The
sample bytes are translated from ASCII to EBCDIC if you requested that option at script
creation time.
3-32
Hiperstation for WebSphere MQ User Guide
Whether the detail data is contained within the script or in an external file it is prefixed
by a 12-byte header that describes the affiliated CONTENT tag. See the description of the
12-byte header discussed in “<CONTENT> Tag for Inline Data” on page 3-30.
<DETAIL> Tag
Indicates the location of the detail data. Detail data are the bytes associated with the
recorded MQ_PUT, MQ_PUT1, and MQ_GET calls. This tag appears after the VERSION tag
at the beginning of the script.
COMBINED
Indicates that GET and PUT data is stored together in a single PDSE member, either
within the script, or in an external file. If the detail data is contained in the script,
the value of this parameter is an asterisk (*). If it is stored externally, the value is the
DD name of the external file, along with the PDSE member name, which is supplied
during script creation. If COMBINED is present, neither GET nor PUT appear on this
tag and cannot be added.
GET
Identifies where client data is located. The value is the DD name provided during
script creation.
PUT
Identifies where server data is located. The value is the DD name provided during
script creation.
Note: If, on the “WebSphere MQ Create Scripts - Create Options Screen (2 of 2)” on page
3-17, you do not select the Detail Entries option, a <DETAIL> tag appears in the
script, but the member name appears as three question marks (???). Edit the
script to provide the correct location or regenerate the script.
<MQ_BACKOUT...> Tag
Causes the queue manger to back out all of the MQ_GETs and MQ_PUTs that have
occurred since the last ‘syncpoint’.
For CONNECTION_ID, COMPCODE, REASON, and event_seq_num definitions, see
“Parameters Common to Most Script Tags” on page 3-29.
For more information about the MQBACK call and its parameters, refer to IBM’s
WebSphere MQ Application Programming Reference.
<MQ_CLOSE...> Tag
Relinquishes access to an object.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
Scripts and Subset Repositories
3-33
MQCO
MQ close options. The value of this parameter corresponds to the Options parameter
on the recorded MQCLOSE call. Valid values are NONE, DELETE, or DELETE_PURGE.
For more information about this tag and its parameters, refer to IBM’s WebSphere MQ
Application Programming Reference.
<MQ_COMMIT...> Tag
Tells the queue manager that the application has reached a syncpoint, and to make
permanent all of the MQ_GETs and MQ_PUTs that occurred since the last syncpoint.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29. For more
information about the MQCMIT call and its parameters, refer to IBM’s WebSphere MQ
Application Programming Reference.
<MQ_CONNECT...> Tag
Shows the start of an MQ connection. At playback time, the MQ_CONNECT tag starts an
MQ connection between Hiperstation for WebSphere MQ and a partner application.
For CONNECTION_ID, COMPCODE, REASON, and event_seq_num definitions, see
“Parameters Common to Most Script Tags” on page 3-29.
QMGR_NAME
Name of the queue manager responsible for the given connection.
SYSTEM_NAME
Name of the system on which the connection occurred.
JOBNAME
Name of the job that initiated the connection.
STIME
The ‘start time’ (date and time) of the connection.
TRANSLATEA2E
Indicates that the detail data associated with the given connection was translated
from ASCII to EBCDIC during script creation. This parameter appears only if the
translation option was selected.
Note:
Hiperstation for WebSphere MQ synthesizes missing MQ_CONNECT tags during
script creation. For example, if capture begins after the connection is in progress,
the MQCONNECT call is not recorded. In an attempt to ensure successfully
playback, Hiperstation for WebSphere MQ inserts a synthesized MQ_CONNECT
tag into the script. Synthesized tags are preceded with a script comment for easy
identification, for example:
* SYNTHESIZED MQ_CONNECT TAG
3-34
Hiperstation for WebSphere MQ User Guide
If activity, other than the MQCONNECT call, is not recorded, playback results
may not be accurate. Review connections that begin with synthesized tags. Edit
or delete partially recorded activity.
<MQ_DISCONNECT...> Tag
Breaks the connection between the queue manager and the application.
For CONNECTION_ID, COMPCODE, REASON, and event_seq_num definitions, see
“Parameters Common to Most Script Tags” on page 3-29.
Note: If a disconnection event was never seen for a particular MQ connection at capture
time, an MQ_DISCONNECT tag is "synthesized" for that connection and written
to the end of the script. These synthesized MQ_DISCONNECT tags are preceded
by a comment line like this:
* SYNTHESIZED MQ_DISCONNECT TAG
<MQ_GET...> Tag
Retrieves a message from an open local queue. This tag must follow and MQ_OPEN tag
with the same OBJECT_ID.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
CRNTLEN
The length of the actual content. If you specified a truncation value on the
WebSphere MQ Create Scripts - Input screen (Figure 3-9 on page 3-14), this value may
be smaller than the TRUELEN value.
TRUELEN
The original length of the message retrieved from the queue. Corresponds to the
BufferLength value on the MQGET call.
MQGMO Options
See Table 3-1 on page 3-28.
MQMD Options
See Table 3-1 on page 3-28.
<MQ_INQUIRE...> Tag
Returns information about the attributes of an object.
Scripts and Subset Repositories
3-35
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
SELECTORS
Multi-keyword constants corresponding to the array of selectors.
SELECTORCOUNT
Number of attributes requested.
CHARATTRS
The buffer in which character attributes are returned.
CHARATTRLENGTH
The length (in bytes) of the CharAttrs parameter.
INTATTRS
An array of IntAttrCount integer attribute values.
INTATTRCOUNT
The number of elements in the IntAttrs array.
For more information about the MQINQ call and its parameters, refer to IBM’s WebSphere
MQ Application Programming Reference.
<MQ_OPEN...> Tag
Establishes access to an object (queue). MQ_OPEN names the queue, namelist, process
definition, or queue manager, to be opened.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
MQOD
See Table 3-1 on page 3-28 for a list of object descriptor fields.
MQOO
MQ open options. The value of this parameter corresponds to the Options parameter
on the MQOPEN call. For valid values, refer to IBM’s WebSphere MQ Application
Programming Reference.
If the repository does not contain an MQOPEN event and Script Create cannot find
queue name information, it generates an ObjectName_In and an ObjectName_Out field
containing a question mark ‘?’. Manually replace the question mark with the appropriate
object name to prevent the following playback error:
TCPSEVNT-0074E Replay=1 Invalid Script Parameter found data= ?
TCPPBUTL-0047E Invalid token found: MQOD_OBJECTNAME_IN ='?’
3-36
Hiperstation for WebSphere MQ User Guide
<MQ_PUT...> Tag
Puts a message on an open queue or distribution list.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
CRNTLEN
The length of the actual message content. If you specified a truncation value on the
WebSphere MQ Create Scripts - Input screen (Figure 3-9 on page 3-14), this value may
be smaller than the TRUELEN value.
TRUELEN
The original length of the message as PUT to the queue. Corresponds to the
BufferLength value on the MQPUT call.
MQMD Options
See Table 3-1 on page 3-28 for a complete list of message descriptor fields.
MQPMO Options
See Table 3-1 on page 3-28 for a complete list of MQPUT message options.
For more information about the MQPUT call and its parameters, refer to IBM’s WebSphere
MQ Application Programming Reference.
<MQ_PUT1...> Tag
Puts a single message on a queue, whether the queue is open or not.
For CONNECTION_ID, OBJECT_ID, COMPCODE, REASON, and event_seq_num
definitions, see “Parameters Common to Most Script Tags” on page 3-29.
CRNTLEN
The length of the actual message content. If you specified a truncation value on the
WebSphere MQ Create Scripts - Input screen (Figure 3-9 on page 3-14), this value may
be smaller than the TRUELEN value.
TRUELEN
The original length of the message as put to the queue. Corresponds to the
BufferLength value on the MQPUT1 call.
MQMD Options
See Table 3-1 on page 3-28 for a complete list of message descriptor fields.
MQOD Options
See Table 3-1 on page 3-28 for a complete list of MQPUT1 message options.
MQPMO Options
See Table 3-1 on page 3-28 for a complete list of MQPUT1 message options.
Scripts and Subset Repositories
3-37
For more information about MQPUT1 calls and their parameters, refer to IBM’s WebSphere
MQ Application Programming Reference.
<MQ_SET...> Tag
Changes the attributes of an object represented by a handle.
SELECTORS
Multi-keyword constants corresponding to the array of selectors.
SELECTORCOUNT
Number of attributes requested.
CHARATTRS
The buffer in which character attributes are returned.
CHARATTRLENGTH
The length (in bytes) of the CharAttrs parameter.
INTATTRS
An array of IntAttrCount integer attribute values.
INTATTRCOUNT
The number of elements in the IntAttrs array.
For more information about the MQSET call and its parameters, refer to IBM’s WebSphere
MQ Application Programming Reference.
<TIME> Tag
Indicates the date and time of the event that follows the TIME tag. Depending on the
parameters specified on the playback statements, this tag can be used to control playback
timing.
The TIME value is relative to the system on which the scripts were created. It is not GMT.
The content of this tag is a time stamp with the format:
YYYY/MM/DD_HH:MM:SS.XXXXXX. For example:
<TIME>2006/01/30_13:02:42.246413
<VERSION> Tag
Identifies the version of the Hiperstation for WebSphere MQ script creation program that
created the script.
The VERSION tag appears only once in a script. The value after the VERSION tag is in the
form VV.RR.MM, for version, release, and modification level, respectively. For example:
3-38
Hiperstation for WebSphere MQ User Guide
<VERSION> 07.01.00
Notes:
1. Do not modify the version tag value. Doing so can cause unpredictable results during
playback.
2. The version number may be different than the product release number.
Edit a Script
Edit scripted activity to:
• Manipulate the way the scripts play back. For example, to stress test a function, edit
the script to isolate a single transaction, then play back several concurrent instances
repeatedly.
• Ensure successful playback. For example, if recording begins after a connection is
already in progress, the script may contain a partially recorded business transaction
that results in an application or playback error. Delete the unwanted activity from
the script.
• Alter information within the MQ data streams. For example, you have modified your
application to accept a longer product code. To test the application using a script
recorded before the modifications, edit the product code portion of the MQ_GET,
MQ_PUT, and MQ_PUT1 tag content.
Use ISPF Edit to edit your scripts. Insert the <REPLACE> tag to perform dynamic data
replacement during playback. For example, the script contains a series of transactions
preformed against a specific account. Providing the account number resides in the same
location in the MQ data streams, you can replace that account number in all of the
transactions by inserting one <REPLACE> tag in the appropriate location. Replace data in
a single MQ_GET, MQ_PUT, or MQ_PUT1 data stream or in a specified range of data
streams.
Add REXX logic to:
• Create dynamic scripts that facilitate data-driven testing or smart scripts that modify
application flow based on message content.
• Define custom MVS job step return codes for more definitive playback results.
Hiperstation for WebSphere MQ provides customized REXX variables that return
playback information. Incorporate the variables into your REXX routines. For example,
use the REXX variables that return the current playback count and repeat values to
control record substitution for data-driven testing.
This section of the manual details the elements necessary for basic script editing and
provides easy access to the Hiperstation for WebSphere MQ REXX variables.
For more advanced scripting concepts or a better understanding of REXX applications,
refer to the Hiperstation Scripting Reference. Additionally, consider reviewing “Replacing
Script Data Dynamically” on page 8-33. It provides a a comprehensive example that
includes the use of Hiperstation REXX variables and the <REPLACE> tag.
Notes:
1. Hiperstation for WebSphere MQ supports editing application data in the script or
detail file with File-AID/MVS. For more information, see “Editing MQ Message Data
with File-AID/MVS” on page 3-47.
2. Understanding the relationship between the information in the scripts and the
statements used to run playback can impact your editing decisions. For example,
scripts contain connection information that indicates the queue manager accessed by
each connection. Edit the script if you need to modify the queue manager on a
connection-by-connection basis. However, if you need to modify the queue manager
Scripts and Subset Repositories
3-39
for all of the connections in the script, supply the QUEUE_MANAGER keyword on
the SCRIPT playback statement instead. Prior to editing your scripts, review the
information in Chapter 5, “Unattended Playback”.
Script Syntax Rules
Editing a script requires understanding script tags and syntax rules. If you are not
familiar with MQ script tags, see “Edit a Script” on page 3-38.
MQ script syntax rules:
• A script tag must be enclosed in angle brackets ‘<>’ and the tag name must be
adjacent the opening angle bracket ‘<‘. For example:
<TIME>
• Script tag parameters follow the tag name inside the angle brackets. The format of a
script tag parameter is parameter=value.
<MQ_OPEN CONNECTION_ID=6>
• A tag can have multiple parameters. Parameters on the same line must be separated
by one or more spaces. For example:
<MQ_OPEN CONNECTION ID=6 OBJECT_ID=2...
Parameters can appear on separate lines for easy reading. Each line must end with a
comma. For example:
<MQ_OPEN,
CONNECTION_ID=6,
OBJECT_ID=2,
• Script tag parameter values must be enclosed in single quotation marks if they need
to be interpreted as constants or if they contain characters other than: underscore(_),
uppercase A through Z, or 0 through 9. For example, the QMGR_NAME parameter
value is enclosed in single quotation marks because it must be interpreted as a
constant.
<MQ_CONNECT,
CONNECTION_ID = 1,
COMPCODE = 0,
REASON = 0,
QMGR_NAME = 'MMQM',
• If a parameter’s value spans multiple lines, each line must end with the REXX
concatenation character, ||, followed by a comma. For example,
CHAR_ATTRS = 'M530TOQM_TEST
'||,
**************************'||,
'
'**********************QT.M530TOQM_TEST
'||,
'
c2092.nl.compuware.com(30000)
'||,
'||,
'
'
'||,
'||,
'
'
'>940
• A script tag’s entire value must be on the same line as the closing bracket ‘>’. This is
especially important when editing CONTENT tags. If the value of the CONTENT tag
is longer than the LRECL of the script dataset, it must be separated into multiple
CONTENT records, each beginning with a 12-byte header that Hiperstation for
WebSphere MQ uses to reassemble the content at playback time. For detailed
information regarding the format of the 12-byte header, review “<CONTENT> Tag for
Inline Data” on page 3-30.
3-40
Hiperstation for WebSphere MQ User Guide
• Comment lines, used to provide detail or enhance formatting, must begin with an
asterisk and can appear anywhere in the script. For example, the following comment
lines provide spacing between blocks of event information and a description of the
next event in the script, which is a synthesized MQ_OPEN tag.
*
*
MQ_OPEN
*
*
* WARNING: MISSING DATA, SYNTHESIZED MQ_OPEN TAG
<TIME>2006/06/05_14:37:15.502234
<MQ_OPEN,
CONNECTION_ID = 4,
OBJECT_ID = 15,
• REXX clauses added to the script must precede the activity to which the logic applies.
They can be inserted between scripts tags, but not within a tag or the its value. For
example, insert the following do-loop and say statement before the first
MQ_CONNECT tag in the script and end the loop after the last MQ_DISCONNECT
tag.
do id# = 1 to 100
say ‘Starting connection # ‘id#
<MQ_CONNECT,
CONNECTION_ID=id#, ...,
>123
*
<TIME>2006/06/05_14:37:15.786640
<MQ_DISCONNECT,
CONNECTION_ID = 7,
COMPCODE = 0,
REASON
= 0>116
<MQ_DISCONNECT>
end
• A single REXX variable can be supplied as the value of a script tag parameter. For
example:
queue_manager='MMQG’,
<TIME>2006/06/05_14:38:13.963246
<MQ_CONNECT,
CONNECTION_ID = 8,
COMPCODE = 0,
REASON = 0,
QMGR_NAME = queue_manager,
SYSTEM_NAME = 'CW01',
JOBNAME = 'M210CHIN',
STIME = '2006/06/05_14:38:13.963246'>120
However, REXX variables cannot be supplied within the script tag’s value. That is,
they may not be the value or within the value following the tag’s closing angle
bracket ‘>’.
<REPLACE> Tag
The REPLACE tag replaces the information within the MQ data streams during playback.
Use this tag to supply new data, such as account numbers, user names, and so forth. For
advanced scripting concepts, such as data-driven testing, incorporate the REPLACE tag
into REXX logic that reads the replacement data from an external file, as described in
“Replacing Script Data Dynamically” on page 8-33.
The REPLACE tag can be applied to the CONTENT of a single MQ_GET, MQ_PUT, or
MQ_PUT1 tag or to a range of tags. If applied to a range, the REPLACE tag acts on the
CONTENT of all MQ_GET, MQ_PUT, and MQ_PUT1 tags within the range.
Scripts and Subset Repositories
3-41
Insert the REPLACE tag before the MQ_GET, MQ_PUT, or MQ_PUT1 tag or group of tags
to which it applies. To establish a range, specify ALL on the TYPE parameter of the
REPLACE tag and insert another REPLACE tag at the end of the range. Specify DELETE on
the TYPE parameter of the closing REPLACE tag to terminate the action of the previous
REPLACE tag.
FIELD
Identifies where to begin replacing data within the subsequent CONTENT records
(offset) and what value to insert. Data replacement happens during playback
processing. The original value in the script or detail file is preserved.
The offset value is zero-based and should not include the 12-byte header at the
beginning of each CONTENT tag. For example,
<REPLACE FIELD=(0,'GET') LENGTH=3> replaces ‘XXP’ with ‘GET’ in the following
CONTENT record.
<CONTENT>....00000007XPPJOBM400...wæìÎUR÷...ö«.\.m÷G.......
4444CDDECDE60310FFFFFFFF0002000EDDDDCDFFF000A957EDE000C83E49EC
000C3653553E0241000000070A0210A77716244002076C86491308CA00B417
Specify one or more FIELD attributes on a given REPLACE tag. For example:
<REPLACE FIELD=(0,’CAT’) FIELD=(20,’DOG’)>
Note: Hiperstation for WebSphere MQ provides macros for easily determining offset
values. See “Offset and Length Determination Macros” on page 3-41.
TYPE
Indicates how to apply the data replacement.
– TYPE=ONE applies the data replacement to the next MQ_GET, MQ_PUT, or
MQ_PUT1. This is the default.
– TYPE=ALL applies the data replacement to all subsequent MQ_GETs, MQ_PUTs
and MQ_PUT1s. This is a global data replacement.
– TYPE=DELETE disables the global data replacement established by a previous
REPLACE tag with the TYPE=ALL parameter.
LENGTH
Sets the length of the replacement data stream. LENGTH=n, where n indicates the
number of bytes. If n is greater than the value defined on the FIELD parameter,
Hiperstation for WebSphere MQ pads the value with binary zeros (X'00'). If the
replacement value is shorter than the original message content, use the LENGTH
parameter to ensure the entire message is replaced. For example, if you are replacing
'ABC Corporation' with 'Smith Inc.' and you do not specify a length, the result of the
replacement is 'Smith Inc.ation'.
Note:
Hiperstation for WebSphere MQ provides macros for easily determining
length values. See “Offset and Length Determination Macros” on page 3-41.
Offset and Length Determination Macros
The <REPLACE> tag requires an offset value that indicates where to begin data
replacement. The offset value is zero-based and applies to the actual data stream. If a data
stream is longer than the LRECL of the script dataset, the data stream is broken into
3-42
Hiperstation for WebSphere MQ User Guide
multiple content records each beginning with the <CONTENT> tag and a 12-byte header.
For example:
000484
000485
000486
000487
000488
000489
000490
TRUELEN = 485>39
<CONTENT>
00000295GET /BonusPak2/db2/telco.htmls HTTP/1.1 Accept
<CONTENT>
00000296image/gif, image/x-xbitmap, image/jpeg, image/p
<CONTENT>
00000297jpeg, application/vnd.ms excel,application/vnd
<CONTENT>
00000298ms-powerpoint,application/msword, application/x
<CONTENT>
00000299-%hockwave-flash, */* Referer: http://cw01.comp
<CONTENT>
00000300uware.com/bp2atoc.html Accept-Language: en-us
The <CONTENT> tag and header should not be considered in the offset value. This can
make determining the offset somewhat difficult especially in multi-record content tags.
For example, the ‘G’ in ‘GET’ on line 485 is the first byte of application data and would
require an offset of 0 if replaced, while the ‘i’ in ‘image’ on line 486 is the 49th byte and
would require an offset of 48. Further, the REPLACE tag offers an optional length
parameter that indicates the number of bytes that the replacement data should occupy. It
is typically used when the replacement data is longer or shorter than the original data.
To ease offset and length determination, Hiperstation for WebSphere MQ provides the
following macros:
• LOCPOS — Displays the offset value based on the cursor’s position within a content
tag.
• BRULE — Displays a byte ruler for the selected content record.
• BRULES — Displays a byte ruler for all records in the selected content tag.
Note: Each time you execute a macro, you must type the macro name on the Command
line, then position the cursor and press Enter. To avoid having to repeatedly type
the macro name, you can assign a PF key. To assign a PF key, type KEYS on the
Command line of an ISPF Edit or View session. The ISPF Keylist Utility screen
appears. In the definition area next to the desired key, type a macro name. Refer
to the ISPF Keylist Utility Help to learn more about key mapping.
To use the offset and length determination macros:
1. Open the script or detail dataset with ISPF Edit.
2. Scroll through the script or detail data until the appropriate <CONTENT> record is in
view.
3. On the Command line, type of the macro name. If you assigned a PF key, skip this
step.
4. If using the LOCPOS macro, place the cursor on the first character of the data to be
replaced. If using either of the byte ruler macros, place the cursor anywhere in the
applicable CONTENT record.
5. Press Enter or the assigned PF key.
The LOCPOS macro displays the offset of the selected character in a pop-up window
located in the middle of the screen near the bottom (Figure 3-19).
Scripts and Subset Repositories
3-43
Figure 3-19. LOCPOS Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER005.MQ.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
000099
MQMD_REPLYTOQ = 'CSQ4SAMP.B1.BA79A0D9B0C87080',
000100
MQMD_USERIDENTIFIER = 'USER005',
000101
MQMD_ACCOUNTINGTOKEN = ,
000102
'1A11E4E2C3E6E7D5F0F14BE3C3E6F0F0F4F2F679A0CADCE1C900010000000000'X,
000103
MQMD_PUTAPPLTYPE = CICS,
000104
MQMD_PUTAPPLNAME = 'H01AC054MVB1',
000105
MQMD_PUTDATE = '20031215',
000106
MQMD_PUTTIME = '19203907',
000107
MQPMO_OPTIONS = (DEFAULT_CONTEXT,NO_SYNCPOINT),
000108
MQPMO_RESOLVEDQNAME = 'CSQ4SAMP.B2.INQUIRY',
000109
MQPMO_RESOLVEDQMGRNAME = 'M520',
000110
CRNTLEN = 113,
000111
TRUELEN = 113>9
000112
<CONTENT>
00000001CSQ4BIIM
FIRST GALAC
000113
<CONTENT>
00000002TIC BANK
000114
<CONTENT>
00000003 7777777777011000
000115 *
+-------------+
000116 * MQ_GET *
| OFFSET = 43 |
000117 *
+-------------+
000118 <TIME>2003/12/15_15:20:39.213239
The BRULE macro displays a byte ruler above the selected content record (Figure 320). In the illustration, the offset of ‘B’ is 52, ‘A’ is 53, ‘N’ is 54, and so forth. Every
5th and 10th byte is indicated with a number on the ruler. When the offset value is
greater than 10, the number on the rules occupies two positions. In these cases, the
offset values apply to the character under the 0. For example, 50 appears over the
characters ‘IC’. The offset value of ‘I’ is 49 and ‘C’ is 50.
Figure 3-20. BRULE Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER005.MQ.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
000104
MQMD_PUTAPPLNAME = 'H01AC054MVB1',
000105
MQMD_PUTDATE = '20031215',
000106
MQMD_PUTTIME = '19203907',
000107
MQPMO_OPTIONS = (DEFAULT_CONTEXT,NO_SYNCPOINT),
000108
MQPMO_RESOLVEDQNAME = 'CSQ4SAMP.B2.INQUIRY',
000109
MQPMO_RESOLVEDQMGRNAME = 'M520',
000110
CRNTLEN = 113,
000111
TRUELEN = 113>9
000112
<CONTENT>
00000001CSQ4BIIM
FIRST GALAC
======
DATA BELOW
48==>-50----5---60----5---70----5---80----5---90----5
000113
<CONTENT>
00000002TIC BANK
000114
<CONTENT>
00000003 7777777777011000
000115 *
The BRULES macro displays a byte rules above each record (line) of the selected
content tag (Figure 3-21).
3-44
Hiperstation for WebSphere MQ User Guide
Figure 3-21. BRULES Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER005.MQ.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
000109
MQPMO_RESOLVEDQMGRNAME = 'M520',
000110
CRNTLEN = 113,
000111
TRUELEN = 113>9
======
DATA BELOW
0==>0----5---10----5---20----5---30----5---40----5-000112
<CONTENT>
00000001CSQ4BIIM
FIRST GALAC
======
DATA BELOW
48==>-50----5---60----5---70----5---80----5---90----5
000113
<CONTENT>
00000002TIC BANK
======
DATA BELOW
96==>--100----5---10-000114
<CONTENT>
00000003 7777777777011000
000115 *
Hiperstation for WebSphere MQ REXX Variables
The following predefined REXX variables return playback information. Incorporate these
variables into the REXX logic you add to your scripts to control the way they play back.
Note:
Understanding playback, especially the MQGROUP and SCRIPT statements is
integral to determining how to apply these variables. Additionally, do not forget
to set the REXXON and SET_REXX_STREAM_VARIABLES playback control
parameters to enable the use of these variables during playback. See “CONTROL
Statement” on page 5-3.
ACTUAL_COMPCODE
Returns the completion code (COMPCODE) of an MQ_PUT, MQ_PUT1, or MQ_GET
executed during playback. Place this variable after each script tag that executes a GET,
PUT, or PUT1 of interest. For example, to report the completion code for a particular GET
and PUT, incorporate this variable into REXX say statements placed after each of the
applicable script tags, as shown below:
<MQ_GET,
CONNECTION_ID = 2,
OBJECT_ID = 1,
COMPCODE = 0,
REASON = 0,
MQMD_VERSION = 1,
...>
say 'Comp code of GET = 'ACTUAL_COMPCODE'
<MQ_PUT
...>
say ‘Comp code of PUT = 'ACTUAL_COMPCODE'
EXPECTED_COMPCODE
Returns the completion code (COMPCODE) that was recorded in the script for an
MQ_PUT, MQ_PUT1, or MQ_GET executed during playback. Place this variable after each
script tag that executes a GET, PUT, or PUT1 of interest. For example, to see the actual
and expected completion codes for a particular GET, insert the following REXX say
statements after the MQ_GET tag that executes the call, as shown below:
<MQ_GET,
...>
say 'Comp code of GET = 'ACTUAL_COMPCODE'
say 'Expected comp code of GET = 'EXPECTED_COMPCODE'
Scripts and Subset Repositories
3-45
ACTUAL_CORRELID
Returns the correlation ID (MQMD_CORRELID), in character format, from an MQ_PUT,
MQ_PUT1, or MQ_GET executed during playback. Place this variable after each script tag
that executes a GET, PUT, or PUT1 of interest. If the transaction does not complete
successfully, this variables returns ‘NULL’.
EXPECTED_CORRELID
Returns the correlation ID (MQMD_CORRELID) from the script, in character format, for
an MQ_PUT, MQ_PUT1, or MQ_GET executed during playback. Place this variable after
each script tag that executes a GET, PUT, or PUT1 of interest.
ACTUAL_MSG
Returns the content of the most recent message processed by Hiperstation for
WebSphere MQ. This variable’s value is similar to the MQMessageOutbound or
MQMessageInbound reporting fields, depending on whether an MQ_GET or MQ_PUT
was processed. See “Expanding Data During Playback” on page 8-38, for a detailed testing
example that uses this variable.
EXPECTED_MSG
Returns the content of an inbound MQ message that Hiperstation for WebSphere MQ is
expecting to receive. Normally, this is the content of an MQ_GET from your script.
However, if you reverse the direction of play back, it is the content from an MQ_PUT.
ACTUAL_MSGID
Returns the message ID (MQMD_MSGID) from the script, in character format, for an
MQPUT, MQPUT1, or MQGET executed during playback. Place this variable after each
script tag that executes a GET, PUT, or PUT1 of interest. If the transaction does not
complete successfully, this variables returns ‘NULL’.
EXPECTED_MSGID
Returns the message ID (MQMD_MSGID) from the script, in character format, for an
MQPUT, MQPUT1, or MQGET executed during playback. Place this variable after each
script tag that executes a GET, PUT, or PUT1 of interest.
ACTUAL_LENGTH
Returns the length of the most recent message processed by Hiperstation for
WebSphere MQ.
EXPECTED_LENGTH
Returns the length of an inbound MQ message that Hiperstation for WebSphere MQ
expects to receive.
ACTUAL_REASON
Returns the reason code (REASON) from an MQPUT, MQPUT1, or MQGET executed
during playback. Place this variable after each script tag that executes a GET, PUT, or
PUT1 of interest.
EXPECTED_REASON
Returns the reason code (REASON) from the script for an MQPUT, MQPUT1, or MQGET
executed during playback. Place this variable after each script tag that executes a GET,
PUT, or PUT1 of interest.
3-46
Hiperstation for WebSphere MQ User Guide
OBJECT_ID
Returns the current ID of the object (queue) associated with the activity that is playing
back. This variable’s value may be the same across multiple MQGROUPs, as it is pulled
from the script.
REPLAY_ID
Returns a sequential value for each instance of an MQGROUP replay. For example, an
MQGROUP statement with COUNT(2) REPEAT(3), replays two instances of a script
simultaneously, repeated three times, for a total of six unique replay IDs. Use REPLAY_ID
in volume testing to provide a unique message for each connection to your application.
For example, to test 1000 simultaneous customer requests accessing your application,
each with a different customer number and name:
1. Create an external file containing customer numbers and names with one customer
per line.
2. Add data replacement logic to your script, for example:
/* Access external file and parse customer info */
"EXECIO * DISKR CUSTFILE (STEM cust.FINIS"
parse var cust.REPLAY_ID 1 cust_nbr 11 cust_name
/* Replace content in script with info from file */
<REPLACE FIELD =(0,cust_nbr) FIELD =(10,cust_name)>
/* Send the message
*/
<MQ_PUT...
3. Set the count value in the MQGROUP statement to 1000, that is,
MQGROUP COUNT(1000). This generates 1000 unique customer requests by starting
1000 simultaneous sessions, all with unique REPLAY_IDs that correspond to the
customer information from your external file.
PUT_QUEUE_NAME
Returns the name of the queue most recently used for an MQ_PUT.
GET_QUEUE_NAME
Returns the name of the queue most recently used for an MQ_GET.
MQGROUP_COUNT_NBR
Returns the COUNT value of the current MQGROUP replay. For example, if the
MQGROUP statement specifies COUNT(3), the first instance returns COUNT = 1; the
second, COUNT = 2; the third, COUNT = 3. This value is set when the MQGROUP begins
execution.
Use this variable and MQGROUP_REPEAT_NBR to extend testing capability. See
“Replacing Data During Repeated Concurrent Playback” on page 8-47, for a detailed
example.
MQGROUP_REPEAT_NBR
Returns the REPEAT value of the MQGROUP replay. This value is set when a group begins
execution. Use MQGROUP_COUNT_NBR and MQGROUP_REPEAT_NBR to replace script
data on specific COUNTS and REPEATS. For example, to test three products (A, B, C) with
two accounts (1, 2).
Value
Repeat 1
All COUNTS execute simultaneously
COUNT 1
COUNT 2
COUNT 3
Product A, Account 1
Product B, Account 1
Product C, Account 1
Scripts and Subset Repositories
Value
3-47
All COUNTS execute simultaneously
Repeat 2
(begins after Repeat 1
completes)
COUNT 1
COUNT 2
COUNT 3
Product A, Account 2
Product B, Account 2
Product C, Account 2
1. Create an external file for each parameter you want to replace. Each file should
contain one parameter value per line.
2. Add data replacement logic to your script, for example,
/* Access external files */
"EXECIO * DISKR PRODFILE (STEM product.FINIS"
"EXECIO * DISKR ACCTFILE (STEM account.FINIS"
product_nbr = product.MQGROUP_COUNT_NBR
account_nbr = account.MQGROUP_REPEAT_NBR
/* Replace content in script with info from file */
<REPLACE FIELD =(5,account_nbr) FIELD =(32,product_nbr)>
/* Send the message
*/
<MQ_PUT...
3. Set the count and repeat values in the MQGROUP statement, for example,
MQGROUP COUNT(3),REPEAT(2). This generates six unique customer requests,
each with a unique combination of product and account parameter values.
See “Replacing Data During Repeated Concurrent Playback” on page 8-47, for a more
detailed example.
SCRIPT_REPEAT_NBR
Returns the REPEAT value of the current script playback. This value is set to one when
the script begins execution, and increments with every repeat.
Editing MQ Message Data with File-AID/MVS
Review and edit MQ message data (data tagged <CONTENT> in the script) with:
• ISPF Edit or View.
• File-AID/MVS version 08.00, providing you are licensed.
Invoke File-AID/MVS from an ISPF Edit or View session to review and edit MQ message
data in a formatted context. For example, if the message data contains a numeric string
that represents a customer ID and account number, identifying the account number
portion of the string may be difficult in ISPF Edit and therefore editing, more error prone.
Use the MAPD command to invoke File-AID/MVS Edit and apply a record layout that
presents the information with labels you define, such as Customer ID and Account
Number. Edit information as necessary and exit File-AID/MVS to carry changes over to
the ISPF session. End the session to apply changes to the script/detail dataset. This
process is referred to as mapping message data into application data structures.
Note:
This feature supports a maximum message length of 32KB.
If MQ message data is stored in the script, map one message at a time. If it is stored in a
separate dataset, map individual messages or all messages in the dataset at once. Refer to
“Define Detail Data Storage and Output Requirements” on page 3-15.
Assign a PF Key to MAPD
Simplify editing individual messages by assigning a PF key to execute the MAPD
command. Access the ISPF Keylist Utility by typing KEYS on the Command line of an
3-48
Hiperstation for WebSphere MQ User Guide
ISPF Edit or View session. In the definition area next to the desired key, enter an
exclamation point (!) followed by MAPD (!MAPD). Refer to the ISPF Keylist Utility Help
to learn more about key mapping.
Note: The command prefix character may be different depending on the code page your
terminal used. The command prefix is the character that maps to hexadecimal
value X‘5A’. In the United States, the exclamation point is typically the correct
character. To determine the appropriate character, either refer to the code page
relevant to your terminal or use the HEX editing features of an ISPF Edit session.
Open an edit session, invoke HEX editing, type 5A in the edit area, and disable
HEX editing.
Map an Individual Message
Make sure the Maintain PDS Statistics option in File-AID/MVS is set to ADD before you
begin mapping. Refer to your File-AID/MVS manual or your system programmer for help.
To map individual messages:
1. Open the script or detail dataset in ISPF Edit or View.
Note:
ISPF View prompts for confirmation prior to writing changes back to the
script or detail data file.
2. Use standard ISPF commands to locate the message to map.
Note:
To view only the message data in a script file, type X ALL on the Command
line and press Enter; then type F <CONTENT> ALL and press Enter.
3. If you have not assigned a PF key for the MAPD command, place the cursor on the
Command line and enter an exclamation point (!) following by MAPD.
Note:
The command prefix (!) is required only for the first mapping in the session.
It is an ISPF standard for invoking a macro. Also, the command prefix may be
different depending on the code page your terminal used. In the United
States, the exclamation point is typically the correct character. See the note
in the “Assign a PF Key to MAPD” on page 3-47 discussion for more
information.
4. Position the cursor anywhere right of the line command area on the record you wish
to map and press the assigned PF key. If you did not assign a PF key, be sure MAPD is
on the Command line and the cursor is correctly positioned, then press Enter.
5. MAPD invokes File-AID/MVS. Refer to the File-AID/MVS documentation for help
with the screens it presents. With File-AID/MVS, you can apply a record layout,
generate XML from mapped data, XREF information, and filter information to see
only the activity needed to review or to edit.
Note:
MAPD creates a temporary dataset, with a 4-node naming convention
(USERID.MAPDTEMP.DATE.TIME), to pass mapped messages to
File-AID/MVS. File-AID/MVS writes changes to the temporary dataset. When
you leave File-AID/MVS, it passes your changes back to ISPF and deletes the
temporary dataset. Upon exiting ISPF, MAPD updates the script/detail
dataset.
If for some reason, the File-AID/MVS session is lost during edit, delete the
temporary dataset manually.
Additionally, you can use the temporary dataset as input to an XML
generation job. After you submit the job, exit the screen File-AID presents to
ensure the temporary dataset is available for use. Do not exit File-AID until
the job is complete.
Scripts and Subset Repositories
3-49
Edit message content as necessary. Make sure Caps Lock is off when you enter
File-AID/MVS. If you edit a line and Caps Lock is on, File-AID coverts the entire line
to uppercase. Press Cancel to cancel your work and return to ISPF or End to exit
File-AID/MVS and transfer any changes to ISPF.
6. To exit the ISPF session without saving changes, press Cancel. To save the work in:
– An Edit session, press End.
– A View session, use the Create or Replace commands. Then press End to
terminate the session.
Map an Entire Data File
Make sure the Maintain PDS Statistics option in File-AID/MVS is set to ADD before you
begin mapping. Refer to your File-AID/MVS manual or your system programmer for help.
To map an entire data file:
1. Open the detail dataset in ISPF Edit or View.
Note:
ISPF View prompts for confirmation prior to writing changes back to the
script or detail data file.
2. Place your cursor on the Command line and press the PF key assigned to the MAPD
command. If you have not assigned a PF Key, place your cursor on the Command line
and type an exclamation point (!) followed by MAPD, then press Enter.
Note:
The command prefix (!) is required only for the first mapping in the session.
It is an ISPF standard for invoking a macro. Also, the command prefix may be
different depending on the code page your terminal used. In the United
States, the exclamation point is typically the correct character. See the note
in the “Assign a PF Key to MAPD” on page 3-47 discussion for more
information.
3. MAPD invokes File-AID/MVS. Refer to the File-AID/MVS documentation for help
with the screens it presents. With File-AID/MVS, you can apply a record layout,
generate XML from mapped data, XREF information, and filter information to see
only the activity needed to review or edit.
Note:
MAPD creates a temporary dataset, with a 4-node naming convention
(USERID.MAPDTEMP.DATE.TIME), to pass mapped messages to
File-AID/MVS. File-AID/MVS writes changes to the temporary dataset. When
you leave File-AID/MVS, it passes your changes back to ISPF and deletes the
temporary dataset. Upon exiting ISPF, MAPD updates the script/detail
dataset.
If for some reason, the File-AID/MVS session is lost during edit, delete the
temporary dataset manually.
Additionally, you can use the temporary dataset as input to an XML
generation job. After you submit the job, exit the screen File-AID presents to
ensure the temporary dataset is available for use. Do not exit File-AID until
the job is complete.
Edit message content as necessary. Make sure Caps Lock is off when you enter
File-AID/MVS. If you edit a line and Caps Lock is on, File-AID coverts the entire line
to uppercase. Press Cancel to cancel your work and return to ISPF or End to exit
File-AID/MVS and transfer any changes to ISPF.
CAUTION:
Deleting and inserting messages may cause unsynchronized playback.
3-50
Hiperstation for WebSphere MQ User Guide
The script contains a link to each message in the detail file that supports playing
back the script. If the detail file contains fewer or more messages than the script
calls, playback will become unsynchronized. When you exit File-AID/MVS,
Hiperstation for WebSphere MQ warns you if the message count has been altered.
If you replace messages by deleting and inserting, be sure the replacement messages
contain the same type of data as the original messages.
4. To exit the ISPF session without saving changes, press Cancel. To save your work in:
– An Edit session, press End.
– A View session, use the Create or Replace commands. Then press End to
terminate the session.
Access MAPD Help Panels
Access MAPD help panels, by typing MAPD space HELP or MAPD space question mark (?)
on the Command line in the ISPF Edit or View session and pressing Enter.
Troubleshoot Message Mapping
MAPD presents information, error, and warning messages in the ISPF session. Depending
on your ISPF settings, message content either appears on the first line of the display or in
a pop-up window. Most message are fairly intuitive. However, some may be more difficult
to troubleshoot. This section explains each message and provides the appropriate action
to take, if any.
Script Dataset Messages
'CURSOR NOT ON <CONTENT> - SEE USER’S GUIDE'
Explanation:
The dataset containing the message you are mapping is not a script dataset.
User Response: Press Enter to clear the message and Cancel to exit the ISPF session. Locate
the appropriate dataset and try again.
'DATA CHANGES DETECTED - EXTRA RECORD(S) IGNORED'
Explanation: You added one or more records while editing in File-AID/MVS. MAPD sent a
single message, so it expects to receive a single record.
System Action: MAPD ignores the additional records when transferring changes back to ISPF.
However, ISPF will reflect changes, if any, made to the originally mapped message.
'INVALID CONTENT LENGTH - SEE USER'SGUIDE'
Explanation:
While editing a script dataset the message length attribute byte was modified.
System Action: MAPD will not transfer data to File-AID/MVS if the message length does not
match the value of the length attribute byte.
User Response: Press Enter to clear the message. If editing was effected in the current ISPF
session, press cancel to exit the session without saving changes and try again.
'SCRIPT & DETAIL MUST BE COMBINED - SEE USER’S GUIDE'
Explanation: You are attempting to map from a script dataset that is stored separately from
the detail dataset (message data). It contains links to the message data and the first part of
each message for identification purposes. Refer to “Define Detail Data Storage and Output
Requirements” on page 3-15.
User Response: Press Cancel to exit the ISPF session. Locate the corresponding detail dataset
and map messages from there.
Scripts and Subset Repositories
3-51
Detail Dataset Messages
'CURSOR NOT ON DETAIL RECORD' - SEE USER’S GUIDE
Explanation: You are either attempting to map from a dataset that is not a detail dataset or
you inadvertently altered a detail data sequence number.
User Response: Press Enter to clear the message. Then make sure you are in a detail file.
If you are in a detail file and inadvertently alter a sequence number in the current ISPF session,
cancel without saving your work and start over. If the sequence number was altered in another
ISPF session and saved, then regenerate the script and detail.
'LINE(S) DELETED - DETAIL OUT OF SYNC'
Explanation: While editing a detail dataset in File-AID/MVS, you deleted a record, which
causes an unsynchronized playback.
User Response:
dataset.
Press Cancel to exit the ISPF session without saving changes to the detail
'LINE(S) INSERTED - DETAIL OUT OF SYNC'
Explanation: While editing a detail dataset in File-AID/MVS, you inserted a record, which
causes an unsynchronized playback
User Response:
dataset.
Press Cancel to exit the ISPF session without saving changes to the detail
'MESSAGE DATA SPANS MULTIPLE LINES - SEE USER'S GUIDE '
Explanation: When the script was created, if the length of the MQ message data is longer
than the detail dataset’s logical record length (LRECL), the message spans more than one line.
This message appears when you try to map an entire file containing messages that span more
than one line.
User Response: Press Enter to clear the message. The cursor will position to the first
offending message. Map messages individually or regenerate the script and detail with an
LRECL equal to or greater than the maximum message length.
General Information and Error Messages
'32K MAXIMUM LRECL EXCEEDED'
Explanation: You are attempting to map a file containing messages larger than 32KB. The
maximum record length supported by MAPD is 32KB.
'COMMAND NOT FOUND'
Explanation: The ISPF Edit Macro invocation character is missing or incorrect. ISPF requires
the invocation character for the first use of the macro in a given session.
User Response: Prefix the MAPD command with the appropriate macro invocation character.
This is the character that maps to hexadecimal value X‘5A’. For devices using the EBCDIC
Code Page 037, the prefix character is an exclamation point (!).
'DATA CHANGES DETECTED'
Explanation:
This message informs you that data has been changed.
User Response: If you did not intend to change data, press Enter to clear the message and
Cancel to exit the ISPF session without saving the changes.
'INVALID PARAMETER'
Explanation: On the Command line, MAPD is followed by text that is not recognized as a
valid parameter.
User Response: Press Enter to clear the message. Remove characters following the MAPD
command and press Enter to resume work. Note: HELP or ‘?’ are the only valid MAPD
parameters.
'NO CHANGES DETECTED'
Explanation:
This message informs you that data has not been changed.
3-52
Hiperstation for WebSphere MQ User Guide
User Response:
Press Enter to clear the message and return to ISPF.
'NO DATA RETURNED FROM FILE-AID'
Explanation: You deleted the message in File-AID/MVS. File-AID/MVS had no data to return.
System Action:
No changes are made to the MQ message data.
User Response:
Press Enter to clear the message and return to the ISPF session.
4-1
Chapter 4.
Interactive Playback
Chap 4
Introducing Interactive Playback
Use interactive playback to:
• Play back scripts — execute the MQ API commands found in the script.
• Analyze scripts — process the script without executing the MQ API commands to
report information on the script’s contents.
In order to play back a Hiperstation for WebSphere MQ script, you must have created an
MQ script using the Create Scripts panels, (See Chapter 3, “Scripts and Subset
Repositories” for information on how to create a script.) The concept behind playback is
to recreate the traffic you captured to your script using the Global Record tool. Entering
information on these playback screens will generate batch JCL that can either be saved or
submitted for execution.
1. On the Hiperstation for WebSphere MQ Main Menu (Figure 4-1), select option 3
Playback MQ Scripts.
Figure 4-1. Hiperstation for WebSphere MQ Main Menu
----------------Option ===>
Hiperstation for WebSphere MQ - Main Menu
-----------------
Product Release: 08.00.01
1
2
3
4
5
6
Monitor MQ Requests
Create MQ Scripts
Playback MQ Scripts
MQ Playback Reporting
MQ Archive Requests
MQ Archive Web Reports
Add/Review your MQ recording requests
Create MQ scripts from a repository
Execute and save playbacks of MQ scripts
Report on database created from playback
Add, Review or Terminate MQ archive requests
Manage MQ archive web reports
The WebSphere MQ Playback - Selection screen appears (Figure 4-2).
Figure 4-2. WebSphere MQ Playback - Selection Screen
--------------------- WebSphere MQ Playback - Selection
Command ===>
---------- Row 1 of 5
Primary commands:
C)reate Playback, G)enerate Playback from Script Log
Line commands...:
S)elect, P)lay or D)elete
S
-
Name
Playback Description
Date
-------- ------------------------------------------------------ ---------LFOF
03/29/07
LONG100
03/29/07
SFSFSF
03/29/07
TEST2
03/29/07
TEST88
03/29/07
******************************* Bottom of data ********************************
2. Select what you want to do:
4-2
Hiperstation for WebSphere MQ User Guide
– Create a new Playback by filling in the relevant information on the screens that
follow (see “Creating a New Interactive Playback” on page 4-2).
– Generate a Playback from a log dataset that was created in the script create job
(see “Generating a Playback from a Script Log” on page 4-4). The script dataset
and names will be extracted from the log allowing a playback to be instantly
created for a particular log.
– Play back a previously saved script (see “Submitting Your Playback for Execution”
on page 4-12).
– Delete a previously saved playback (see “Deleting a Playback” on page 4-14).
– Select a previously saved Playback to review (“Selecting a Previously Saved
Playback to Review” on page 4-14).
Creating a New Interactive Playback
1. On the WebSphere MQ Playback - Selection screen, type C (create) on the command
line and press Enter. The WebSphere MQ Playback - Datasets screen appears (Figure 43).
Figure 4-3. WebSphere MQ Playback - Datasets Screen
---------------------- WebSphere MQ Playback - Datasets
Command ===>
---------------------
Script Dataset:
Project . . . PLAYBAK
Group . . . . QA
Type . . . . #0000001
Other Partitioned Dataset:
Dataset Name. . . .
Define more than one Script Dataset(/)
Specify locations of playback outputs
Reporting Database(optional)
Generate Reporting Job ==>
Dataset Name. . . . ‘USERID.REPORT.DB’
Playback Error Log(if not SYSOUT=*):
Dataset Name. . . . ‘USERID.PLAYBACK.LOG
Press ENTER to continue,
END to cancel setup.
2. Enter the Script Dataset name of the script you want to play back. If your dataset
name does not conform to ISPF naming standards, enter the dataset name, in single
quotes, in the Other Partitioned Dataset field. Either Script Dataset or Other
Partitioned Dataset is a required field.
a. If you want to access multiple script datasets, enter a slash (/) in the Define more
than one Script Dataset field and press Enter. The WebSphere MQ Multiple
Script Dataset screen will appear (Figure 4-4).
Interactive Playback
4-3
Figure 4-4. WebSphere MQ Script Dataset List Screen
MQSFEDL --------------- WebSphere MQ Script Dataset List ---------------------Command ===>
Please supply the dataset(s) containing the scripts
to be used in this playback.
Additional Script Dataset Names:
Enter End to return to the previous menu.
You can enter up to six script dataset names. If the first character is a single quote
(‘), a fully qualified dataset name is expected. If the first character is not a single
quote, then the user ID is attached as a prefix or high-level qualifier. After you
enter all of the desired dataset names, press Enter to return to the WebSphere MQ
Playback - Datasets screen. Continue with step 3.
b. If you will be playing back a single script, continue with step 3.
3. To report on the playback, enter a name for the Reporting Database. Data from the
playback will be collected to this database and used in a future reporting job. This
field is required only if you selected the Generate Reporting Job field. Selecting
Generate Reporting Job provides reporting panels after the playback panels are
completed.
4. The playback error log is a report that describes any errors that occurred during
playback. If you leave this field blank, the report will go to SYSOUT=*. You can enter
a dataset name or an hfs path to specify an alternate location.
5. Press Enter to continue. The member list screen will appear (Figure 4-5).
Figure 4-5. WebSphere MQ Playback - Script Member List Screen
MEMBER LIST -- USER2312.MQ.SCRIPT ------------------------- ROW 00001 OF 00002
COMMAND ===>
SCROLL ===> PAGE
END
CANcel
End and process selection
End without processing
Line Cmds:
Name
LOG00000
SCR00000
**End**
S Select member
Prompt
Size
23
1508
B Browse member
Created
2007/07/27
2007/07/27
Changed
2007/07/27 16:10:00
2007/07/27 16:10:00
ID
USER2312
USER2312
6. Enter the END command to process your selection. The WebSphere MQ Playback Setup screen appears (Figure 4-6).
4-4
Hiperstation for WebSphere MQ User Guide
Figure 4-6. WebSphere MQ Playback - Setup Screen
------------------- WebSphere MQ Playback - Setup
Command ===>
--------- Row 1 to 2 of 2
Scroll ===> PAGE
Enter script, and modify desired options using /.
Type OK and press ENTER when ready.
Note: Use multiple MQGroups to test parallel connections to your application.
Scripts under each MQGroup will run sequentially.
Environment Options(apply to all MQGroups except when overridden)
MQGroup and script line commands are: (D)elete,(R)epeat,(A)dd,(/)Options
S MQGroup
** *******
1
2
S Script
** ********
SCR00000
SCR00001
7. Enter the name of the script you want to play back. You must know the script name
and enter it in the Script field, and it must be a script within the dataset that you
named on the Websphere MQ Playback - Datasets screen.
8. If you do not need to change any options, type OK on the Command line and
continue with the next step.
Notes:
1. To explain the relationship between an MQGroup and a Script, an MQGroup
represents a single connection to your application. When there are multiple
MQGroups in a playback, they run in parallel to each other, unless the
MQGroup start time is modified in the environment options. Within an
MQGroup, there are one or more scripts that run sequentially in the order
they appear.
2. You can change Environment, MQGroup, and Script options. See “Changing
Playback Options” on page 4-5 for complete information. Then continue
with the next step.
3. Lines commands can be applied to either the MQGroup or the Script. The
Add, Repeat, and Delete line commands will add, repeat, or delete an
MQGroup. When applied to a script, they will add, repeat, or delete a script
from that MQGroup. When deleting, keep in mind that at least one script
and MQGroup are required for a playback.
Generating a Playback from a Script Log
The Generate command allows you to create a playback from a log dataset that was
created in a script create job. The script dataset and names will be extracted from the log
allowing a playback to be instantly created for a particular log.
1. On the WebSphere MQ Playback - Selection screen, type G (generate) on the
command line and press Enter. The WebSphere MQ Playback - Log File screen appears
(Figure 4-7).
Interactive Playback
4-5
Figure 4-7. WebSphere MQ Playback - Log File Screen
---------------------- WebSphere MQ Playback - Log File --------------------Command ===>
Enter log file member to generate playback:
Log Dataset:
Project . . .
Group . . . .
Type . . . .
Member . . .
Other Partitioned Dataset:
Dataset Name. . . .
Press ENTER to continue,
END to cancel setup.
2. Specify the log file you wish to use for playback. If you did not enter a member name
when you specified the log dataset, a list of members will appear allowing you to
select the desired member.
3. Type S next to the desired member and press Enter. The WebSphere MQ Playback Datasets screen appears. If your dataset name does not conform to ISPF naming
standards, the name including the member name must be entered in the Other
Partitioned Dataset Name field.
The remainder of the steps are the same as those you performed in “Creating a New
Interactive Playback”. Continue with step 2 on page 4-2.
Changing Playback Options
Environment Options
Environment options are applied to the entire playback with the exception of certain
parameters that can be overridden on the MQGROUP or SCRIPT level. The current
settings for the options are displayed next to each option category.
1. You can access the Environment Options screen (Figure 4-8), by typing a slash next
to the Environment Options field on the WebSphere MQ Playback - Setup screen
(Figure 4-6 on page 4-4).
Figure 4-8. Environment Options Screen
----------------------------- Environment Options ----------------------------Command ===>
Select the type of options to view/modify using
/ .
Processing Options:
Rexx Enabled, Play transactions online
Internal Hiperstation REXX variables OFF
Timing Options:
Play at Full Speed,Groups start simultaneously,
Wait 15 seconds for I/O to complete
Websphere MQ Options:
Use Scripted QMGR
Use Scripted PUT queue
Use Scripted PUT queue
Enter END command to return to the previous panel
4-6
Hiperstation for WebSphere MQ User Guide
This screen allows you to view or modify processing, timing, and WebSphere MQ
options.
2. Type a slash (/) next to the Processing Options field and press Enter. The
Environment Processing Options screen appears (Figure 4-9).
Figure 4-9. Environment Processing Options Screen
------------------------ Environment Processing Options ----------------------Command ===>
Review current option settings and modify if required:
Enable REXX to be used in MQ scripts? ==> /
Use internal Rexx Stream Variables?
==>
(populated dynamically during playback)
Rexx Log Dataset name
Live I/O during playback
==> /
When MessageSets are created for reporting, relate messages by:
Correlation Id ==> /
Message ID
==>
Press ENTER
to continue, END
to exit
The options on this panel correspond to keywords that are placed in control cards for
the playback JCL.
– Enable REXX enables REXX to be used in scripts. The keyword is REXXON.
– Internal REXX stream variables enables the use of predefined REXX variables
during playback. The variables return information about the playback and
incorporate them into REXX logic that you add to your scripts to control the way
the scripts play back. The keyword is SET REXX STREAM VARIABLES.
– Enter the REXX Log Dataset name.
– Live I/O permits Hiperstation to play back scripts without performing any I/O
allowing you to generate reports for analyzing script content. The keyword is
OFFLINE.
– When Message Sets are created for reporting, relate messages by:
• Correlation ID: Creates request/reply message sets. This is the default.
• Message ID: Select this option when you want to track a particular message
ID throughout your application into a message set.
After making your changes, enter END to return to the previous screen.
3. Type a slash (/) next to the Timing Options field and press Enter. The Environment
Timing Options screen appears (Figure 4-10).
Interactive Playback
4-7
Figure 4-10. Environment Timing Options Screen
-------------------------- Environment Timing Options ------------------------Command ===>
Review current option settings and modify if required:
Use start times to control dispatching of each MQGROUP?
(start times will be displayed when option selected)
==>
NUmber of seconds to wait for I/O to complete before timing out ==>
Select an
1 1 Play
2 Play
3 Play
15
option for playback think time:
at full speed
at think time recorded on script
at user specified think time
If you have selected options 2 or 3, you may alter the rate of the playback
by altering the Think Time (For option 3 only) or the percentage.
User Think Time (HH:MM:SS) . .
Percentage . . . . . . . . . . 100
Press ENTER
to continue, END
to exit
4. Use start times controls the playback initiation time for each MQGroup statement
supplied in the job. If USESTIME is specified, Hiperstation for WebSphere MQ
initiates playback of each MQGroup relative to the start time values supplied in the
MQGroup statement. When this option is selected, Start Time for each MQGroup is
displayed on the main setup panel. Enter a slash (/) to select this option.
5. Enter a Number of seconds to wait for I/O completion before timing out.
6. Select an option for playback think time:
– 1. Play back at full speed (no think time).
– 2. Play at think time recorded in the script.
– 3. Play at user-specified think time.
7. If you selected option 2 or 3, you can change the User Think Time and/or
Percentage if desired. User think time sets the amount of time to wait after receiving
a server message before sending the next client message. Seconds is the only required
value. Percentage is the percentage of think time to use for playback. With Option 2,
it is the think time recorded in the script. With Option 3, it is the user-specified
think time.
8. Press Enter to continue and return to the Environment Options screen.
9. Type a slash (/) next to the WebSphere MQ Options field and press Enter. The
Environment Websphere MQ Options screen appears (Figure 4-11).
4-8
Hiperstation for WebSphere MQ User Guide
Figure 4-11. WebSphere MQ Options Screen
----------------------- Environment WebSphere MQ Options ---------------------Command ===>
Enter QMGR/Queue Names in the fields you would like to override:
If you would like to connect to a Queue Manager that is not in your script,
enter new default Queue Manager Name
==>
Send all MQPUTs executed during playback to following queue:
Send all MQGETs executed during playback to following queue:
For all MQPUTs, set the REPLY TO QUEUE field to :
For all MQPUTs, set the REPLY TO QMGR field to ==>
Press ENTER to continue, END to exit
If you do not specify values for any of these fields, Playback uses the attributes from
the script. However, if your testing calls for playing back the script using different
queues or queue managers, you can specify those choices here.
Note:
For the following fields, the queue can be either a queue name or model:stem,
where model is the name assigned to a set of attributes that define the queue,
and stem is the beginning of the queue name.
10. To connect to a Queue Manager that is not in your script, enter a new Queue
Manager Name to override the attributes in the script.
11. In the MQPUT field, specify the default output queue for your playback.
12. In the MQGET field, specify the default input queue for your playback.
13. Specify the REPLY TO QUEUE and REPLY TO QMGR fields for all MQPUTs to specify
where reply messages will go.
14. Press Enter to continue and return to the Environment Options screen.
MQ Group Options
1. Type a slash (/) next to the desired MQGroup and press Enter. The MQGROUP
Options screen appears (Figure 4-12).
Figure 4-12. MQGROUP Options Screen
----------------------------- MQGROUP
Command ===>
1
Options -----------------------------
Select the type of options to view/modify using / . To copy options to
all MQGroups in playback, type save all from any MQGroup options panel.
Processing Options:
Repeat(1),Count(1),
Play as recorded
Timing Options:
No start delay
Websphere MQ Options:
Use Scripted QMGR
Use Scripted PUT queue
Use Scripted PUT queue
Enter END command to return to the previous panel
Interactive Playback
4-9
This screen allows you to view or modify processing, timing, and WebSphere MQ
options for the selected MQGroup.
2. Type a slash (/) next to the Processing Options field and press Enter. The MQGroup
Processing Options screen appears (Figure 4-13).
Figure 4-13. MQGROUP Processing Options Screen
------------------------ MQGroup
Command ===>
1
Processing Options -----------------------
Review current option settings and modify if required:
Number of Repeats
==>
1
Number of instances of this MQGroup ==>
1
Reverse Direction of Transactions on:
Connection(s)
(* for all,or list)
Only on Queue Name
Defaults for reversed transactions:
Send all PUTS to
Send all GETS to
Skip execution of :
Connection(s)
Jobname(s)
Press ENTER to continue, END
(list)
(list)
to exit
The options on this panel correspond to keywords that are placed in control cards for
the playback JCL.
3. Enter the number of times to repeat playback of scripts in the MQGroup and the
number of instances of this MQGroup.
4. Reverse Direction of Transactions causes WebSphere MQ playback to act as though
it is receiving the data generated from the application. This is useful when a script is
created based on queue activity requested by a server, such as a CICS region, and you
want to test the server application using that script. When an MQGet is encountered
in the script, an MQput is executed, and when an MQPUT is encountered, an MQGET
is executed. Make your selection.
– Connections — Specify an * to reverse all transactions in the script, or list the
connections to reverse (for example, 1,2,5).
– Only on Queue Name — Specify a specific queue to reverse transactions.
– Default Queue Names — For reversed transactions, use these queues as respective
defaults.
5. Specify any connections or jobnames for which you want to skip execution.
6. Press Enter to continue and return to the MQGroup Options screen.
7. Type a slash (/) next to the Timing Options field and press Enter. The MQGroup
Timing Options screen appears (Figure 4-14).
4-10
Hiperstation for WebSphere MQ User Guide
Figure 4-14. MQGROUP Timing Options Screen
-------------------------- MQGroup
Command ===>
1
Timing Options -------------------------
Review current option settings and modify if required:
Number of seconds to delay start of this MQGroup ==>
Press ENTER
to continue, END
0
to exit
8. Enter the number of seconds that you want playback to wait between the start of an
MQGROUP and the commencement of playback. Use STARTDLY to stagger the start
of playback using multiple MQGROUP statements.
9. Type a slash (/) next to the WebSphere MQ Options field and press Enter. The
MQGroup WebSphere MQ Options screen appears (Figure 4-15).
Figure 4-15. MQGROUP WebSphere MQ Options Screen
----------------------- MQGroup
Command ===>
1 WebSphere MQ Options ----------------------
Enter QMGR/Queue Names in the fields you would like to override:
If you would like to connect to a Queue Manager that is not in your script,
enter new default Queue Manager Name
==>
Send all MQPUTs executed during playback to following queue:
Send all MQGETs executed during playback to following queue:
For all MQPUTs, set the REPLY TO QUEUE field to :
For all MQPUTs, set the REPLY TO QMGR field to ==>
Press ENTER to continue, END
to exit
If you do not specify values for any of these fields, Playback uses the attributes from
the script. However, if your testing calls for playing back the script using different
queues or queue managers, you can specify those choices here.
Note:
For the following fields, the queue can be either a queue name or model:stem,
where model is the name assigned to a set of attributes that define the queue,
and stem is the beginning of the queue name.
10. To connect to a Queue Manager that is not in your script, enter a new Queue
Manager Name to override the attributes in the script.
11. In the MQPUT field, specify the default output queue for your playback.
12. In the MQGET field, specify the default input queue for your playback.
13. Specify the REPLY TO QUEUE and REPLY TO QMGR fields for all MQPUTs to specify
where reply messages will go.
14. Press Enter to continue and return to the Environment Options screen.
Interactive Playback
4-11
Script Options
1. Type a slash (/) next to the desired Script and press Enter. The Script Options screen
appears (Figure 4-16).
Figure 4-16. Script Options Screen
--------------------Script
Command ===>
SCR00000
Group
1
Options --------------------
Select the type of options to view/modify using / . To copy options to
all scripts in playback, type save all from any Script options panel.
Processing Options:
Repeat(1), Play as recorded
Websphere MQ Options:
Use Scripted QMGR
Use Scripted PUT queue
Use Scripted PUT queue
Enter END command to return to the previous panel
On this screen, you can choose to modify Processing and WebSphere MQ options for
the selected script.
2. Type a slash (/) next to the Processing Options field and press Enter. The Script
Processing Options screen appears (Figure 4-17).
Figure 4-17. Script Processing Options Screen
---------------------- Script SCR00000 Processing Options --------------------Command ===>
Review current option settings and modify if required:
Number of Repeats
==>
1
Reverse Direction of Transactions on:
Connection(s)
(* for all,or list)
Only on Queue Name
Defaults for reversed transactions:
Send all PUTS to
Send all GETS to
Press ENTER to continue, END
to exit
The options on this panel correspond to keywords that are placed in control cards for
the playback JCL.
3. Enter the number of times to repeat playback of scripts in the MQGroup and the
number of instances of this MQGroup.
4. Reverse Direction of Transactions causes WebSphere MQ playback to act as though
it is receiving the data generated from the application. This is useful when a script is
created based on queue activity requested by a server, such as a CICS region, and you
want to test the server application using that script. When an MQGet is encountered
in the script, an MQput is executed, and when an MQPUT is encountered, an MQGET
is executed. Make your selection.
– Connections — Specify an * to reverse all transactions in the script, or list the
connections to reverse (for example, 1,2,5).
4-12
Hiperstation for WebSphere MQ User Guide
– Only on Queue Name — Specify a specific queue to reverse transactions.
– Default for reversed transactions, specify queues as respective defaults for PUTS
and GETS.
5. Press Enter to continue and return to the Script Options screen for the selected
MQGroup.
6. Type a slash (/) next to the WebSphere MQ Options field and press Enter. The Script
WebSphere MQ Options screen appears (Figure 4-18).
Figure 4-18. Script WebSphere MQ Options Screen
--------------------- Script SCR00000 WebSphere MQ Options -------------------Command ===>
Enter QMGR/Queue Names in the fields you would like to override:
If you would like to connect to a Queue Manager that is not in your script,
enter new default Queue Manager Name
==>
Send all MQPUTs executed during playback to following queue:
Send all MQGETs executed during playback to following queue:
For all MQPUTs, set the REPLY TO QUEUE field to :
For all MQPUTs, set the REPLY TO QMGR field to ==>
Press ENTER to continue, END
to exit
7. Specify where you want MQPUTs and MQGETs that are executed during playback to
be sent.
8. Set the REPLY TO QUEUE and REPLY TO QMGR fields.
9. Press Enter to continue and return to the Script Options screen for the selected
MQGroup.
10. Enter END to return to the Websphere MQ Playback - Setup screen.
11. Type OK on the command line and press Enter. The Websphere MQ Playback Submit screen appears.
12. Continue with the next section, “Submitting Your Playback for Execution” to submit
your playback.
Submitting Your Playback for Execution
After creating your playback script, the WebSphere MQ Playback - Submit screen appears
(Figure 4-19).
Interactive Playback
4-13
Figure 4-19. WebSphere MQ Playback - Submit Screen
------------------ WebSphere MQ Playback- Submit
Command ===>
-----------------------------
Select a processing option, or type SAVE on the command line to save
playback JCL to a dataset.
Select an option:
1. Submit batch job
2. Edit batch job
3. Save playback
X. Exit
Job statement information for batch job:
===> //XXXXXXXX JOB ('OVPBAS8.0.0DEV',5M-0000),'HIPERSTN',
===> //
CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID
===> //*
===> //*
On this screen, you can submit, edit, or save a batch job, save your playback, and exit
playback submission.
1. If you want to save your playback JCL to a dataset, type SAVE on the command line.
The WebSphere MQ Playback - Save JCL File screen appears.
Figure 4-20. WebSphere MQ Playback - Save JCL File Screen
Hiperstation --------- WebSphere MQ Playback - Save JCL File
Command ===>
-----------------
Enter the name of the dataset where JCL will be saved, then press ENTER
to continue.
Playback JCL dataset:
Project . . .
Group . . . .
Type . . . .
Member . . .
Other Data Set Name:
Data Set Name . . .
Save JCL Options: (Enter "/" to select)
Replace existing members
This will save all of the parameters you have selected in the previous screens to your
Hiperstation for WebSphere MQ profile.
2. Enter a JCL dataset name. If your name does not conform to ISPF naming standards,
enter the name in the Other Data Set Name field. The JCL file must be a partitioned
dataset (PDS) or sequential file with variable blocked (VB) or fixed blocked (FB)
record format. The record length must be at least 72.
3. Press Enter to save your JCL file and return to the WebSphere MQ Playback - Submit
screen. If your dataset does not already exist, an Allocate JCL File screen will appear.
Press Enter to allocate the dataset.
4. Select an option:
– Option X exits the playback submit screen without submitting the playback.
– Option 1 submits a batch job that creates your scripts.
– Option 2 puts you in an ISPF edit session for the JCL that can be submitted to
create your scripts. To create scripts, you must enter the “SUBMIT” primary
command from within the edit session. After finishing your edits, enter the END
command to return to the playback submit screen.
4-14
Hiperstation for WebSphere MQ User Guide
Note:
If you select option 1 or 2, you need to enter job card information into the
Job statement information for batch job.
– Option 3 allows you to save your Playback. The WebSphere MQ Playback - Save
screen appears (Figure 4-21).
Figure 4-21. WebSphere MQ Playback - Save Screen
------------------------ WebSphere MQ Playback - Save ----------------------Command ===>
Playback Name . PLAYBACK
Description . . PLAYBACK TEST
Save Playback Dataset:
Dataset Name. . 'USER2312.MQ.PLAYBACK'
Press ENTER to save,
END to exit panel.
Enter a name and optional description for the Playback and a playback dataset name.
Then press Enter to save your Playback and END to return to the WebSphere MQ
Playback - Submit screen.
5. Press Enter to execute the option you selected on the WebSphere MQ Playback Submit screen. A message appears stating that your job was submitted.
Selecting a Previously Saved Playback to Review
1. On the WebSphere MQ Playback - Selection screen, type S (select) next to the
playback in the list you want to use and press Enter. The WebSphere MQ Playback Datasets screen appears.
This will load a previously created playback. You can make changes and resave it
using the same or another name.
2. Continue pressing Enter to view the next screen.
3. When finished, you can run your playback or press END to return to the Hiperstation
for WebSphere MQ main menu.
Deleting a Playback
1. On the WebSphere MQ Playback - Selection screen, type D (delete) next to the
playback you want to delete from the list and press Enter. The Delete Confirmation
screen appears
2. Accept the default Y and press enter to delete your playback. Change the default to N
to keep the playback.
Interactive Playback
4-15
Generating Playback Reports
1. From the Hiperstation for WebSphere MQ - Main Menu, select option 4 MQ
Playback Reporting (Figure 4-22).
Figure 4-22. Hiperstation for WebSphere MQ Main Menu
----------------Option ===>
Hiperstation for WebSphere MQ - Main Menu
-----------------
Product Release: 08.00.01
1
2
3
4
5
6
Monitor MQ Requests
Create MQ Scripts
Playback MQ Scripts
MQ Playback Reporting
MQ Archive Requests
MQ Archive Web Reports
Add/Review your MQ recording requests
Create MQ scripts from a repository
Execute and save playbacks of MQ scripts
Report on database created from playback
Add, Review or Terminate MQ archive requests
Manage MQ archive web reports
The WebSphere MQ Reporting - Selection screen appears (Figure 4-23).
Figure 4-23. WebSphere MQ Reporting - Selection Screen
-------------------- WebSphere MQ Reporting - Selection
Command ===>
----- Row 1 to 2 of 2
Enter a database name , or select a database from the playback list below.
Dataset Name. . . . 'USER2312.ASTERSK.SCRDS'
Line commands...:
S)elect
S
-
Name
Database Name
-------- -----------------------------------------------------SCRIPT
'USER2312.REPORT.DATABASE'
XXXXXXX
'USER2312.ASTERSK.SCRDS'
******************************* Bottom of data ********************************
2. On this screen, select the desired report from the list, or type a dataset name within
single quotes in the Dataset Name field. The WebSphere MQ Reporting screen
appears (Figure 4-24).
Figure 4-24. WebSphere MQ Reporting Screen
---------------------------- WebSphere MQ Reporting --------------------------Command ===>
Select the type of report you wish to generate using
/ .
Basic Reports:
Fixed format reports include HTML Exception,
Script Timing and Response Time Summary
Custom Reports:
Select member below that contains reporting process
Project . . .
Group . . . .
Type . . . .
Member . . .
Other Partitioned Dataset:
Dataset Name. . . .
Type END command to return to the previous panel, ENTER to
continue
3. Select whether you want to generate basic or custom reports and press Enter.
4-16
Hiperstation for WebSphere MQ User Guide
– Basic reports include the response time summary, exception, and script timing
reports.
– Custom Reports are reports that your site has created that contain REPORT
statements to be used in the report job.
4. Continue with the next section, “WebSphere MQ - Basic Reports”, or “WebSphere
MQ - Custom Reports” on page 4-17.
WebSphere MQ - Basic Reports
1. You will have accessed this screen by typing a slash (/) next to the Basic Reports field
on the WebSphere MQ Reporting screen (Figure 4-24) and pressing Enter. The
WebSphere MQ - Basic Reports screen appears (Figure 4-25).
Figure 4-25. WebSphere MQ - Basic Reports Screen
------------------------- WebSphere MQ - Basic Reports -----------------------Command ===>
HTML Exception Report (hfs path):
Optional Parameters:
Number of mismatches to display before stopping ==>
Masking DSN
Compare to baseline database ==>
Baseline DSN
Script Timing Summary (hfs path, DSN, or SYSOUT class):
Response Time Summary (hfs path, DSN, or SYSOUT class):
Enter END command to return to the previous panel
On this screen, you can specify the locations of the basic reports that you want to
generate. If you specify a location for a type of report, that type of report will be
generated. You can generate multiple report types in the same reporting job. The
types of reports available include:
– HTML Exception Report: A standard exception report that compares actual
response messages to expected response messages from a single data collection.
You must specify an hfs path. (Example: u/compware/user/excp.htm.)
• If desired, specify the number of mismatches to display before ending report
generation.
• You can use data masking to prevent comparison of specific data. Store your
masking statements in a sequential dataset or PDS member.
• To perform a baseline comparison, type a slash (/) in the Compare to
baseline database field and enter the name of the baseline dataset you wish
to compare.
– Script Timing Summary: A standard report that reports the time it took for each
script to play back. It also provides additional timing statistics for the play back
job. (Example: u/compware/user/scrp.htm.)
– Response Time Summary: A standard report that reports the amount of time it
took each group of related messages to occur. For example, this includes the time
that elapsed from the first byte of the request to the last byte of the response.
(Example: u/compware/user/resp.htm.)
Interactive Playback
4-17
WebSphere MQ - Custom Reports
Custom reports allow you to use a member from a dataset that contains REPORT
statements that will be used in the report job.
1. On the WebSphere MQ Reporting screen (Figure 4-24 on page 4-15), type a slash (/)
next to the Custom Reports field, enter a dataset name and member and press Enter.
The Custom Report Parameters screen appears (Figure 4-26).
Figure 4-26. Custom Report Parameters Screen
--------------------------- Custom Report Parameters -------------------------Command ===>
Report Layout:
Table(columns)
Form(rows)
==> /
==>
Type:
Text
Html
CSV
==> /
==>
==>
Number of lines to print in a field before truncating data ==>
Maximum Number of Lines to print on a page(30-9999)
==>
Break(only applicable to form reports)
EJECT
begin each record on a new page
NEXT
continue reporting on next line
Type END command to return to the previous panel, ENTER to
continue
2. Select the desired Report Layout. Table is the default.
– Select Table to produce a row/column-oriented report. Figure 4-27 shows a Table
report layout.
Figure 4-27. Table Report Layout
Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:23
Page:
1
--------------------------------------------------------------------------------------MQGroupNumber
MQGroupReturnCode
MQGroupStartTime
MQGroupDuration
--------------------------------------------------------------------------------------1
0
2007/06/26_10:55:54.685787
50.415205
2
0
2007/06/26_10:55:54.69347
50.407522
3
0
2007/06/26_10:55:57.877735
47.223257
******************************************* BOTTOM OF DATA ****************************
– Select Form to produce a line-based report. Figure 4-28 shows a Form report
layout.
4-18
Hiperstation for WebSphere MQ User Guide
Figure 4-28. Form Report Layout
Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
1
--------------------------------------------------------------------------------------MQGroupNumber
1
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:54.685787
--------------------------------------------------------------------------------------MQGroupDuration
50.415205
--------------------------------------------------------------------------------------Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
2
--------------------------------------------------------------------------------------MQGroupNumber
2
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:54.69347
--------------------------------------------------------------------------------------MQGroupDuration
50.407522
--------------------------------------------------------------------------------------Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
3
--------------------------------------------------------------------------------------MQGroupNumber
3
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:57.877735
--------------------------------------------------------------------------------------MQGroupDuration
47.223257
---------------------------------------------------------------------------------------
3. Select the type of report you want to produce. Choices include: Text (default), HTML,
and CSV.
4. Enter a number of lines to print in a field before truncating data. This applies only to
Text and CSV reports and allows you to truncate the printing of large fields that may
contain up to two gigabytes of data.
5. Enter the maximum number of lines to print on a page. Enter between 30 and 9999.
This applies only to Text reports. The default is 60.
6. If you are using form reports in a Text or HTML format, select EJECT to begin each
record on a new page or NEXT to continue the report on the next line. EJECT is the
default.
7. Press Enter to continue. The Custom Report Locations screen appears (Figure 4-29).
Figure 4-29. Custom Report Locations Screen
--------------------------- Custom Report Locations --------------------------Command ===>
Enter a location for the table(s) you are reporting on, if different than
SYSOUT=*. The tables used by each report correspond to the INTO parameter.
Playback
MQGroup
MQScript
MQOpenQueue
MQMessage
MQMessageSet
Type END command to return to the previous panel, ENTER to
continue
Interactive Playback
4-19
8. If the tables you are reporting on are not located in SYSOUT=*, then specify the table
locations.
Note: Use unique report locations. If you specify the same dataset location for more
than one report, the last report will be the only one shown because the
previous ones will be overwritten.
9. Press Enter to continue. The WebSphere MQ Playback - Submit screen appears (Figure
4-19 on page 4-13).
Note:
You submit your playback report for execution in the same way you
submitted your playback for execution. See “Submitting Your Playback for
Execution” on page 4-12 for information on submitting and saving your
playback report.
4-20
Hiperstation for WebSphere MQ User Guide
5-1
Chapter 5.
Unattended Playback
Chap 5
Unattended Playback Overview
Use unattended playback to:
• Play back scripts — execute the MQ API commands found in the script.
• Analyze scripts — process the script without executing the MQ API commands for the
purpose of reporting information on the script’s contents.
Execute unattended playback via a batch job controlled by the following input
statements:
• A CONTROL statement that provides general processing information for the job.
• One or more MQGROUP statements to define processing information for groups of
scripts. All groups are processed simultaneously.
• One or more SCRIPT statements to define processing information for each script.
Scripts within a group are processed sequentially.
• One or more COLLECT statements to define the information to collect for reporting.
Generate reports during unattended playback by including REPORT statements in the job
or save the collected information and generate reports later. See Chapter 6, “Reporting”
for more information.
Although you can create and manage unattended playback and reporting assets, input
statements and JCL, any way you like, Hiperstation for WebSphere MQ is capable of
doing most of the work for you. While creating scripts, have Hiperstation for
WebSphere MQ generate a log file containing MQGROUP and SCRIPT statements based
on the script create options you select. The log also includes JCL SET statements that call
specified members containing playback and reporting assets (CONTROL, COLLECT, and
REPORT statements). Use the log to execute an unattended playback job, reporting job,
or both. This functionality requires a playback control library and a report control
library. Establish these libraries to manage your playback and reporting assets.
Unattended playback automatically generates a SYSOUT playback log preceded by a error
summary for troubleshooting playback issues. Generate an interactive HTML Playback
Error Summary report by adding the appropriate DD statement to the log file used to
execute the unattended playback job.
Following is a basic overview for setting up and running an unattended playback job.
1. Verify that the assets in the system-level playback and reporting control libraries suit
your needs. If necessary, build additional assets and store them in either the
system-level or your personal libraries. See “Creating and Managing Playback Control
Assets” on page 5-2 and “Creating and Managing Reporting Control Assets” on page
6-2.
2. When creating scripts, select the Log Entries option on the Create Script - Create
Options (2 of 2) panel (Figure 3-12 on page 3-17), to generate a log file.
3. Review and edit the log file as necessary. See “Preparing the Log File for Unattended
Playback” on page 5-16.
5-2
Hiperstation for WebSphere MQ User Guide
– Verify and if necessary edit the values of the SET statements at the beginning of
the log file.
– Supply a DD statement for each REPORT statement in the REPORT member that
is going to be written to a dataset or HTML file.
– Add the HTMLLOG DD statement to generate an interactive HTML Playback
Error Summary report (optional).
– Review the MQGROUP and SCRIPT statements to ensure they meet your needs.
4. Submit the Job. See “Submitting the Job” on page 5-21.
Creating and Managing Playback Control Assets
You can add unattended playback input statements directly to the log file used to execute
an unattended playback job. However, saving the statements in library members
preserves your work for reuse. Statements added to the log file are concatenated to the
statements in the members called by the log file. If a parameter is defined on multiple
statements of the same type, the value from the last statement processed takes
precedence. For example, if the statement in the called CONTROL member specifies
OFFLINE and THOPT(2) (think option 2) and you add a CONTROL statement specifying
THOPT(3), Hiperstation for WebSphere MQ plays back the script offline using think
option 3.
Hiperstation for WebSphere MQ ships with JCL that your installer uses to establish
system-level playback and report control libraries along with some members containing
basic CONTROL, COLLECT and REPORT statements. When generating the log file,
Hiperstation for WebSphere MQ defaults system-level library and member names for the
asset calls. However you can override these defaults with your own library and member
names. Organize your personal libraries in the same fashion as the system-level libraries.
The playback control library should contain:
• One member for each unattended playback CONTROL statement. Hiperstation for
WebSphere MQ provides the following basic CONTROL members for the system-level
playback control library:
– Playback — contains a CONTROL statement with no specified parameters.
– Analyze — contains a CONTROL statement with the OFFLINE keyword.
See “CONTROL Statement” on page 5-3 to learn about CONTROL statement
parameters.
• A member for each set of collection criteria. Hiperstation for WebSphere MQ provides
a member called COLLECT that collects all information available.
The log files generated by Hiperstation for WebSphere MQ are also playback assets.
Consider storing them in your personal playback control library. The system-level
playback control library contains log file samples that correspond to the testing scenarios
discussed in Chapter 8, “Testing Scenarios”.
The report control library should contain:
• One member for each report or set of reports you would like to generate in a given
job. Hiperstation for WebSphere MQ provides a variety of basic REPORT members.
• One member for each report CONTROL statement. Report CONTROL statements
define general report processing information. Hiperstation for WebSphere MQ
provides a member called MQRCTT that generates a text based report in table format,
which supports the Default Script Analysis report (Figure 5-4 on page 5-21).
See Chapter 6, “Reporting” to learn more about reporting assets.
Unattended Playback
5-3
Create your own assets and store them in either the system-level or your personal
playback and reporting control libraries. Give each member a name indicative of its
purpose.
The rest of this section provides syntax diagrams and parameter descriptions for each of
the CONTROL, MQGROUP, SCRIPT, AND COLLECT unattended playback input
statements:
Use these sections to construct statements for your own playback assets or to edit
statements generated by Hiperstation for WebSphere MQ. See to Chapter 8, “Testing
Scenarios” for several detailed examples that may help you conceptualize the purpose of
the available parameters.
Attribute Precedence
MQ scripts contain any or all of the following connection attributes:
•
•
•
•
QUEUE_MANAGER
PUT_TO
GET_FROM
REPLY_TO_QUEUE
If you do not specify values for any of these attributes on the unattended playback input
statements, Unattended Playback uses the attributes from the script. However, your
testing may call for playing back the script using different queues or queue managers.
Specify any of these attributes on your CONTROL, MQGROUP, and/or SCRIPT statements
to override the given attributes in the script. Consider the hierarchy of the statements
when defining these attributes.
CONTROL
MQGROUP
SCRIPT
SCRIPT
MQGROUP
SCRIPT
For example, set the QUEUE_MANAGER parameter on the CONTROL statement to have
all of the MQGROUPs and SCRIPTs in the playback job use the same QUEUE_MANAGER.
If the attribute is defined on more than one statement, the setting from the lowest level
statement takes precedence. For example, you define the QUEUE_MANAGER parameter
on the CONTROL statement to accommodate most of the MQGROUPs and SCRIPTs in
the job. However, you need one SCRIPT in the job to use another QUEUE_MANAGER.
Specify the QUEUE_MANAGER on the given SCRIPT statement to override the job-level
attribute.
CONTROL Statement
CONTROL statements provide general processing information for the unattended
playback job. Place each CONTROL statement in a separate member in either the systemlevel or your personal playback control library. The system-level playback control library
5-4
Hiperstation for WebSphere MQ User Guide
contains a Playback member and an Analyze member. They are virtually the same
CONTROL statement except Analyze uses the OFFLINE parameter.
CACHE|CACHEOFF
CACHE instructs Hiperstation for WebSphere MQ to store scripts in memory.
Specifying CACHE may provide efficiencies when the COUNT and REPEAT keywords
are used.
GET_FROM(queue_name|model:stem)
The default input queue for the entire WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
This parameter can be overridden using the GET_FROM parameter on the MQGROUP
and/or SCRIPT statement or, on a Connection ID basis, using the GET_FROM_QUEUE
Unattended Playback
5-5
parameter inside the PLAY_TO or PLAY_AS parameter on the MQGROUP and/or
SCRIPT statements.
OFFLINE
Tells Hiperstation for WebSphere MQ to analyze the script for the sole purpose of
building a report database - no actual information is played to an application. You do
not need to be attached to an application when creating a report using the OFFLINE
parameter.
ON_MSG_ID
Controls the way MQ messages are related to one another for reporting purposes.
Normally, Hiperstation for WebSphere MQ uses the correlation ID, and in some cases
the message ID, to group request messages with correlating reply messages. When
ON_MSG_ID is specified, messages are related solely on the message ID. Use this
option to track particular messages as they move through the application.
OWNERNAME(owner_name)
Entered by the user as a note concerning who created this playback or other reminder
information. Must be 0 to 255 characters.
PLAYBACKNAME(playback_name)
Entered by the user as a note concerning what the playback is about or other
reminder information. Must be 0 to 255 characters.
PUT_TO(queue_name|model:stem)
The default output queue for the entire WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
This parameter can be overridden using the PUT_TO parameter on the MQGROUP
and/or SCRIPT statement or, on a Connection ID basis, using the PUT_TO_QUEUE
parameter inside the PLAY_TO or PLAY_AS on the MQGROUP and/or SCRIPT
statements.
QUEUE_MANAGER(queue_manager_name)
The queue manager to use for WebSphere MQ playback. Refer to “Reversing Playback
(PLAY_TO)” on page 8-17 and “Overriding Queues (FROM_QUEUE/TO_QUEUE)” on
page 8-19 for detailed testing examples that include this parameter.
REPLY_TO_QUEUE(queue_name|model:stem)
The default replyTo queue for the WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
The default reply_to_ queue is used by the playback when a reply_to_queue is found
in the WebSphere MQ message header, and the user has requested to associate
request/reply messages (see Figure 3-11 on page 3-15, under “Where should details be
stored?”).
REXXOFF|REXXON(FULL|PARTIAL|NOSUB)
Enables or disables REXX support. REXX clauses can be used outside of script tags to
perform tasks such as replacing recorded application data during playback.
Additionally, REXX variables can be used within the script tags to replace MQMD
field values. Both of these uses demand greater system resources during playback.
Improve playback performance by specifying the appropriate REXXON/REXXOFF
value for the level of support you require:
– REXXOFF disables REXX processing altogether, which improves playback
performance with regard to speed and CPU and memory usage. This is the
default.
– REXXON(FULL) enables REXX processing of scripts. This option supports all uses
of REXX within the script. If REXXON is specified without a value,
REXXON(FULL) is used.
5-6
Hiperstation for WebSphere MQ User Guide
– REXXON(PARTIAL) enables limited use of REXX within the script. This option
allows the use of REXX variables for the following MQMD field values: MSGID,
CORRELID, and USERIDENTIFIER. It also support the use of REXX clauses
between script tags.
– REXXON(NOSUB) prevents REXX processing for script tag substitutions. That is,
with this option, you cannot use REXX variables within the script tags. However,
REXX clauses inserted between script tags are still supported.
Note:
Specifying the first letter of the REXXON parameter value is sufficient. For
example, REXXON(P) is the same as REXXON(PARTIAL).
RLOG(*|destination)
To write your REXX say statements to a dataset rather than standard output, specify
RLOG. RLOG specifications can be wild cards. This generates unique names for each
replay ID.
For example, RLOG(myrolog.rpl*) generates datasets containing REXX log
information that are named MYRLOG.RPL0001.
You can also use a number of question marks, ‘?’, to hold the replay ID in the dataset
name. For example, RLOG(myrolog.rpl??) generates datasets containing REXX log
information that are named MYRLOG.RPL01.
If the RLOG specification is a single character, Hiperstation for WebSphere MQ
assumes it to be a SYSOUT class. RLOG data can be stored in a PDSE or in a dataset
member. To override a default RLOG dataset allocation, add an //RLOGDD statement
to your JCL as shown below.
//RLOGDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
SET_REXX_STREAM_VARIABLES(NO|YES)
Enables the use of the Hiperstation for WebSphere MQ predefined REXX variables
during playback. The variables return information about the playback. Incorporate
them into REXX logic that you add to your scripts to control the way the scripts play
back. For example, use them to dynamically replace data in the script during
playback. See “Hiperstation for WebSphere MQ REXX Variables” on page 3-44. Since
this is not necessary for replay, the default value for this parameter is NO.
STDWAIT(15|hh:mm:ss:nnn)
The longest time that Hiperstation for WebSphere MQ waits for I/O completion. If no
I/O finishes in the STDWAIT interval, all outstanding I/O is cancelled for that specific
script. Hiperstation for WebSphere MQ retries the connections up to the number of
attempts set in the CONNECTION_ATTEMPTS parameter (TCP/IP only). Hiperstation
for WebSphere MQ retries any other I/O twice. Once all attempts are made to
complete the I/O, if still unsuccessful, Hiperstation for WebSphere MQ takes the
action set on the ERROR_ACTION parameter (TCP/IP only).
Measured in hundredths of a second, as nnn. This value is taken from the slow start
value used in Application Profiling. Default value is 001 (1/100th of a second).
THINK(0|hh:mm:ss:nnn)
Enter the think time in HH:MM:SS.nnnnnnn format. For example, THINK(1) is one
second of think time. THINK(10:10.10) is 10 minutes + 10 seconds+ 1/10th of a
second.
THOPT(1|2|3)
Sets a think-time option.
1: Play at full speed. The transactions are played back as fast as the system can
run them. This is the default.
Unattended Playback
5-7
2: Think time recorded in the script. Think time is simulated using the difference
between each <TIME> tag in the script.
3: User-set think time. Indicates that the think time is the amount set by the
THINK parameter.
Refer to “Controlling Playback Timing (USESTIME and THOPT)” on page 8-14 for a
detailed example.
THPCT(100|percent)
Sets a think time percentage. This parameter is valid only in conjunction with
THOPT(2) or THOPT(3). The default is 100 percent.
TRACE(sysout_class|dataset)
TRACE allows you to trace internal Hiperstation for WebSphere MQ information. If
the TRACE specification is a single character, Hiperstation for WebSphere MQ
assumes it to be a SYSOUT class.
A dataset specification can contain wildcard characters. A single asterisk (*) tells
Hiperstation for WebSphere MQ to insert the current ReplayID with enough leading
zeros to create a 4-digit number. ReplayID is the unique ID assigned by Hiperstation
for WebSphere MQ to each message.
One or more question marks (?) tells Hiperstation for WebSphere MQ to insert the
current ReplayID with enough leading zeros so that the number is the same length as
the number of question marks.
TRACE(abc.def)
• no wild cards are allowed in this dataset
• produces ABC.DEF
TRACE(ABC.DEF(XYZ))
• no wild cards allowed in the dataset or member
• produces ABC.DEF(XYZ)
TRACE(abc??.def*) for ReplayID=1
• both ?? and * are wild cards
• produces ABC01.DEF0001.
USESTIME
When specified, Hiperstation for WebSphere MQ sends data to its partner in the
order in which it was captured relative to the STIME parameter on the MQGROUP
statement. For example, the following STIME parameters result in the second group
playing back five minutes after the first.
MQGROUP STIME (‘2006/07/21=10:10:10.000000’)
MQGROUP STIME (‘2006/07/21=10:15:10.000000’)
See “Synchronizing Group Playback (USESTIME)” on page 8-11 and “Controlling
Playback Timing (USESTIME and THOPT)” on page 8-14 for detailed examples.
MQGROUP Statement
MQGROUP defines playback parameters for a group of scripts. All groups are processed
simultaneously. The Create MQ Scripts option generates MQGROUP statements in the log
file based on the script create options you select. Modify or add statements to your log
files to control playback. See “Playing Back Multiple Scripts Serially” on page 8-4 and
5-8
Hiperstation for WebSphere MQ User Guide
“Playing Back Scripts Simultaneously (Multiple Groups)” on page 8-6 for comprehensive
MQGROUP examples.
Unattended Playback
5-9
COUNT(1|number_of_copies)
Specifies the number of times to start playback. Use REPEAT to play back
sequentially. Use COUNT to play back simultaneously. See “Repeating Simultaneous
Playback (Count and Repeat)” on page 8-9 for a detailed example.
GET_FROM(queue_name|model:stem)
The default input queue for the WebSphere MQ playback for this MQGROUP
statement. This can be either a dynamic queue (queue_name) or model:stem, where
model is the name assigned to a set of attributes that define the queue, and stem is
the beginning of the queue name. If a GET_FROM_QUEUE is found on the following
SCRIPT statement with no applicable PLAY_TO or PLAY_AS, then the queue listed on
this GET_FROM is used.
GET_FROM_QUEUE(queue_name|model:stem)
When encountering an MQ_GET, Hiperstation for WebSphere MQ performs the
MQGET on the queue specified by the GET_FROM_QUEUE if specified. This
parameter is only used in conjunction with PLAY_AS or PLAY_TO.
PLAY_AS(CONNECTION_ID(id)ON(queue_name))
As recorded, a script contains a series of WebSphere MQ events. These events are
played through a CONNECTION_ID. This CONNECTION_ID represents a connection
between the queue manager and an application and acts as an application from a
WebSphere MQ playback perspective. Events in the script act under their
CONNECTION_ID. To use WebSphere MQ applications, the user must tell
Hiperstation for WebSphere MQ whether to play the script as an application, or to
play the script to an application. Using the PLAY_AS statement instructs Hiperstation
for WebSphere MQ to play the script in the direction recorded in the script, as if
Hiperstation for WebSphere MQ was the application generating the data in the script.
When encountering an MQ_GET, Hiperstation for WebSphere MQ performs an
MQGET. When encountering an MQ_PUT, Hiperstation for WebSphere MQ PUTs that
scripted message to the PUT_TO_QUEUE if specified. Additionally, when
encountering an MQ_GET, Hiperstation for WebSphere MQ performs the MQGET to
retrieve the message on the queue specified by the GET_FROM_QUEUE if specified.
PLAY_AS is the default.
PLAY_TO(CONNECTION_ID(id)ON(queue_name))
As recorded, a script contains a series of WebSphere MQ events. These events are
played through a CONNECTION_ID. This CONNECTION_ID represents a connection
between the queue manager and an application and acts as an application from a
WebSphere MQ playback perspective. Events in the script act under their
CONNECTION_ID. To use WebSphere MQ applications, the user must tell
Hiperstation for WebSphere MQ whether to play the script as an application, or to
play the script to an application. Using the PLAY_TO statement reverses the direction
of script play causing Hiperstation for WebSphere MQ to act as though it is receiving
the data generated from the application. PLAY_TO is useful when a script is created
based on queue activity requested by a server, for example a CICS region, and you
want to test the server application using that script. To test the server application,
Hiperstation for WebSphere MQ prepares the queues used by the server application
so that the server application can access the messages on the queues. Specify an
asterisk (*) on the CONNECTION_ID parameter value to reverse the playback of all
connection IDs in the script. See “Playing Back with PLAY_TO(CONNECTION_ID(*))”
on page 8-24 for further examples.
For the CONNECTION_ID specified when encountering an MQ_GET in the script,
Hiperstation for WebSphere MQ PUTs that scripted message, making it available to
the application. If specified, Hiperstation for WebSphere MQ PUTs that message to
the PUT_TO_QUEUE. Additionally, when encountering an MQ_PUT in the script,
Hiperstation for WebSphere MQ performs an MQ_GET to retrieve the record written
by the application, from the GET_FROM_QUEUE if specified. If there is a PLAY_TO
with a GET_FROM_QUEUE or a PUT_TO_QUEUE for a connection, then the
5-10
Hiperstation for WebSphere MQ User Guide
connection ID listed on the PLAY_TO is used. If these parameters appear on both the
SCRIPT and MQGROUP statements, then the SCRIPT statement parameters are used.
See “Reversing Playback (PLAY_TO)” on page 8-17 and “Overriding Queues
(FROM_QUEUE/TO_QUEUE)” on page 8-19 for detailed testing examples that include
this parameter.
The ON parameter limits the MQ transaction, PUT or GET, being reversed to the one
that uses the queue specified in the ON parameter only.
PUT_TO(queue_name|model:stem)
The default output queue for the WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
If a PUT_TO_QUEUE is found on the SCRIPT statement with no applicable PLAY_TO
or PLAY_AS, then the queue listed on this PUT_TO or GET_FROM is used.
PUT_TO_QUEUE(queue_name|model:stem)
When encountering an MQ_PUT, Hiperstation for WebSphere MQ PUTs that scripted
message to the PUT_TO_QUEUE if specified. This parameter is only used in
conjunction with PLAY_AS or PLAY_TO.
QUEUE_MANAGER(queue_manager_name)
The queue manager to use for WebSphere MQ playback. See the “Reversing Playback
(PLAY_TO)” on page 8-17 scenario, which includes a queue manager override
example.
REPEAT(1|number_of_iterations)
Tells Hiperstation for WebSphere MQ to repeat playback the specified number of
times.
REPLY_TO_QUEUE(queue_name|model:stem)
The default replyTo queue for the WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
The default reply_to_ queue is used by the playback when a reply_to_ queue is found
in the WebSphere MQ message header, and the user has requested to associate
request/reply messages. See Figure 3-11 on page 3-15, under “Where should details be
stored?”.
REPLY_TO_QMGR(qmgr_name)
The default reply_to_qmgr is used by the playback to allow the user to specify where
reply messages are placed.
SKIP(JOB(jobname,jobname,...))
SKIP(CONNECTION_ID(connection_ID,connection_ID,..))
A list of job names or connection IDs used to determine if individual script records
should be used in the playback. When a script record associated with one of the jobs
or connection IDs in the list is found in the script, it is skipped. Jobnames can be up
to eight characters. Use both JOB and CONNECTION_ID, but they must be on two
separate SKIP statements.
STARTDLY(0|hh:mm:ss:nnn)
Tells Hiperstation for WebSphere MQ how long to wait between the start of
MQGROUP and the commencement of playback. Use STARTDLY to stagger the start
of playbacks using multiple MQGROUP statements. For example, to wait five
seconds, enter STARTDLY(5).
STIME(‘timestamp’)
The recorded start time of the activity in the script. This timestamp is created by the
script create program. The format of the timestamp is:
Unattended Playback
5-11
YYYY/MM/DD_HH:MM:SS.TTTTTT
THINK(0|hh:mm:ss:nnn)
Enter the think time in HH:MM:SS.nnnnnnn format. For example, THINK(1) is one
second of think time. THINK(10:10.10) is 10 minutes + 10 seconds+ 1/10th of a
second.
THOPT(1|2|3)
Sets a think-time option.
1: Play at full speed. The transactions are played back as fast as the system can
run them. This is the default.
2: Think time recorded in the script. Think time is simulated using the difference
between each <TIME> tag in the script.
3: User-set think time. Indicates that the think time is the amount set by the
THINK parameter.
Refer to “Controlling Playback Timing (USESTIME and THOPT)” on page 8-14 for a
detailed example.
THPCT(100|percent)
Sets a think time percentage. This parameter is valid only in conjunction with
THOPT(2) or THOPT(3). The default is 100 percent.
TRACE(sysout_class|dataset)
TRACE enables you to trace internal Hiperstation for WebSphere MQ information. If
the TRACE specification is a single character, Hiperstation for WebSphere MQ
assumes it to be a SYSOUT class.
A dataset specification can contain wildcard characters. A single asterisk (*) tells
Hiperstation for WebSphere MQ to insert the current ReplayID with enough leading
zeros to create a 4-digit number. ReplayID is the unique ID assigned by Hiperstation
for WebSphere MQ to each message.
One or more question marks (?) tells Hiperstation for WebSphere MQ to insert the
current ReplayID with enough leading zeros so that the number is the same length as
the number of question marks.
TRACE(abc.def)
• no wild cards allowed in this dataset
• produces ABC.DEF
TRACE(ABC.DEF(XYZ))
• no wild cards allowed in the dataset or member
• produces ABC.DEF(XYZ)
TRACE(abc??.def*) for ReplayID=1
• both ?? and * are wild cards
• produces ABC01.DEF0001
SCRIPT Statement
SCRIPT statements define playback parameters for the script. An unattended playback
can contain one or more script statements. The script statements within a group are
processed sequentially. The Create MQ Scripts option generates SCRIPT statements in the
5-12
Hiperstation for WebSphere MQ User Guide
log file based on the script create options you select. Modify SCRIPT statements in the log
file.
GET_FROM(queue_name|model:stem)
The default input queue for the WebSphere MQ playback for this SCRIPT statement.
This can be either a dynamic queue (queue_name) or model:stem, where model is the
name assigned to a set of attributes that define the queue, and stem is the beginning
of the queue name. If a GET_FROM_QUEUE is found on this SCRIPT statement with
no applicable PLAY_TO or PLAY_AS, then the queue listed on this GET_FROM is used.
GET_FROM_QUEUE(queue_name|model:stem)
When encountering an MQ_GET, Hiperstation for WebSphere MQ performs the
MQGET on the queue specified by the GET_FROM_QUEUE if specified. This
parameter is only used in conjunction with PLAY_AS or PLAY_TO.
PLAY_AS(CONNECTION_ID(x)ON(queue_name)
As recorded, a script contains a series of WebSphere MQ events. These events are
played on a CONNECTION_ID. This CONNECTION_ID represents a connection
between the queue manager and an application and acts as an application from a
WebSphere MQ playback perspective. Events in the script act under their
CONNECTION_ID. To use WebSphere MQ applications, the user must tell
Hiperstation for WebSphere MQ whether to play the script as an application, or to
play the script to an application. Using the PLAY_AS statement requests Hiperstation
for WebSphere MQ to play the script in the direction recorded in the script, as if
Hiperstation for WebSphere MQ was the application generating the data in the script.
When encountering an MQ_GET, Hiperstation for WebSphere MQ performs an
MQGET. When encountering an MQ_PUT, Hiperstation for WebSphere MQ PUTs that
scripted message to the PUT_TO_QUEUE if specified. Additionally, when
encountering an MQ_GET, Hiperstation for WebSphere MQ performs the MQGET to
retrieve the second on the queue specified by the GET_FROM_QUEUE if specified.
PLAY_AS is the default.
Unattended Playback
5-13
PLAY_TO(CONNECTION_ID(x)ON(queue_name)
As recorded, a script contains a series of WebSphere MQ events. These events are
played through a CONNECTION_ID. This CONNECTION_ID represents a connection
between the queue manager and an application and acts as an application from a
WebSphere MQ playback perspective. Events in the script act under their
CONNECTION_ID. To use WebSphere MQ applications, you must tell Hiperstation
for WebSphere MQ whether to play the script as an application, or to play the script
to an application. Using the PLAY_TO statement reverses the direction of script play
causing Hiperstation for WebSphere MQ to act as though it is receiving the data
generated from the application. PLAY_TO is useful when a script is created based on
queue activity requested by a server, for example a CICS region, and you want to test
the server application using that script. To test the server application, Hiperstation
for WebSphere MQ prepares the queues used by the server application so that the
server application can access the messages on the queues.
For the CONNECTION_ID specified, when encountering an MQ_GET in the script,
Hiperstation for WebSphere MQ PUTs that scripted message, making it available to
the application. If specified, Hiperstation for WebSphere MQ PUTs that message to
the PUT_TO_QUEUE. Additionally, when encountering an MQ_PUT in the script,
Hiperstation for WebSphere MQ performs an MQGET to retrieve the record written
by the application, from the GET_FROM_QUEUE if specified. If there is a PLAY_TO
with a GET_FROM_QUEUE or a PUT_TO_QUEUE for a connection, then the
connection ID listed on the PLAY_TO is used. If these parameters appear on both the
SCRIPT and MQGROUP statements, then the SCRIPT statement parameters are used.
The ON parameter limits the MQ transaction, PUT or GET, being reversed to the one
that uses the queue specified in the ON parameter only.
PUT_TO(queue_name|model:stem)
The default output queue for the WebSphere MQ playback for this Script Statement.
This can be either a dynamic queue (queue_name) or model:stem, where model is the
name assigned to a set of attributes that define the queue, and stem is the beginning
of the queue name. If a PUT_TO_QUEUE is found on the SCRIPT statement with no
applicable PLAY_TO or PLAY_AS, then the queue listed on this PUT_TO or
GET_FROM is used.
PUT_TO_QUEUE(queue_name|model:stem)
When encountering an MQ_PUT, Hiperstation for WebSphere MQ PUTs that scripted
message to the PUT_TO_QUEUE if specified. This parameter is only used in
conjunction with PLAY_AS or PLAY_TO.
QUEUE_MANAGER(queue_manager_name)
The default queue manager for WebSphere MQ playback.
REPEAT(1|number_of_iterations)
Tells Hiperstation for WebSphere MQ to repeat playback the specified number of
times.
REPLY_TO_QMGR(qmgr_name)
The default reply_to_qmgr is used by the playback to allow the user to specify where
reply messages are placed.
REPLY_TO_QUEUE(queue_name|model:stem)
The default replyTo queue for the WebSphere MQ playback. This can be either a
dynamic queue (queue_name) or model:stem, where model is the name assigned to a
set of attributes that define the queue, and stem is the beginning of the queue name.
The default reply_to_ queue is used by the playback when a reply_to_ queue is found
in the WebSphere MQ message header, and the user has requested to associate
request/reply messages. See Figure 3-11 on page 3-15, under “Where should details be
stored?”.
5-14
Hiperstation for WebSphere MQ User Guide
SKIP(CONNECTION_ID(xx,yy,zz,...))
A list of connection IDs used to determine if individual script records should be used
in the playback. When a script record associated with one of the connection IDs in
the list is found in the script, it is skipped. Jobnames can be up to eight characters. To
use both JOB and CONNECTION_ID, but they must be on two separate SKIP
statements.
SKIP(JOB(xxxxxxxx,yyyyyyyy,zzzzzzzz,...))
A list of jobnames used to determine if individual script records should be used in the
playback. When a script record associated with one of the jobs in the list is found in
the script, it is skipped. Jobnames can be up to eight characters. To use both JOB and
CONNECTION_ID, but they must be on two separate SKIP statements.
COLLECT Statement
The COLLECT statement defines the information to collect during the unattended
playback. Create a member for each set of collection criteria (one or more collect
statements) in either the system-level or your personal playback control library.
Unattended Playback
5-15
Note: If you are load or stress testing your application and not concerned with expected
versus actual value comparison, omit COLLECT statements to optimize playback
performance.
FIELDS
Follow this keyword with:
– an asterisk to collect all fields from the collection and reporting table you specify
on the FROM keyword. Collecting all field ensures the optimum reporting
flexibility.
– a comma separated list of fields, in long or short format, from the collection and
reporting table you specify on the FROM keyword. This option minimizes storage
overhead and processing time.
5-16
Hiperstation for WebSphere MQ User Guide
See Appendix A, “Data Collection and Reporting Tables” to determine which tables
and fields to collect or to locate short field names.
Note:
Depending on use, not every field is available. For example, message header
fields cannot be sent by an application during a particular transmission, and
therefore would not be available for reporting.
FROM
Follow the FROM keyword with the name of the collection and reporting table that
owns the fields you specified on the FIELDS keyword. For a list of available tables, see
Appendix A, “Data Collection and Reporting Tables”.
WHERE
Use the WHERE clause to provide criteria for collecting only the data you need. For
example, to collect all fields from the MQGROUP table for the second of five groups
in the playback job, construct the COLLECT statement as follows:
COLLECT FIELDS (*) FROM (MQGROUP) WHERE (MQGroupNumber = 2)
Preparing the Log File for Unattended Playback
When you create scripts, select the Log Entries option on the Create Script - Create
Options (2 of 2) panel (Figure 3-12 on page 3-17), to generate the log file used to run an
unattended playback job. The log file contains a series of SET statements that call
playback and reporting control assets. Most of the SET statement values default to the
system-level playback and report control library and member names. Override them with
your personal library information if necessary. Additionally, the values default to
produce a script analysis job. Run a script analysis prior to the actual playback to ensure
the script contains the appropriate activity for the testing you need to perform. Compare
the contents of two different scripts, by running a script analysis on each and saving the
collected data. Then generate a comparison report. See Chapter 6, “Reporting” for more
information on report generation.
To prepare the log for an unattended playback job:
1. Verify and, if necessary, edit the values of the SET statements at the beginning of the
log file. Refer to the SET statement definitions following the sample log illustration
(Figure 5-1 on page 5-17).
2. Between ANALYZE EXEC PROC=MQPLAY1 and LOGCOPY.INDD DD * insert a DD
statement for each REPORT statement in the REPORT member that is going to be
written to a dataset or HTML file. Do not add DD statements for reports written to
SYSOUT. The MQPLAY1 procedure provides a DD statement for SYSOUT.
Note:
Refer to the “flower box” showing a sample DD statement defining an HFS
path and a sample statement defining a dataset.
To generate an interactive HTML Playback Error Summary Report, add
PROCESS.HTMLLOG DD with the appropriate PATHOPTS, PATH, and PATHMODE
definitions.
3. Review the MQGROUP and SCRIPT statements to ensure they meet your needs.
4. When finished preparing the log, submit the job. See “Submitting the Job” on page
5-21.
Unattended Playback
Figure 5-1. Sample Log File
//jobcard
//*
/*JOBPARM SYSAFF=TEST
//UPROCS JCLLIB ORDER=('COMPWARE.SQVPPROC')
//*
//**********************************************************************
//* EXEC PROC TO PROCESS LOG/SORT/REPORT
*
//**********************************************************************
//*
//
SET ACTION=ANALYZE
ANALYZE/PLAYBACK/other
//*
//
SET CNTLDS= COMPWARE.CONTROL
//
SET REPTDS= COMPWARE.REPORT
//*
//
SET SCRIPT= COMPWARE.SCRIPT
//
SET UNSORTED=&&UNSORTED
//
SET SORTED=&&SORTED
//*
//
SET COLLMEM=COLLECT
//
SET REPTCNTL=MQRCTT
//
SET REPTMEM=MQRCOMP
//*
//*
//ANALYZE EXEC PROC=MQPLAY1
//*
//**********************************************************************
//*
*
//*
TO ADD ADDITIONAL REPORT OUTPUT DATASETS, USE THE FOLLOWING
*
//*
HFS OR MVS DATASET MODEL CHANGING THE ddname TO THE NAME
*
//*
SPECIFIED ON THE REPORT INTO() STATEMENT
*
//*
*
//* //REPORT.ddname
DD PATHMODE=(SIRWXU,SIRGRP,SIROTH),
*
//* //
PATHOPTS=(ORDWR,OCREAT),
*
//* //
PATH='/hfs/path/reptname.htm'
*
//*
*
//*
or
*
//*
*
//* //REPORT.ddname
DD DISP=SHR,DSN=sysout.dataset.name
*
//*
*
//**********************************************************************
//*
//LOGCOPY.INDD DD *
************************************************************************
*
*
* HIPERSTATION FOR WEBSPHERE MQ LOG STARTED ON 2006/07/10 AT 12:12:01 *
*
*
* DESC: TEST
*
* GROUP: (1) One script for everything
*
*
*
* FILTER: 1
ACTION: INCLUDE
*
* QUEUE MANAGER EQ TEST
*
EQ Q1
*
* OBJECT/QUEUE
* EVENT
EQ PUT
*
* FILTER: 2
ACTION: INCLUDE
*
* QUEUE MANAGER EQ TEST
*
* OBJECT/QUEUE
EQ Q2
*
* EVENT
EQ GET
*
*
*
* RECORDING ALL DATA FROM GETS, ALL DATA FROM PUTS
*
* DETAIL DATA IS TRANSLATED FROM ASCII TO EBCDIC
*
* SAMPLE DATA IS TRANSLATED FROM ASCII TO EBCDIC
*
* DEFAULT MQAPI SCRIPT TAG PARAMETERS ARE INCLUDED
*
*
*
* REPOSITORY NAME: COMPWARE.REPOS
*
* LOG . . . . . : COMPWARE.LOG(LOG004)
*
* SCRIPT . . . . : COMPWARE.SCRIPT
*
*
*
************************************************************************
* SCRIPT NUMBER(1)
*
MQGROUP ID(1)STIME('2006/06/26_10:55:59.885251')
SCRIPT(SCR004)
******************************** Bottom of Data ********************************
5-17
5-18
Hiperstation for WebSphere MQ User Guide
MQ Log STEPLIB Overrides
This function allows you to add extra STEPLIB datasets to the supplied JCL and
procedures contained in the MQ log dataset for replaying MQ scripts. This is useful for
defining a specific level of WebSphere MQ for use with a particular script relay.
The additional STEPLIB datasets are defined in the ETRMGPAR member of the
Hiperstation for WebSphere MQ panel library (COMPWARE.SQQFPENU), as shown in
Figure 5-2.
Figure 5-2. Sample ETRMGPAR PNLSRC Member
)BODY EXPAND(\\)
%GLOBAL RECORDING PARAMETER SETTINGS
)INIT
&XTRMGRDS = AT.COMMON.OUTPUT.GRREQ
&REXXEXEC = COMPWARE.SQQFEXEC
&QAHSLOAD = COMPWARE.SQQFLOAD
&QAHSPLIB = COMPWARE.SQQFSAMP
&QAHSPLYC = COMPWARE.CONTROL
&QAHSREPC = COMPWARE.REPORT
&GLBLCSI = COMPWARE.GLOBAL.CSI
&TZONE
= ZONET
&TEMPUNIT = SYSDA
&TEMPVOLM = ''
&TEMPSPAC = 'CYLS'
&TEMPPRIM = 7
&TEMPSCND = 3
&TEMPMCLS = ''
&TEMPSCLS = ''
&TEMPDCLS = ''
IF (&ZSYSID = 'MACHINE1')
&TEMPSTP1 = 'SYS2.COMPWARE.SQQFLOAD'
ELSE
&TEMPSTP1 = 'COMPWARE.STEPLIB'
&TEMPSTP2 = ''
)END
Up to two extra STEPLIB datasets can be defined by assigning their fully qualified names
to variables TEMPSTP1 and/or TEMPSTP2 as shown. The example in Figure 5-2 also shows
how to set TEMPSTP1/2 differently depending on the LPAR used to execute the script
replay.
Once defined, the STEPLIB datasets are added to the JCL generated in the MQ log as part
of the MQ script create process. A sample MQ log, including generated JCL and the
overriding STEPLIB definition, is shown in Figure 5-3. The generation of replay JCL in an
MQ log is controlled by the script create parameter, MQSCLJCL.
Unattended Playback
5-19
Figure 5-3. Sample MQ Log
//USERID JOB ('ACCOUNT',NTRH),'PROGRAMMERNAME', --(MASS0118)----------//
CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID
/*JOBPARM S=CW01
//*
//*
//UPROCS JCLLIB ORDER=('SYS2.COMPWARE.SQQFSAMP')
//*
//**********************************************************************
//* EXEC PROC TO PROCESS LOG/SORT/REPORT
*
//**********************************************************************
//*
//
SET ACTION=ANALYZE
ANALYZE/PLAYBACK/other
//*
//
SET CNTLDS=SYS2.COMPWARE.MQ.CONTROL
//
SET REPTDS=SYS2.COMPWARE.MQ.REPORT
//*
//
SET SCRIPT=USERID.WEBMQ.SCRIPT
//
SET UNSORTED=&&UNSORTED
//
SET SORTED=&&SORTED
//*
//
SET COLLMEM=COLLECT
//
SET REPTCNTL=MQRCTT
//
SET REPTMEM=MQRANLZ
//*
//*
//ANALYZE EXEC PROC=MQPLAY1
//PROCESS.STEPLIB DD DISP=SHR,DSN=&LOAD
//
DD DISP=SHR,
//
DSN=SYS2.CPWR.COMPWARE.SQQFLOAD
//*
//**********************************************************************
//*
*
//*
TO ADD ADDITIONAL REPORT OUTPUT DATASETS, USE THE FOLLOWING
*
//*
HFS OR MVS DATASET MODEL CHANGING THE ddname TO THE NAME
*
//*
SPECIFIED ON THE REPORT INTO() STATEMENT
*
//*
*
//* //REPORT.ddname DD PATHMODE=(SIRWXU,SIRGRP,SIROTH),
*
//* //
PATHOPTS=(ORDWR,OCREAT),
*
//* //
PATH='/hfs/path/reptname.htm'
*
//*
*
//*
or
*
//*
*
//* //REPORT.ddname
DD DISP=SHR,DSN=sysout.dataset.name
*
//*
*
//**********************************************************************
//*
//LOGCOPY.INDD DD *
************************************************************************
*
*
* HIPERSTATION WEBSPHERE MQ LOG STARTED ON 2006/02/17 AT 11:03:35
*
*
*
*
* DESC:
* GROUP: (1) One script for everything
*
*
*
* FILTER: 001
ACTION: INCLUDE
*
* QUEUE MANAGER EQ *
*
*
*
* RECORDING ALL DATA FROM GETS, ALL DATA FROM PUTS
*
* TIME STAMPS ARE SUPPRESSED IN SCRIPTS
*
* DEFAULT MQAPI SCRIPT TAG PARAMETERS ARE INCLUDED
*
*
*
* REPOSITORY NAME: USERID.WEBMQ.SUBTEST4
*
* REPOSITORY NUMS: 1:9
*
* LOG . . . . . : USERID.WEBMQ.LOG($SUBD000)
*
* SCRIPT . . . . : USERID.WEBMQ.SCRIPT
*
*
*
************************************************************************
*
* SCRIPT NUMBER(1)
*
MQGROUPID(1)STIME('2004/08/30_12:20:44.398671')
SCRIPT(SUBD0000)
The MQ log references the MQPLAY1 PROC to perform script relay. The MQPLAY1 PROC
is suppled in the Hiperstation for WebSphere MQ sample library
5-20
Hiperstation for WebSphere MQ User Guide
(COMPWARE.SQQFSAMP) member MQPLAY1. Within the MQPLAY1 PROC, the PROCESS
STEP executes the script replay, so it is the PROCESS.STEPLIB DD that is overridden.
Note:
Both the PROCESS.STEPLIB in the MQPLAY1 PROC and the override specify an
&LOAD dataset, which is resolved into the Hiperstation for WebSphere MQ load
library. The Hiperstation for WebSphere MQ load library must be in the script
replay STEPLIB for the replay to proceed.
SET Statements
SET ACTION
This statement defines which playback CONTROL member to use for the job. By
default, it calls the ANALYZE member stored in the system-level playback control
library. The ANALYZE member contains a CONTROL statement bearing the OFFLINE
keyword, which processes the script without executing the MQ API command. Use
this member to analyze script contents. Override the default with:
– PLAYBACK to call the CONTROL member that processes the script and executes
the MQ API commands in the script. PLAYBACK is also stored in the system-level
playback control library.
– the name of any CONTROL member stored in the system-level or your personal
playback control library.
SET CNTLDS
This statement identifies the playback control library owning the assets you are using
for this job. By default, it points to the system-level playback control library. This
statement must point to the library in which the CONTROL member specified on the
SET ACTION statement resides.
SET REPTDS
This statement identifies the report control library owning the assets you are using
for this job. By default, it points to the system-level report control library. This
statement must point to the library in which the REPORT and report CONTROL
members specified on the SET REPTCNTL and SET REPTMEM statements reside.
SET SCRIPT
This statement identifies the library in which the scripts are stored. By default, it
points to the library you specified on the WebSphere MQ Create Script - Output
screen (Figure 3-16 on page 3-23) during script creation. All scripts played back or
analyzed must reside in this library.
SET UNSORTED
This statement identifies where to store the data collected during the unattended
playback job. It defaults to a temporary dataset. The data written to this location has
not been processed for reporting. There is no reason to override the temporary
dataset although you can, if desired.
SET SORTED
This statement identifies where to store the data collected and processed for
reporting. It defaults to a temporary dataset. Override this value with a permanent
dataset to save the information for generating reports later.
SET COLLMEM
This statement identifies the collection member to use for the job. By default, it calls
a member named COLLECT, from the system-level playback control library, that
collects all fields from all tables. Override it with:
– any COLLECT member stored in the library specified on the SET CNTLDS
statement.
– NONE if you do not need to collect information for reporting.
Unattended Playback
5-21
SET REPTCNTL
This statement identifies the report CONTROL member to use for the job. By default,
it calls MQRCTT from the system-level report control library. MQRCTT produces a
text-based report in table format, that supports the default Script Analysis Report.
Override it with:
– any report CONTROL member stored in the library specified on the SET REPTDS
statement.
– NONE if you do not need a reporting CONTROL member. If the specified REPORT
member provides all necessary control information, a report CONTROL member
is unnecessary.
SET REPTMEM
This statement identifies the REPORT member to use for the job. By default, it calls
MQRANLZ from the system-level report control library, which produces a default
Script Analysis Report (Figure 5-4).
Figure 5-4. Script Analysis Report
HIPERSTATION FOR WEBSPHERE MQ - MQQueue Report
Date: 06/04/07 10:52
Page: 1
------------------------------------------------------------------------------------------------------MQGroupNumber
MQScriptNumber
MQOpenQueueID
MQOpenQueueName
QMNA
MQMessageCountQueue
------------------------------------------------------------------------------------------------------1
3
81
PDAPROD.CICSREG2 M520
1
1
3
86
PDAPROD.CICSREG2 M520
1
1
3
87
PDAPROD.CICSREG2 M520
1
1
3
98
PDAPROD.CICSREG2 M520
1
1
3
103
PDAPROD.CICSREG2 M520
1
1
3
104
PDAPROD.CICSREG2 M520
1
1
3
116
PDAPROD.CICSREG2 M520
1
HIPERSTATION FOR WEBSPHERE MQ - MQMessage Report
Date: 06/04/07 10:52
Page: 1
------------------------------------------------------------------------------------------------------QMAQ
MQMessageOutbound
MQMessageInbound
MQME
------------------------------------------------------------------------------------------------------CSQ1:PDAPROD.CICSREG1.C USR2312 AMERICANFASTNERS
CSQ1:PDAPROD.CICSREG1.C
0000000000000000000000000 000000000000000000000000
CSQ1:PDAPROD.CICSREG1.C
0AMERICANFASTNERS
0AMERICANFASTNERS
CSQ1:PDAPROD.CICSREG1.C USR2312 AMERICANFASTNERS
CSQ1:PDAPROD.CICSREG1.C USR2312 BOLTSNNUTS+
CSQ1:PDAPROD.CICSREG1.C
0000000000000000000000000 000000000000000000000000
CSQ1:PDAPROD.CICSREG1.C
0BOLTSNNUTS+
0BOLTSNNUTS+
Submitting the Job
Once the job is prepared, submit it in one of the following ways:
• Submit the job from the ISPF Edit session to execute it immediately. Type SUB on the
Command line and press Enter.
• Schedule the job to run at a specific time. Refer to your job scheduler’s
documentation for help.
After the job has completed, review the return codes to see if playback completed
successfully or to determine the cause of failure.
Review Playback Return Codes
Hiperstation for WebSphere MQ reports an MVS return code for each step of a playback
job. The return code is a numeric value that indicates whether the job step completed
successfully and to what degree. See “Playback Return Code Descriptions” on page 5-22
for a complete list of MQ playback return codes.
5-22
Hiperstation for WebSphere MQ User Guide
Note: For more definitive playback results, you can add REXX logic to a script to return
a specific value based on criteria you supply. This is called a ‘custom’ return code.
Refer to the Hiperstation Scripting Reference to learn how to define custom return
codes.
The location of your return codes is dependent on your system configuration. On some
systems, with the correct job statement parameter, return codes appear in the user’s TSO
session. On others, they are written to a job log. If you need help locating your return
codes, see your system administrator.
Hiperstation for WebSphere MQ also writes the following informational messages to the
SYSPRINT upon job completion.
TCPSRPL-0051I
TCPPBMN-0007I
Play complete for Replay=1 - Return Code=xxxx.
Maximum return code=xxxx
Message TCPSRPL-0051I reports the return code from the indicated playback session
(Replay). Hiperstation for WebSphere MQ produces one of these messages for each
playback session in the job step. For example, the following playback statements result in
six playback sessions (Table 5-1) and therefore, six TCPSRPL-0051I messages:
MQGROUP COUNT(2) REPEAT(3)
SCRIPT(TEST)
Table 5-1. Playback Sessions for a MQGROUP Statement with COUNT(2) REPEAT(3)
Repeat
Count 1
Count 2
1
Replay=1
Replay=2
2
Replay=3
Replay=4
3
Replay=5
Replay=6
Message TCPPBMN-0007I reports the maximum return code from all of the playback
sessions in the job step. This is the value that Hiperstation for WebSphere MQ returns as
the job step completion code.
Note:
The job step completion code can be tested with the COND parameter on a JCL
EXEC or JOB statement.
If the MQGROUP statement contains multiple scripts, Hiperstation for WebSphere MQ
returns the value set by the last script processed. Incidentally, playback terminates
MQGROUP processing if it encounters a non-zero return code. For example, Hiperstation
for WebSphere MQ reports the return code from the LOGOFF script in the following
MQGROUP, unless LOGON or TEST produce a non-zero return code.
MQGROUP
SCRIPT(LOGON)
SCRIPT(TEST)
SCRIPT(LOGOFF)
Playback Return Code Descriptions
Hiperstation for WebSphere MQ writes the following information to SYSPRINT:
• A return code message for each playback session in the job step.
• A message indicating the maximum return code for the job step.
• Playback status, warning, and error messages.
Unattended Playback
Note:
5-23
It also writes a Playback Error Summary report to the location specified on the
ERRORLOG DD in the playback JCL. See “Troubleshooting with the Playback
Error Summary” for detailed information.
If you receive a non-zero return code, review the return code description provided in
Table 5-2. Then review the warning and error messages to determine the cause of the
problem. Refer to Hiperstation Messages and Codes for help with error resolution.
Table 5-2. Hiperstation for WebSphere MQ Internal Return Codes
Code
Description
0
All scripts ran successfully without errors.
4
Playback ended due to one of the following:
8
•
An invalid script record was encountered. Review the playback errors to determine which
record caused the issue, then edit the script record.
•
An invalid CONNECTION_ID was encountered. Edit the script to repair the incorrect connection ID.
•
A REXX initialization error was encountered. Refer to your REXX documentation for help
with initialization errors.
Playback ended due to one of the following:
•
A file allocation error occurred. Review the allocation parameters in the playback job. If
they are correct, contact your systems administrator.
•
A file could not be opened. Make sure you have authority to access all of the files specified
in the job and that the files are not in use.
•
A file could not be read. Maker sure you have authority to read all of the files specified in
the job.
•
A file could not be written. Make sure you have authority to write to all of the files specified in the job.
•
A script file was not found. Make sure the member names specified on the SCRIPT statements are accurate and exist and that the DSN provided on the SYSLIB DD parameter is
accurate.
•
Hiperstation for WebSphere MQ was unable to access or read the internal cache.
This could happen for a variety of reasons. For example, if the memory was corrupted. Contact your system administrator. Note: Removing the CACHON parameter from the CONTROL statement may resolve the error, but it will not correct any system issues.
12
•
Hiperstation for WebSphere MQ was unable to write to the internal cache. This
could happen for a variety of reasons. For example, the cache is full. Contact your system
administrator. Note: Reducing the size of the job may resolve the issue, but it will not correct any system issues.
•
An invalid control card was encountered. Correct the job SYSIN.
Playback is terminated due to a system failure. For example, if you are not licensed to use Hiperstation for WebSphere MQ , or no OMVS segment is available. Contact your system administrator.
100
Playback is terminated because the playback job does not include an ERRORLOG DD statement.
Insert an ERRORLOG DD statement before the SYSOUT DD in the playback JCL.
Note: You can add REXX logic to a script to return a specific value based on criteria you
supply. For example, add logic to evaluate application message content and
return a specific value if the content is incorrect. Refer to the Hiperstation
Scripting Reference to learn how to define custom return codes.
5-24
Hiperstation for WebSphere MQ User Guide
Troubleshooting with the Playback Error Summary
Hiperstation for WebSphere MQ’s unattended playback function automatically generates
an Error Summary Report, in text format, for all playback jobs. Use this report to
troubleshoot playback errors. View it with a spool display facility such as IBM SDSF.
The summary contains all of the error messages and significant warning messages that
occurred during the playback. Use the time stamps from the messages in the summary as
search criteria for locating the area of the playback log where the event occurred. This
feature requires an ERRORLOG DD statement, positioned ahead of the Playback Log
SYSOUT DD, in the unattended playback JCL. MQPLAY1, the procedure called by the log
file, supplies this DD for you.
Note:
Unattended playback requires the ERRORLOG DD statement for successful
playback. If it is not included in the job, playback halts and the job returns an
error code of 100.
Generate an interactive HTML version of the report by including an HTMLLOG DD
statement that specifies an HFS path in the playback JCL. That is, in the log file used to
run the unattended playback job, between ANALYZE EXEC PROC=MQPLAY1 and
LOGCOPY.INDD DD *, insert PROCESS.HTMLLOG DD with the appropriate PATHOPTS,
PATH, and PATHMODE definitions. See Figure 5-1 on page 5-17.
View the report with a supported web browser.
Figure 5-5. Playback Error Summary Report (HTML Version)
In this version of the report, the error summary appears at the top of the browser window
and the message log at the bottom. The time stamps on the messages in the summary are
hyperlinked to the corresponding messages in the playback log. Click an error or warning
message’s time stamp to position the log accordingly. The target error/warning message is
highlighted for easy recognition. Scroll up or down to see messages generated before and
after the error.
Note: Please note HFS paths are case sensitive. Be aware of the position of the Caps Lock
key when you edit the log file used to run the unattended playback job.
Unattended Playback
Additionally, optimum screen resolution for viewing this report is 800 x 600
pixels or better.
5-25
5-26
Hiperstation for WebSphere MQ User Guide
6-1
Chapter 6.
Reporting
Chap 6
With Hiperstation for WebSphere MQ you can:
• Build custom reports that contain information you specify, presented as you define.
• Generate basic, predefined reports.
Both custom and basic report generation require the same steps. However, the assets
necessary to generate basic reports are much easier to build. In fact, Hiperstation for
WebSphere MQ provides sample reporting assets for each basic report. This chapter
teaches you how to perform all of the tasks necessary to generate either type of report.
Reporting Overview
Report generation requires collecting data from an unattended playback, sorting the
collected data, and submitting a report generation job. Collecting and sorting data occurs
during unattended playback providing you use the log file to execute the job. You can
also generate reports during the unattended playback job or save the collected and sorted
data to generate reports later. Run the unattended playback job once, collect, sort, and
save all possible data, then generate as many different reports as you like. You can even
generate reports that compare data collected from different unattended playback jobs.
A reporting job is controlled by the following input statements:
• CONTROL statements (optional), which provides general processing information for
a group of reports.
• REPORT statements, which define the information to report and potentially the
layout of the report.
Use the log file produced during script creation to execute an unattended playback job,
reporting job, or both. The log file executes a procedure that generates the reports. The
procedure calls specified members containing the reporting input statements. Build
REPORT and reporting CONTROL statements (reporting assets) and store them in
members of the system-level or your personal reporting control library. Plug the member
names into the log file and submit the job.
Note:
Using the log, only for reporting, requires a sorted data collection from an
unattended playback job.
To set up and run a reporting job using the log file generated during script creation:
1. Save sorted data from an unattended playback job by specifying a dataset name on
the SET SORTED statement that appears at the beginning of the log file. See
“Preparing the Log File for Unattended Playback” on page 5-16.
2. Verify that the assets in the system-level reporting control library are suitable. If
necessary, build additional assets and store them in either the system-level or your
personal library. See “Creating and Managing Reporting Control Assets” on page 6-2.
3. Review and edit the log file as necessary. See “Preparing the Log File for Reporting”
on page 6-14.
– Edit the values of the SET statements at the beginning of the log file.
6-2
Hiperstation for WebSphere MQ User Guide
– Supply a DD statement for each REPORT statement in the REPORT member that
is to be written to a dataset or HFS file.
– If you are running a baseline report, a report that compares two databases,
supply a DD statement for the baseline database.
– If you are masking information for an HTML Exception Report, supply a DD
statement for each masking statement dataset to be used during the reporting
job.
– Replace MQPLAY1 with MQREPT1 on the EXEC statement.
4. Submit the Job. See “Submitting the Job” on page 6-16.
Creating and Managing Reporting Control Assets
Hiperstation for WebSphere MQ ships with JCL that your installer uses to establish a
system-level report control library along with some members containing basic REPORT
and CONTROL statements. When generating the log file used to run an unattended
playback or reporting job, Hiperstation for WebSphere MQ defaults system-level library
and member names for the asset calls. However, you can override these defaults with
your own library and member names. Organize your personal report control library in
the same fashion as the system-level library.
• One member for each report or set of reports you would like to generate in a given
job. Hiperstation for WebSphere MQ provides a variety of basic REPORT members.
The log file defaults REPORT member MQRANLZ, which produces a Script Analysis
Report, is discussed in Chapter 5, “Unattended Playback”. See Appendix B,
“Hiperstation for WebSphere MQ Samples Index” for a complete list and description
of all samples.
• One member for each report CONTROL statement. Report CONTROL statements
define general report processing information. They are optional. The log file defaults
a member called MQRCTT that generates a text-based report in table format to
support the default Script Analysis Report (Figure 5-4 on page 5-21).
Create your own assets and store them in either the system-level or your personal
reporting control library. Give each member a name indicative of its purpose.
Reporting CONTROL statements apply to both basic and custom reports. Basic REPORT
statements require parameters specific to the basic report you are generating, while
custom REPORT statements offer a variety of parameters that apply to all custom reports.
This section provides a syntax diagram and parameter descriptions for constructing your
own:
• CONTROL statements
• REPORT statements for Basic Reports
• REPORT statements for Custom Reports
CONTROL Statement
Reporting CONTROL statements are optional. They provide processing information for a
group of REPORT statements. For example, if you are going to run several reports of the
same type, set the report type on the CONTROL statement, so you do not have to specify
it on each REPORT statement.
Most of the parameters available on CONTROL statements are also available on REPORT
statements. If a parameter is not defined on a REPORT statement, Hiperstation for
WebSphere MQ uses the parameter value defined on the CONTROL statement. If it is
defined on both, the REPORT statement takes precedence. For example, if CONTROL
specifies table and REPORT specifies form, form is used instead of table.
Reporting
6-3
Determine where to store the CONTROL statements based on your reporting needs.
Storing one CONTROL statement per member in the system-level or your personal
reporting control library is the easiest way to maintain and reuse CONTROL statements.
However, if you use the log file produced during script creation to run the reporting job,
storing the CONTROL statements separately limits the job to a single CONTROL
statement. Hiperstation for WebSphere MQ assembles the statements from specified
CONTROL and REPORT members in the appropriate order. For example, if your REPORT
member contains two REPORT statements, Hiperstation for WebSphere MQ assembles the
input statements as follows:
CONTROL
REPORT
REPORT
To run three reports with one set of processing options and two with another set, you
can:
• Create two REPORT members, for example, A and B, each containing the applicable
REPORT statements, and two CONTROL members, for example, Table and Form, each
containing a single CONTROL statement, then run two reporting jobs.
Job1 Processes:
Job2 Processes:
CONTROL (from member Table)
REPORT (from member A)
REPORT (from member A)
REPORT (from member A)
CONTROL (from member Form)
REPORT (from member B)
REPORT (from member B)
Although this may be more work initially, the CONTROL and REPORT members are
independent assets that are easily reusable.
• Create one REPORT member containing both CONTROL statements, each followed
by the applicable REPORT statements, and run a single reporting job.
Job1
CONTROL
REPORT
REPORT
REPORT
CONTROL
REPORT
REPORT
This may be less work initially, however, you will not be able to use the CONTROL
statements and REPORT member as independent assets for future reporting jobs.
• Create one REPORT member containing REPORT statements that provide all of the
necessary processing parameters and run a single job. Note: The CONTROL statement
provides additional processing options that are not available on the REPORT
statements. This method works only if you do not require any of those options.
If you specify a CONTROL member and a REPORT member containing CONTROL
statements, Hiperstation for WebSphere MQ uses the statements in the REPORT member.
Note: If two or more consecutive CONTROL statements precede the REPORT statements,
Hiperstation for WebSphere MQ uses the last statement listed.
6-4
Hiperstation for WebSphere MQ User Guide
The following syntax diagram shows all of the parameters available on the CONTROL
statement. All of the parameters are optional. LAYOUT and TYPE are also available on
REPORT statements.
DATABASE
Follow the DATABASE parameter with the DD name for the collected, sorted data to
use for report generation. DATABASE is the default value. The MQREPT1 procedure,
called by the log file, supplies a DD statement that defines the SET SORTED dataset as
“DATABASE”. Thus, the default should suffice, providing you did not alter the DD
statement in the procedure.
Note:
If you are running reports that compare two data collections, specify the
additional databases with REPORT statement parameters. See “HTML
Exception REPORT Statement” on page 6-6 or “REPORT Statement for
Custom Reports” on page 6-9.
LAYOUT
Follow LAYOUT with:
– TABLE to produce a row, column oriented report (Figure 6-1 on page 6-4). If you
do not specify a layout, TABLE is used.
Note: TEXT reports with a table layout will print a maximum of 6 fields. HTML
reports with a table layout will print a maximum of 32 fields.
– FORM to produce a line based report (Figure 6-2 on page 6-5).
Figure 6-1. Sample MQGROUP Text Report in Table Layout
Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:23
Page:
1
--------------------------------------------------------------------------------------MQGroupNumber
MQGroupReturnCode
MQGroupStartTime
MQGroupDuration
--------------------------------------------------------------------------------------1
0
2007/06/26_10:55:54.685787
50.415205
2
0
2007/06/26_10:55:54.69347
50.407522
3
0
2007/06/26_10:55:57.877735
47.223257
******************************************* BOTTOM OF DATA ****************************
Reporting
6-5
Figure 6-2. Sample MQGROUP Text Report in Form Layout
Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
1
--------------------------------------------------------------------------------------MQGroupNumber
1
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:54.685787
--------------------------------------------------------------------------------------MQGroupDuration
50.415205
--------------------------------------------------------------------------------------Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
2
--------------------------------------------------------------------------------------MQGroupNumber
2
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:54.69347
--------------------------------------------------------------------------------------MQGroupDuration
50.407522
--------------------------------------------------------------------------------------Hiperstation for WebSphere MQ - MQGroup Report
Date: 06/26/07 14:24
Page:
3
--------------------------------------------------------------------------------------MQGroupNumber
3
--------------------------------------------------------------------------------------MQGroupReturnCode
0
--------------------------------------------------------------------------------------MQGroupStartTime
2007/06/26_10:55:57.877735
--------------------------------------------------------------------------------------MQGroupDuration
47.223257
---------------------------------------------------------------------------------------
TYPE
Follow TYPE with either TEXT, HTML, or CSV (comma separated value). Generate
custom reports in any of these formats. Basic reports, however, do not support CSV
format. Some basic reports support only HTML while others support TEXT and
HTML. Refer to the REPORT statement for the desired basic report.
If you do not specify a type, TEXT is used.
Note:
For TEXT and CSV reports, make sure the LRECL of the dataset you allocate
for the report is equal to or larger than the longest message reported.
Hiperstation for WebSphere MQ truncates or wraps messages exceeding the
dataset’s LRECL.
BREAK
BREAK applies only to TEXT and HTML reports with a FORM layout. For:
– TEXT reports, follow the parameter with EJECT to begin each record on a new
page, or NEXT to continue reporting on the next line.
– HTML, follow the parameter with EJECT to begin each record in a new HTML
table or NEXT to continue reporting on the next line of the same HTML table.
Note:
HTML FORM reports are displayed in HTML tables.
If you do not specify breaking conditions, EJECT is used.
MAXLINES
MAXLINES applies only to TEXT reports. Follow MAXLINES with the maximum
number of lines to print on each page. The value must be between 30 and 9999. If
you do not specify MAXLINES, 60 is used.
6-6
Hiperstation for WebSphere MQ User Guide
FIELDDEPTH
FIELDDEPTH applies only to TEXT and CSV reports. Use it to truncate the printing of
large fields, some of which may contain up to 2 gigabytes of data. Follow
FIELDDEPTH with the number of lines of message data to print. For example,
FIELDDEPTH(1) results in one line of data per message.
REPORT Statements for Basic Reports
Hiperstation for WebSphere MQ offers the following basic reports:
• HTML Exception Report: Compares inbound (MQ_GET) messages and reports the
differences.
– A standard exception report compares “actual” inbound messages to “expected”
inbound messages from a single data collection.
– A baseline exception report compares “actual” inbound messages from two data
collections. The baseline “actuals” are used as “expected” values for comparison.
• Response Time Summary: Reports the amount of time it took each group of related
messages to occur. For example, the amount of time it took to receive the MQ_GET
from the time the correlating MQ_PUT was sent.
• Script Time Summary: Reports the amount of time it took for each script to play
back and provides additional timing statistics for the playback job.
HTML Exception REPORT Statement
The following syntax diagram shows all of the parameters available on the REPORT
statement for the HTML Exception Report. See “HTML Exception Report” on page 6-17
for a report sample and detailed information including field definitions. Also, refer to
your system-level reporting control library, members: MQRREXCP (standard report
statement sample), MQRREXCB (baseline report statement sample), MQRREXCM (mask
report statement sample).
COMPARE
This parameter is required to generate an HTML Exception Report.
BASELINE
This is an optional parameter. Use it to identify the DD name of the baseline database
to use for comparison. Be sure to insert a corresponding DD statement into the log
file used to generate the report. If you do not specify a baseline, then the report
compares the “actual” MQ_GET messages to the “expected” MQ_GET messages from
a single data collection.
Note: If you use the log file to generate the report, specify a primary database on the
SET SORTED statement. The MQREPT1 procedure, called by the log file,
provides a DD statement defining the SET SORTED value as DATABASE.
Either accept the default DATABASE parameter value on the CONTROL
statement or do not include a CONTROL statement to have Hiperstation for
WebSphere MQ define the primary database DD statement for you.
Reporting
6-7
MASK
This is an optional parameter to identify the DD name of the sequential dataset or
PDS member containing masking statements. Use masking statements to prevent
specified information from being compared. See “Masking Statements” on page 6-7.
Be sure to insert a corresponding DD statement into the log file used to run the
reporting job.
STOPON
This is an optional parameter. Use it to automatically end report generation once the
specified number of mismatches has occurred. For example, if you specify
STOPON(5), Hiperstation for WebSphere MQ reports no more information after the
fifth mismatch. Valid values are 1 to 9999.
TITLE
This is an optional parameter. Use it to specify a title that will appear at the top of
the report and in the title bar of the browser window. If you do not specify a title, the
report will be titled “Hiperstation for WebSphere MQ - Exception Report”.
INTO
This required parameter specifies the DD name of the HFS file that is to contain the
HTML report. Be sure to insert a corresponding DD statement into the log file used to
run the reporting job.
Masking Statements
Use data masking to prevent comparison of specified MQ message data. For example,
mask date and time fields to prevent generating mismatches for data you expect to be
different. Data masks are statements that specify qualification criteria and stipulate the
positions to mask if the criteria is met. Each statement consists of a WHEN and a MASK
clause.
Store all statements you wish to use for a given report in a sequential dataset or PDS
member. Specify a DD name on the MASK parameter of the REPORT statement. In the log
file used to run the reporting job, insert a corresponding DD statement for each mask
dataset that will be used for the reporting job.
If a given file contains multiple statements, Hiperstation for WebSphere MQ applies the
masking specification from the first true statement. The statement must be true for both
the “actual” and “expected” messages in order for the mask to apply.
Note:
In a baseline report, Hiperstation for WebSphere MQ uses the “actuals” from
the baseline as the “expected” values for the comparison.
Only one masking statement is applied to a given set of “actual” and “expected”
messages. Once a statement is applied, Hiperstation for WebSphere MQ processes the
next “actual” and “expected” message in the collected data.
The syntax of a masking statement is as follows:
WHEN(POSITION1, RO, VALUE) MASK(POSITION2:LENGTH2, ...)
POSITION1
Specify the starting position of the data to evaluate for masking qualification.
RO
Specify the relational operator (RO) to use for qualifying data for masking. You can
use either the RO code or symbol. Valid operators for:
6-8
Hiperstation for WebSphere MQ User Guide
– Character, Hexadecimal, or Packed Decimal data are:
Conditional RO Codes
RO Symbol
Description RO
EQ
=
Equal To
NE
\=
Not Equal
LT
<
Less Than
GT
>
Greater Than
LE
<=
Less than or equal to
GE
>=
Greater than or equal to
– Binary data are:
BIT RO Codes
RO Symbol
Bit RO
EQ
=
Specified bits are all ones
NE
\=
Specified bits are all zeros
NO
not applicable
Specified bits are not all ones
NZ
not applicable
Specified bits are not all zeros
MX
not applicable
Specified bits are mixed ones and zeros
VALUE
Specify the data value that completes the comparison argument. If the argument is
true, Hiperstation for WebSphere MQ masks the data specified by the MASK clause.
Place the value in single quotations and precede it with one of the following data
type indicators:
– C for Character, for example, C'Smith'
Character mask values are case-sensitive. For example, messages containing
Smith match the mask value above, while message containing SMITH do not.
– X for Hexadecimal, for example, X'0CDF'
Hexadecimal masking values must consist of an even number of hexadecimal
digits (0-9, A-F).
– P for Packed Decimal, for example, P'0001'
Packed decimal masking values must consist of decimal digits and can be
preceded by an optional sign (+-). Additionally, they must be less than 32 bytes.
– M for Binary Masks, for example, M'11000000'
Binary mask value must consist of eight binary digits that identify the bits,
within the specified byte (POSITION1 in WHEN clause), to consider for masking.
In the example above, Hiperstation for WebSphere MQ will examine the first two
bits of the specified byte.
POSITION2:LENGTH2
Specify the starting position and length of the data to mask. Specify multiple
positions and lengths by inserting a comma between each POSITION:LENGTH
parameter. For example, the following masking statement masks columns 4 through
11, 45 and 46 when columns 5 and 6 contain 03.
WHEN(5, EQ, C'03') MASK(4:8, 45:2)
Set length to 0 (zero) to mask the remainder of the message.
Response Time and Script Timing REPORT Statements
The REPORT statements for the Response Time and Script Timing Reports are virtually
the same except for the BASIC REPORT KEYWORD. See “Script Timing Summary” on page
6-20 and “Response Time Summary” on page 6-21 for a sample of each report and
Reporting
6-9
detailed information including field definitions. Also, refer to your system-level
reporting control library, members: MQRRRESP (response time report statement sample)
and MQRRSCRT (script time report statement sample).
BASIC REPORT KEYWORD
Follow REPORT with RESPONSETIME to generate a Response Time Summary or
SCRIPTTIME to generate a Script Timing Summary.
TYPE
This is an optional parameter. Use it to specify the format (TEXT or HTML) of the
report file. If you do not specify a type, Hiperstation for WebSphere MQ uses the type
specified on the CONTROL statement providing it is either HTML or TEXT. If CSV is
specified on the CONTROL or REPORT statement, you will receive an error. If you do
not specify a type on the CONTROL or REPORT statement, or you are not using a
CONTROL statement, TEXT is used.
TITLE
This is an optional parameter. Use it to specify a title to appear at the top of the
report and in the title bar of the browser window if you are generating an HTML
report. If you do not specify a title, the report is called “Hiperstation for
WebSphere MQ - Response Time Summary” or “Hiperstation for WebSphere MQ Script Timing Summary” depending on the BASIC REPORT KEYWORD.
INTO
This required parameter specifies the DD name for the dataset or HFS file that is to
contain the report. Be sure to insert a corresponding DD statement into the log file
used to run the reporting job. If your destination is SYSOUT, do not add a DD
statement. The reporting procedure called by the log file supplies a DD statement for
SYSOUT.
Note:
If you generate a TEXT version of the report, make sure the logical record
length (LRECL) of the reporting dataset is minimally 133.
REPORT Statement for Custom Reports
Just as there are six collection and reporting tables, there are six types of custom reports:
• PLAYBACK reports
• MQGROUP reports
• MQSCRIPT reports
• MQOPENQUEUE reports
• MQMESSAGESET reports
• MQMESSAGE reports
Report any combination of the fields from a given collection and reporting table,
providing you collected and saved the fields during unattended playback. For example,
report all fields from the PLAYBACK table to produce a Playback Summary. See Appendix
A, “Data Collection and Reporting Tables” for a list of the fields available for each type of
report.
Although you cannot include fields from multiple tables on a single report, you can
generate multiple reports from the same data collection in the same reporting run. For
instance, you cannot include an MQGROUP field on a PLAYBACK report, but you can
6-10
Hiperstation for WebSphere MQ User Guide
generate a PLAYBACK report and an MQGROUP report from the same data collection at
the same time. Create a REPORT statement for each report, save them in the same
reporting member, and use the log file to run the reporting job.
Build custom comparison reports by including the same reporting fields from multiple
unattended playback data collections. Qualify comparison fields with the name of the
applicable data collection. For example, to compare the number of message sets played
back in jobs PLAY1, PLAY2, and PLAY3 create a report member containing the following
statement and store it in your reporting control library:
REPORT FIELDS (MQMESSAGESETCOUNT,PLAY1.MQMESSAGESETCOUNT,PLAY2.MQMESSAGESETCOUNT)FROM(MQMESSAGESET) INTO(SYSOUT)
Use this reporting member during the third playback job or in a reporting job that uses
the third data collection (That is, SET SORTED = PLAY3).
The following syntax diagram shows all fields available on the custom REPORT
statement.
Note: TEXT reports in table layout print a maximum of six fields. HTML reports in table
layout print a maximum of 32 fields. Consider breaking large reports into several
Reporting
smaller reports to support printing or viewing them with standard paper or
terminal size.
6-11
6-12
Hiperstation for WebSphere MQ User Guide
LAYOUT
Whether the report will be in table (row, column) or form (one line per record)
format. Figure 6-1 and Figure 6-2 on page 6-5 show the same report in both table and
form layout.
TYPE
Format of the report, either TEXT, HTML, or CSV. TEXT reports are written in
EBCDIC and the LINK function is not valid. HTML reports support the LINK
function, which tells Hiperstation for WebSphere MQ to write that field’s value to a
separate file. A reference to that separate file appears in the HTML report as a link.
TITLE
This is an optional parameter. Use it to specify a title for the report. If you do not
specify a title, then the report is titled “Hiperstation for WebSphere MQ - Table
Report”, where table is the collection and reporting table specified on the FROM
clause.
FIELDS
See Appendix A, “Data Collection and Reporting Tables” to select the fields you wish
to report. In order to report a field, you must have collected it during unattended
playback. Even if you collected all possible fields, every field is not always available
for reporting. For example, message header fields cannot be sent by an application
during a particular transmission, and therefore would not be available to put in a
report.
Reporting
6-13
Use long or short field names to specify the fields to include in the report. The field
labels in the report appear as specified on the statement. That is, if the statement
includes short field names, the report will contain short field names. Additionally,
the fields appear in the report in the same order as specified on the REPORT
statement.
To report on every available field for a given table, use an asterisk (*) on the FIELDS
parameter - FIELDS (*).
Built-in function fields (AVG, MIN, MAX, LINK, and so on) are not automatically
included by using FIELDS (*). These fields must be explicitly requested in the format
FIELDS (*,AVG(xxxx)).
Any field names not fully qualified with a database name use the database name
supplied on the FROM keyword. If no database name is available on the FROM
keyword, the value supplied, or defaulted, by CONTROL DATABASE is used.
FROM
Specifies what kind of report to produce. The table name specified in the FROM
keyword is used to resolve field names specified by FIELDS(*) and validate the field
names specified in the FIELDS keyword. The optional database qualifier can be used
as explained under the FIELDS description.
WHERE
Use the WHERE clause to provide criteria for reporting only the data you need. For
example, to report all fields from the MQGROUP table for the second of five groups
in the reporting job, construct the REPORT statement as follows:
REPORT FIELDS (*) FROM (MQGROUP) WHERE (MQGroupNumber = 2)
SUBSTR
Produces a substring of the first argument. The second argument is the starting
position of the substring, and can have a minimum value of one (1). The third
argument is optional and is the length of the substring. If it is absent, the remainder
of the string is the new substring. The behavior of the SUBSTR function matches the
behavior of the REXX SUBSTR function.
The SUBSTR function is valid only on character fields. Other usage causes an error at
statement parsing time and ends the reporting jobstep.
SUBSTRX
The SUBSTRX keyword works the same way as the SUBSTR keyword, but displays the
value of the argument in hexadecimal characters.
DIFFERENCE
(DIFF) produces a number indicating the first byte position in a string that is
different from another string. The two arguments are the byte strings to be
compared. The strings can contain any values, including nonprintable characters.
Two strings that are identical result in a value of zero (0). The SUBSTR and
DIFFERENCE functions can be nested as “DIFFERENCE(SUBSTR(...))”.
LINK
Indicates that a field’s value should be shown as an HTML link in a report rather than
being shown directly in the report. The SUBSTR and LINK functions can be nested as
“LINK(SUBSTR(...))”.
Note:
Use of LINK in the WHERE clause is invalid. It is valid only as described.
6-14
Hiperstation for WebSphere MQ User Guide
Preparing the Log File for Reporting
When you create scripts, select the Log Entries option on the Create Script - Create
Options (2 of 2) panel (Figure 3-12 on page 3-17), to generate the log file used to run an
unattended playback job, a reporting job, or both. The log file contains a series of SET
statements that call reporting control assets. Most of the SET statement values default to
the system-level playback and report control library and member names. Override them
with your personal library information if necessary.
This section explains how to prepare the log for a reporting only job. See Chapter 5,
“Unattended Playback”, to learn how to generate reports during unattended playback.
To prepare the log for a reporting job:
1. Edit the values of the SET statements at the beginning of the log file. Refer to the SET
statement definitions following the sample log illustration (Figure 6-3 on page 6-15).
2. On the ANALYZE EXEC PROC= statement, replace MQPLAY1 with MQREPT1, the
reporting procedure.
3. Between ANALYZE EXEC PROC=MQREPT1 and LOGCOPY.INDD DD * insert a DD
statement for each:
– REPORT statement in the REPORT member that is to be written to a dataset for
HFS file. Do not add DD statements for reports written to SYSOUT. The MQREPT1
procedure provides a DD statement for SYSOUT.
– baseline database that is to be used for comparison reports.
– masking statement dataset that is to be used for an HTML Exception Report.
Note:
Refer to the “flower box” showing a sample DD statement defining an HFS
path and a sample statement defining a dataset.
4. When finished preparing the log, submit the job. See “Submitting the Job” on page
6-16.
Reporting
Figure 6-3. Sample Log File Prepared for Reporting Job
//jobcard
//*
/*JOBPARM SYSAFF=TEST
//UPROCS JCLLIB ORDER=('COMPWARE.SQVPPROC')
//*
//**********************************************************************
//* EXEC PROC TO PROCESS LOG/SORT/REPORT
*
//**********************************************************************
//*
//
SET ACTION=NONE
ANALYZE/PLAYBACK/other
//*
//
SET CNTLDS= COMPWARE.CONTROL
//
SET REPTDS= COMPWARE.REPORT
//*
//
SET SCRIPT= COMPWARE.SCRIPT
//
SET UNSORTED=&&UNSORTED
//
SET SORTED= USER253 .JAN04.AP.PLAY3
//*
//
SET COLLMEM=NONE
//
SET REPTCNTL=MQRCTT
//
SET REPTMEM=MQRCOMP
//*
//*
//ANALYZE EXEC PROC=MQREPT1
//*
//**********************************************************************
//*
*
//*
TO ADD ADDITIONAL REPORT OUTPUT DATASETS, USE THE FOLLOWING
*
//*
HFS OR MVS DATASET MODEL CHANGING THE ddname TO THE NAME
*
//*
SPECIFIED ON THE REPORT INTO() STATEMENT
*
//*
*
//* //REPORT.ddname
DD PATHMODE=(SIRWXU,SIRGRP,SIROTH),
*
//* //
PATHOPTS=(ORDWR,OCREAT),
*
//* //
PATH='/hfs/path/reptname.htm'
*
//*
*
//*
or
*
//*
*
//* //REPORT.ddname
DD DISP=SHR,DSN=sysout.dataset.name
*
//*
*
//**********************************************************************
//*
//LOGCOPY.INDD DD *
************************************************************************
*
*
* HIPERSTATION FOR WEBSPHERE MQ LOG STARTED ON 2006/07/10 AT 12:12:01 *
*
*
* DESC: TEST
*
* GROUP: (1) One script for everything
*
*
*
* FILTER: 1
ACTION: INCLUDE
*
* QUEUE MANAGER EQ TEST
*
* OBJECT/QUEUE
EQ Q1
*
* EVENT
EQ PUT
*
* FILTER: 2
ACTION: INCLUDE
*
* QUEUE MANAGER EQ TEST
*
* OBJECT/QUEUE
EQ Q2
*
* EVENT
EQ GET
*
*
*
* RECORDING ALL DATA FROM GETS, ALL DATA FROM PUTS
*
* DETAIL DATA IS TRANSLATED FROM ASCII TO EBCDIC
*
* SAMPLE DATA IS TRANSLATED FROM ASCII TO EBCDIC
*
* DEFAULT MQAPI SCRIPT TAG PARAMETERS ARE INCLUDED
*
*
*
* REPOSITORY NAME: COMPWARE.REPOS
*
* LOG . . . . . : COMPWARE.LOG(LOG004)
*
* SCRIPT . . . . : COMPWARE.SCRIPT
*
*
*
************************************************************************
* SCRIPT NUMBER(1)
*
MQGROUP ID(1)STIME('2006/06/26_10:55:59.885251')
SCRIPT(SCR004)
******************************* Bottom of Data *******************************
6-15
6-16
Hiperstation for WebSphere MQ User Guide
SET Statements
This section defines the SET statements that apply to reporting. All other statements
apply to unattended playback only. Since Hiperstation for WebSphere MQ ignores the
unattended playback SET statements during reporting, there is no need to modify their
values. See Chapter 5, “Unattended Playback” to learn about the statements that apply to
unattended playback only.
SET REPTDS
This statement identifies the report control library containing the assets you are
using for this job. By default, it points to the system-level report control library. This
statement must point to the library in which the REPORT and report CONTROL
members specified on the SET REPTCNTL and SET REPTMEM statements reside.
SET SORTED
This statement identifies the database to use for reporting. Complete this statement
with the name of the dataset that was collected and sorted during an unattended
playback job. The MQREPT1 procedure assigns DD name DATABASE to the dataset
you plug in here.
Note:
“DATABASE” is the default DD name on the DATABASE parameter of the
reporting CONTROL statement.
SET REPTCNTL
This statement identifies the report CONTROL member to use for the job. By default,
it calls MQRCTT from the system-level report control library. MQRCTT produces a
text-based report in table format that supports the default Script Analysis Report.
Override it with:
– Any report CONTROL member stored in the library specified on the SET REPTDS
statement.
– NONE if you do not need a reporting CONTROL member. If the specified REPORT
member provides all necessary control information, a report CONTROL member
is unnecessary.
SET REPTMEM
This statement identifies the REPORT member to use for the job. By default, it calls
MQRANLZ from the system-level report control library, which produces a default
Script Analysis Report (Figure 5-4 on page 5-21). Plug in the name of the desired
reporting member from the library specified on SET REPTDS.
Submitting the Job
To submit the reporting job, open the log file in an ISPF Edit session, type SUBMIT on the
Command line and press Enter.
Note:
You must be in Edit mode to submit the job.
Reading and Navigating Basic Reports
This section provides report samples and detailed information for each of the basic
reports.
Reporting
6-17
HTML Exception Report
A standard HTML Exception Report compares the MQ_GET messages that occurred
during playback (“actual”) to the MQ_GET messages recorded in the script (“expected”).
A baseline HTML Exception Report compares “actual” MQ_GET messages from two
unattended playback data collections. The “actuals” from the baseline database are used
as “expected” values for comparison.
Note: In an ANALYZE job (offline playback) the MQ_GET messages in the script are the
“actuals”. In an online playback job, the MQ_GET messages that resulted from
the playback are the “actuals”.
An HTML Exception Report presents a summary of mismatches at the top of report
followed by the “actual” and “expected” messages with highlighted differences. The
messages in the summary are hyperlinked to the messages in the detail. Depending on
the content of the script or the structure of the application you are testing, the report
may also include the MQ_PUT message related to the reported MQ_GET messages.
Note:
The report requires collecting several fields from several reporting and collection
tables. Use the default COLLECT member to collect all fields from all tables
ensuring the necessary data is available for this or any other report. Refer to
Chapter 5, “Unattended Playback”.
View the report with a supported Web browser. Scroll up and down to view the entire
report or click a message number in the summary to see the mismatch detail for that
message.
Figure 6-4 shows a mismatch summary and Figure 6-5 shows the corresponding
mismatch detail.
Figure 6-4. HTML Exception Report Mismatch Summary (Top of Report)
Field Definitions
The title specified on the REPORT statement or the default report title, Hiperstation for
WebSphere MQ - Exception Report, displays across the top of the window and in the title
bar. In a baseline report, the following fields come from the database entered on the SET
SORTED statement in the log file.
Run Date
The date and time that the unattended playback job was executed.
SYSID
The LPAR in which the playback job was executed.
Jobname
The playback job name.
Jobnumber
The playback job number.
6-18
Hiperstation for WebSphere MQ User Guide
Group Number
The number of the group in which the message was played back. Groups are
numbered sequentially.
Script Number
The number of the script containing the reported message. Scripts are numbered
sequentially within the group.
Script Name
The name of the script containing the reported message.
MessageSet Number
The connection number of the MessageSet (a group of related messages) containing
the reported message. MessageSets are numbered sequentially within a script.
Message Number
The reported message’s number. Messages are numbered sequentially within a
Message Set.
MQ Queue Manager and Queue
The MQ Queue Manager and Queue name associated with the reported message.
Figure 6-5. HTML Exception Report Mismatch Detail
Field Definitions
Each group of “expected” and “actual” messages is preceded by the associated Group
Number, Script Number, Script Name, Message Set Number, and Message Number. These
are the same fields presented in the summary at the top of the report. See “Field
Definitions” on page 6-17. Additionally, all of the fields displayed under the “expected”
message also display under the “actual” message. Although the values they present may
be different, the field definitions are the same.
Reporting
6-19
Expected MQGET Message
The “expected” MQ_GET message. In a standard exception report, this comes from
the script. In a baseline report, this comes from the baseline data collection. If the
baseline was generated from an:
– Online playback, this is the MQ_GET message that resulted from the playback.
– ANALYZE playback (offline playback), this is the MQ_GET message from the
script.
Mismatches are highlighted. Masked information displays in green text.
Message Type
The reported message’s type, for example, REQUEST, REPLY, DATAGRAM, or REPORT.
This comes from the MQ message descriptor (MQMD).
Note:
Message type is represented as an integer value in the MQMD. The HTML
Exception Report translates the value into text. Refer to IBM’s WebSphere
MQ documentation to learn more about message types.
Message Persistence
The reported message’s “persistence” setting. This comes from the MQMD.
Note:
Message persistence is represented as an integer values in the MQMD. The
HTML Exception Report translates the value into text. Refer to IBM’s
WebSphere MQ documentation to learn more about message persistence.
ReplyToQueueManger
The name of the Queue Manager to receive the reported message’s reply. This comes
from the MQMD. If the message is not supposed to reply, the MQMD does not
contain a ReplyToQueue, and this field displays the name of the queue manager that
the application was connected to during capture or playback.
ReplyToQueue
The name of the Queue to receive the reported message’s reply. This comes from the
MQMD. Not all messages reply. This field is blank if the message’s MQMD does not
possess this information.
MQ Message ID
The message ID from the reported message’s MQMD.
Correlation ID
The correlation ID from the reported message’s MQMD.
Actual MQGET Message
The “actual” MQ_GET message. In a standard exception report, this is the MQ_GET
message that resulted from the playback. In a baseline report, this comes from the
baseline data collection. If the baseline was generated from an:
– Online playback, this is the MQ_GET message that resulted from the playback.
– ANALYZE playback (offline playback), this is the MQ_GET message from the
script.
Mismatches are highlighted. Masked information displays in green text.
Message Start Time
The date and time the reported message was received.
Actual MQPUT Message
The MQPUT message related to the preceding MQGET message. This section appears
only if there is a correlating MQPUT message.
6-20
Hiperstation for WebSphere MQ User Guide
Note:
Figure 6-5 on page 6-18 does not show an “Actual MQPUT Message” because
the reported message type is a DATAGRAM, which does not expect a reply.
Script Timing Summary
A Script Timing Summary Report shows the amount of time it took for each script to play
back and provides additional timing statistics for the playback job.
Generate an HTML or TEXT version of the report. View the HTML version with a
supported web browser.
Figure 6-6 shows an HTML Script Timing Summary. Field definitions follow the
illustration.
Figure 6-6. HTML Script Timing Summary Report
Field Definitions
The title you specified on the REPORT statement or the default report title, Hiperstation
for WebSphere MQ - Script Timing Summary Report, displays across the top of the report.
In an HTML version, the report title also appears in the title bar of the browser window.
Run Date
The date and time that the playback job was executed. This field appears only on the
HTML version of the report.
Note:
The TEXT version of the report includes the date and time the report was
generated.
SYSID
The LPAR in which the playback job was executed. This field appears only on the
HTML version of the report.
Jobname
The playback job name. This field appears only on the HTML version of the report.
Jobnumber
The playback job number. This field appears only on the HTML version of the report.
MQGroup Number
The number of the group in which the reported script was played back. Groups are
numbered sequentially.
Script Name
The name of the script.
Reporting
6-21
Number
The number of the script being reported. Scripts are numbered sequentially within
the group.
Start Time
The date and time the given script began playing back.
Finish Time
The date and time playback completed for the given script.
Duration
The amount of time it took for the given script to play back.
MQGroup Total
A row of statistics for each MQGroup played back.
Number
The total number of scripts within the group.
Minimum Duration
The shortest playback duration in the group.
Maximum Duration
The longest playback duration in the group.
Average Duration
The average of all playback durations in the group.
Report Total
A row of statistics for the entire playback job.
Number
The total number of scripts played back.
Minimum Duration
The shortest playback duration in the job.
Maximum Duration
The longest playback duration in the job.
Average Duration
The average of all playback durations in the job.
Response Time Summary
A Response Time Summary Report shows the amount of time it took each group of
related messages to occur. For example, the amount of time it took to receive the
MQ_GET from the time the correlating MQ_PUT was sent.
Generate an HTML or TEXT version of the report. View the HTML version with a
supported Web browser.
Figure 6-7 shows an HTML Response Time Summary. Field definitions follow the
illustration.
6-22
Hiperstation for WebSphere MQ User Guide
Figure 6-7. HTML Response Time Summary Report
Field Definitions
The title you specified on the REPORT statement or the default report title, Hiperstation
for WebSphere MQ - Response Time Summary Report, displays across the top of the
report. In an HTML version, the report title also appears in the title bar of the browser
window.
Run Date
The date and time that the playback job was executed. This field appears only on the
HTML version of the report.
Note:
The TEXT version of the report includes the date and time the report was
generated.
SYSID
The LPAR in which the playback job was executed. This field appears only on the
HTML version of the report.
Jobname
The playback job name. This field appears only on the HTML version of the report.
Jobnumber
The playback job number. This field appears only on the HTML version of the report.
MQGroup Number
The number of the group in which the reported script was played back. Groups are
numbered sequentially.
Script Name
The name of the script.
Number
The number of the message being reported. Messages are numbered sequentially
within the connection.
ID
The ID Hiperstation for WebSphere MQ assigns the message set, group of related
messages, during playback.
Start Time
The date and time the given message set began playing back.
Reporting
Finish Time
The date and time playback of the message set is completed.
Duration
The amount of time it took for the given message set to play back.
Total
A row of statistics for the given script.
Number
The total number of message sets within the script.
Minimum Duration
The shortest response duration within the script.
Maximum Duration
The longest response duration within the script.
Average Duration
The average of all response durations for the given script.
MQGroup Total
A row of statistics for each MQGroup played back.
Number
The total number of message sets within the group.
Minimum Duration
The shortest response duration in the group.
Maximum Duration
The longest response duration in the group.
Average Duration
The average of all response durations in the group.
Report Total
A row of statistics for the entire playback job.
Number
The total number of message sets played back.
Minimum Duration
The shortest response duration in the job.
Maximum Duration
The longest response duration in the job.
Average Duration
The average of all response durations in the job.
6-23
6-24
Hiperstation for WebSphere MQ User Guide
Reading Custom Reports (Field Definitions)
The following table lists custom reporting fields and provides definitions. See the IBM
WebSphere MQ manuals for additional information.
Table 6-1. Report Field Names and Descriptions
Field Name
Definition
ExpMQMessageAccountingToken (EXMQAT)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageApplIdentifyData (EXMQAI)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageApplOriginData (EXMQAO)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageBackoutCount (EXMQBC)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageCharSetID (EXMQCS)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageCorrelationID (EXMQCI)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageEncoding (EXMQEN)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageExpiry (EXMQEX)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageFeedback (EXMQFD)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageFormat (EXMQFM)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageMsgID (EXMQMI)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePersistence (EXMQPS)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePriority (EXMQPR)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePutApplName (EXMQPN)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePutApplType (EXMQPA)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePutDate (EXMQPD)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessagePutTime (EXMQPT)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageReplyToQueue (EXMQRQ)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageReplyToQueueMgr (EXMQRM)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageReport (EXMQRO)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageType (EXMQTY)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageUserIdentifier (EXMQUI)
Expected value - from this field in the MQMessageDescriptor (MQMD).
ExpMQMessageVersion (EXMQMV)
Expected value - from this field in the MQMessageDescriptor (MQMD). S
MQGroupDuration (MQDR)
Amount of time it took for a particular MQGroup to play back.
MQGroupFinishTime (MQFT)
The time that a particular MQGroup completed playback.
MQGroupID (MQID)
Value specified by the ID parameter of the MQGroup statement.
MQGroupNumber (MQNU)
Order in which the MQGroup statement appears within the control cards.
MQGroupReturnCode (MQRC)
Playback return code for a particular MQGroup.
MQGroupStartTime (MQST)
The time that a particular MQGroup began playback.
MQGroupStatementCount (MQCN)
Number of MQGroup statements in the playback.
MQMessageAccountingToken (MQAT)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageApplIdentifyData (MQAI)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageApplOriginData (MQAO)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageBackoutCount (MQBC)
Actual value - from this field in the MQMessageDescriptor (MQMD).
Reporting
6-25
Table 6-1. Report Field Names and Descriptions
Field Name
Definition
MQMessageCharSetID (MQCS)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageCorrelationID (MQCI)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageCountMessageSet (MQMC)
Number of MQMessage entries related to a particular MQMessageSet.
MQMessageCountQueue (MQCQ)
Number of MQMessage entries related to a particular MQOpenQueue.
MQMessageEncoding (MQEN)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageExpectedInbound (MQME)
Data from the GET of the queue during the recording.
MQMessageExpiry (MQEX)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageFeedback (MQFD)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageFormat (MQFM)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageID (MMID)
ID associated with the MQMessage.
MQMessageInbound (MQMB)
Data from the GET of the queue.
MQMessageMsgID (MQMI)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageNumber (MMNU)
Order in which the WebSphere MQ request appears within the script.
MQMessageOutbound (MQMO)
Data PUT to the queue.
MQMessagePersistence (MQPS)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessagePriority (MQPR)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessagePutApplName (MQPN)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessagePutApplType (MQPA)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessagePutDate (MQPD)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessagePutTime (MQPT)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageQueueManagerAndQueue (QMAQ) Field composed of the queue manager name and the queue name,
separated by a colon.
MQMessageReplyToQueue (MQRQ)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageReplyToQueueMgr (MQRM)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageReport (MQRO)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageSetCount (MSSC)
Number of MQMessageSets found for a specific MQScript.
MQMessageSetDuration (MSSD)
Amount of time it took for a particular MQMessageSet to play back.
MQMessageSetFinishTime (MSTF)
The time that a particular MQMessageSet completed playback.
MQMessageSetID (MMSI)
ID associated with the MQMessageSet.
MQMessageSetNumber (MSSN)
Order in which the message set appears within the script.
MQMessageSetStartTime (MSTS)
The time that a particular MQMessageSet began playback.
MQMessageType (MQTY)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageUserIdentifier (MQUI)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQMessageVersion (MQMV)
Actual value - from this field in the MQMessageDescriptor (MQMD).
MQOpenQueueAttempted (MQOA)
Number of attempts at opening this message queue.
MQOpenQueueCount (MQOC)
Number of WebSphere MQ queues opened for a specific MQScript.
MQOpenQueueDuration (OQDR)
Amount of time it took for a particular MQScript to play back.
MQOpenQueueFailed (MQOF)
Number of failed attempts at opening this message queue.
MQOpenQueueFinishTime (CLQT)
The time that a particular MQOpenQueue completed playback.
6-26
Hiperstation for WebSphere MQ User Guide
Table 6-1. Report Field Names and Descriptions
Field Name
Definition
MQOpenQueueID (OQID)
ID associated with the <MQ_OPEN> tag.
MQOpenQueueManagerName (QMNA)
WebSphere MQ queue manager name in use.
MQOpenQueueMessageRate (MQMR)
Average rate that messages are processed for a particular MQOpenQueue.
MQOpenQueueName (QNAM)
WebSphere MQ queue name in use.
MQOpenQueueNumber (OQNU)
Order in which the <MQ_OPEN> tag appears within the script.
MQOpenQueueStartTime (OPQT)
The time that a particular MQOpenQueue began playback.
MQOpenQueueStatus (MQOP)
Indicates how the queue was closed (either by Hiperstation for
WebSphere MQ or WebSphere MQ). 3 indicates there was not a close in
the script; 1 indicates there was a close in the script.
MQScriptDuration (MQSD)
Amount of time it took for a particular MQScript to play back.
MQScriptFinishTime (MSCF)
The time that a particular MQScript completed playback.
MQScriptName (MSCN)
Name of the script being played back.
MQScriptNumber (MQSN)
Order in which the MQScript statements appear within the MQGroup
statement.
MQScriptReturnCode (MSRC)
Playback return code for a particular MQ script.
MQScriptStartTime (MSCS)
The time that a particular MQScript began playback.
MQScriptStatementCount (MQSC)
Number of MQScript statements for a specific MQGroup.
7-1
Chapter 7.
Archive Functions
Chap 7
Introducing the Archive Function
Hiperstation is a zSeries automated testing solution that enables systems and applications
programmers and quality assurance personnel to streamline the testing process and
improve the quality of their applications. In addition to automated testing, Hiperstation
can address other business issues as well, specifically, security monitoring.
Using Hiperstation as a Security Monitoring Tool
Today's mainframe application organizations use two standard facilities for managing
security. First, security systems prevent unauthorized users from logging on and then
controlling access privileges of authorized users. Second, monitoring facilities, such as
System Management Facilities (SMF), log a variety of activities performed by the user,
including opening datasets and logging off. Most organizations have programs that postprocess their SMF records to produce audit reports.
Hiperstation can provide what these facilities lack, which is an in-depth record of the
detail on each screen the user accessed on their terminal. Hiperstation's Auditing Archive
Recording feature allows you to record all users of a given application that you want to
monitor, select users across all of the applications that they use, and for VTAM,
document each keystroke and screen that the user sees. Hiperstation can be likened to an
electronic security camera installed directly behind the user. The user is not aware that
the recording is taking place unless the security team chooses to disclose this
information.
Hiperstation is the watchdog for users who are able to gain access to the mainframe and
are able to navigate throughout the system. Rather than relying only on security
violations and SMF records, the Hiperstation script is a true picture of what the user saw
and did.
Implementing Hiperstation as a Security Monitoring Tool
Implementing Hiperstation for WebSphere MQ as a security-monitoring tool requires
analysis and agreement between management and the system implementation team. You
need to decide:
• Whether to monitor all mainframe users or just a selected group of users
• Whether to record groups or users in separate recordings or all together in one.
• Whether to record continuously
• Who will be responsible for administering the recording
• Where to store the recorded data and scripts in secured files
• Who will be accountable for the web reports
• How long to store the recorded data
• How to analyze the web reports
7-2
Hiperstation for WebSphere MQ User Guide
After you decide what to do about these issues, an implementation plan can be
developed. Although the details will vary slightly, the general task list includes the
following items:
• Set up and start Global Recording. Compuware recommends that you integrate the
Global Recording Started Task into the IPL process. This allows data capture to begin
immediately with any IPL.
• Implement your Archive Audit Request scheme (for example, how many requests
record which users, terminals or applications). Use the Name and Description fields
to help convey the probable contents of each Archive Audit Request to the users.
• Train your Search users to use the tool effectively (for example, restricting date/time
of searches to save processing time and DASD space consumption).
• Ensure that users who plan to execute the Search Tool against the Archive Audit
Requests understand the Archive Audit Request schemes.
• Ensure RACF controls are in place to provide proper access protection to the Archive
Audit Repositories.
• Encourage Search users to build a repository of shared search criteria wherever
possible.
• Set goals for report management (for example, cleanup and final disposition of Web
Reports) by the Search users.
Summary
Hiperstation can provide an organization with a comprehensive audit trail of online user
activity. Unlike other auditing processes that require looking at security logs and SMF
records, Hiperstation provides a complete audit trail of what the user executed on their
terminal with the application in question. The Archive Search Web Report capability
gives the auditor the ability to step through each screen the user viewed. The auditor will
see all traffic for that user from logon to logoff.
The benefit of using Hiperstation for security monitoring can be summed up in two
words: maximum accountability. By combining the analysis potential of Hiperstation
scripts with existing security tools, the security auditor is able to analyze and quantify
the impact of all security breaches.
Figure 7-1. Hiperstation Archive Recording Setup Screen
Hiperstation ------------Command ===>
3270 - Archive Criteria
------------------------
Press ENTER to continue, or PF1 for help, or CANCEL to exit.
Name . . . . . . . . CICSPROD
Description. . . . . Capture All Data for Region CICSPROD
Repository Registry Dataset. . . ‘CICSPROD.ALLDATA’
Terminal . . . . . . . . .
Application. . . . . . . .
Userid . . . . . . . . . .
OR
Global Record Manager List
. . *
Use an asterisk for wildcarding
. . CICSPROD the Terminal, Application or Userid
. . *
fields.
. .
MM / DD / YYYY
Start Date . . . 00 / 00 / 0000
End Date . . . . 00 / 00 / 0000
Second filter GRM List . .
HH : MM : SS
Start Time . . . 00 : 00 : 00
End Time . . . . 00 : 00 : 00
(Optional)
(Optional)
Figure 7-1 shows the Archive Criteria setup screen. In this example, we are capturing all
of the activity for our CICSPROD region, regardless of terminal ID or user ID. Notice that
Archive Functions
7-3
there is no specified start or end date or time. Therefore, our recording will continue
24x7 as long as the Global Recording Started Task is running.
We have specified a meaningful NAME and DESCRIPTION for the request. We have also
specified a Repository Registry Dataset of CICSPROD.ALLDATA. This name will be used to
generate the Registry Dataset (VSAM file containing date/time indexes to the created
repository segments). The Repository Registry Dataset name will also be used to generate
the dataset names of the repository segments by adding a sequence number to it (for
example, #0000001, #0000002, etc.).
Searches can be performed automatically against any repository segment that has filled
up and switched, or has been switched manually, with an e-mail notification being sent
to the owner of the request.
Note:
E-mail notification is set up using Hiperstation profiles. See the Hiperstation
Installation Guide for details.
Using the Archive Function
For complete details on how to use the Archive Function, see the Hiperstation Auditor User
Guide.
7-4
Hiperstation for WebSphere MQ User Guide
8-1
Chapter 8.
Testing Scenarios
Chap 8
This chapter provides comprehensive testing scenarios to teach you how to use
Hiperstation for WebSphere MQ.
These scenarios are based on testing a Customer Order and Credit Inquiry application that is
detailed on page 8-1. These are progressive examples. That is, concepts presented in the
earlier scenarios are used in subsequent scenarios and the testing strategies become more
advanced with each scenario.
To help you conceptualize these scenarios, this release supplies the following samples
generated from the example application:
• Repositories containing activity captured with Global Recording. Find these
repositories in your system-level repositories datasets.
• Scripts generated from those repositories. Some of the scripts have been modified to
support the given testing scenario. Locate the script files in the script library
(SQQFSCRP).
• Logs files generated during script creation. Some of the log files have been modified
to support the given testing scenario. Find the log files in your system-level playback
control library.
• External Files generated from playing back modified scripts. These files are used as
input for other testing scenarios. Find these files in the Hiperstation samples library
(SQQFSAMP).
• A script analysis control member, discussed in Chapter 5, “Unattended Playback”.
Find the ANALYZE member in your system-level playback control library.
• Report control and report members, discussed in Chapter 6, “Reporting”. Find these
assets in your system-level report control library.
Each scenario provides a list of supporting sample files. See Appendix B, “Hiperstation for
WebSphere MQ Samples Index” for a list of all sample files ordered alphabetically.
Use the samples, along with the appropriate instructional chapters, to replicate the tasks
involved in each scenario. For example, using a sample capture repository in Chapter 3,
“Scripts and Subset Repositories”, create scripts with the filtering specifications from a
given scenario. Verify your work by comparing the scripts you create to the sample
scripts, as described in “Analyzing and Comparing Scripts” on page 8-52.
Understanding the Example Application’s Data Flow
The scenarios presented in this chapter are based on an example customer order and
credit inquiry application that is comprised of three programs:
• PDA016 Customer Order Inquiry program
• PDA017 Customer Order Inquiry Processing program
• PDA018 Credit Inquiry program
The application communicates with a remote application that returns information
necessary for PDA018 processing.
8-2
Hiperstation for WebSphere MQ User Guide
In order to understand these testing scenarios, you must understand the application’s
data flow. Refer to Figure 8-1 on page 8-3 as you read through the following processing
description. The circled numbers on the illustration correspond to the following steps.
1. Processing begins with a customer order and credit inquiry request. PDA016
(Customer Order Inquiry Program) receives the request and issues:
– An MQ_PUT to the MQ Customer Order Inquiry Queue that triggers PDA017
(Customer Order Inquiry Processing Program).
– An MQ_GET with a wait interval to the MQ Customer Order Inquiry Response
Queue to be satisfied when PDA017 completes processing.
– An MQ_GET with a wait interval to the MQ Credit Inquiry Response Queue to be
satisfied when PDA018 completes processing.
2. PDA017 responds to the triggering MQ_PUT from PDA016 and issues an MQ_GET to
MQ Customer Order Inquiry Queue.
3. PDA017 locates the customer’s order information and issues:
– An MQ_PUT to the MQ Customer Order Inquiry Response Queue that answers
the MQ_GET from PDA016.
– An MQ_PUT to the MQ Credit Inquiry Queue that triggers PDA018 (Credit
Inquiry Program).
PDA017 processing is complete.
4. PDA018 responds to the triggering MQ_PUT from PDA017 and issues an MQ_GET to
the MQ Credit Inquiry Queue.
5. PDA018 begins processing by issuing:
– An MQ_PUT to the remote Credit Bureau Inquiry Queue that will drive remote
processing.
– Three MQ_GETs to Credit Bureau Inquiry Response Queue with wait intervals.
6. After the MQ_GETs are satisfied with responses or expire, PDA018 determines credit
authorization and issues an MQ_PUT to MQ Credit Inquiry Response Queue, which
answers the MQ_GET from PDA016.
Testing Scenarios
Figure 8-1. Flowchart for the Sample Customer Order And Credit Inquiry Application
8-3
8-4
Hiperstation for WebSphere MQ User Guide
Playing Back Multiple Scripts Serially
This scenario demonstrates playing back the same script serially, multiple times, to
ensure the application behaves consistently.
It begins by capturing activity from the entire customer order and credit inquiry
application (Figure 8-1 on page 8-3); then generating a script containing only the activity
produced by the PDA016 Customer Order Inquiry Program (Figure 8-2). The script drives
the rest of the application during playback. PDA017 Customer Order Inquiry Program
and PDA018 Credit Inquiry Program should respond to a given request the same way
each time the script is played back. For example, if the script contained a single
transaction requesting Bill Smith’s order and credit authorization, PDA017 and PDA018
should return Bill Smith’s order information and the same credit authorization each time
you play back the script.
Figure 8-2. Activity Captured in Sample Script SCRMS000
This scenario also requires editing the script and the SCRIPT statements in the log file
before submitting the unattended playback job.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. Then run an analyze job on each script, saving the sorted data, and generate a
baseline HTML Exception Report to ensure that the script you created contains the same
activity as the sample script.
Supporting Sample Files
The sample files supporting this scenario include:
Testing Scenarios
8-5
• Repository: REPOS1
• Log: LOGMS000
• Script:
SCRMS000 (original script),
SCRMS001 (contains all but the MQ_DISCONNECTS from the original script),
SCRMS002 (contains all MQ_DISCONNECTs associated with the activity in the
original script)
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following three filters during script creation to
generate a script containing only PDA016’s activity. Refer to Figure 8-2 on page 8-4 to see
the application flow of PDA016 and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.QUEUE.ALIAS
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.RESPONSE.QUEUE.ALIAS
Event
EQ GET
Filter 3
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CREDIT.AUTH.RESP.QUEUE.
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Script and Log Editing Requirements
Serial playback of multiple scripts or the same script multiple times is achieved by
placing the appropriate SCRIPT statements under the same MQGROUP statement.
Hiperstation for WebSphere MQ processes all activity on a connection ID until an
MQ_DISCONNECT is encountered. After the disconnect is processed, that connection ID
cannot be used again during playback of the given MQGROUP. The Connection IDs
within a script are numbered sequentially. Therefore, two scripts will contain minimally
one connection ID that is the same. If you plan to serially play back the same script, the
same connection IDs are processed for each replay. To avoid failed connections during
replay, remove the MQ_DISCONNECTS from all scripts within the group and save them
8-6
Hiperstation for WebSphere MQ User Guide
in a separate PDS member. Play this member back as the last script in the group to
process the MQ_DISCONNECTs.
Refer to the following samples to see how this is done.
• SCRMS000 contains all of the activity for PDA016.
• SCRMS001 has had the MQ_DISCONNECTs edited out.
• SCRMS002 contains the removed MQ_DISCONNECTs.
After you have edited the disconnects out of the scripts, open the LOG file you generated
while creating your scripts. Scroll to the bottom to locate the script statements. The
SCRIPT statement in your LOG file should look something like this, except the script
name (SCRMS000) will reflect the name you provided.
* SCRIPT NUMBER(1)
MQGROUPID(1)STIME('2006/06/26_10:55:54.685787')
SCRIPT(SCRMS000)
1. Change the script name to point to the script without the MQ_DISCONNECTs.
2. Either add the REPEAT parameter to the SCRIPT statement or copy the SCRIPT
statement as many times as desired to play it back. See “SCRIPT Statement” on page
5-11.
3. At the end, add a SCRIPT statement to play back the file containing the
MQ_DISCONNECTS.
Sample LOG file LOGMS000 reflects these edits:
* SCRIPT NUMBER(1)
MQGROUPID(1)STIME('2006/06/26_10:55:54.685787')
SCRIPT(SCRMS001)
SCRIPT(SCRMS001)
SCRIPT(SCRMS001)
SCRIPT(SCRMS002)
Playing Back Scripts Simultaneously (Multiple Groups)
This scenario demonstrates playing back one or more scripts simultaneously to ensure
the integrity of the MQ activity propagated by the application. For example, the sample
application can be accessed by several phone operators at the same time. Use this type of
testing to ensure the application will perform efficiently if accessed by multiple users.
This scenario begins by capturing activity from the entire customer order and credit
inquiry application (Figure 8-1 on page 8-3) and then generating three scripts:
• One containing the MQ_PUTs issued by PDA016
• One containing the MQ_GETs issued by PDA016 to retrieve customer order
information from PDA017
• One containing the MQ_GETs issued by PDA016 to retrieve credit authorization from
PDA018
Testing Scenarios
8-7
Figure 8-3. Activity Captured in Sample Scripts SCRMG001, SCRMG002, SCRMG003
The scripts then drive the rest of the application during playback. PDA017 Customer
Order Inquiry Program and PDA018 Credit Inquiry Program should respond to each
request in approximately the same amount of time. During playback, generate a Script
Timing Summary (page 6-20) and Response Time Summary (page 6-21) to review the
application’s performance.
This scenario requires manually combining the LOG files from each script creation before
submitting the unattended playback job.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. If you wish to compare the scripts you generate to the sample scripts, run an
analyze job on each script saving the sorted data. Generate a baseline HTML Exception
Report to ensure that the script you created contains the same activity as the sample
script.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
• Log:
LOGMG001
LOGMG002
LOGMG003
LOGMG000
The first three logs were generated during script creation. The last was created
manually. It is combination of the first three logs.
8-8
Hiperstation for WebSphere MQ User Guide
• Script:
SCRMG001 (contains the MQ_PUT issued by PDA016)
SCRMG002 (contains the MQ_GET issued by PDA016 to retrieve customer order
information from PDA017)
SCRMG003 (contains the MQ_GET issued by PDA016 to retrieve credit authorization
from PDA018)
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Run through script creation three times to generate three scripts
and three logs. Apply the following filters to isolate the desired activity. See Figure 8-3 on
page 8-7 to see the application flow of PDA016 and the names of the queues it uses.
To create a script containing the MQ_PUT issued by PDA016, apply the following filters:
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.QUEUE.ALIAS
Event
EQ PUT
To create a script containing the MQ_PUT issued by PDA016 to retrieve customer order
information from PDA017, apply the following filters:
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.RESPONSE.QUEUE.ALIAS
Event
EQ GET
To create a script containing the MQ_PUT issued by PDA016 to retrieve credit
authorization information from PDA018, apply the following filters:
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CREDIT.AUTH.RESP.QUEUE.
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG files.
Log Editing Requirements
Simultaneous playback of multiple scripts or the same script multiple times is achieved
by placing the appropriate SCRIPT statements under separate MQGROUP statements. The
log file generated during script creation always places the SCRIPT statements in a single
group. Use a standard file editing tool to create a copy of the first log file. Give it a
unique name. Then copy the MQGROUP and SCRIPT statements from the second log
files and paste them into the new log file. Additionally, each MQGROUP statement will
have an ID of 1. Give each group a unique ID for reporting purposes. See the following
samples to see how this is done.
• LOGMG001 contains the MQGROUP and SCRIPT statements for SCRMG001.
Testing Scenarios
8-9
• LOGMG002 contains the MQGROUP and SCRIPT statements for SCRMG002.
• LOGMG003 contains the MQGROUP and SCRIPT statements for SCRMG003.
• LOGMG000 contains the MQGROUP and SCRIPT statements from the previous three
logs.
Repeating Simultaneous Playback (Count and Repeat)
This scenario demonstrates playing back a group of one or more scripts simultaneously,
then repeating the simultaneous playback.
This scenario begins by capturing activity from the entire customer order and credit
inquiry application (Figure 8-1 on page 8-3), then generating a script containing only
some of the activity produced by the PDA018 Credit Inquiry Program. For each customer
credit inquiry, PDA018 issues an MQ_PUT to the remote inquiry queue and three
MQ_GETs with wait intervals to the response queue.
Figure 8-4. Activity Captured in Sample Script SCRCR001
8-10
Hiperstation for WebSphere MQ User Guide
The script then drives remote processing.
During playback, generate a:
• Script Timing Summary (page 6-20) and Response Time Summary (page 6-21) to
review the remote processing performance.
• HTML Exception Report (page 6-17) to compare recorded remote processing
responses to the responses received during playback. You can also generate a custom
comparison report in TEXT or CSV format.
This scenario requires adding the appropriate parameters to the MQGROUP statement in
the LOG file before submitting the unattended playback job.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. If you wish to compare the scripts you generate to the sample scripts, run an
analyze job on each script saving the sorted data. Generate a baseline HTML Exception
Report to ensure that the script you created contains the same activity as the sample
script.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
• Log: LOGCR000
• Script: SCRCR001
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-4
on page 8-9 to view the application flow of PDA018 and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Testing Scenarios
8-11
Script and Log Editing Requirements
To achieve repeated, simultaneous group playback, add COUNT and REPEAT parameters
to the MQGROUP statement in the log file before submitting the playback job.
• COUNT(x) plays X instances of the MQGROUP. All instances simultaneously begin
playback.
• REPEAT(y) repeats the playback y times.
Refer to sample log LOGCR000 for an example of the statement syntax.
If the MQGROUP contains more than one script, strip the MQ_DISCONNECTs out of
each script and save them in a separate PDS member. Add a SCRIPT statement to the end
of the group to replay the member containing the disconnects. See “Playing Back
Multiple Scripts Serially” on page 8-4 to find out how and why you need to do this.
Synchronizing Group Playback (USESTIME)
This scenario demonstrates synchronizing MQGROUP playback. Normally, all
MQGROUPs in the job begin playing back at the same time. However, you can stagger
group playback to accommodate application timing requirements. For example, if the
transactions in the scripts belonging to the first group must begin execution before the
transactions in the second group, use the USESTIME CONTROL statement parameter to
delay playback of the second group.
Each MQGROUP statement bears an STIME parameter that indicates when that first
transaction in the group began. The USESTIME parameter forces playback of the groups
relative to each group’s STIME. For example, if the STIME for the first group is one hour
earlier than the STIME in the second group, the second group begins playing back an
hour after the first.
If you are playing back the same script in different groups, the STIME is the same for each
group. Apply the USESTIME parameter and modify the STIME to stagger playback.
This scenario entails capturing activity from the entire customer order and credit inquiry
application (Figure 8-1 on page 8-3), generating a script containing only the activity
produced by the PDA018 Credit Inquiry Program, and playing back the script three times
with each instance beginning three minutes later than the previous instance. Track the
response times from each group to ensure that application resources are available when
the second and third groups begin playing back.
8-12
Hiperstation for WebSphere MQ User Guide
Figure 8-5. Activity Captured in Sample Script SCRTS001
During playback, generate a:
• Script Timing Summary (page 6-20) and Response Time Summary (page 6-21) to
review the remote processing performance.
• HTML Exception Report (page 6-17) to compare recorded remote processing
responses to the responses received during playback. You can also generate an
custom comparison report in TEXT or CSV format.
This scenario requires modifying the LOG file before submitting the unattended playback
job.
The rest of this section details each step required to achieve the scenario, except for
capture. Use the filtering information provided in this discussion to generate scripts from
sample repository REPOS1. To compare the scripts you generate to the sample scripts, run
an analyze job on each script saving the sorted data. Generate a baseline HTML
Exception Report to ensure that the script you created contains the same activity as the
sample script. See “Analyzing and Comparing Scripts” on page 8-52.
Testing Scenarios
8-13
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
• Log: LOGTS000
• Script: SCRTS001
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-5
on page 8-12 to view the application flow of PDA018 and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Script and Log Editing Requirements
To stagger multiple playbacks of the same MQGROUP:
1. Copy and paste the MQGROUP statements as many times as desired to play the
group back.
2. Modify the STIME for each group.
3. Either add a CONTROL statement directly to the log file that bears the USESTIME
parameter, as shown in LOGTS000, or add the parameter to the CONTROL statement
in the playback control member specified on the SET ACTION statement (top of log
file).
Note:
Playback CONTROL statements added to the log file are concatenated to the
CONTROL statement in the playback control member specified on the SET
ACTION statement.
If the MQGROUP contains more than one script, strip the MQ_DISCONNECTs out of
each script and save them in a separate PDS member. Add a SCRIPT statement to the end
of the group to replay the member containing the disconnects. See “Playing Back
Multiple Scripts Serially” on page 8-4 to find out why you need to do this and how.
8-14
Hiperstation for WebSphere MQ User Guide
Controlling Playback Timing (USESTIME and THOPT)
This scenario demonstrates controlling how fast each MQGROUP plays back and when,
in relationship to the other groups, they begin playing back. Normally, all MQGROUPs in
the job begin playing back at the same time as fast as the system allows. However, you
can simulate live user activity by having groups play back in the order and at
approximately the same speed as they were recorded.
Each MQGROUP statement bears an STIME parameter that indicates when that first
transaction in the group began. The USESTIME playback CONTROL statement parameter
forces playback of the groups relative to each group’s STIME. For example, if the STIME
for the first group is one hour earlier than the STIME in the second group, the second
group begins playing back an hour after the first.
The STIME is the same for each group if you are playing back the same script in different
groups. Apply the USESTIME parameter and modify the STIME to stagger playback.
The think option 2, THOPT(2), playback CONTROL statement parameter forces the group
to play back at approximately the same speed as it was recorded. Each transaction within
a script bears a <TIME> tag that indicates when the transaction was recorded.
Hiperstation for WebSphere MQ uses the difference between <TIME> tags to determine
the amount of time to wait before playing the next transaction.
Note:
Due to processing capacity available during playback and/or system throttling of
batch playback, the playback duration may be longer than the recording
duration.
This scenario entails capturing activity from the entire customer order and credit inquiry
application (Figure 8-1 on page 8-3), generating a script containing only the activity
produced by the PDA018 Credit Inquiry Program, and playing back the script three times
beginning three minutes apart and at recorded speed. Track the response times from each
group to ensure that the application responds similarly when the second and third
groups begin playing back.
Testing Scenarios
8-15
Figure 8-6. Activity Captured in Sample Script SCRTD001
During playback, generate:
• A Script Timing Summary (page 6-20) and Response Time Summary (page 6-21) to
review the remote processing performance and ensure application resources are
available when subsequent groups play back.
• An HTML Exception Report (page 6-17) to compare recorded application responses to
the responses received during playback or to compare response times in the script to
response times in the playback. You can also generate a custom comparison report in
TEXT or CSV format.
This scenario requires modifying the LOG file before submitting the unattended playback
job.
The rest of this section details each step required to achieve the scenario except for
capture. Use the filtering information provided in this discussion to generate scripts from
sample repository REPOS1. If you wish to compare the scripts you generate to the sample
scripts, run an analyze job on each script saving the sorted data and generate a baseline
HTML Exception Report to ensure that the script you created contains the same activity
as the sample script. See “Analyzing and Comparing Scripts” on page 8-52.
8-16
Hiperstation for WebSphere MQ User Guide
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
• Log: LOGTD000
• Script: SCRTD001
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing the credit inquiry of PDA018 and response retrieval activity. Refer to
Figure 8-6 on page 8-15 to see the application flow of PDA018 and the names of the
queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Script and Log Editing Requirements
To stagger multiple playbacks of the same MQGROUP and play each group back at the
speed it was recorded:
1. Copy and paste the MQGROUP statements as many times as desired to play the
group back.
2. Modify the STIME for each group.
3. Either add a CONTROL statement directly to the log file that bears the USESTIME and
THOPT(2) parameters, as shown in LOGTD000, or add the parameters to the
CONTROL statement in the playback control member specified on the SET ACTION
statement (top of log file).
Note:
Playback CONTROL statements added to the log file are concatenated to the
CONTROL statement in the playback control member specified on the SET
ACTION statement.
If the MQGROUP contains more than one script, strip the MQ_DISCONNECTs out of
each script and save them in a separate PDS member. Add a SCRIPT statement to the end
Testing Scenarios
8-17
of the group to replay the member containing the disconnects. See “Playing Back
Multiple Scripts Serially” on page 8-4 to find out how and why you need to do this.
Reversing Playback (PLAY_TO)
This scenario demonstrates using the PLAY_TO parameter to reverse playback. That is,
Hiperstation for WebSphere MQ plays MQ_GETs as MQ_PUTs and vice versa. In this
scenario, the purpose of reversing playback is to populate a queue with requests that were
retrieved by the subject application during recording.
The Credit Bureau Processing program is driven by a remote (off-site) application,
PDA018. PDA018 PUTs requests to a remote queue that uses channel initiators (CHINs) to
transmit the request to the Credit Bureau Inquiry Queue. The Credit Bureau Processing
Program then GETs the request from the local inquiry queue and PUTs its responses to a
remote response queue.
Figure 8-7. Activity Captured in Sample Script SCRPT001
Testing the Credit Bureau Processing Program requires replicating the activity that drives
the program. However, it may be inconvenient to play back activity at the remote
location. To test without involving the remote location, capture the Credit Bureau
8-18
Hiperstation for WebSphere MQ User Guide
Processing Program’s activity, build a script containing only the GETs, and play back the
script in reverse to PUT the recorded requests into the inquiry queue. Once the request
are in the queue, the Credit Bureau Processing Program will automatically GET the
requests and begin processing.
This scenario teaches you how to use the PLAY_TO parameter. Therefore, this section
details only the steps necessary to repopulate the queue. However, if you wanted to
validate application processing in this scenario, you would:
1. Initiate a Global Recording to capture the Credit Bureau Processing Program activity
resulting from repopulating the queue. Begin recording before playing back the script
in reverse.
2. Create a script from that capture containing only the MQ_PUTs.
3. Run an analyze job on the script and save the sorted data.
4. Create a script from the initial recording repository (REPOS3 in this scenario)
containing only the MQ_PUTs.
5. Run an analyze job on the script and save the sorted data.
6. Generate a Baseline Comparison Report using the two data collections.
Additionally, this scenario exemplifies using the QUEUE_MANAGER parameter to
override the queue manager in the script. That is, the activity in the sample repository
REPOS3, was actually recorded on a production system containing queues with the same
name as the test system. Use a queue manager override to play the scripts back on the test
system.
This scenario requires modifying the LOG file before submitting the unattended playback
job. The rest of this section provides a list of supporting sample files, describes the
filtering required to generate the script, and details the log file edits required to perform
the unattended playback job.
Use the filtering information provided in this discussion to generate scripts from sample
repository REPOS3. To compare the scripts you generate to the sample scripts, run an
analyze job on each script saving the sorted data. Generate a baseline HTML Exception
Report to ensure that the script you created contains the same activity as the sample
script. See “Analyzing and Comparing Scripts” on page 8-52.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS3
• Log: LOGPT000
• Script: SCRPT001
Filters
REPOS3 contains Credit Bureau Processing Program activity from the production
environment that uses queue manager O530. Apply the following filter during script
creation to generate script containing only the GETs issued by the Credit Bureau
Processing Program.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ O530
Object/Queue name EQ PDAPROD*
Testing Scenarios
Field Name
RO Filtering Criteria
Event
EQ GET
Note:
8-19
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Log Editing Requirements
In the log file used to run the unattended playback job:
• Add the QUEUE_MANAGER(M530) parameter to the MQGROUP statement to play
back the script on the test system (M530) instead of the production system (O530).
• Add the PLAY_TO(CONNECTION_ID(2)) parameter to the MQGROUP statement to
reverse the playback of CONNECTION_ID(2) activity.
Note:
In batch processing, Hiperstation for WebSphere MQ gives a unique
connection ID to each MQ_CONNECT that occurred during the job. In
foreground processing, such as CICS applications, each transaction bears a
unique connection ID. Specify one or more connection IDs on the
CONNECTION_ID(x) parameter.
Refer to sample LOGPT000 to see these edits.
Overriding Queues (FROM_QUEUE/TO_QUEUE)
This scenario demonstrates using the following MQGROUP statement parameters:
• QUEUE_MANAGER to play back a script in a test environment.
• PLAY_TO with GET_FROM_QUEUE and PUT_TO_QUEUE to reverse playback and
direct application requests and responses to the queues in a test environment. That
is, Hiperstation for WebSphere MQ plays MQ_GETs as MQ_PUTs and vice versa.
Reversing playback, in the scenario, populates the initial inquiry queue with requests
that were retrieved by the subject application during recording. It also empties the
response queue at the end of processing and allows you to compare the application’s
recorded responses to the responses resulting from playback.
The Credit Bureau Processing program is driven by a remote (off-site) application,
PDA018. PDA018 PUTs requests to a remote queue that uses channel initiators (CHINs) to
transmit the request to the Credit Bureau Inquiry Queue. The Credit Bureau Processing
Program then GETs the request from the local inquiry queue and PUTs its responses to a
remote response queue.
8-20
Hiperstation for WebSphere MQ User Guide
Figure 8-8. Activity Captured in Sample Script SCRTQ001
Testing the Credit Bureau Processing Program requires replicating the activity that drives
the program. However, it may be inconvenient to play back activity at the remote
location. To perform the test without involving the remote location, capture the Credit
Bureau Processing Program’s activity, build a script containing the GETs and PUTs, and
play back the script in reverse. Hiperstation for WebSphere MQ plays:
• The GETs as PUTs, which put the recorded requests into the inquiry queue, thus
driving application activity. As soon as requests exist in the inquiry queue, the
application automatically GETs the requests and begins processing.
• The PUTs as GETs, which empty the response queue at the end of processing.
Generate a report, such as the HTML Exception Report, that compares the reversed
PUTs to the PUTs resulting from playback to ensure the application responded as
expected.
Testing Scenarios
8-21
This scenario requires modifying the LOG file before submitting the unattended playback
job. The rest of this section provides a list of supporting sample files, describes the
filtering required to generate the script, and details the log file edits required to perform
the unattended playback job.
Use the filtering information provided in this discussion to generate scripts from sample
repository REPOS3. To compare the scripts you generate to the sample scripts, run an
analyze job on each script saving the sorted data. Generate a baseline HTML Exception
Report to ensure that the script you created contains the same activity as the sample
script. See “Analyzing and Comparing Scripts” on page 8-52.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS3
• Log: LOGTQ000
• Script: SCRTQ001
Filters
REPOS3 contains Credit Bureau Processing Program activity from the production
environment that uses queue manager O530. It also contains activity from the CHIN and
remote queue transmission activity that MQ performed. To generate a script containing
only the MQ_GETs and MQ_PUTs that the application issued, apply the following filters
during script creation.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ O530
Object/Queue name EQ PDAPROD*
Event
EQ GET
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ O530
Object/Queue name EQ PDAPROD*
Event
Note:
EQ PUT
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
Log Editing Requirements
Add the following parameters to the MQGROUP statement in the log file used to run the
unattended playback job:
• QUEUE_MANAGER(M530)
to play back the script on the test system (M530) instead of the production system
(O530).
8-22
Hiperstation for WebSphere MQ User Guide
• PLAY_TO(CONNECTION_ID(2) on (PDAPRO.QLOCAL.CW01.TO.CW09.CREDIT.AUTH) GET_FROM_QUEUE(TEST.Q1))
to reverse the playback of CONNECTION_ID(2) activity that occurred on the
production inquiry queue against the test inquiry queue. In other words, populate
TEST.Q1 with the requests that were retrieved by the application from the production
inquiry queue during recording.
• PLAY_TO(CONNECTION_ID(2) on(PDAPRO.QREMOTE.CW09.TO.CW01.CREDIT.AUTH) PUT_TO_QUEUE (TEST.Q2))
to reverse the playback of CONNECTION_ID(2) activity that occurred on the
production response queue against the test response queue. In other words, empty
TEST.Q2 by playing the recorded PUTs as GETs, thus getting the responses that were
PUT there by the application during playback.
Note:
In batch processing, Hiperstation for WebSphere MQ gives a unique
connection ID to each MQ_CONNECT that occurred during the job. In
foreground processing, such as CICS applications, each transaction bears a
unique connection ID. Specify one or more connection IDs on the
CONNECTION_ID(x) parameter.
Refer to sample LOGTQ000 to see these edits.
Omitting Specified Activity (SKIP(CONNECTION_ID))
This scenario demonstrates using the SKIP(CONNECTION_ID) parameter on the
MQGROUP statement to prevent specified activity from playing back.
Customer order and credit inquiry application processing begins when PDA016 issues a
PUT to the Customer Order Inquiry Queue, a GET to the Customer Order Inquiry
Response Queue, and a GET to the Credit Inquiry Response Queue (Figure 8-9 on page
8-23). This activity drives the rest of the application. Play back PDA016 activity to test
PDA017 and PDA018. To accomplish this, capture activity from the application and
either filter out PDA017 and PDA018 activity during script creation or generate an
unfiltered script and use the SKIP(CONNECTION_ID) parameter to prevent PDA017 and
PDA018 activity from playing back. Generate an:
• Event Summary during script creation to review the events in the script and select
the appropriate connections to omit. You may also need to review the message
contents in the script to select the appropriate connections.
• Exception report during playback to compare the recorded responses from PDA017
and PDA018 to the responses resulting from playback.
The customer order and credit inquiry application runs in a CICS environment.
Hiperstation for WebSphere MQ gives each MQ transaction in a foreground processing
environment a unique connection ID. For instance, a script containing one complete
customer order and credit authorization inquiry would contain:
• CONNECTION_ID(1) consisting of an MQ_OPEN, the MQ_PUT and two MQ_GETs
that PDA016 issued, an MQ_CLOSE, and an MQ_DISCONNECT.
• CONNECTION_ID(2) consisting of an MQ_OPEN, the MQ_GET and two MQ_PUTs
that PDA017 issued, an MQ_CLOSE, and an MQ_DISCONNECT.
• CONNECTION_ID(3) consisting of an MQ_OPEN, the MQ_GETs and MQ_PUTs that
PDA018 issued, an MQ_CLOSE, and an MQ_DISCONNECT.
Note:
For applications using batch processing, Hiperstation for WebSphere MQ gives a
unique connection ID to each MQ_CONNECT that occurred during the job.
The rest of this section lists the sample files supporting this scenario and describes log
file edits necessary to prevent PDA017 and PDA018 activity from playing back.
Testing Scenarios
8-23
Figure 8-9. Activity from REPOS1 to Play Back
Supporting Sample Files
This scenario details skipping connections during playback of a CICS application script.
However, there are also samples that reflect using this parameter to skip connections
while playing back a batch processing application script.
The sample files supporting this scenario include:
• Repository: REPOS1 (CICS Application Capture Repository)
REPOS4 (Batch Application Capture Repository)
• Log: LOGSC000 (CICS Application Log)
LOGSC001 (Batch Application Log)
• Script: SCRSC000 (CICS Application Script)
SCRSC001 (Batch Application Script)
8-24
Hiperstation for WebSphere MQ User Guide
Log Editing Requirements
To prevent PDA017 and PDA018 activity from playing back, add the following parameter
to the MQGROUP statement in the log file used to run the unattended playback job:
SKIP(CONNECTION_ID(2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21))
See sample LOGSC000 to see the syntax of the entire MQGROUP statement.
Playing Back with PLAY_TO(CONNECTION_ID(*))
This scenario demonstrates playing multiple groups in reverse by using the
PLAY_TO(CONNECTION(*)) parameter on the MQGROUP statements. Each group
contains a single script with the same MQ activity. However, the activity in one script
was initiated by the Web service and the other by PDA016 Customer Order Inquiry
Program.
Testing the entire customer order and credit inquiry application (Figure 8-23 on page
8-44) requires playing back the initial inquiry request (PUT to Customer Order Inquiry
Queue) and the final response retrievals (GET from Customer Order Inquiry Response
Queue and GET from Credit Inquiry Response Queue). The Web service transmits this
activity through a CHIN. However, the capture does not contain CHIN activity because it
was limited to a single job name. As such, the activity needed to perform the test was not
captured for the Web service inquiry. You can still perform the test by generating scripts
that contain the:
• MQ_GET issued by PDA017
• MQ_PUT issued by PDA017 to the Customer Order Inquiry Response Queue
• MQ_PUT issued by PDA018 to the Credit Inquiry Response Queue
Note:
Refer to the black boxes in Figure 8-23 on page 8-44.
Then using PLAY_TO(CONNECTION_ID(*)) to play the:
• MQ_GET as an MQ_PUT, which populates the Customer Order Inquiry Queue with
the requests that were originally retrieved from the queue during capture. Once the
requests are in the queue, PDA017 will automatically GET the requests and begin
processing.
• MQ_PUTs as MQ_GETs, which empties the two response queues at the end of
processing and allows you to generate an exception report to compare recorded
application responses to the responses resulting from playback.
Testing Scenarios
8-25
Figure 8-10. Activity Replicated by PLAY_TO(CONNECTION_ID(*))
This scenario requires generating two scripts with the appropriate filtering and
modifying the LOG file before submitting the unattended playback job. The rest of this
section provides a list of supporting sample files, describes the filtering requirements to
generate the scripts, and details the log edits required to play back the groups
simultaneously in reverse.
8-26
Hiperstation for WebSphere MQ User Guide
Use the filtering information provided in this discussion to generate scripts from sample
repository REPOS2. To compare the scripts you generate to the sample scripts, run an
analyze job on each script saving the sorted data. Generate a baseline HTML Exception
Report to ensure that the script you created contains the same activity as the sample
script. See “Analyzing and Comparing Scripts” on page 8-52.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS2
• Log: LOGMG004
LOGMG005
LOGMG006 (Manually compiled from LOGMG004 and LOGMG005)
• Script: SCRMG004 (Web service initiated activity)
SCRMG005 (PDA016 initiated activity)
Filters
REPOS2 contains activity from the entire customer order and credit inquiry application
initiated by both the Web service and PDA016. Use this repository to generate two
scripts: one containing the activity generated by the Web service and the other
containing the activity generated by PDA016. Each script should contain the:
• MQ_GETs issued by PDA017
• MQ_PUTs issued by PDA017 to the Order Inquiry Response Queue
• MQ_PUTs issued by PDA018 to the Credit Inquiry Response Queue
Note:
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file that you can compare to the sample LOG file.
To generate a script that contains the activity initiated by the Web service, apply the
following three filters:
• Filter 1 writes the MQ_GETs issued by PDA017 to the Customer Order Inquiry Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.QUEUE.ALIAS
UserIdentifier
EQ ASPNET
• Filter 2 writes the MQ_PUTs issued by PDA017 to the Order Inquiry Response Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.RESPONSE.QUEUE.ALIAS
UserIdentifier
EQ ASPNET
Testing Scenarios
8-27
• Filter 3 writes the MQ_PUTs issued by PDA018 to the Credit Inquiry Response Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CREDIT.AUTH.RESP.QUEUE
UserIdentifier
Note:
EQ ASPNET
The capture was limited to a single job name, which excludes the CHIN activity.
Because the Web service PUTs the requests on the Customer Order Inquiry Queue
and GETs the responses from the Order Inquiry Response Queue and the Credit
Inquiry Response Queue via a CHIN, these events do not exist in the repository.
Therefore, filtering by event is not necessary.
To generate a script that contains the activity initiated by PDA016, apply the following
three filters:
• Filter 1 writes the MQ_GETs issued by PDA017 to the Customer Order Inquiry Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.QUEUE.ALIAS
Event
EQ GET
UserIdentifier
EQ USER015
• Filter 2 writes the MQ_PUTs issued by PDA017 to the Order Inquiry Response Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CUSTOMER.RESPONSE.QUEUE.ALIAS
Event
EQ PUT
UserIdentifier
EQ USER015
• Filter 3 writes the MQ_PUTs issued by PDA018 to the Credit Inquiry Response Queue
into the script.
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.H01AC013.CREDIT.AUTH.RESP.QUEUE
Event
EQ PUT
UserIdentifier
EQ USER015
Log Editing Requirements
Using a standard file editing tool, manually merge the two log files generated during
script creation into a single file. To do this, copy the first log file and save it with a
unique name. Copy the MQGROUP and SCRIPT statements from the other log file and
paste them into the new log file. Then add the PLAY_TO(CONNECTION(*)) parameter to
each MQGROUP statement.
8-28
Hiperstation for WebSphere MQ User Guide
Refer to the following samples to see how this is done.
• LOGMG004 contains the MQGROUP and SCRIPT statements for SCRMG001.
• LOGMG005 contains the MQGROUP and SCRIPT statements for SCRMG002.
• LOGMG006 contains the MQGROUP and SCRIPT statements from the previous two
logs.
Replacing Script Data with a Static Value
The scenario demonstrates adding REXX logic to the script to replace the customer name
with a static value in every other credit inquiry. This test verifies that the remote
application can successfully process a credit inquiry for a new customer.
This scenario begins by capturing activity from the entire customer order and credit
inquiry application (Figure 8-1 on page 8-3), then generating a script that isolates the
credit inquiry activity — that is, the MQ_PUTs that PDA018 issues to the remote inquiry
queue and the MQ_GETs that it issues to the Credit Bureau Inquiry Response Queue.
Figure 8-11 on page 8-29 shows this activity.
Testing Scenarios
8-29
Figure 8-11. Credit Inquiry Activity Captured in Filtered Script FDDSD000
The script then drives remote processing. The REXX logic added to the script replaces the
customer name recorded in the script with a static value in every other inquiry.
During playback, generate an HTML Exception Report (page 6-17) to verify data
replacement. Every other inquiry should produce a mismatch.
This scenario requires adding REXX logic to the script and modifying the playback
CONTROL statement in either the LOG file or the CONTROL member.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. To compare the scripts you generate to the sample scripts, run an analyze job on
each script saving the sorted data. Generate a baseline HTML Exception Report to ensure
that the script you created contains the same activity as the sample script.
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
8-30
Hiperstation for WebSphere MQ User Guide
• Log: LOGSD000
• Script: FDDSD000
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-11
on page 8-29 to view PDA018’s application flow and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file to compare to the sample LOG file.
Script and Log Editing Requirements
This section show you how to:
• Modify the script to replace the customer name in every other inquiry with a static
value.
• Modify the log file to enable the use of REXX during playback.
Script Edits
This section details the script modifications necessary to replace the recorded customer
name with a static value in every other inquiry.
Note:
The sample script, FDDSD000, contains comment boxes that were manually
added to the script to explain each modification.
At the end of the script, insert a REXX procedure to replace the recorded customer name
with the static value. Figure 8-12 shows the REXX logic added to the end of the script,
along with the “flower box” that describes the logic.
• Include the EXPOSE parameter on the PROCEDURE statement to make the REXX
variables available to the REXX procedure and to script processing.
• Use the Hiperstation REPLACE verb, discussed on page 3-40, to execute the data
replacement. The REPLACE verb has two parameters:
Testing Scenarios
8-31
– offset indicates the starting position, relative to zero, for data replacement. The
first byte of the customer name field is an attribute byte that must be preserved.
Set the offset to 1 to begin replacing data at the second byte.
– data is the replacement data. This example assigns the static value 'ABC
CORPORATION' to the CUSTNAME variable. Whether you assign a variable or
specify the value directly on the REPLACE verb, be sure the length of the
replacement value matches the length of the data you need to replace. Notice the
additional spaces between the end of ABC CORPORATION and the closing
quotation mark — they ensure replacement of all 32 characters in the customer
name field.
• Include logic to select every other inquiry for data replacement. In this example,
when CHG_CUST executes, the value of I is increased by 1. When I =2, the data is
replaced and I is set to back zero.
• Complete the procedure with a REXX RETURN statement.
Before the REXX procedure, add a REXX EXIT statement to terminate playback.
Normally, playback terminates when all activity in the script has been executed. Since
this example calls for adding REXX to the end of the script, the EXIT statement is
necessary to indicate the end of the activity.
Figure 8-12. Data Replacement Logic at End of Sample Script FDDSD000
EXIT 0
* ************************************************************************
*
* THE REXX EXIT STATEMENT ABOVE MUST BE ADDED BEFORE THIS FUNCTION
*
* THE FUNCTION BELOW WILL USE STATIC DATA REPLACEMENT TO ALTER THE
* CONTENT. THE QAH REPLACE COMMAND WILL PREPARE MESSAGE ALTERATIONS
* TO BE USED BY THE NEXT CONTENT ENCOUNTERED
*
* REXX VARIABLE "I" IS USED TO CONTROL DATA REPLACEMENT. EVERY
* OTHER MQ PUT WILL HAVE CONTENT DATA REPLACED.
*
* THE QAH STATEMENT REPLACE(OFFSET,VARNAME) IS USED TO REPLACE DATA
* LOCATED IN THE NEXT CONTENT ENCOUNTERED. "OFFSET" IS RELATIVE
* TO ZERO.
*
* THE FUNCTION USES THE EXPOSE OPTION ON THE PROCEDURE STATEMENT
* TO MAKE REXX VARIABLES AVAILABLE TO THE FUNCTION AND THE MAINLINE
* SCRIPT.
*
************************************************************************
CHG_CUST: PROCEDURE EXPOSE CUSTNAME I
I = I + 1
IF I = 2 THEN DO
CUSTNAME = 'ABC CORPORATION
'
I = 0
<REPLACE FIELD(1,CUSTNAME)>
END
RETURN 0
Next, add logic to set the initial value of I. Insert the variable initialization in the
beginning of the script, before the MQ activity. See bold text in Figure 8-13.
8-32
Hiperstation for WebSphere MQ User Guide
Figure 8-13. Variable Initialization in Sample Script FDDSD000 (Top)
************************************************************************
*
* THIS SCRIPT HAS BEEN MODIFIED TO PERFORM STATIC DATA REPLACEMENT OF
* MQ PUT MESSAGE CONTENT. BEFORE THE CONTENT OF EACH MQ PUT,
* A FUNCTION CALL HAS BEEN ADDED. THIS FUNCTION, LOCATED AT THE END
* OF THIS SCRIPT, WILL MODIFY THE CUSTOMER NAME OF EACH MQ PUT
* MESSAGE USING THE QAH REPLACE COMMAND. THE REPLACE ALTERS THE
*
* REXX VARIABLE "I" IS USED TO CONTROL DATA REPLACEMENT. EVERY
* OTHER MQ PUT WILL HAVE CONTENT DATA REPLACED.
*
* ADDITIONAL FLOWER BOXES ARE LOCATED IN THIS SCRIPT TO ASSIST IN
* IDENTIFYING THE CHANGES MADE TO FACILITATE STATIC DATA REPLACEMENT
* THE FOLLOWING SCRIPT CODE ADDITIONS WILL:
*
* 1) INITIALIZE THE REXX VARIABLE "I" WHICH IS USED TO CONTROL
*
WHEN DATA REPLACEMENT IS TO BE PERFORMED. OTHER METHODS OF
*
CONTROL MAY BE USED TO CONTROL DATA REPLACEMENT
*
************************************************************************
I = 0
*
* SCRIPT STARTED ON 2006/07/10 AT 12:12:01
* DESC: MULTIPLE GROUP
*
<VERSION>07.01.00
<DETAIL COMBINED='*'>
*
* MQ_CONNECT
*
*
* WARNING: MISSING DATA,SYNTHESIZED MQ_CONNECT TAG
<TIME>2006/06/26_10:55:57.885251
<MQ_CONNECT,
CONNECTION_ID = 3,
COMPCODE = 0,
REASON = 0,
QMGR_NAME = 'M520',
Then insert a call to the CHG_CUST procedure before the <CONTENT> tag in each
MQ_PUT. See the bold text in Figure 8-14.
Testing Scenarios
8-33
Figure 8-14. Procedure Call in Sample Script FDDSD000
*
* MQ_PUT *
*
<TIME>2006/06/26_10:55:57.885251
<MQ_PUT,
CONNECTION_ID = 3,
OBJECT_ID = 16,
COMPCODE = 0,
REASON
= 0,
MQMD_VERSION = 1,
MQMD_REPORT = (NONE),
MQMD_MSGTYPE = DATAGRAM,
MQMD_EXPIRY = '00001388'X,
MQMD_FEEDBACK = NONE,
MQMD_ENCODING = '00000311'X,
MQMD_CODEDCHARSETID = 0,
MQMD_FORMAT = 'MQSTR',
MQMD_PRIORITY = 'FFFFFFFF'X,
MQMD_PERSISTENCE = NOT_PERSISTENT,
MQMD_MSGID = 'C3E2D840D4F5F2F04040404040404040B99FE304AF5483C1'X,
MQMD_CORRELID = NONE,
MQMD_BACKOUTCOUNT = '',
MQMD_REPLYTOQ = '',
MQMD_REPLYTOQMGR = 'M520',
MQMD_USERIDENTIFIER = 'MCONID',
MQMD_ACCOUNTINGTOKEN = '1A11E4E2C3E6E7D5F0F14BC8F0F1C1C3F0F1F39FE307BA81E2000
MQMD_APPLIDENTITYDATA = '',
MQMD_PUTAPPLTYPE = CICS,
MQMD_PUTAPPLNAME = 'H01AC013PD18',
MQMD_PUTDATE = '20060626',
MQMD_PUTTIME = '14555797',
MQMD_APPLORIGINDATA = '',
MQPMO_VERSION = 1,
MQPMO_OPTIONS = (FAIL_IF_QUIESCING,DEFAULT_CONTEXT,NO_SYNCPOINT),
MQPMO_RESOLVEDQNAME = 'PDAPROD.QLOCAL.CW01.TO.CW09.CREDIT.AUTH',
MQPMO_RESOLVEDQMGRNAME = 'O530',
CRNTLEN = 300,
TRUELEN = 300>3
************************************************************************
*
* THE REXX STATEMENT BELOW WILL CALL THE FUNCTION CHG_CUST.
* THE FUNCTION WILL PREPARE A REPLACE STATEMENT THAT ALTERS
* THE CONTENT FOR THIS MQ_PUT.
*
* THE FUNCTION CALL FOR CHG_CUST IS ADDED TO THE SCRIPT BEFORE EACH
* CONTENT FOR ALL MQ_PUTS.
*
************************************************************************
X = CHG_CUST() /* IN EACH MQ PUT BEFORE THE CONTENT */
*
<CONTENT>.þ..000000010AMERICANFASTNERS
Log Edits
To enable REXX interpretation during playback, add the REXXON parameter to the
playback control information. Either:
• Add a CONTROL statement with this parameter directly to the log file used to run
the playback job. Insert it above the MQGROUP statement.
• Add it to the control member specified on the log file’s SET ACTION statement.
Replacing Script Data Dynamically
The scenario demonstrates adding REXX logic to the script to replace recorded customer
names with names from an external file. This test verifies that the remote application
successfully processes credit inquiries for new customers.
This scenario begins by capturing activity from the entire customer order and credit
inquiry application (Figure 8-1 on page 8-3), then generating a script that isolates the
8-34
Hiperstation for WebSphere MQ User Guide
credit inquiry activity — that is, the MQ_PUTs that PDA018 issues to the remote inquiry
queue and the MQ_GETs that it issues to the Credit Bureau Inquiry Response Queue.
Figure 8-15 shows this activity.
Figure 8-15. Credit Inquiry Activity Captured in Filtered Script FDDDD000
The script then drives remote processing. The REXX logic added to the script replaces the
customer names recorded in the script with names from an external file.
This scenario requires adding REXX logic to the script and modifying the playback
CONTROL statement in either the LOG file or the CONTROL member.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. To compare the scripts you generate to the sample scripts, run an analyze job on
each script saving the sorted data. Generate a baseline HTML Exception Report to ensure
that the script you created contains the same activity as the sample script.
Supporting Sample Files
The sample files supporting this scenario include:
Testing Scenarios
8-35
• Repository: REPOS1
• Log: LOGDD000
• Script: FDDDD000
• External file containing replacement data: FDDFILE1
Note:
Sample script FDDDD002 shows a slightly more advanced variation of dynamic
data replacement. Once you read and understand this example, review sample
script FDDDD002. It contains a single customer order and credit inquiry request
(MQ_PUT issued by PDA016) and REXX logic to replay the script with each
customer record from an external file. That is, it contains ADDRESS and EXECIO
statements to read in the external file and the MQ_PUT is wrapped in a REXX DO
instruction that replays the MQ_PUT with each record contained in the external
file. It also contains comment boxes that explain each script modification.
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-11
on page 8-29 to view the application flow of PDA018 and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file to compare to the sample LOG file.
Script and Log Editing Requirements
This section shows you how to:
• Modify the script to replace the recorded customer names with names read from an
external file.
• Modify the log file to enable the use of REXX during playback.
Script Edits
This section details the script modifications necessary to replace the recorded customer
names with names from an external file (FDDFILE1).
8-36
Hiperstation for WebSphere MQ User Guide
Note:
The sample script, FDDDD000, contains comment boxes that were manually
added to the script to explain each modification.
At the beginning of the script:
• Insert Hiperstation REXX command HSCMDS to allocate the input file. Refer to the
Hiperstation Scripting Reference for more information on the HSCMDS command.
• Insert an EXECIO statement to read the file into a REXX stem variable. In this case,
INREC.n where n is the record number. Include the FINIS parameter to close file after
all records have been read.
• Initialize a count variable.
Figure 8-16 shows this logic in bold text.
Figure 8-16. Sample Script FDDDD000 with Logic to Read in External Information
************************************************************************
*
* THIS SCRIPT HAS BEEN MODIFIED TO PERFORM DYNAMIC DATA REPLACEMENT OF
* MQ PUT MESSAGE CONTENT. BEFORE THE CONTENT OF EACH MQ PUT,
* A FUNCTION CALL HAS BEEN ADDED. THIS FUNCTION, LOCATED AT THE END
* OF THIS SCRIPT, WILL MODIFY THE CUSTOMER NAME OF EACH MQ PUT
* MESSAGE USING THE QAH REPLACE COMMAND. THE REPLACE ALTERS THE
* CONTENTS OF THE NEXT ENCOUNTERED CONTENT TAG.
*
* ADDITIONAL FLOWER BOXES ARE LOCATED IN THIS SCRIPT TO ASSIST IN
* IDENTIFYING THE CHANGES MADE TO FACILITATE STATIC DATA REPLACEMENT
*
* THE FOLLOWING SCRIPT CODE ADDITIONS WILL:
*
* 1) ALLOCATE A FILE USING THE QAH REXX COMMAND HSCMDS
* 2) READ IN THE FILE INTO A REXX STEM VARIABLE. EACH RECORD
*
IS READ INTO THE STEM.X WHERE INREC IS THE STEM
*
AND X IS 1 - NUMBER OF RECORDS
* 3) CLOSE IS PERFORMED BY SPECIFYING THE FINIS PARM ON THE EXECIO
*
* 4) INITIALIZE THE REXX VARIABLE "I" WHICH IS USED TO CONTROL
*
THE DATA TO BE USED BY THE REPLACE STATEMENT. I IS THE INDEX
*
FOR THE REXX STEM VARIABLE INREC
*
* REVIEW THE DATASET NAME LOCATED IN THE ADDRESS COMMAND BELOW.
* CHANGE COMPWARE.SQQFSAMP TO THE NAME OF YOUR INSTALLATION
* SAMPLE DATASET.
*************************************************************************
ADDRESS HSCMDS "ALLOC FILE (INDATA),
DA(COMPWARE.SQQFSAMP(FDDFILE1)), SHR REUS"
"EXECIO * DISKR INDATA (FINIS STEM INREC."
I = 0
*
*
* SCRIPT STARTED ON 2006/07/10 AT 12:12:01
* DESC: MULTIPLE GROUP
*
<VERSION>07.01.00
<DETAIL COMBINED='*'>
*
* MQ_CONNECT
*
*
* WARNING: MISSING DATA,SYNTHESIZED MQ_CONNECT TAG
<TIME>2006/06/26_10:55:57.885251
<MQ_CONNECT,
CONNECTION_ID = 3,
COMPCODE = 0,
REASON = 0,
QMGR_NAME = 'M520',
SYSTEM_NAME = 'CW01',
At the end of the script, insert a REXX procedure to replace the recorded customer name
with a customer name from the external file. Figure 8-17 shows the REXX logic added to
the end of the script, along with the “flower box” that describes the logic.
Testing Scenarios
8-37
• Include the EXPOSE parameter on the PROCEDURE statement to make the REXX
variables available to the REXX procedure and to script processing.
• Increment the count variable. Use this to select the appropriate customer name as
described in the next bullet.
• Each record in the external file contains the customer name and program name. The
customer name occupies the first 20 characters of each record. Use the REXX
substring instruction to pass only the customer name from the record represented by
the selected INREC variable to the CUSTNAME variable.
Notice, "INREC." is followed by the count variable. Each time the procedure executes,
the value of I increases by one. The customer name from INREC.1 replaces the
recorded customer name on the first inquiry calling the procedure, and the name
from INREC.2 replaces the name on the second inquiry calling the procedure, and so
on.
• Use the Hiperstation REPLACE verb, discussed on page 3-40, to execute the data
replacement. Since the customer name field begins with an attribute byte that must
be preserved, set the offset to 1 to replace data beginning with the second byte.
Provide the data to use for replacement. In this case, the CUSTNAME variable is the
replacement data.
• Complete the procedure with a REXX RETURN statement.
Before the REXX procedure, add a REXX EXIT statement to terminate playback.
Normally, playback terminates when all activity in the script has been executed. Since
this example calls for adding REXX to the end of the script, the EXIT statement is
necessary to indicate the end of the activity.
Figure 8-17. Data Replacement Logic at End of Sample Script FDDDD000
EXIT 0
************************************************************************
*
* THE REXX EXIT STATEMENT ABOVE MUST BE ADDED BEFORE THIS FUNCTION
*
* THE FUNCTION BELOW WILL USE DATA READ INTO INREC EARLIER TO ALTER THE
* CONTENT. THE QAH REPLACE COMMAND WILL PREPARE MESSAGE ALTERATIONS
* TO BE USED BY THE NEXT CONTENT ENCOUNTERED
*
* THE REXX VARIABLE "I" IS USED TO CONTROL THE DATA TO BE USED BY
* THE REPLACE STATEMENT. I IS THE INDEX FOR THE REXX STEM VARIABLE
* INREC
*
* THE REXX STATEMENT SUBSTR(VARNAME,START,LEN) IS USED TO EXTRACT
* DATA FROM THE STEM VARIABLE INREC CREATED DURING THE READING OF
* THE EXTERNAL FILE FOUND AT THE START OF THIS SCRIPT.
* "START" IS RELATIVE TO 1.
*
* THE QAH STATEMENT REPLACE(OFFSET,VARNAME) IS USED TO REPLACE DATA
* LOCATED IN THE NEXT CONTENT ENCOUNTERED. "OFFSET" IS RELATIVE
* TO ZERO.
*
* THE FUNCTION USES THE EXPOSE OPTION ON THE PROCEDURE STATEMENT
* TO MAKE REXX VARIABLES AVAILABLE TO THE FUNCTION AND THE MAINLINE
* SCRIPT.
*
************************************************************************
CHG_CUST: PROCEDURE EXPOSE INREC. I CUSTNAME
I = I + 1
CUSTNAME = SUBSTR(INREC.I,1,20)
<REPLACE FIELD(1,CUSTNAME)>
RETURN 0
Finally, insert a call to the CHG_CUST procedure before the <CONTENT> tag in each
MQ_PUT. See the bold text in Figure 8-18.
8-38
Hiperstation for WebSphere MQ User Guide
Figure 8-18. Procedure Call in Sample Script FDDDD000
*
* MQ_PUT *
*
<TIME>2006/06/26_10:55:57.885251
<MQ_PUT,
CONNECTION_ID = 3,
OBJECT_ID = 16,
COMPCODE = 0,
REASON
= 0,
MQMD_VERSION = 1,
MQMD_REPORT = (NONE),
MQMD_MSGTYPE = DATAGRAM,
MQMD_EXPIRY = '00001388'X,
MQMD_FEEDBACK = NONE,
MQMD_ENCODING = '00000311'X,
MQMD_CODEDCHARSETID = 0,
MQMD_FORMAT = 'MQSTR',
MQMD_PRIORITY = 'FFFFFFFF'X,
MQMD_PERSISTENCE = NOT_PERSISTENT,
MQMD_MSGID = 'C3E2D840D4F5F2F04040404040404040B99FE304AF5483C1'X,
MQMD_CORRELID = NONE,
MQMD_BACKOUTCOUNT = '',
MQMD_REPLYTOQ = '',
MQMD_REPLYTOQMGR = 'M520',
MQMD_USERIDENTIFIER = 'MCONID',
MQMD_ACCOUNTINGTOKEN = '1A11E4E2C3E6E7D5F0F14BC8F0F1C1C3F0F1F39FE307BA81E2000
MQMD_APPLIDENTITYDATA = '',
MQMD_PUTAPPLTYPE = CICS,
MQMD_PUTAPPLNAME = 'H01AC013PD18',
MQMD_PUTDATE = '20060626',
MQMD_PUTTIME = '14555797',
MQMD_APPLORIGINDATA = '',
MQPMO_VERSION = 1,
MQPMO_OPTIONS = (FAIL_IF_QUIESCING,DEFAULT_CONTEXT,NO_SYNCPOINT),
MQPMO_RESOLVEDQNAME = 'PDAPROD.QLOCAL.CW01.TO.CW09.CREDIT.AUTH',
MQPMO_RESOLVEDQMGRNAME = 'O530',
CRNTLEN = 300,
TRUELEN = 300>3
************************************************************************
*
* THE REXX STATEMENT BELOW WILL CALL THE FUNCTION CHG_CUST.
* THE FUNCTION WILL PREPARE A REPLACE STATEMENT THAT ALTERS
* THE CONTENT FOR THIS MQ_PUT.
*
* THE FUNCTION CALL FOR CHG_CUST IS ADDED TO THE SCRIPT BEFORE EACH
* CONTENT FOR ALL MQ_PUTS.
*
************************************************************************
X = CHG_CUST() /* IN EACH MQ PUT BEFORE THE CONTENT */
*
<CONTENT>.þ..000000010AMERICANFASTNERS
.
Log Edits
To enable REXX interpretation during playback, add the REXXON parameter to the
playback control information. Either:
• Add a CONTROL statement with this parameter directly to the log file used to run
the playback job. Insert it above the MQGROUP statement.
• Add the parameter to the CONTROL statement in the control member specified on
the log file’s SET ACTION statement.
Expanding Data During Playback
This scenario demonstrates expanding MQ message content during playback. The
customer order and credit inquiry application provides 32 bytes for the customer name.
Before modifying the application to accept a longer customer name, verify that the
remote application can handle the additional bytes in the credit inquiry. To accomplish
this, capture all of the activity from the entire customer order and credit inquiry
Testing Scenarios
8-39
application (Figure 8-1 on page 8-3). Generate a script that isolates the credit inquiry
activity — that is, the MQ_PUTs that PDA018 issues to the remote inquiry queue and the
MQ_GETs that it issues to the Credit Bureau Inquiry Response Queue. Figure 8-19 shows
this activity. Create two copies of the script.
• In the first copy, add REXX logic to write the “actual” PUT and GET message content
to an external file during playback.
• In the second copy, add REXX logic that uses the “actual” PUT messages from the
external file to replace the customer name with the expanded customer name.
Figure 8-19. Credit Inquiry Activity Captured in Filtered Script FDDDD001
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. To compare the scripts you generate to the sample scripts, run an analyze job on
each script saving the sorted data. Generate a baseline HTML Exception Report to ensure
that the script you created contains the same activity as the sample script.
8-40
Hiperstation for WebSphere MQ User Guide
Supporting Sample Files
The sample files supporting this scenario include:
• Repository: REPOS1
• Log:
LOGDD001 — Log file used to play back script FDDDD001
LOGED000 — Log file used to play back script FDDED000
• Script:
FDDDD001 — Script to capture “actual” GET and PUT message content
FDDED000 — Script to play back with expanded customer names
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-11
on page 8-29 to view PDA018’s application flow and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file to compare to the sample LOG file.
Script and Log Editing Requirements
This section show how to modify the scripts and log files to achieve MQ message
expansion.
Script Edits
This section details the modifications made to each copy of the script.
• “FDDDD001” on page 8-41, describes the REXX modifications necessary to write the
“actual” GET and PUT message content to an external file.
• “FDDED000” on page 8-43, describes the REXX modifications necessary to replace
the customer name with the expanded customer name.
Note:
Both sample scripts contain manually added comment boxes that explain each
modification.
Testing Scenarios
8-41
FDDDD001
At the beginning of the script:
• Insert Hiperstation REXX command HSCMDS to allocate the output file. Refer to the
Hiperstation Scripting Reference for more information on the HSCMDS command.
• Initialize a count variable.
Figure 8-20 shows this logic in bold text.
Figure 8-20. Sample Script FDDDD001 with Logic to Allocate an External File
************************************************************************
*
* THIS SCRIPT HAS BEEN MODIFIED TO PERFORM DATA COLLECTION OF
* MQ GET MESSAGE CONTENT. AFTER THE CONTENT OF EACH MQ GET AND PUT,
* A FUNCTION CALL HAS BEEN ADDED. THIS FUNCTION, LOCATED AT THE END
* OF THIS SCRIPT, WILL CREATE A FILE RECORD AND WRITE THE RECORD
* TO AN EXTERNAL FILE. THIS FILE MAY BE USED AS INPUT TO OTHER
* MQ PLAYBACK RUNS, 3270 VALIDATION RUNS, OR USED TO DRIVE OTHER
* APPLICATIONS.
*
* THE FOLLOWING SCRIPT CODE ADDITIONS WILL:
*
* 1) ALLOCATE A FILE USING THE QAH REXX COMMAND HSCMDS
* 2) INITIALIZE THE REXX VARIABLE "I" WHICH IS USED TO CONTROL
*
THE DATA TO BE COLLECTED AND WRITTEN TO AN EXTERNAL FILE.
*
I IS THE INDEX FOR THE REXX STEM VARIABLE OUTREC
*
*
* REVIEW THE DATASET NAME LOCATED IN THE ADDRESS COMMAND BELOW.
* CHANGE COMPWARE.FDDDD001.REXX.OUTPUT TO AN APPROPRIATE
* DATASET NAME.
*
************************************************************************
ADDRESS HSCMDS "ALLOC FILE (OUTDATA),
DA(COMPWARE.FDDDD001.REXX.OUTPUT), OLD REUS" /* <=== REVIEW */
I = 0
*
*
* SCRIPT STARTED ON 2006/07/10 AT 12:12:01
* DESC: MULTIPLE GROUP
*
At the end of the script, insert two REXX procedures: one that collects GET data and one
that collects PUT data.
• Include the EXPOSE parameter on the PROCEDURE statement to make the REXX
variables available to the REXX procedure and to script processing.
• Increment the count variable. Use this value to supply an index on the REXX stem
variable described in the next bullet.
• Use the Hiperstation REXX variable ACTUAL_MSG to return the content of the
GETs/PUTs executed during playback. Concatenate the “actual” message content to a
message type identifier and pass it to a REXX stem variable.
Notice, "OUTREC." is followed by the count variable. Each time either of the
procedures execute, the value of I increases by one. This ensures a unique stem index
for each message, in addition to ensuring that the records are ordered
chronologically. The content of the initial PUT is written to OUTREC.1 and the
content of the resulting GETs is written to OUTREC.2, OUTREC.3, and OUTREC.4.
• Terminate each procedure with a RETURN statement.
Figure 8-21 shows this logic in bold text.
8-42
Hiperstation for WebSphere MQ User Guide
Figure 8-21. Sample Script FDDDD001 with Data Collection Logic
*
* THE FUNCTION BELOW WILL USE COLLECT DATA INTO THE STEM VARIABLE
* OUTDATA. AT THE END OF THE SCRIPT, THE STEM VARIABLE WILL BE
* USED TO WRITE THE COLLECTED STEM DATA TO AN EXTERNAL FILE
*
* THE REXX VARIABLE "I" IS USED TO CONTROL THE COLLECTION OF DATA
* INTO THE STEM VARIABLE.
* INREC
*
* THE REXX STATEMENT "OUTREC.I = 'XXX ' || ACTUAL_MSG" WILL PLACE THE
* TYPE OF MSG, GET OR PUT, FOLLOWED BY THE MESSAGE CONTENT.
*
* THE FUNCTION USES THE EXPOSE OPTION ON THE PROCEDURE STATEMENT
* TO MAKE REXX VARIABLES AVAILABLE TO THE FUNCTION AND THE MAINLINE
* SCRIPT.
*
* COLL_PUTS IS THE SAME AS COLL_GET WITH THE EXCEPTION OF THE TYPE
* IDENTIFIER.
*
************************************************************************
COLL_GETS: PROCEDURE EXPOSE OUTREC. I ACTUAL_MSG
I = I + 1
OUTREC.I = 'GET ' || ACTUAL_MSG
RETURN 0
*
*
COLL_PUTS: PROCEDURE EXPOSE OUTREC. I ACTUAL_MSG
I = I + 1
OUTREC.I = 'PUT ' || ACTUAL_MSG
RETURN 0
******************************** Bottom of Data ********************************
Before the REXX data collection procedures, after the last MQ_DISCONNECT:
• Insert an EXECIO statement that writes the OUTREC stem variable values to the
dataset defined on the OUTDATA DD. Include the FINIS parameter to close file after
all records have been written. Refer to the Hiperstation Scripting Reference for more
information on the EXECIO command.
• Insert a REXX EXIT statement to terminate playback. Normally, playback terminates
when all activity in the script has been executed. Since this example calls for adding
REXX to the end of the script, the EXIT statement is necessary to indicate the end of
the activity.
Figure 8-22 shows this logic in bold text.
Testing Scenarios
8-43
Figure 8-22. Sample Script FDDDD001 with EXECIO and EXIT Statements
*
* MQ_DISCONNECT *
*
<TIME>2006/06/26_10:56:45.102880
<MQ_DISCONNECT,
CONNECTION_ID = 21,
COMPCODE = 0,
REASON
= 0>85
*
*
************************************************************************
*
* THE REXX STATEMENT BELOW WILL WRITE THE STEM OUTREC TO THE
* OUTDATA DD.
*
************************************************************************
"EXECIO * DISKW OUTDATA (FINIS STEM OUTREC."
EXIT 0
************************************************************************
*
* THE REXX EXECIO STATEMENT ABOVE WRITES THE STEM VARIABLE OUTREC
* TO THE DATASET IDENTIFIED BY OUTDATA
*
* THE REXX EXIT STATEMENT ABOVE MUST BE ADDED BEFORE THIS FUNCTION
*
Respectively insert one of the following function calls after the <CONTENT> of each
MQ_GET and MQ_PUT:
X = COLL_GETS()
X = COLL_PUTS()
Play back the script to create the external file that the FDDDED000 script uses. In the log
file or the control member specified on the log file’s SET ACTION statement, add the
playback control parameters to enable interpretation of REXX and the use of the
Hiperstation REXX STREAM variables during playback. See “Log Edits” on page 8-46.
FDDED000
At the beginning of the script:
• Insert Hiperstation REXX command HSCMDS to allocate the input file. Specify the
output dataset created during playback of the data collection script (FDDDD001).
Refer to the Hiperstation Scripting Reference for more information on the HSCMDS
command.
• Insert an EXECIO statement to read the file into a REXX stem variable. In this case,
INREC.n where n is the record number. Include the FINIS parameter to close file after
all records have been read.
• Initialize a count variable.
Figure 8-23 shows this logic in bold text.
8-44
Hiperstation for WebSphere MQ User Guide
Figure 8-23. Sample Script FDDED000 with Logic to Read in External Information
********************************* Top of Data **********************************
************************************************************************
*
* THIS SCRIPT HAS BEEN MODIFIED TO PERFORM EXPANSION OF USER DATA FOR
* MQ PUT MESSAGE CONTENT. BEFORE THE CONTENT OF EACH MQ PUT,
* A FUNCTION CALL HAS BEEN ADDED. THIS FUNCTION, LOCATED AT THE END
* OF THIS SCRIPT, WILL EXPAND THE CUSTOMER NAME OF EACH MQ PUT
* MESSAGE BEFORE USING THE QAH REPLACE COMMAND. THE REPLACE ALTERS
* THE CONTENTS OF THE NEXT ENCOUNTERED CONTENT TAG.
*
* ADDITIONAL FLOWER BOXES ARE LOCATED IN THIS SCRIPT TO ASSIST IN
* IDENTIFYING THE CHANGES MADE TO FACILITATE STATIC DATA REPLACEMENT
*
* THE FOLLOWING SCRIPT CODE ADDITIONS WILL:
*
* 1) ALLOCATE A FILE USING THE QAH REXX COMMAND HSCMDS
*
* 2) READ IN THE FILE INTO A REXX STEM VARIABLE. EACH RECORD
*
IS READ INTO THE STEM.X WHERE INREC IS THE STEM
*
AND X IS 1 - NUMBER OF RECORDS
*
* 3) CLOSE IS PERFORMED BY SPECIFYING THE FINIS PARM ON THE EXECIO
*
* 4) INITIALIZE THE REXX VARIABLE "I" WHICH IS USED TO CONTROL
*
THE DATA TO BE USED BY THE REPLACE STATEMENT. I IS THE INDEX
*
FOR THE REXX STEM VARIABLE INREC
*
* REVIEW THE DATASET NAME LOCATED IN THE ADDRESS COMMAND BELOW.
* CHANGE COMPWARE.FDDDD001.REXX.OUTPUT TO THE DATASET NAME
* CREATED IN SCRIPT FDDDD001 (LOGDD001).
*
************************************************************************
ADDRESS HSCMDS "ALLOC FILE (INDATA),
DA(COMPWARE.FDDDD001.REXX.OUTPUT), SHR REUS" /* <=== REVIEW */
"EXECIO * DISKR INDATA (FINIS STEM INREC."
I = 0
*
At the end of the script, insert a REXX procedure to select the PUT messages from the
external file, expand the length of the customer name value, and build the appropriate
REPLACE verb. Figure 8-24 shows the REXX logic added to the end of the script, along
with the “flower box” that describes the logic.
• Include the EXPOSE parameter on the PROCEDURE statement to make the REXX
variables available to the REXX procedure and to script processing.
• Increment the count variable. Use this to select the appropriate GET/PUT record as
described in the next two bullets.
• Use a substring instruction to pass the first three bytes the selected INREC to the
TYPE variable. This returns the message type that was added to the beginning of the
the “actual” GET/PUT content when the external file was written.
• Insert a DO WHILE loop to select the PUT messages from the external file. If INREC.I
is a GET, then increment the value of I to select the next record. Insert the TYPE
variable declaration into the loop to return the message type of the next record. If
INREC.I is a PUT, END the loop.
• Each record in the external file contains the message type (GET/PUT) that was
assigned during data collection, followed by a space, and then the 300 byte inquiry.
The first byte of the inquiry is the attribute byte, the next 32 bytes are the customer
name, and the rest of the bytes are reserved for additional customer information. Use
the REXX substring instruction to parse the record. Pass the attribute byte, the
customer name bytes, and the rest of the bytes to separate variables.
• Concatenate ten spaces to the CUSTNAME variable and pass it to a new variable.
• Use the Hiperstation REPLACE verb, discussed on page 3-40, to execute the data
replacement. Provide the offset to indicate where in the message to insert the data
and provide the data to use for replacement. Use the LENGTH parameter to ensure
that the total length of the inquiry is 310 bytes.
Testing Scenarios
8-45
• Complete the procedure with a REXX RETURN statement.
Figure 8-24. Data Replacement Logic at End of Sample Script FDDED000
*
* THE FUNCTION USES THE EXPOSE OPTION ON THE PROCEDURE STATEMENT
* TO MAKE REXX VARIABLES AVAILABLE TO THE FUNCTION AND THE MAINLINE
* SCRIPT.
*
************************************************************************
*
*
CHNG_PUTS: PROCEDURE EXPOSE INREC. I FIRST EXPCUST REST
I = I + 1
TYPE
= SUBSTR(INREC.I,1,3)
DO WHILE TYPE = 'GET'
I = I + 1
TYPE
= SUBSTR(INREC.I,1,3)
END
FIRST
= SUBSTR(INREC.I,5,1)
CUSTNAME = SUBSTR(INREC.I,6,32)
REST
= SUBSTR(INREC.I,38,267)
*
EXPCUST = CUSTNAME||'
'
*
<REPLACE FIELD(0,FIRST) FIELD(1,EXPCUST) FIELD(43,REST) LENGTH=310>
RETURN 0
Before the REXX procedure, add a REXX EXIT statement to terminate playback.
Normally, playback terminates when all activity in the script has been executed. Since
this example calls for adding REXX to the end of the script, the EXIT statement is
necessary to indicate the end of the activity.
Finally, insert a call to the CHG_PUTS() procedure before the <CONTENT> tag in each
MQ_PUT. See the bold text in Figure 8-25.
8-46
Hiperstation for WebSphere MQ User Guide
Figure 8-25. Procedure Call in Sample Script FDDED001
*
* MQ_PUT *
*
<TIME>2006/06/26_10:55:57.885251
<MQ_PUT,
CONNECTION_ID = 3,
OBJECT_ID = 16,
COMPCODE = 0,
REASON
= 0,
MQMD_VERSION = 1,
MQMD_REPORT = (NONE),
MQMD_MSGTYPE = DATAGRAM,
MQMD_EXPIRY = '00001388'X,
MQMD_FEEDBACK = NONE,
MQMD_ENCODING = '00000311'X,
MQMD_CODEDCHARSETID = 0,
MQMD_FORMAT = 'MQSTR',
MQMD_PRIORITY = 'FFFFFFFF'X,
MQMD_PERSISTENCE = NOT_PERSISTENT,
MQMD_MSGID = 'C3E2D840D4F5F2F04040404040404040B99FE304AF5483C1'X,
MQMD_CORRELID = NONE,
MQMD_BACKOUTCOUNT = '',
MQMD_REPLYTOQ = '',
MQMD_REPLYTOQMGR = 'M520',
MQMD_USERIDENTIFIER = 'MCONID',
MQMD_ACCOUNTINGTOKEN = '1A11E4E2C3E6E7D5F0F14BC8F0F1C1C3F0F1F39FE307BA81E2000
MQMD_APPLIDENTITYDATA = '',
MQMD_PUTAPPLTYPE = CICS,
MQMD_PUTAPPLNAME = 'H01AC013PD18',
MQMD_PUTDATE = '20060626',
MQMD_PUTTIME = '14555797',
MQMD_APPLORIGINDATA = '',
MQPMO_VERSION = 1,
MQPMO_OPTIONS = (FAIL_IF_QUIESCING,DEFAULT_CONTEXT,NO_SYNCPOINT),
MQPMO_RESOLVEDQNAME = 'PDAPROD.QLOCAL.CW01.TO.CW09.CREDIT.AUTH',
MQPMO_RESOLVEDQMGRNAME = 'O530',
CRNTLEN = 300,
TRUELEN = 300>3
************************************************************************
*
* THE REXX STATEMENT BELOW WILL CALL THE FUNCTION CHNG_PUTS
* THE FUNCTION WILL EXPAND THE MQ MESSAGE DATA BEFORE USING THE
* REPLACE STATEMENT TO MODIFY THE MQ MESSAGE.
*
* THE FUNCTION CALL FOR CHNG_PUTS IS ADDED TO THE SCRIPT BEFORE EACH
* CONTENT FOR ALL MQ_PUTS.
*
************************************************************************
X = CHNG_PUTS()
/* BEFORE EACH MQ PUT
*/ *
<CONTENT>.þ..000000010AMERICANFASTNERS
Log Edits
Both scripts require the addition of the REXXON parameter to the playback control
information to enable the interpretation of REXX during playback.
To use the ACTUAL_MSG variable in the data collection script (FDDDD001), add the
SET_REXX_STREAM_VARIABLES(YES) parameter to the playback control information.
Either:
• Add a CONTROL statement with one or both of these parameters directly to the log
file used to run the playback job. Insert it above the MQGROUP statement.
• Add the parameter to the CONTROL statement in the control member specified on
the log file’s SET ACTION statement.
Testing Scenarios
8-47
Replacing Data During Repeated Concurrent Playback
The scenario demonstrates adding REXX logic to the script to replace recorded customer
names with names from an external file on each iteration of a repeated, concurrent
playback. This example plays three instances of the same script concurrently, then
repeats the playback three times, replacing data on each iteration. This test verifies that
the remote application can handle three concurrent users requesting order and credit
information for 90 different customers.
This scenario begins by capturing activity from the entire customer order and credit
inquiry application (Figure 8-1 on page 8-3), then generating a script that isolates the
credit inquiry activity — that is, the MQ_PUTs that PDA018 issues to the remote inquiry
queue and the MQ_GETs that it issues to the Credit Bureau Inquiry Response Queue.
Figure 8-15 shows this activity.
Figure 8-26. Credit Inquiry Activity Captured in Filtered Script FDDPD000
The script then drives remote processing. The REXX logic added to the script replaces the
customer names recorded in the script with names from an external file.
8-48
Hiperstation for WebSphere MQ User Guide
This scenario requires adding REXX logic to the script and modifying the playback
CONTROL statement in either the LOG file or the CONTROL member.
The rest of this section details each of these steps, except for capture. Use the filtering
information provided in this discussion to generate scripts from sample repository
REPOS1. To compare the scripts you generate to the sample scripts, run an analyze job on
each script saving the sorted data. Generate a baseline HTML Exception Report to ensure
that the script you created contains the same activity as the sample script.
Supporting Sample Files
The sample files supporting this scenario include:
•
•
•
•
Repository: REPOS1
Log: LOGPD000
Script: FDDPD000
External file containing replacement data: FDDFILE2
Filters
REPOS1 contains activity for the entire customer order and credit inquiry program
(Figure 8-1 on page 8-3). Apply the following filters during script creation to generate a
script containing PDA018’s credit inquiry and response retrieval activity. See Figure 8-11
on page 8-29 to view PDA018’s application flow and the names of the queues it uses.
Filter 1
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QREMOTE.CW01.TO.CW09.CREDIT.AUTH
Event
EQ PUT
Filter 2
Field Name
RO Filtering Criteria
Queue manager
EQ *
Object/Queue name EQ PDAPROD.QLOCAL.CW09.TO.CW01.CREDIT.AUTH
Event
Note:
EQ GET
Enter this filtering information on the Header Filter Detail screen (Figure 3-5 on
page 3-7) in the Create MQ Script facility. Also, be sure to select the Log Entries
field on the WebSphere MQ Create Scripts - Create Options screen (2 of 2) to
generate a LOG file to compare to the sample LOG file.
Script and Log Editing Requirements
This section show how to:
• Modify the script to replace the recorded customer names with names read from an
external file.
• Modify the log file to enable the use of REXX and Hiperstation REXX variables
during playback.
Testing Scenarios
8-49
Script Edits
This section details the script modifications necessary to replace the recorded customer
names with names from an external file (FDDFILE2).
Note:
The sample script, FDDPD000, contains comment boxes that were manually
added to the script to explain each modification.
At the beginning of the script:
• Insert Hiperstation REXX command HSCMDS to allocate the input file. Refer to the
Hiperstation Scripting Reference for more information on the HSCMDS command.
• Insert an EXECIO statement to read the file into a REXX stem variable. In this case,
INREC.IX where IX is the record number. Include the FINIS parameter to close file
after all records have been read.
• Initialize a data replacement count variable.
Figure 8-16 shows this logic in bold text.
Figure 8-27. Sample Script FDDPD000 with Logic to Read in External Information
*
* THE FOLLOWING SCRIPT CODE ADDITIONS WILL:
*
* 1) ALLOCATE A FILE USING THE QAH REXX COMMAND HSCMDS
*
* 2) READ IN THE FILE INTO A REXX STEM VARIABLE. EACH RECORD
*
IS READ INTO THE STEM.X WHERE INREC IS THE STEM
*
AND X IS 1 - NUMBER OF RECORDS
*
* 3) CLOSE IS PERFORMED BY SPECIFYING THE FINIS PARM ON THE EXECIO
*
* 4) INITIALIZE THE REXX VARIABLE "I" WHICH IS USED TO CONTROL
*
THE DATA TO BE USED BY THE REPLACE STATEMENT. I IS THE INDEX
*
FOR THE REXX STEM VARIABLE INREC
*
* REVIEW THE DATASET NAME LOCATED IN THE ADDRESS COMMAND BELOW.
* CHANGE COMPWARE.SQQFSAMP TO THE NAME OF YOUR INSTALLATION
* SAMPLE DATASET.
*
************************************************************************
ADDRESS HSCMDS "ALLOC FILE (INDATA),
DA(COMPWARE.SQQFSAMP(FDDFILE2)), SHR REUS" /* <=== REVIEW */
"EXECIO * DISKR INDATA (FINIS STEM INREC."
I = 0
*
*
* SCRIPT STARTED ON 2006/07/10 AT 12:12:01
* DESC: MULTIPLE GROUP
*
<VERSION>07.01.00
<DETAIL COMBINED='*'>
*
* MQ_CONNECT
*
*
At the end of the script, insert a REXX procedure to replace the recorded customer name
with a customer name from the external file. Figure 8-28 shows the REXX logic added to
the end of the script in bold text.
• Include the EXPOSE parameter on the PROCEDURE statement to make the REXX
variables available to the REXX procedure and to script processing.
• Insert record selection logic based on the current iteration of playback. The external
file contains 90 records. In this example, the script plays back three times
concurrently (COUNT(3)). The concurrent playback repeats three times (REPEAT(3)).
To ensure the content of each PUT is replaced with a different record:
8-50
Hiperstation for WebSphere MQ User Guide
– Use the first 30 records for the first COUNT, the next 30 records for the second
COUNT, and the last 30 for the last COUNT.
– From each set of 30 records, use the first 10 records for the first REPEAT, the next
10 records for the second REPEAT, and last 10 records for the last REPEAT.
Note:
The number of records to use for each combination of count and repeat
must be equal to or greater the number of data replacements you need to
perform.
The following tables shows the records used for each iteration of playback.
Iteration
Count 1 (1-30)
Count 2 (31-60)
Count 3 (61-90)
REPEAT 1
1-10
31-40
61-70
REPEAT 2
11-20
41-50
71-80
REPEAT 3
21-30
51-60
81-90
To achieve this, use the:
– Hiperstation REXX variable MQGROUP_COUNT_NBR, which returns the current
COUNT value, and the modulo function (//) to return the remainder from the
variable divided by the total number of COUNTS. Pass this value to a variable.
This example passes it to GROUP.
– Hiperstation REXX variable MQGROUP _REPEAT_NBR, which returns the current
REPEAT value, and the modulo function to return the remainder from the
variable divided by the total number of REPEATS. Pass this value to a variable.
The example passes it to REPEAT.
In this example, the modulo function always returns 0, 1, or 2. Since you need to
select a record from the first, second, or third set of records for each COUNT and
REPEAT, use an IF statement to change the variable value to 3 when it is zero.
Using the GROUP, REPEAT, and I variables, construct an equation that returns the
record number to use for the data replacement.
Decrement each variable by one to make them relative to zero. Then multiply them
by the number of records applicable to the variable. That is:
– Each COUNT uses a set 30 records, so multiply (GROUP -1) by 30
– Each REPEAT uses a set of 10 records, so multiply (REPEAT-1) by 10.
Add these sub-equations to determine which set of 10 records to use. Add 1 to make
the total relative to 1. Add I, which increments every time the procedure is called, to
select the appropriate record within the set of 10.
Watch how this works for the first data replacement in the second count of the third
repeat.
I=0 (as initialized)
GROUP= the remainder of 2/3
= 2
REPEAT= the remainder of 3/3
= 0
IF REPEAT=0 THEN REPEAT=3
IX= (2-1)*30 + (3-1)*10 + 1 + 0
IX =51, which represents the record number. As shown in the table, COUNT2,
REPEAT 3 uses records 51-60.
• After the record number is calculated, increment the value of I to make the procedure
select the next record the next time the function is called.
Testing Scenarios
8-51
• FDDFILE2 contains comma separated values (CSV). Each record in the file is
comprised of the customer name, program name, and numeric string. Since this
example calls for replacing the customer name during playback, use a parse
statement to return only the customer name. Include the INREC variable to select the
appropriate record.
Notice, "INREC." is followed by the IX variable, which is the previously calculated
record number.
• The application allows a 32 character customer name. To ensure all characters in the
recorded customer name are overwritten, concatenate 32 spaces to the data in the
CUSTNAME variable, then use a substring instruction to parse out the first 32
characters.
• Use the Hiperstation REPLACE verb, discussed on page 3-40, to execute the data
replacement. Since the customer name field begins with an attribute byte that must
be preserved, set the offset to 1 to replace data beginning with the second byte.
Provide the data to use for replacement. In this case, the CUSTNAME variable is the
replacement data.
• Complete the procedure with a REXX RETURN statement.
Figure 8-28. Data Replacement Logic at End of Sample Script FDDPD000
*
* THE FUNCTION USES THE EXPOSE OPTION ON THE PROCEDURE STATEMENT
* TO MAKE REXX VARIABLES AVAILABLE TO THE FUNCTION AND THE MAINLINE
* SCRIPT.
*
************************************************************************
CHG_CUST: PROCEDURE EXPOSE INREC. CUSTNAME PROGNAME,
MQGROUP_COUNT_NBR MQGROUP_REPEAT_NBR I
/*********************************************************************
/*
/* THE FOLLOWING STATEMENT USES THE MODULO STATEMENT '//' TO CREATE
/* THE MODULO OR REMAINDER AFTER DIVIDING MQGROUP_COUNT_NBR BY 3.
/* THE RESULT WILL BE 0, 1, OR 2. THIS IS ALSO TRUE FOR THE
/* STATEMENT
REPEAT = MQGROUP_REPEAT_NBR // 3
/*
/*********************************************************************
GROUP = MQGROUP_COUNT_NBR // 3
IF GROUP=0 THEN GROUP=3
REPEAT = MQGROUP_REPEAT_NBR // 3
IF REPEAT=0 THEN REPEAT=3
IX=(GROUP-1)*30 + (REPEAT - 1) * 10 + 1 + I
I = I + 1
PARSE VAR INREC.IX CUSTNAME ','
CUSTNAME = CUSTNAME || '
'
CUSTNAME = SUBSTR(CUSTNAME,1,32)
<REPLACE FIELD(1,CUSTNAME)>
RETURN 0
******************************** Bottom of Data ********************************
After the last MQ_DISCONNECT in the script, before the REXX procedure, add a REXX
EXIT statement to terminate playback. Normally, playback terminates when all activity
in the script has been executed. Since this example calls for adding REXX to the end of
the script, the EXIT statement is necessary to indicate the end of the activity.
Finally, insert the following function call before the <CONTENT> tag within each
MQ_PUT.
X= CHG_CUST()
8-52
Hiperstation for WebSphere MQ User Guide
Log Edits
To enable REXX interpretation during playback, add the REXXON parameter to the
playback control information.
To use the Hiperstation REXX variables MQGROUP_COUNT_NBR and
MQGROUP_REPEAT_NBR, add the SET_REXX_STREAM_VARIABLES(YES) parameter to
the playback control information.
Either:
• Add a CONTROL statement with this parameter directly to the log file used to run
the playback job. Insert it above the MQGROUP statement.
• Add the parameter to the CONTROL statement in the control member specified on
the log file’s SET ACTION statement.
Analyzing and Comparing Scripts
There are many ways to use script analysis. With regard to these scenarios, use it to
compare the sample scripts to the scripts you generate and edit to ensure you filtered the
repository and edited the scripts correctly. The main focus of this exercise is to familiarize
you with script analysis, the HTML Exception Report, and the concept of building a
baseline.
To compare the scripts you created to the sample scripts:
1. Locate the sample report member, MQRREXCB, for the HTML Exception Report.
Complete the statement by providing a ddname on the BASELINE parameter and an
HFS path on the INTO parameter. Save the edited report member in your personal
report control library. See “HTML Exception REPORT Statement” on page 6-6.
2. Use the edited LOG file to run an ANALYZE job on the scripts specified by the log
file. Override the temporary dataset on the SET SORTED statement with a permanent
dataset to save the data collected from the analyze job. This will be the baseline
database. See Chapter 5, “Unattended Playback” for help with this and the next step.
3. Use the sample log to run an analyze job on the sample scripts and generate the
exception report simultaneously. Complete SET REPTDS with your personal report
control library, SET SORTED with a unique dataset name, and SET REPTMEM with
the HTML Exception report member. Add a DD statement for the baseline database
specified on the report statement’s BASELINE parameter and the HFS path specified
on the statement’s INTO parameter.
4. Once both analysis jobs have completed, review the report to see if any differences
exist between the two scripts from your log file and the two sample scripts from the
sample log file.
9-1
Chapter 9.
Hiperstation for WebSphere MQ Profile Defaults
Chap 9
WebSphere MQ Profile Defaults
1. Select option 4 WebSphere MQ from the Hiperstation for WebSphere MQ Profile
screen.
Note:
For easier display, the initial Profile screens have been combined. Figure 9-1
shows the profile selection screen. The WebSphere MQ screens in this section
have been combined into logical groups. Figure 9-2 shows the Record
Settings, Figure 9-3 on page 9-3 shows the Script Create Settings, Figure 9-4
on page 9-5 shows the Output Dataset Settings and Figure 9-5 on page 9-6
shows the Script Create Execution Options. On your actual screen, press
FORWARD (PF8) or BACKWARD (PF7) to view all of the fields.
Figure 9-1. Hiperstation for WebSphere MQ Profile Screen
Hiperstation
OPTION ===>
-------------- Hiperstation Profile ---------------------------More:
+
Primary commands: menu-number, ALL, CANCEL
Line commands: S or / to select options.
Active Profile:
Dataset
Member
Description
===> 'USER2312.HIPER.PROFILE'
===> HIPER
===> changed description
_ 1 Domain Traveler
_ 2 APPC
_ 3 3270/LU0
_ 4 WebSphere MQ
_ 5 TCP/IP
_ 6 Auditing 3270
_ 7 Auditing MQ
_ 8 Auditing TCP/IP
_ 9 Playback MQ
_ 10 Playback TCP
_ 11 ATV Manager
Recording and Playback defaults
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Auditing defaults for 3270
Auditing defaults for WebSphere
Auditing defaults for TCP/IP
MQ Playback parameter defaults
TCP Playback parameter defaults
Test Vehicle defaults
settings
settings
settings
settings
MQ
Should changes made elsewhere to Profile values be saved?
Profile Autosave
===> Y
(Y = YES, N = NO OR A = ASK)
Should changes made elsewhere to dataset names be saved?
DSN Autosave
===> Y
(Y = YES, N = NO)
Email address: _______________________________________________________________
Codepage: ISO8859-1
Job statement information for batch jobs:
===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN',
===> //
CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID
===> //*
> //*
The WebSphere MQ Record/Script Create Defaults screen appears.
9-2
Hiperstation for WebSphere MQ User Guide
Figure 9-2. WebSphere MQ Record/Script Create Defaults - Record Settings
Hiperstation ---- Websphere MQ Record/Script Create Defaults ----- Top of data
Profile: HIPER
Profile Dataset: USER2312.HIPER.PROFILE
OPTION ===> ________________________________________________
More:
+
--------------------------------Record Settings-------------------------------_ Create Recording Filters (/ for Filter Create panel)
Repository Dataset:
Dataset Name
First Number
Last Number
===> _______________________________________________
===> ________ (if wildcard in dataset)
===> ________ (if wildcard in dataset)
Reuse Repository Options: (Enter "/" to select)
_ Delete existing data
_ Append to existing data
_ Overwrite existing data when all segments are full
Amount of Data to Record:
Message Data from GETs ===> _____ (ALL or number of bytes)
Message Data from PUTs ===> _____ (ALL or number of bytes)
2. Enter a slash (/) on the Create Recording Filters field to access the WebSphere MQ
Data Collect screen where you can change data collection criteria.
3. Specify your Repository Dataset options.
– Dataset Name is required and specifies where captured data will be stored on
DASD. You can enter a fully qualified dataset name up to 44 characters to
allocate a fixed repository. You can also enter a dataset name with a wildcard of
“*” or “?” to allocate a repository set. This set is defined by a range of numbers
entered in the First Number and Last Number fields. Entering an “*” in the
dataset name expands the qualifier to eight characters and fills with zeros (for
example, xyz* would result in XYZ00001). Entering one or more “?”s in the
dataset name replaces those character positions with numbers (for example,
XYZ??ABC would result in XYZ01ABC).
– First Number and Last Number define the range of datasets for your repository
set. You can enter any range from 0 to 9999999. When one dataset fills up, it is
closed and data continues to be written to the next dataset in sequence. These
fields are required if you enter a wildcard in the Repository Dataset name field.
4. Reuse Repository Options specifies the way your capture request will process the
repository.
– Delete existing data allows capture to start writing data to the beginning of the
repository or the first segment of a repository set. Any data that exists will be
overwritten. This selection is mutually exclusive with Append to existing data.
– Append to existing data allows capture to add data to the repository (or the last
segment of a repository set) that was capturing data. Any data that exists will be
preserved. This is mutually exclusive with Delete existing data.
– Overwrite existing data when all segments are full continues writing captured
data to the first segment of a repository set when the last segment is full. This
option is valid only when using a repository set. This option is only valid when using
a repository set.
5. Amount of Data to Record can record any WebSphere MQ data that passes through
this MVS system and matches your filtering criteria. To record all of that data, enter
ALL in both the Message Data from GETs and Message Data from PUTs fields.
Otherwise, any non-zero numeric value will limit the amount of data recorded from a
single message to that number of bytes.
Hiperstation for WebSphere MQ Profile Defaults
9-3
Figure 9-3. WebSphere MQ Record/Script Create Defaults - Script Create Settings
Hiperstation ---- Websphere MQ Record/Script Create Defaults -----------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===> ________________________________________________
More:
+
----------------------------Script Create Settings---------------------------_ Create Header Filters
(/ for Header Filter Create panel)
Repository Dataset:
Dataset Name
First Number
Last Number
===> _______________________________________________
===> ________ (if wildcard in dataset)
===> ________ (if wildcard in dataset)
Amount of Data to Use:
Data from GETs
Data from PUTs
===> _____
===> _____
(ALL/number)
(ALL/number)
Grouping:
Create a New Script for Each:
_ 1. One script for everything
2. New combination of (one or more)
_ Queue manager
_ Connection
_ Object (queue)
_ Jobname
_ Event
Script Content:
Where Should Details be Stored:
(Enter number to select)
_ 1. Merged into the script
2. Separate from the script, input and output together
3. Separate from the script, input and output split
Script Options:
(Enter "/" to select)
_ Suppress Time Stamps in Script
_ Translate Detail Data from ASCII to EBCDIC
_ Translate Sample Data from ASCII to EBCDIC
_ Include Default MQAPI Script Tag parameters
What Should be Created:
_ Create Log entries
_ Create Script entries
_ Create Detail entries
_ Create Event summary entries in CSV format
_ Create Event summary entries in HTML format
_ Create Subset repository
6. Enter a slash (/) to select Create Header Filters and display the WebSphere MQ Header Filter Create screen. See the Hiperstation for WebSphere MQ User Guide or
online help for more information about that screen.
7. Specify your Repository Dataset options.
– Dataset name is required and specifies where captured data will be stored on
DASD. You can enter a fully qualified dataset name up to 44 characters to
allocate a fixed repository. You can also enter a dataset name with a wildcard of
“*” or “?” to allocate a repository set. This set is defined by a range of numbers
entered in the First and Last number fields. Entering an “*” in the dataset name
expands the qualifier to eight characters and fills with zeros (for example, xyz*
would result in XYZ00001). Entering one or more “?”s in the dataset name
replaces those character positions with numbers (for example, XYZ??ABC would
result in XYZ01ABC).
– First Number and Last Number define the range of datasets for your repository
set. You can enter any range from 0 to 9999999. When one dataset fills up, it is
closed and data continues to be written to the next dataset in sequence. These
fields are required if you entered a wildcard in the Repository Dataset name field.
8. Amount of Data to Use can record any WebSphere MQ data that passes through this
MVS system and matches your filtering criteria. To record all of that data, enter ALL
in the Data from GETS and Data from PUTS fields. Otherwise, any non-zero
numeric value will limit the amount of data recorded from a single message to that
number of bytes.
9-4
Hiperstation for WebSphere MQ User Guide
9. The Grouping fields allow you to reproduce, at playback time, the timing and
sequence of all of the WebSphere MQ data, as seen at capture time, or create scripts
that contain just the subset of WebSphere MQ connections that you need.
1. Select option 1 to create one script for everything.
2. Select option 2 to group your script information by combining one or more
of the choices. Your script choices include collecting the following types of
information: Queue manager, Connection, Object (queue), Jobname, and
Event.
10. The Script Content fields let you choose where to store your script contents, specify
script options, and specify what should be created. Four types of information can be
produced: a log, a script, details, and an event summary.
11. Where should details be stored? Enter a number to select. The choices include:
1. Merged into the script places the details into the same PDSE member as the
script. WebSphere MQ verbs contained in the script will be merged with the
data sent by the verbs. This allows viewing of all data in a single location —
one PDSE member.
2. Separate from script, input and output together places the detail data into
a PDSE member that is separate from the script PDSE member. This keeps the
script member uncluttered with (possibly) non-printable data. In addition, a
file formatting tool can display the detail data since it is now separate from
the WebSphere MQ verbs.
3. Separate from script, input and output split places the detail data into two
PDSE members, both of which are separate from the script member. One
member contains the PUT data and the other member contains the GET data.
12. Enter a slash (/) to select your Script Options. These options include:
– Suppress Time Stamps in Script omits time stamps making the script easier to
browse. Select only if you have no plans to play back the scripts. Time stamps
appear with every WebSphere MQ verb in a script and are used during playback
to keep scripts synchronized. If you are using scripts as debugging tools rather
than for playback, you might want to suppress time stamps to make the scripts
more readable.
– Translate Detail Data from ASCII to EBCDIC converts the content of ASCII
messages to EBCDIC making it easier to display and edit detail data in ISPF. This
option has no effect on messages already in EBCDIC. Hiperstation for
WebSphere MQ adds the TRANSLATE=A2E keyword to the script tag to indicate
that translation has occurred for a particular message. During playback, these
messages are converted back to ASCII.
– Translate Sample Data from ASCII to EBCDIC includes a single line, or sample,
of the detail data in the script for reference purposes when you store script and
detail data separately. This option converts ASCII sample data, based on the
CodedCharSetId field of the MQMD, to EBCDIC. Select this option if you plan to
view your scripts in ISPF.
– Include Default MQAPI Script Tag parameters writes your application's entire
MQ API parameter set into the script. Normally, Hiperstation for WebSphere MQ
saves space in the script by omitting parameters with default settings. Use this
option to ensure all parameters are set appropriately.
13. What Should be Created? Enter a slash (/) to select one or more of the following:
– Create Log entries — A single WebSphere MQ Log is produced for a recording
request that you create. The log contains a list of every script that has been
recorded at your request. Each entry in the log consists of an MQGROUP
statement and a SCRIPT statement. The SCRIPT statement specifies the PDSE
member containing the WebSphere MQ message data. The log, possibly requiring
modifications, is typically used as the SYSIN dataset for your WebSphere MQ
playback job.
Hiperstation for WebSphere MQ Profile Defaults
9-5
– Create Script entries — A new script is produced for each combination of Queue
manager, connection, object, jobname, and/or event as specified previously on
the Grouping screen. The name of the member is entered into the WebSphere
MQ log on the SCRIPT statement. This allows the log to locate the script
members during playback. A script contains all the WebSphere MQ verbs
(MQ_CONNECT, MQ_OPEN, MQ_PUT, etc.) issued by the specified WebSphere
MQ objects and its partners.
– Create Detail entries — Details refers to data sent to or from WebSphere MQ
objects. It can be human readable or it can consist only of binary data. See step
11 on page 9-4 to specify where to store the details:.
– Create Event summary entries in CSV format — The Event Summary is a report
which contains one record for each PUT or GET. Key information on the Event
Summary is the date, time, and the WebSphere MQ object associated with the
data.
– Create Event summary entries in HTML format — The Event Summary is a
report which contains one record for each PUT or GET. Key information on the
Event Summary is the date, time, and the WebSphere MQ object associated with
the data.
– Create Subset repository — Enter a slash (/) to create a subset repository.
Figure 9-4. WebSphere MQ Record/Script Create Defaults - Output Datasets
Hiperstation ---- Websphere MQ Record/Script Create Defaults -----------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===> ________________________________________________
More:
- +
Output Datasets:
Conversation Log:
Dataset Name
===> ______________________________________________
Member Prefix
===> ______
(1 - 6 character prefix)
Member Suffix
===> _______ (2 - 7 numeric suffix)
Replace
===> _
(Enter "/" to replace)
Script Output Dataset:
Dataset Name
===>
Member Prefix
===>
Member Suffix
===>
Replace
===>
______________________________________________
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
_
(Enter "/" to replace)
Combined Detail:
Dataset Name
Member Prefix
Member Suffix
DDname
===>
===>
===>
===>
______________________________________________
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
Outbound detail:
Dataset Name
Member Prefix
Member Suffix
DDname
Replace
===>
===>
===>
===>
===>
______________________________________________
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
_
(Enter "/" to replace)
Inbound detail:
Dataset Name
Member Prefix
Member Suffix
DDname
===>
===>
===>
===>
______________________________________________
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
Event Summary:
Dataset Name
Member Prefix
Member Suffix
Replace
===>
===>
===>
===>
______________________________________________
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
_
(Enter "/" to replace)
14. Several Output Datasets will be created. You can add or change the dataset name,
member prefix, member suffix, or DDname, if desired.
9-6
Hiperstation for WebSphere MQ User Guide
– Dataset Name: Supply a dataset name (without a member name) for each row.
The dataset names can be fully qualified (enclosed in single quotes) or partially
qualified (not in quotes). Partially qualified dataset names will be prefixed with
your TSO prefix (normally your userid) at processing time. All datasets must be
partitioned datasets extended (PDSE). A regular PDS is not supported. For an
HTML event summary, supply the HFS path of where the report is to be written
(not in quotes).
– Member Prefix: Supply a member name prefix (one to six characters) for each
row marked with an *. This prefix is used (in combination with the suffix) to
create complete member names to be stored in your datasets. You should select
member name prefixes that make it easy for you to identify the type of data
stored in each member. You can supply any prefix that is valid as the start of a
PDSE member name. For an HTML event summary, the prefix is used with the
suffix to create an .htm file and sub-directory.
– Member Suffix: Supply a member name suffix (one to seven numerals) for each
row marked with an *. This suffix is used (in combination with the prefix) to
create complete member names to be stored in your datasets. As Hiperstation for
WebSphere MQ creates new members for each new script, the suffix number is
incremented to produce a unique member names.
– DDname: Supply a data definition name (DDname) for each row marked with an
* that is also for detail data. The DDname can be from one to eight characters in
length. The DDname you supply is written into the script member along with the
WebSphere MQ verbs. The DDname enables to find your detail data when you
play back the script. You must place the same DDname in the Job Control
Language (JCL) used to play back your Hiperstation for WebSphere MQ scripts.
– Replace: If you want Hiperstation to overwrite existing data in your datasets,
select the appropriate “Replace ...” options. Otherwise, Hiperstation will create
new members in your datasets.
Figure 9-5. WebSphere MQ Record/Script Create Defaults - Script Create Exec. Options
Hiperstation ---- Websphere MQ Record/Script Create Defaults ----- End of data
Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===> ________________________________________________
Script
Select
_ 1.
2.
3.
Create Execution Options:
Processing Option: (Enter number to select)
Submit batch job
Edit batch job
Process in foreground
15. Script Create Execution Options specifies whether you want background (batch) or
foreground processing to be your default. Select 1 to perform background processing.
Select 2 to edit a batch job. Select 3 to process in the foreground. Sample JCL is
provided for a batch job, which you can change if desired.
1.
Auditing WebSphere MQ Profile Defaults
This section defines the auditing defaults for WebSphere MQ.
1. Select option 7 Auditing MQ from the “Hiperstation for WebSphere MQ Profile
Screen”.
Note:
For easier display, the initial Profile screens have been combined. Figure 9-6
shows the profile selection screen. On your actual screen, press FORWARD
(PF8) or BACKWARD (PF7) to view all of the fields.
Hiperstation for WebSphere MQ Profile Defaults
9-7
Figure 9-6. Hiperstation for WebSphere MQ Profile Screen
Hiperstation
OPTION ===>
-------------- Hiperstation Profile ---------------------------More:
+
Primary commands: menu-number, ALL, CANCEL
Line commands: S or / to select options.
Active Profile:
Dataset
Member
Description
===> 'USER2312.HIPER.PROFILE'
===> HIPER
===> changed description
_ 1 Domain Traveler
_ 2 APPC
_ 3 3270/LU0
_ 4 WebSphere MQ
_ 5 TCP/IP
_ 6 Auditing 3270
_ 7 Auditing MQ
_ 8 Auditing TCP/IP
_ 9 Playback MQ
_ 10 Playback TCP
_ 11 ATV Manager
Recording and Playback defaults
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Auditing defaults for 3270
Auditing defaults for WebSphere
Auditing defaults for TCP/IP
MQ Playback parameter defaults
TCP Playback parameter defaults
Test Vehicle defaults
settings
settings
settings
settings
MQ
Should changes made elsewhere to Profile values be saved?
Profile Autosave
===> Y
(Y = YES, N = NO OR A = ASK)
Should changes made elsewhere to dataset names be saved?
DSN Autosave
===> Y
(Y = YES, N = NO)
Email address: _______________________________________________________________
Codepage: ISO8859-1
Job statement information for batch jobs:
===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN',
===> //
CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID
===> //*
> //*
The “Auditing Defaults for WebSphere MQ Screen” appears (Figure 9-7).
Figure 9-7. Auditing Defaults for WebSphere MQ Screen
Hiperstation
------- Auditing Defaults for WebSphere MQ --------------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===> _________________________________________________
_ Create Recording Filters (/ for Filter Create panel)
Datasets:
Registry DSN
Description
Replace Existing
Repositories?
===> _____________________________________________
===> __________________________________________
===> _
1 = Yes, 2 = Terminate
Archive Request Criteria:
_ Exclude SYSTEM traffic ('/')
Recording Date and Time
HH : MM : SS
Start Time
===> 00 : 00 : 00
End Time
===> 00 : 00 : 00
(Optional)
Start Date
End Date
MM / DD / YYYY
00 / 00 / 0000
00 / 00 / 0000
2. Enter a slash (/) to select Create Recording Filters and display the “WebSphere MQ
Data Collect - Filtering Screen”. This screen specifies the Queue Managers, Queue
Names, and Jobnames to capture. It also provides the ability to filter events by
completion and reason codes. See the Hiperstation for WebSphere MQ User Guide or the
online help for information about creating filters.
3. Specify your Datasets information.
9-8
Hiperstation for WebSphere MQ User Guide
– Registry DSN specifies the name of the dataset that contains the index to this
archive recording request. You can enter a fully qualified dataset name up to 35
characters in length to allocate the repository registry. Repositories created by
this archive record request will be based on the repository registry dataset name
(for example, a repository registry dataset of A.B.C would result in repositories
being created from A.B.C.#0000001 to A.B.C.#9999999).
– Description is an optional field that describes the archive record request. This
description will be provided to the user when the user specifies an archive record
request in the Create Search Reports function.
– Replace Existing Repositories? specifies what should occur when archive record
attempts to switch to a new repository segment and a dataset already exists that
matches that repository segment dataset name. Select 1 or 2.
1 (Yes) deletes the existing dataset and creates a new dataset with the same name
that is allocated and with the same options as the initial repository dataset
segment. Specify this option if it is imperative that the archive record request
remain active.
2 (Terminate) terminates the archive record request. The archive record request
will not start if any datasets exist that match the repository dataset specification.
4. Archive Request Criteria specifies whether to exclude SYSTEM queue traffic
(excluding the SYSTEM.DEFAULT queues). This traffic can be associated with your
WebSphere MQ sessions, and it is recommended to filter it out to avoid obscuring
your application flow. Enter a slash (/) to filter out SYSTEM queue traffic.
5. The Recording Start and End Date and Time fields are optional. For a user profile,
leaving the date and time blank is most useful. When a user specifies a time-frame for
the request, it becomes active at the designated start time. If no time-frame is
specified, it becomes active immediately. Capture begins when all of the criteria for
an active request are met. If you enter a Start Time you must enter a Start Date. If you
enter an End Time you must enter an End Date. Times are entered in a 24-hour clock.
The range of acceptable year values is 2000 to 2040, and the end date and time must
be later than the start date and time.
Playback WebSphere MQ Profile Defaults
This section defines the playback WebSphere MQ profile defaults.
1. Select option 9 Playback MQ from the Hiperstation for WebSphere MQ Profile
screen.
Note:
For easier display, the initial Profile screens have been combined. Figure 9-8
shows the profile selection screen. The Playback MQ screens in this section
have been combined. Figure 9-9 shows all of the Playback MQ profile
settings. On your actual screen, press FORWARD (PF8) or BACKWARD (PF7)
to view all of the fields.
Hiperstation for WebSphere MQ Profile Defaults
9-9
Figure 9-8. Hiperstation for WebSphere MQ Profile Screen
Hiperstation
OPTION ===>
-------------- Hiperstation Profile ---------------------------More:
+
Primary commands: menu-number, ALL, CANCEL
Line commands: S or / to select options.
Active Profile:
Dataset
Member
Description
===> 'USER2312.HIPER.PROFILE'
===> HIPER
===> changed description
_ 1 Domain Traveler
_ 2 APPC
_ 3 3270/LU0
_ 4 WebSphere MQ
_ 5 TCP/IP
_ 6 Auditing 3270
_ 7 Auditing MQ
_ 8 Auditing TCP/IP
_ 9 Playback MQ
_ 10 Playback TCP
_ 11 ATV Manager
Recording and Playback defaults
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Global Record and Script Create
Auditing defaults for 3270
Auditing defaults for WebSphere
Auditing defaults for TCP/IP
MQ Playback parameter defaults
TCP Playback parameter defaults
Test Vehicle defaults
settings
settings
settings
settings
MQ
Should changes made elsewhere to Profile values be saved?
Profile Autosave
===> Y
(Y = YES, N = NO OR A = ASK)
Should changes made elsewhere to dataset names be saved?
DSN Autosave
===> Y
(Y = YES, N = NO)
Email address: _______________________________________________________________
Codepage: ISO8859-1
Job statement information for batch jobs:
===> //XXXXXXXA JOB ('ACCOUNT',5M-0000),'HIPERSTN',
===> //
CLASS=Q,MSGCLASS=R,NOTIFY=&SYSUID
===> //*
> //*
The “MQ Interactive Playback Defaults Screen” appears (Figure 9-9).
9-10
Hiperstation for WebSphere MQ User Guide
Figure 9-9. MQ Interactive Playback Defaults Screen
Hiperstation --------- MQ Interactive Playback Defaults ----------------------Profile: HIPER
Profile Dataset: 'userid.HIPER.PROFILE'
OPTION ===> _______________________________________________
More:
+
Playback Information
_ Live
(/ for live I/O, blank for off-line)
_ Use REXX
_ Set REXX Stream Variables
Stop On
===> ____ (End compare report generation after the specified number of mismatches have been reached.)
Standard Wait Time
===> ___
Think Time Option
_ 1. Play at full speed
2. Think time recorded on script
3. User-specified think time
(HH:MM:SS)
===> ________
Percent
===> ___
Reporting Options:
Field Depth
===> __
Max Lines per Page ===> ____
Break
===> _
(Maximum lines to print in field)
(1-9999, 0 for all)
(E)ject, (N)ext
Datasets:
Conversation log:
Dataset Name
===> _______________________________________________
Script Dataset:
Dataset Name
===> _______________________________________________
Database:
Dataset Name
===> _______________________________________________
REXX log:
Dataset Name
===> _______________________________________________
Error log:
Dataset Name
===> _______________________________________________
2. Specify your WebSphere MQ Playback Information.
– In the Live field, enter a slash (/) for interactive playback or leave blank for
unattended playback.
– Use REXX sets REXXON or REXXOFF on the Hiperstation for WebSphere MQ
CONTROL statement. This allows you to use REXX clauses outside of script tags
to perform tasks such as replacing recorded application data during playback. For
Hiperstation for VTAM you can use REXX conditional logic to replace recorded
inputs with variable names to dynamically replace input data with unique values
during playback. Enter a slash (/) to set REXXON or leave blank to set REXXOFF.
– Set REXX Stream Variables is specified in the Hiperstation for Mainframe
Servers and the Hiperstation for WebSphere MQ CONTROL statements. This
parameter enables the use of the Hiperstation for Mainframe Servers predefined
REXX variables during playback. The variables return information about the
playback. Incorporate them into REXX logic that you add to your scripts to
control the way the scripts play back. For example, use them to dynamically
replace data in the script during playback. Since this is not necessary for replay,
the default value for this parameter is usually set to NO. A slash (/) sets the value
to YES, leave blank to set to NO.
– In the Stop On field, enter a number to end the compare report generation after
the specified number of mismatches have been reached.
3. Specify a Standard Wait Time or enter the number of the Think Time Option you
want to select.
– Standard Wait Time is the Think Time for each transaction.
– Select one of the following Think Time Options:
Hiperstation for WebSphere MQ Profile Defaults
9-11
1. Play at full speed. Transactions are played back as fast as the system can
execute them.
2. Think time recorded on script. Think time is simulated using the time
recorded on the script.
3. User-specified think time. Enter the think time in the desired number of
minutes and seconds. Or you can enter a percent. One hundred percent
specifies the original think time. Fifty percent specifies one-half the original
think time. Seconds is the only required value.
4. Select the desired Reporting Options.
– Field Depth specifies the number of lines to print in a field before truncating
data. This applies only to Text and CSV reports and allows you to truncate the
printing of large fields that may contain up to two gigabytes of data.
– Max lines per Page specifies the maximum number of lines to print on a page.
Enter a number between 30 and 9999 or zero (0) for all. This applies only to Text
reports. The default is 60.
– Break specifies whether to begin each record on a new page or continue the
report on the next line. This is valid if you are using form reports in a Text or
HTML format. Select EJECT to begin each record on a new page or NEXT to
continue the report on the next line. EJECT is the default.
5. Name your Datasets.
– Conversation Log Dataset Name — The dataset name where you want the
conversation log to reside on DASD.
– Script Dataset Name — The location of the scripts you will play back. This is a
required field and must refer to an existing dataset.
– Database Dataset Name — To report on the playback, enter a name for the
reporting database. Data from the playback is collected to this database and used
in a future reporting job. This field is only required if “Generate Reporting Job” is
selected.
– REXX Log Dataset Name — Specifies that the output generated by REXX
statements in a script is directed to a SYSOUT or DASD dataset, rather than to
SYSPRINT. If the specified value is a single character, the REXX log is allocated to
a SYSOUT class. The SYSOUT goes to the class specified by the single character. If
the value is more than one character, the REXX Log is allocated to a permanent
file with the name dataset.Pnnnn, where nnnn is the port number assigned to the
terminal. Wild cards (* or ?) can be used to identify where the port number
(nnnn) is inserted. A member can also be supplied. By default, REXX output is
directed to the SYSPRINT dataset.
– Error Log Dataset Name — The playback error log is a report that describes any
errors that occurred during playback. If this field is left blank, the report will go
to SYSOUT=*. Enter a dataset name or an hfs path to specify an alternate
location.
9-12
Hiperstation for WebSphere MQ User Guide
A-1
Appendix A.
Data Collection and Reporting Tables
App A
This appendix provides information to help you define the parameters of your COLLECT
and REPORT statements. See “COLLECT Statement” on page 5-14 and “REPORT
Statement for Custom Reports” on page 6-9.
Most report tables are broken into two sections:
• Report fields: Collect any or all of these fields during playback. Then build custom
reports containing the fields you need. For example,
– COLLECT FIELDS(*) FROM(PLAYBACK)
collects all report fields from the PLAYBACK table.
– REPORT FIELDS(OWNA, JBNA, PLNA) FROM(PLAYBACK)
reports the OwnerName, JobName, and PlaybackName fields from the PLAYBACK
table.
• Statistic fields: These fields report the minimum and maximum values, averages,
and sums of specified report fields. You do not collect statistic fields, you collect the
field on which the statistic is based. For example, collect MQScriptStatementCount
from the MQGROUP table to report the SUM of MQScriptStatementCount on a
PLAYBACK report.
While sorting the collected data, Hiperstation for WebSphere MQ calculates statistics
for that data. Report the statistic by specifying any or all of the statistics fields on
your REPORT statements.
Additionally, statistics are relative to the table from which they are reported. For
example:
– REPORT FIELDS(MAX(MQScriptReturnCode)) FROM(PLAYBACK)
reports the highest script return code that occurred during the playback.
– REPORT FIELDS(MAX(MQScriptReturnCode)) FROM(MQGROUP)
reports the highest script return code from each group played back.
The tables include the long and short name for each report field. Use either on the
FIELDS declarations of your COLLECT and REPORT statements.
PLAYBACK Table
The PLAYBACK table includes both report and statistic fields.
PLAYBACK Report Fields
COLLECT any or all of the following fields and REPORT them on customized PLAYBACK
reports.
Long Field Names
Short Field Names
OwnerName
OWNA
JobName
JBNA
JobNumber
JBNU
A-2
Hiperstation for WebSphere MQ User Guide
Long Field Names
Short Field Names
SystemName
SYNA
PlaybackName
PLNA
PlaybackNumber
PLNU
PlaybackReturnCode
PLRC
PlaybackStartTime
PLST
PlaybackFinishTime
PLFT
PlaybackDuration
PLDR
MQGroupStatementCount
MQCN
Note: Hiperstation for WebSphere MQ and Hiperstation for Mainframe Servers share the
same PLAYBACK report fields table. As such, a report containing all of the
PLAYBACK fields includes the MQGroupStatementCount field.
PLAYBACK Statistic Fields
REPORT any of the following statistics on customized PLAYBACK reports.
Note:
Use the Collect from Table column to determine the parameters for the
collection statement required to report the given statistic. For example, to report
MAXIMUM MQGroupReturnCode from the PLAYBACK table, collect the
MQGroupReturnCode field from the MQGROUP table. Collect all fields from all
tables to simplify collection and ensure a complete reporting database.
Statistics
For Field (long names)
Field Short Names Collect from Table
MIN or MAX
MQGroupReturnCode
MQRC
MQGROUP
MIN or MAX
MQScriptReturnCode
MSRC
MQSCRIPT
AVG, MIN, MAX, or SUM MQGroupDuration
MQDR
MQGROUP
AVG, MIN, MAX, or SUM MQScriptDuration
MQSD
MQSCRIPT
AVG, MIN, MAX, or SUM MQOpenQueueDuration
OQDR
MQOPENQUEUE
AVG, MIN, MAX, or SUM MQMessageSetDuration
MSSD
MQMESSAGESET
SUM
MQScriptStatementCount
MQSC
MQGROUP
SUM
MQOpenQueueCount
MQOC
MQSCRIPT
SUM
MQMessageSetCount
MSSC
MQSCRIPT
SUM
MQMessageCountQueue
MQCQ
MQOPENQUEUE
SUM
MQMessageCountMessageSet
MQMC
MQMESSAGESET
AVG, MIN, MAX, or SUM MQOpenQueueAttempted
MQOA
MQOPENQUEUE
AVG, MIN, MAX, or SUM MQOpenQueueFailed
MQOF
MQOPENQUEUE
MIN or MAX
MQOP
MQOPENQUEUE
AVG, MIN, MAX, or SUM MQOpenQueueMessageRate
MQMR
MQOPENQUEUE
MIN or MAX
MQMessageVersion
MQMV
MQMESSAGE
MIN or MAX
ExpMQMessageVersion
EXMQMV
MQMESSAGE
MQOpenQueueStatus
MQGROUP Table
The MQGROUP table includes both report and statistic fields.
Data Collection and Reporting Tables
A-3
MQGROUP Report Fields
COLLECT any or all of the following fields and REPORT them on customized MQGROUP
reports.
Long Field Names
Short Field Names
MQGroupNumber
MQNU
MQGroupID
MQID
MQGroupReturnCode
MQRC
MQGroupStartTime
MQST
MQGroupFinishTime
MQFT
MQGroupDuration
MQDR
MQScriptStatementCount
MQSC
MQGROUP Statistic Fields
REPORT any of the following statistics on customized MQGROUP reports.
Note:
Use the Collect from Table column to determine the parameters for the
collection statement required to report the given statistic. For example, to report
MAXIMUM MQScriptReturnCode from the MQGROUP table, collect the
MQScriptReturnCode field from the MQSCRIPT table. Collect all fields from all
tables to simplify collection and to ensure a complete reporting database.
Statistics
For Field (long names)
Field Short Names Collect from Table
MIN or MAX
MQScriptReturnCode
MSRC
MQSCRIPT
AVG, MIN, MAX, or SUM
MQScriptDuration
MQSD
MQSCRIPT
AVG, MIN, MAX, or SUM
MQOpenQueueDuration
OQDR
MQOPENQUEUE
AVG, MIN, MAX, or SUM
MQMessageSetDuration
MSSD
MQMESSAGESET
SUM
MQOpenQueueCount
MQOC
MQSCRIPT
SUM
MQMessageSetCount
MSSC
MQSCRIPT
SUM
MQMessageCountQueue
MQCQ
MQOPENQUEUE
SUM
MQMessageCountMessageSet MQMC
MQMESSAGESET
AVG, MIN, MAX, or SUM
MQOpenQueueAttempted
MQOA
MQOPENQUEUE
AVG, MIN, MAX, or SUM
MQOpenQueueFailed
MQOF
MQOPENQUEUE
MIN or MAX
MQOpenQueueStatus
MQOP
MQOPENQUEUE
AVG, MIN, MAX, or SUM
MQOpenQueueMessageRate
MQMR
MQOPENQUEUE
MIN or MAX
MQMessageVersion
MQMV
MQMESSAGE
MIN or MAX o
ExpMQMessageVersion
EXMQMV
MQMESSAGE
MQSCRIPT Table
The MQSCRIPT table includes both report and statistic fields.
A-4
Hiperstation for WebSphere MQ User Guide
MQSCRIPT Report Fields
COLLECT any or all of the following fields and REPORT them on customized MQSCRIPT
reports.
Long Field Names
Short Field Names
MQScriptNumber
MQSN
MQScriptName
MSCN
MQGroupNumber
MQNU
MQScriptReturnCode
MSRC
MQScriptStartTime
MSCS
MQScriptFinishTime
MSCF
MQScriptDuration
MQSD
MQOpenQueueCount
MQOC
MQMessageSetCount
MSSC
MQSCRIPT Statistic Fields
REPORT any of the following statistics on customized MQSCRIPT reports.
Note:
Use the Collect from Table column to determine the parameters for the
collection statement required to report the given statistic. For example, to report
MAXIMUM MQMessageSetDuration from the MQSCRIPT table, collect the
MQMessageSetDuration field from the MQMESSAGESET table. Collect all fields
from all tables to simplify collection and to ensure a complete reporting
database.
Statistics
For Fields (long names)
Field Short Names Collect from Table
AVG, MIN, MAX, or SUM MQOpenQueueDuration
OQDR
MQOPENQUEUE
AVG, MIN, MAX, or SUM MQMessageSetDuration
MSSD
MQMESSAGESET
SUM
MQMessageCountQueue
MQCQ
MQOPENQUEUE
Sum
MQMessageCountMessageSet
MQMC
MQMESSAGESET
AVG, MIN, MAX, or SUM MQOpenQueueAttempted
MQOA
MQOPENQUEUE
AVG, MIN, MAX, or SUM MQOpenQueueFailed
MQOF
MQOPENQUEUE
MIN or MAX
MQOpenQueueStatus
MQOP
MQOPENQUEUE
AVG, MIN, MAX, or SUM
MQOpenQueueMessageRate
MQMR
MQOPENQUEUE
MIN or MAX
MQMessageVersion
MQMV
MQMESSAGE
MIN or MAX
ExpMQMessageVersion
EXMQMV
MQMESSAGE
MQMESSAGESET Table
During playback, Hiperstation for WebSphere MQ groups related MQ messages into
message sets for reporting purposes. Grouping is based on MQMD header information.
Hiperstation for WebSphere MQ groups messages with matching correlation IDs. If the
message(s) do not have correlation IDs, it groups them by Message IDs.
Data Collection and Reporting Tables
Note:
A-5
In addition to matching Correlation and/or Message IDs, the queue on a reply
message must match the queue or the ReplyToQueue on the related request
message to be grouped with that message.
Hiperstation for WebSphere MQ creates a Message Set for each:
• Request message and all of its related messages
• Non-request message that is not related to any other message—these message sets
contain only a single message
Finally, Hiperstation for WebSphere MQ treats datagrams as reply messages unless they
contain a ReplyToQueue. Then they are treated as request messages.
Use the MQMESSAGESET table to collect and report information about message sets. It
includes both report and statistics fields.
MQMESSAGESET Report Fields
COLLECT any or all of the following fields and REPORT them on customized
MQMESSAGESET reports.
Long Field Names
Short Field Names
MQMessageSetNumber
MSSN
MQMessageSetID
MMSI
MQScriptNumber
MQSN
MQGroupNumber
MQNU
MQMessageSetStartTime
MSTS
MQMessageSetFinishTime
MSTF
MQMessageSetDuration
MSSD
MQMessageCountMessageSet
MQMC
MQMESSAGESET Statistic Fields
REPORT any of the following statistics on customized MQMESSAGESET reports.
Note:
Use the Collect from Table column to determine the parameters for the
collection statement required to report the given statistic. For example, to report
MAXIMUM MQMessageVersion from the MQMESSAGESET table, collect the
MQMessageVersion field from the MQMESSAGE table. Collect all fields from all
tables to simplify collection and to ensure a complete reporting database.
Statistics
For Field (long names)
Field Short Names Collect from Table
MIN or MAX
MQMessageVersion
MQMV
MQMESSAGE
MIN or MAX
EXPMQMessageVersion
EXMQMV
MQMESSAGE
MQOPENQUEUE Table
The MQOPENQUEUE table includes only report fields. There are no statistics fields.
A-6
Hiperstation for WebSphere MQ User Guide
MQOPENQUEUE Report Fields
COLLECT any or all of the following fields and REPORT them on customized
MQOPENQUEUE reports.
Long Field Names
Short Field Names
MQOpenQueueNumber
OQNU
MQOpenQueueID
OQID
MQScriptNumber
MQSN
MQGroupNumber
MQNU
MQOpenQueueName
QNAM
MQOpenQueueManagerName
QMNA
MQOpenQueueStartTime
MSCS
MQScriptFinishTime
MSCF
MQOpenQueueDuration
OQDR
MQMessageCountQueue
MQCQ
MQOpenQueueAttempted
MQOA
MQOpenQueueFailed
MQOF
MQOpenQueueStatus
MQOP
MQOpenQueueMessageRate
MQMR
MQMESSAGE Table
The MQMESSAGE table includes only report fields. There are no statistics fields.
MQMESSAGE Report Fields
COLLECT any or all of the following fields and REPORT them on customized
MQMESSAGE reports.
Note: All fields from MQMessageVersion through the end of the table collect and report
information from the MQMD header.
Long Field Names
Short Field Names
MQMessageNumber
MMNU
MQMessageID
MMID
MQMessageSetNumber
MSSN
MQOpenQueueNumber
OQNU
MQScriptNumber
MQSN
MQGroupNumber
MQNU
MQMessageVersion
MQMV
MQMessageReport
MQRO
MQMessageType
MQTY
MQMessageExpiry
MQEX
MQMessageFeedback
MQFD
Data Collection and Reporting Tables
Long Field Names
Short Field Names
MQMessageVersion
MQMV
MQMessageEncoding
MQEN
MQMessageCharSetID
MQCS
MQMessageFormat
MQFM
MQMessagePriority
MQPR
MQMessagePersistence
MQPS
MQMessageMsgID
MQMI
MQMessageCorrelationID
MQCI
MQMessageBackoutCount
MQBC
MQMessageReplyToQueue
MQRQ
MQMessageReplyToQueueMgr
MQRM
MQMessageUserIdentifier
MQUI
MQMessageAccountingToken
MQAT
MQMessageApplIdentifyData
MQAI
MQMessagePutApplType
MQPA
MQMessagePutApplName
MQPN
MQMessagePutDate
MQPD
MQMessagePutTime
MQPT
MQMessageApplOriginData
MQAO
ExpMQMessageVersion
EXMQMV
ExpMQMessageReport
EXMQRO
ExpMQMessageType
EXMQTY
ExpMQMessageExpiry
EXMQEX
ExpMQMessageFeedback
EXMQFD
ExpMQMessageEncoding
EXMQEN
ExpMQMessageCharSetID
EXMQCS
ExpMQMessageFormat
EXMQFM
ExpMQMessagePriority
EXMQPR
ExpMQMessagePersistence
EXMQPS
ExpMQMessageMsgID
EXMQMI
ExpMQMessageCorrelationID
EXMQCI
ExpMQMessageBackoutCount
EXMQBC
ExpMQMessageReplyToQueue
EXMQRQ
ExpMQMessageReplyToQueueMgr
EXMQRM
ExpMQMessageUserIdentifier
EXMQUI
ExpMQMessageAccountingToken
EXMQAT
ExpMQMessageApplIdentifyData
EXMQAI
ExpMQMessagePutApplType
EXMQPA
ExpMQMessagePutApplName
EXMQPN
ExpMQMessagePutDate
EXMQPD
A-7
A-8
Hiperstation for WebSphere MQ User Guide
Long Field Names
Short Field Names
ExpMQMessagePutTime
EXMQPT
ExpMQMessageApplOriginData
EXMQAO
MQMessageOutbound
MQMessageInbound
1
2
MQMessageExpectedInbound
MQMO
MQMB
MQME
MQMessageQueueManagerAndQueue QMAQ
1. Outbound indicates an MQ_PUT
2. Inbound indicates an MQ_GET
B-1
Appendix B.
Hiperstation for WebSphere MQ Samples Index
Appendix A.
App B
Playback Control Library
Basic Playback Control Assets
The following samples are basic playback control assets that you can use to run
unattended playback jobs. Copy them into your own asset libraries and modify them to
meet your needs.
Sample Name
Description
ANALYZE
CONTROL Card for Script Analysis Job
COLLECT
Playback CONTROL Card to Collect All Report Data
NONE
Playback and Report CONTROL Card To Skip Action
PLAYBACK
Playback CONTROL Card to Produce A Full Playback
Sample Log Files
The following log file samples correspond to the example testing scenarios discussed in
Chapter 8, “Testing Scenarios”.
Sample Name
Description
LOGCR000
WebSphere MQ Log for a Playback Using Count and Repeat
LOGDD000
WebSphere MQ Log for a Data Driven Playback w/Data Replacement
LOGDD001
WebSphere MQ Log for a Data Driven Playback Capturing Data
LOGDD002
WebSphere MQ Log for a Data Driven Playback Data Pump
LOGED000
WebSphere MQ Log for a Data Driven Playback Expanding Queue Data
LOGMG000
WebSphere MQ Log for a Playback Using Multiple Groups
LOGMG001
WebSphere MQ Log Used By LOGMG000
LOGMG002
WebSphere MQ Log Used By LOGMG000
LOGMG003
WebSphere MQ Log Used By LOGMG000
LOGMG004
WebSphere MQ Log Used By LOGMG006
LOGMG005
WebSphere MQ Log Used By LOGMG006
LOGMG006
WebSphere MQ Log for a Playback Using Multiple Groups w/PLAY_TO
LOGMS000
WebSphere MQ Log for a Playback Using Multiple Scripts
LOGPD000
WebSphere MQ Log for a Data Driven Playback w/REPEAT and COUNT
LOGPT000
WebSphere MQ Log for a Playback Using PLAY_TO
LOGSC000
WebSphere MQ Log for a Playback Using SKIP Connection
LOGSC001
WebSphere MQ Log for a Playback Using SKIP Connection and PLAY_TO
LOGSD000
WebSphere MQ Log for a Data Driven Playback Using Static Data
B-2
Hiperstation for WebSphere MQ User Guide
Sample Name
Description
LOGTD000
WebSphere MQ Log for Controlling Playback Duration Scenario
LOGTQ000
WebSphere MQ Log for a Playback Using TO_QUEUE
LOGTS000
WebSphere MQ Log for Controlling the Playback Synchronization Scenario
Reporting Control Library
JCL to Create Web Reports
The following JCL samples produce specific web reports.
Note:
A data collection from an unattended playback job is required to use these
samples.
Samples
Description
MQRJCL3
JCL for Response Time Reports Using JCL Procedure
MQRJCL4
JCL for Script Time Reports Using JCL Procedure
MQRJCL5
JCL for Exception Reports Using JCL Procedure
MQRJCL6
JCL for Exception w/Baseline Reports Using JCL Procedure
MQRJCL7
JCL for Exception w/Masking Reports Using JCL Procedure
REPORT and Reporting CONTROL Statements
The following sample members contain REPORT and reporting CONTROL statements.
Samples
Description
MQRANLZ
Report Cards to Produce Default Analysis Report
MQRCFH
Report Control Cards to Produce LAYOUT(FORM) HTML Reports
MQRCFT
Report Control Cards to Produce LAYOUT(FORM) TEXT Reports
MQRCOMP
Report Cards to Produce Analysis and Comparison Reports
MQRCTH
Report Control Cards to Produce LAYOUT(TABLE) HTML Reports
MQRCTT
Report Control Cards to Produce LAYOUT(TABLE) TEXT Reports
MQRDUR
Report Cards to Produce Playback Duration Reports
MQRREXCB
Report Cards to Produce Playback Exception w/Baseline Reports
MQRREXCM
Report Cards to Produce Playback Exception w/Masking Reports
MQRREXCP
Report Cards to Produce Playback Exception Reports
MQRRGR
Report Cards to Produce Playback MQGROUP Analysis Reports
MQRRMG
Report Cards to Produce Playback MQMESSAGESET Reports
MQRRMS
Report Cards to Produce Playback MQGROUP Analysis Reports
MQRROQ
Report Cards to Produce Playback MQOPENQUEUE Analysis Reports
MQRRPL
Report Cards to Produce PLAYBACK Analysis Reports
MQRRRESP
Report Cards to Produce Playback Response Time Reports
MQRRSC
Report Cards to Produce Playback MQSCRIPT Analysis Reports
MQRRSCRT
Report Cards to Produce Playback Script Time Reports
Hiperstation for WebSphere MQ Samples Index
B-3
Script Library
The library contains sample script files that correspond to the example testing scenarios
discussed in Chapter 8, “Testing Scenarios”.
Samples
Description
FDDDD000
Script Used by the Data Driven Sample Log Member LOGDD000
FDDDD001
Script Used by the Data Driven Sample Log Member LOGDD001
FDDDD002
Script Used by the Data Driven Sample Log Member LOGDD002
FDDED000
Script Used by the Data Driven Sample Log Member LOGED000
FDDPD000
Script Used by the Data Driven Sample Log Member LOGPD000
FDDSD000
Script Used by the Data Driven Sample Log Member LOGSD000
SCRCR001
Script Used by the Playback Sample Log Member LOGCR000
SCRMG001
Script Used by the Playback Sample Log Member LOGMG000
SCRMG002
Script Used by the Playback Sample Log Member LOGMG000
SCRMG003
Script Used by the Playback Sample Log Member LOGMG000
SCRMQ004
Script Used by the Playback Sample Log Member LOGMG004
SCRMQ005
Script Used by the Playback Sample Log Member LOGMG005
SCRMS000
Script Used to Create the Sample Scripts SCRMS001, SCRMS002
SCRMS001
Script Used by the Playback Sample Log Member LOGMS000
SCRMS002
Script Used by the Playback Sample Log Member LOGMS000
SCRPT001
Script Used by the Playback Sample Log Member LOGPT000
SCRSC000
Script Used by the Playback Sample Log Member LOGSC000
SCRSC001
Script Used by the Playback Sample Log Member LOGSC001
SCRTD001
Script Used by the Playback Sample Log Member LOGTD000
SCRTQ000
Script Used by the Playback Sample Log Member LOGTQ000
SCRTS001
Script Used by the Playback Sample Log Member LOGTS000
Repository Datasets
The following repository dataset sample files correspond to the example testing scenarios
discussed in Chapter 8, “Testing Scenarios”.
Sample
Description
REPOS1
Sample MQ Repository Used to Create Sample Log and Script Members
REPOS2
Sample MQ Repository Used to Create Sample Log and Script Members
REPOS3
Sample MQ Repository Used to Create Sample Log and Script Members
REPOS4
Sample MQ Repository Used to Create Sample Log and Script Members
B-4
Hiperstation for WebSphere MQ User Guide
Samples Library (SQQFSAMP)
Playback and Reporting JCL and JCL SYSIN
Use the following JCL samples to establish system-level libraries or to execute a playback
or reporting job using the log file produced by script create or the MQRUN1 sample.
Samples
Description
MQPBCOPY
JCL to Create Playback and Report Control and JCL Library
MQPBCTL
Member List Used to Create Playback Control and JCL Library
MQPBRPT
Member List Used to Create Report Control and JCL Library
MQPLAY1
JCL Procedure to Run MQ Playback from a Log or MQRUN1
MQREPT1
JCL Procedure to Run MQ Reports from a Log or MQRUN1
MQRUN1
JCL to Run MQPLAY1 or MQREPT1 JCL Procedures
Global Recording Batch Interface JCL and XML
Use the following JCL samples to add or manage Global Recording requests with batch
jobs. See “Using the Global Recording Batch Interface” on page 2-9, for more
information.
Samples
Description
DCIJCL
Sample JCL to add or manage Global Recording requests
DCIADDMQ
Sample of commonly used Global Recording request creation XML parameters
DCIADXMQ
Sample of all available Global Recording request creation XML parameters
C-1
Appendix C.
Customer Support Diagnostics
Appendix A.
App C
The Customer Support Diagnostic Report produces a list of PTFs that have been applied
to your installation. Customer Support may ask you to generate the report to aid in
diagnosing an issue.
Note:
Generating this report requires READ access to the SMP/E datasets. Consult with
your Security Administrator if you do not have the proper authority.
To generate the Customer Support Diagnostic:
1. On the Hiperstation Product Menu, type PTFS on the Option Line and press Enter.
The “Hiperstation - Diagnostics Screen” appears (Figure C-1).
Figure C-1. Hiperstation - Diagnostics Screen
---------------------- Hiperstation - Diagnostics ------------------Command ===>
Specify the install and output datasets, then press ENTER to continue.
Input datasets to use:
Global CSI dataset . . 'COMPWARE.QQF800.GLOBAL.CSI'
Target Zone . . . . . . QQF800
Output datasets to use:
PTF output list . . . . 'JSMITH.PTFS.REPORT'
Job statement information for batch job:
===> //USER05 JOB ('ACCOUNT',99),'J.SMITH',REGION=0M,
===> //
NOTIFY=&SYSUID,CLASS=A,MSGCLASS=R,USER=JSMITH
===> //*
===> //*
The Global CSI dataset is the SMP/E Global CSI dataset. The Target Zone is the
SMP/E Target Zone. These fields default to the dataset name and target zone
established by your installer. The PTF output list is the sequential dataset to contain
the report.
2. Complete the PTF output list field, insert a job card, and press Enter. Hiperstation
submits the job.
3. Once the job has completed, view the report with ISPF. Figure C-2 shows a sample
report.
C-2
Hiperstation for WebSphere MQ User Guide
Figure C-2. Customer Support Diagnostic Report
********************************* Top of Data **********************************
+---------------------------------------------------------------+
|
Hiperstation PTF list 05/10/07 15:32:08
|
|
Loadlib: SYS2.HIPER.SQQFLOAD
|
+---------------------------------------------------------------+
QF43181 QF44415 QF45463 QF46350 QF47331 QF47364 QF47687 QF47857
QF48238 QF48264 QF48286 QF48302 QF48428 QF48749 QF48753 QF48864
QF48915 QF48950 QF48953 QF49143 QF49175 QF49197 QF49312 QF49420
QF49423 QF49451 QF49580 QF49647 QF50149 QF50220 QF50276 QF50354
QF50457 QF50731
******************************** Bottom of Data ********************************
D-1
Appendix D.
Script Create Parameters
App D
Table D-1 describes the Script Create parameters found in the JCL generated during the
script create process. Each parameter corresponds to a field or an option on the Script
Create screens or to an operational parameter defined by the installer.
Table D-1. Script Create Parameters
Name
Description
FILTERS._ACTION.n
Action for filter n (INCL/EXCL)
FILTERS._APPL_ID_DATA.n
ApplIdentityData for filter n
FILTERS._APPL_ID_DATA_OP.n
Relational operator for ApplIdentityData for filter n
FILTERS._APPL_ORIGIN_DATA.n
ApplOriginData for filter n
FILTERS._APPL_ORIGIN_DATA_OP.n
Relational operator for ApplOriginData for filter n
FILTERS._COMP.n
Completion code for filter n
FILTERS._COMP_OP.n
Relational operator for Completion code for filter n
FILTERS._CONTENT.0.n
Number of <CONTENT> filters for filter n
FILTERS._CONTENT.x.n
<CONTENT> filter value for message filter x within filter n
FILTERS._CONTENT_LEN.x.n
Length of filter value for message filter x within filter n
FILTERS._CONTENT_OP.x.n
Relational operator for message filter x within filter n
FILTERS._CONTENT_POS.x.n
Offset into <CONTENT> data of message filter x within filter n
FILTERS._CONTENT_TYP.x.n
Data type value of message filter x within filter n
FILTERS._EVENT.n
Event type for filter n
FILTERS._EVENT_OP.n
Relational operator for Event type for filter n
FILTERS._JOBNAME.n
Jobname for filter n
FILTERS._JOBNAME_OP.n
Relational operator for Jobname for filter n
FILTERS._PUT_APPL_NAME.n
PutApplName for filter n
FILTERS._PUT_APPL_NAME_OP.n
Relational operator for PutApplName for filter n
FILTERS._PUT_APPL_TYPE.n
PutApplType for filter n
FILTERS._PUT_APPL_TYPE_OP.n
Relational operator for PutApplType for filter n
FILTERS._PUT_DATE.n
PutDate for filter n
FILTERS._PUT_DATE_OP.n
Relational operator for PutDate for filter n
FILTERS._PUT_TIME.n
PutTime for filter n
FILTERS._PUT_TIME_OP.n
Relational operator for PutTime for filter n
FILTERS._QMGR.n
Queue manager for filter
FILTERS._QMGR_OP.n
Relational operator for queue manager for filter n
FILTERS._QUEUE_OBJECT_NAME.n
Queue (object) name for filter n
FILTERS._QUEUE_OBJECT_NAME_OP.n Relational operator for Queue (object) name for filter n
FILTERS._REASON.n
Reason code for filter n
D-2
Hiperstation for WebSphere MQ User Guide
Table D-1. Script Create Parameters
Name
Description
FILTERS._REASON_OP.n
Relational operator for Reason code for filter n
FILTERS._USERID.n
UserIdentifier for filter n
FILTERS._USERID_OP.n
Relational operator for UserIdentifier for filter n
FILTERS.0
Number of filters
MQCRDCLS
Data class for the temporary dataset required to create the HTML
Event Summary
MQCRMCLS
Management class for the temporary dataset required to create
the HTML Event Summary
MQCRPRIM
Primary space value for the temporary dataset required to create
the HTML Event Summary
MQCRSCLS
Storage class for the temporary dataset required to create the
HTML Event Summary
MQCRSCND
Secondary space value for the temporary dataset required to
create the HTML Event Summary
MQCRSPAC
Space units for the temporary dataset required to create the
HTML Event Summary
MQCRSUB
Create Subset Repository
MQCRSUM
Record event summary
MQCRSUMH
Create HTML Event Summary flag
MQCRUNIT
DASD Unit name to contain the temporary dataset required to
create the HTML Event Summary
MQCRVOLM
Volume name to contain the temporary dataset required to
create the HTML Event Summary
MQSCCNTA
Where should details be stored (1/2/3)
MQSCDBCS
DBCS flag
MQSCDESC
Script description
MQSCDMT
Include default MQAPI parameters flag
MQSCEDA
Filtering: End Date (Day)
MQSCEHR
Filtering: End Time (Hour)
MQSCEMI
Filtering: End Time (Minute)
MQSCEMO
Filtering: End Date (Month)
MQSCESD
Output: Event Summary Dataset
MQSCESE
Filtering: End Time (Second)
MQSCESP
Output: Event Summary Prefix
MQSCESQ
Output: Event Summary Required (do not modify)
MQSCESS
Output: Event Summary Suffix
MQSCEYR
Filtering: End Date (Year)
MQSCGRP1
Grouping: New script for Queue Manager
MQSCGRP2
Grouping: New script for Connection
MQSCGRP3
Grouping: New script for Object (Queue)
MQSCGRP4
Grouping: New script for Jobname
MQSCGRP5
Grouping: New script for Event
Script Create Parameters
D-3
Table D-1. Script Create Parameters
Name
Description
MQSCJC1
JCL job header line 1
MQSCJC2
JCL job header line 2
MQSCJC3
JCL job header line 3
MQSCJC4
JCL job header line 4
MQSCJCL
Generate playback JCL in script create log flag. The default
behavior of this parameter is set by the installer.
MQSCSMSG
Maximum message size, in kilobytes, that can be processed (32K
is the default)
Note: This parameter does not correspond to a field or
operational parameter. Add the parameter to the Script Create
JCL prior to submitting the job. See “Select a Processing Option”
on page 3-24 to find out how to access the JCL for edit.
MQSCOBD
Output: Combined Detail Dataset
MQSCOBN
Output: Combined Detail DDname
MQSCOBP
Output: Combined Detail Prefix
MQSCOBQ
Output: Combined Detail Required (do not modify)
MQSCOBS
Output: Combined Detail Suffix
MQSCOCD
Output: GET Detail Dataset
MQSCOCN
Output: GET Detail DDname
MQSCOCP
Output: GET Detail Prefix
MQSCOCQ
Output: GET Detail Required (do not modify)
MQSCOCS
Output: GET Detail Suffix
MQSCOLD
Output: Log Dataset
MQSCOLP
Output: Log Prefix
MQSCOLQ
Output: Log Required (do not modify)
MQSCOLS
Output: Log Suffix
MQSCOPD
Output: Script Dataset
MQSCOPP
Output: Script Prefix
MQSCOPQ
Output: Script Required (do not modify)
MQSCOPS
Output: Script Suffix
MQSCOSD
Output: PUT Detail Dataset
MQSCOSN
Output: PUT Detail DDname
MQSCOSP
Output: PUT Detail Prefix
MQSCOSQ
Output: PUT Detail Required (do not modify)
MQSCOSS
Output: PUT Detail Suffix
MQSCPLIB
Library containing playback and reporting procedures, typically
Hiperstation samples library. This value is written into the script
create log to run unattended playback and reporting jobs.
MQSCPLYC
Library containing playback control members. This value is
written into the script create log to run unattended playback and
reporting jobs.
MQSCQTD
Translate detail from ASCII to EBCDIC
D-4
Hiperstation for WebSphere MQ User Guide
Table D-1. Script Create Parameters
Name
Description
MQSCQTM
Suppress timestamps in script
MQSCQTS
Translate sample data from ASCII to EBCDIC
MQSCRBLK
Output Subset Repository: Allocation block size
MQSCRD
Record Detail entries
MQSCREPC
Library containing reporting control members. This value is
written into the script create log to run unattended playback and
reporting jobs.
MQSCRL
Record Log Entries
MQSCRPRM
Output Subset Repository: Primary space allocation
MQSCRS
Record Script Entries
MQSCRSDC
Output Subset Repository: Allocation SMS Data class
MQSCRSEC
Output Subset Repository: Secondary space allocation
MQSCRSMC
Output Subset Repository: Allocation SMS Management class
MQSCRSPC
Output Subset Repository: Allocation space units
MQSCRSSC
Output Subset Repository: Allocation SMS Storage class
MQSCRUNT
Output Subset Repository: Allocation unit
MQSCRVOL
Output Subset Repository: Allocation volume serial number
MQSCSCNT
Grouping: Option (1/2)
MQSCSDA
Filtering: Start Date (Day)
MQSCSDD1
Name of Hiperstation SQQFEXEC library
MQSCSDD2
Name of Hiperstation SQQFLOAD library
MQSCSHR
Filtering: Start Time (Hour)
MQSCSI1
Input Repository: First Number
MQSCSI2
Input Repository: Last Number
MQSCSICL
Message Data from GETs
MQSCSIDN
Input Repository: Dataset Name
MQSCSISL
Message Data from PUTs
MQSCSMI
Filtering: Start Time (Minute)
MQSCSMO
Filtering: Start Date (Month)
MQSCSO1
Output Subset Repository: First segment number
MQSCSO2
Output Subset Repository: Last segment number
MQSCSODN
Output Subset Repository: Dataset Specification
MQSCSQER
Error event notification flag
MQSCSQNR
Normal event notification flag
MQSCSSE
Filtering: Start Time (Second)
MQSCSTP1
Log STEPLIB override 1
MQSCSTP2
Log STEPLIB override 2
MQSCSUB
Submit option (1/2/3)
MQSCSUM
Replace existing event summary members
Script Create Parameters
D-5
Table D-1. Script Create Parameters
Name
Description
MQSCSUPR
Force messages uppercase flag
MQSCSYR
Filtering: Start Date (Year)
MQSCWD
Replace existing detail members
MQSCWL
Replace Existing Log members
MQSCWS
Replace existing script members
MQSUSER
User ID of submitter (used only in PDSE statistics)
TEMPEVNT
Name of the temporary dataset that is internally allocated for the
creation of an HTML Event Summary. Do not modify the
parameter.
D-6
Hiperstation for WebSphere MQ User Guide
G-1
Glossary
This glossary gives a brief description of
Hiperstation for WebSphere MQ terms, and other
related terms referred to in this document.
abend. ABnormal END of task. The termination
of a job, prior to normal completion, due to an
unresolved error condition.
APPC. Advanced Program-to-Program Communications. A protocol in a distributed environment
that allows programs to talk to each other and
interconnected systems to communicate and share
the processing of programs.
APPC conversation. The activity that occurs
between ALLOCATE and DEALLOCATE.
archive/search function. A Hiperstation option
that allows you to create archive record requests. A
request is started and repositories are generated
based on filter criteria. The registry dataset contains entries that indicate the date and time ranges
of each generated repository segment so that the
Archive/Search function can locate specific datasets by date and time.
batch. Processing in which jobs are submitted
and processed in the background. The jobs run
unattended and are executed sequentially. Each
job must be processed to completion before the
following job can begin execution. Batch is the
converse of an interactive or online task.
capture repository. A repository where recorded
activity is written to a sequential dataset or series
of datasets. Testing scripts are then generated from
the capture repository. Capture repositories contain recorded activity in a compressed format. See
also repository dataset.
capture segment summary report. A report that
indicates when recording began and ended for
each segment of one or more specified capture
repositories. You can use it to help you identify
the information contained in each segment. For
example, generate this report to script activity that
was captured on Monday morning from 8:00 am
to 12:00 pm if you are unsure which repository
segment contains the information. You can import
the report into a spreadsheet or database for easy
manipulation.
CHIN. Channel Initiator. A WebSphere MQ channel initiator.
CICS. Customer Information Control System. An
IBM-licensed program that enables transactions
entered at remote terminals to be processed concurrently by user-written application programs. It
includes facilities for building, using, and maintaining databases.
command. Request from a terminal to execute an
operation or program.
COMMAND field. Field in which you enter commands to execute an operation or program.
customer support diagnostics report. A report
that produces a list of PTFs that have been applied
to your installation. Customer Support may ask
you to generate the report to aid in diagnosing an
issue.
CSV. Comma Separated Value. A report format
that is available for custom Playback reports. Some
basic reports support only HTML while others support TEXT and HTML.
DASD. Direct Access Storage Device. Any peripheral device that is directly addressable, such as a
disk or drum.
dataset. Refers to files stored on an IBM mainframe computer. Datasets can be organized in various ways, such as logical record and block
structures.
DB2. DATABASE 2. IBM’s database management
system that provides a relational model of data.
DB2 runs as a subsystem of MVS and on other
platforms.
DBCS. Double Byte Character Set. Used primarily
to display Japanese Kanji characters during 3270
testing.
dump. Hexadecimal representation of storage
that may contain data useful for diagnosing an
error.
Enterprise Common Components (ECC). The
shared components of mainframe Compuware
products, that provide Compuware License Management System.
exception. (1) An abnormal situation that may
occur during a program’s execution that may
cause a deviation from the normal execution
sequence, and for which facilities exist in the programming language to define, recognize, ignore,
or handle it. (2) An abnormal condition such as an
G-2
Hiperstation for WebSphere MQ User Guide
I/O error encountered in processing a dataset or
file.
file. Set of related records that are organized and
treated as a unit.
GDG. Generation Data Group.
global record manager. A Hiperstation for VTAM
function that builds lists of applications, terminals, and user IDs to include or exclude from
recording. Global Record Manager Lists provide
greater flexibility in defining Global Recording
requests.
global recording. An option that captures the
activity of one or more users. This option writes
the activity to a repository that generates testing
scripts. It records LU0 and3270 traffic to generate
stress tests or to archive activity for audit purposes. It also captures LU6.2, TCP/IP and MQ data.
You can record while groups of users perform their
daily routines and choose the exact terminals,
applications, and time frames to record. You can
choose to include or exclude certain messages
from recording based on a predefined list of messages. Message filtering provides a script that contains a subset of the messages from the 3270
session. You can also create and reuse lists of user
IDs, logical unit (LU) names, or applications that
can be included or excluded from a session.
MQ script. Formatted human-readable data generated from a capture repository. You can generate
scripts from selected sessions or from entire capture repositories.
MVS. Multiple Virtual Storage. The primary operating system used on large IBM mainframe computers. It is packaged as the operating system
component of OS/390 and z/OS. It was packaged
separately as MVS/XA (eXtended Architecture),
MVS/ESA (Enterprise Systems Architecture), and
OS/MVS. Through its evolution, the core operating system has remained fundamentally the same.
Most programs written for MVS can run on z/OS
without modification.
offset. A relative location or position within a
data area.
operating system. Software that controls the
execution of jobs. It may provide resource allocation and scheduling.
operation exception. An operation exception
occurs when the CPU attempts to execute an
instruction with an invalid operation code. The
operation code may be unassigned, or the instruction with that operation code may not be installed
on the CPU.
OS. Operating System.
GMT. Greenwich Mean Time.
PIU. Path Information Units.
IMS. Information Management System. IBM’s
hierarchical database information management
system and transaction processor capable of managing complex databases and networks.
PDS. Partitioned Dataset.
JCL. Job control language. A job or task control
language that describes how a job or task will be
executed. All non-operating system tasks (batch or
online) use JCL to execute in MVS/JES2.
line command. Command that is typed directly
on the line to be processed.
masking. A function that prevents comparison of
specified MQ message data. Data masks are statements that specify qualification criteria and stipulate the positions to mask if the criteria is met.
Masking date and time fields will prevent generating mismatches for data that you expect to be different.
message sets. A set of messages grouped during
playback for reporting purposes. Grouping is based
on MQMD header information. Hiperstation for
WebSphere MQ groups messages with matching
correlation IDs. If the messages do not have correlation IDs, it groups them by Message IDs.
PDSE. Partitioned Dataset Extended.
PF keys. Program Function keys. ISPF uses PF keys
for many commonly used functions such as
<End>, <Repeat Find>, and <Scroll>. For example,
pressing the PF3 key in ISPF usually sends the
<End> command to the application. Most terminals have 24 PF keys.
PF key mapping. A method for assigning functions to your PF keys. If your terminal has 24 PF
keys, you can assign some of them to the domain
destination. ISPF uses the rest of the keys. Generally, PF1 through PF12 are mapped to PF1 through
PF12 for the domain destination, and PF13
through PF24 are seen directly by ISPF. This map
correspondence is established on the Session
Options screen.
PLU. Primary Logical Unit. The logical unit that
is being accessed by the SLU. See SLU.
primary command. Command that provides a
general function and is entered in the COMMAND
field.
G-3
playback. A function to play back scripts and
execute the commands found in the script.
repository dataset. The name of the dataset to
use for storing captured information. For active
requests, this is the dataset in which data is currently being written. See also capture repository.
request parameters skeleton. A complete set of
Global Recording parameters with default values.
You can generate a skeleton to save time when creating a new request, see all of the available parameters, and reference the syntax of a particular tag
REXX log. A log that records the text of REXX
SAY statements. These statements can be used to
track script progress.
script language tokens. Consist of variable
names, arithmetic operators, constants, and other
language constructs.
SLU. Secondary Logical Unit. The logical unit
that initiated the session. See PLU.
STIME. Start time. The start date and time of a
connection, recorded activity in a script, or when
the first transaction in a group began. STIME is
used on the MQGROUP statement. STIME is used
in conjunction with USESTIME.
storage. A functional unit into which data can be
placed and from which it can be retrieved.
structure data types. Groups of parameters or
fields that contain information relevant to a specific MQ object or function. Each of the structure
data type fields requires a specific type of value,
for example, some require character strings, while
others require numeric values.
subset repository. A repository that contains
only the desired activity. An entire repository is
processed during script creation, and the larger the
repository, the longer it takes to create scripts.
Subset repositories are created to minimize script
creation time and storage overhead.
subtask. Task initiated and terminated by a
higher order task.
TCP/IP. Transmission Control Protocol/Internet
Protocol. Communication protocols on which the
Internet and most commercial networks run.
think time. The amount of time between each
recorded user action.
THOPT. Think option. A playback parameter that
forces the group to play back at approximately the
same speed as it was recorded. THOPT in APPC is
used on the ALLOCATE/ACCEPT statements.
THOPT in TCP/IP is used on the CONTROL statement and/or the MQGROUP statement. THOPT for
Abend-AID for WebSphere MQ is used on the
CONTROL statement.
trace. Record of the execution of a computer program; it exhibits the sequences in which the
instructions were executed.
transaction. A unit of processing, which consists
of one or more application programs, begun by a
single request (usually from a terminal).
trigger monitor. A long running background job,
task, or process that waits on and processes any
MQ Trigger Messages from a MQ Trigger Initiation
Queue. MQ Trigger Messages are generated by messages arriving on a MQ Trigger Queue. The purpose of the Trigger Monitor is to initiate job, task,
or command processing based on the indication of
the corresponding trigger message.
trigger queue. A WebSphere MQ queue enabled
for triggering and defined with indications of a
initiation queue and trigger message definitions
that will ultimately be processed by an MQ Trigger
Monitor for the purpose of starting a job, task, or
command.
unattended playback. A function that allows
you to play back scripts to test WebSphere MQ
applications. Provided that you collect the appropriate playback information, you can generate
reports that compare the activity resulting from
playback (actual) to the activity recorded in the
script (expected).
USESTIME. Use Start Time. A playback CONTROL
statement parameter that allows you to stagger
group playback to accommodate application timing requirements. The USESTIME parameter forces
playback of the groups relative to each group’s
STIME. Apply the USESTIME parameter and modify the STIME to stagger playback. USESTIME is on
the CONTROL STATEMENT for APPC and on the
CONTROL and/or SOCKET statement for TCP/IP.
VSAM. Virtual Storage Access Method. An access
method for direct or sequential processing of fixed
and variable length records on direct access
devices.
VTAM. Virtual Telecommunications Access
Method. Set of programs that control communication between terminals and application programs.
WebSphere MQ. An IBM network communication technology that is part of a suite of WebSphere products. It provides the ability for
independent programs on a distributed system to
communicate with each other. Formerly called
MQSeries.
G-4
Hiperstation for WebSphere MQ User Guide
XML. Extensible Markup Language. A language
that is capable of describing many different kinds
of data. The XML file can contain the data as well
as the data description or structure. Its purpose is
to share data across different systems.
z/OS. IBM enterprise mainframe suite of product
components, one of which is the MVS operating
system. It is used to build and deploy Internet and
Java-enabled applications, providing a comprehensive and diverse application execution environment.
I-1
Index
A
accessibility, xviii
font and font size, xix
keyboard shortcuts, xx
windows accessibility features, xix
ACTUAL_COMPCODE REXX variable, 3-44
ACTUAL_CORRELID REXX variable, 3-45
ACTUAL_LENGTH REXX variable, 3-45
ACTUAL_MSG REXX variable, 3-45, 8-46
ACTUAL_MSGID REXX variable, 3-45
ACTUAL_REASON REXX variable, 3-45
administrator access
Monitor MQ Requests, 2-9
Adobe Reader, xiii
allocate datasets
logs, scripts, details, event summaries, 3-24
repositories, for, 3-22
amount of data to use, 2-6
analyze scripts, 8-52
ASCII
translate detail data to EBCDIC, 3-16, 9-4
translate sample data to EBCDIC, 3-16, 9-4
B
baseline reporting, 8-52
Baseline Comparison Report, 8-18
basic reports, 6-2, 6-6
navigate, 6-16
BookManager
documentation output, xiv
known issues, xv
browse a script, 3-26
BRULE macro, 3-42
BRULES macro, 3-42
C
capture file
parameter tags, 2-16
See repository datasets
Capture Segment Summary, 3-1–3-2
channel initiator, G-1
CHIN, 2-2
character filters, 3-10
CHIN, 2-2
COLLECT statement, 5-14
completion code, 3-21
return actual and expected, 3-44
connection attributes
GET_FROM, 5-3
PUT_TO, 5-3
QUEUE_MANAGER, 5-3
REPLY_TO_QUEUE, 5-3
connection sequence links, 3-19
<CONTENT> tag, 3-30–3-31
DDname, 3-23
message mapping, 3-47
See message content data and detail data
translate from ASCII to EBCDIC, 3-16
troubleshoot message mapping, 3-50
control playback timing, 8-14
CONTROL statement, 5-3, 6-1–6-2
syntax, 6-4
correlation ID
return actual and expected, 3-45
COUNT, 8-9, 8-50
CSV
Event Summary, 3-24
format, 3-17
reports, 6-5
custom reports, 6-2, 6-9
field definitions, 6-24
customer support, xxi
Customer Support Diagnostic Report, G-1
diagnostic report, C-1
D
data collection tables, A-1
data replacement during playback, 8-28
data to keep tags, 2-17
DCIADDMQ member, 2-12
DCIADXMQ member, 2-12
DCIJCL
check status of requests, 2-20
create a Global Recording request, 2-10
generate a parameters skeleton, 2-23
manage Global Recording requests, 2-21
retrieve parameters from a request, 2-22
DCIPROC, 2-20–2-22
DD statements
ERRORLOG, 5-24
HTMLLOG, 5-24
Default Script Analysis report, 5-2
detail data
generate, 3-17
map MQ messages into File-AID, 3-47
translate from ASCII to EBCDIC, 3-16, 9-4
troubleshoot message mapping, 3-50
detail datasets
LRECL, 3-24
detail entries, 9-5
<DETAIL> tag, 3-32
unresolved script tag, 3-17
documentation
master index, xiii
dynamic data replacement during playback, 8-33
E
EBCDIC
translate detail data from ACSII, 3-16, 9-4
I-2
translate sample data from ACSII, 3-16, 9-4
environment options, 4-5
Error Summary Report, 5-24
ETRMGPAR member, 5-18
Event Summary, 3-18
generate, 3-17
LRECL, 3-24
event summary entries, 9-5
events
group for script/subset repository creation, 3-14
EXECIO statement, 8-43
EXIT statement, 8-45
EXPECTED_COMPCODE REXX variable, 3-44
EXPECTED_CORRELID REXX variable, 3-45
EXPECTED_LENGTH REXX variable, 3-45
EXPECTED_MSG REXX variable, 3-45
EXPECTED_MSGID REXX variable, 3-45
EXPECTED_REASON REXX variable, 3-45
EXPOSE parameter, 8-49
F
FEEDBACK DD, 2-10
request keys, 2-20
VIEW, 2-22–2-23
File-AID
message mapping, 3-47
filter criteria, 3-4, 3-11, 3-25
header filter detail, 3-7
header filter relational operators, 3-8
header filters, 3-5
import filters, 3-12
message data filter relational operators, 3-10
message data filters, 3-9, 3-11
first number
WebSphere MQ, 9-2–9-3
font and font size, accessibility, xix
foreground
script/subset repository creation processing options, 3-24
FrontLine, xiv
support Web site, xxi
G
general request parameter tags, 2-15
GET_FROM attribute, 5-3
GET_FROM_QUEUE, 8-19
GET_QUEUE_NAME REXX variable, 3-46
global CSI dataset, C-1
Global Recording
add a request, 2-1, 2-7
administrator access, 2-9
batch JCL samples, B-4
batch XML samples, B-4
cancel a request, 2-7
disable a request, 2-7
force a request, 2-7
merge capture repositories, 2-24
repositories, 2-5
request commands, 2-21
restart a request, 2-7
stop a request, 2-7
update a request, 2-7
view a request, 2-7
view session activity, 2-7
Global Recording batch interface, 2-9
check request status, 2-19
create a request, 2-9
delete a request, 2-21
disable a request, 2-21
KEYS, 2-19
manage existing requests, 2-20
parameter syntax, 2-11
request parameters, 2-12
restart an inactive request, 2-21
retrieve parameters from an existing request, 2-22
stop recording, 2-21
switch repository segments, 2-21
troubleshoot failed jobs, 2-23
update a request, 2-21–2-22
VIEW, 2-22
Global Recording requests, 2-1
GMT (Greenwich Mean Time), 3-3
group events for script creation, 3-14
H
header filter detail, 3-7
relational operators, 3-8
header filters, 3-5
help, requesting, xxi
hexadecimal filters, 3-10
Hiperstation for WebSphere MQ
overview, 1-1
HSCMDS, 8-43
HTML documentation files, xiv
HTML format, 3-17
HTML reports
HTML Event Summary, 3-19
HTML Exception Report, 6-2, 6-6, 6-14, 6-17, 8-4,
8-7, 8-10, 8-12, 8-15, 8-20, 8-26, 8-29, 8-39, 8-52
HTML Exception Report Mismatch Detail, 6-18
HTML Exception Report Mismatch Summary, 6-17
HTML Playback Error Summary, 5-1–5-2, 5-16
HTML Response Time Summary, 6-22
HTML Script Timing Summary, 6-20
I
IBM
BookManager documentation output, xiv
IEBGENER utility, 2-12
Softcopy Reader, xiv
IEBGENER utility, 2-12
import filters/options, 3-12
index, master, xiii
initiation queues, 2-2
interactive playback, 4-1
J
JCL
playback samples, B-4
report samples, B-4
save repository creation filters/options, 3-25
I-3
last number
WebSphere MQ, 9-2–9-3
LOCPOS macro, 3-42
log datasets
LRECL, 3-24
log entries, 9-4
log file
unattended playback job SET statements, 5-20
log file for unattended playback job, 5-16, 6-14
SET statements, 6-16
LRECL
detail datasets, 3-24
Event Summary, 3-24
log datasets, 3-24
script datasets, 3-24
MQ_CLOSE, 2-8, 3-5, 3-21, 3-32
MQ_COMMIT, 2-8, 3-20, 3-33
MQ_CONNECT, 2-8, 3-4, 3-20, 3-33
MQ_DISCONNECT, 2-8, 3-5, 3-21, 3-34
MQ_ENDTHREAD, 2-8
MQ_GET, 3-20, 3-34
return actual and expected messages, 3-45
MQ_INQUIRE, 3-20, 3-34
MQ_OPEN, 2-8, 3-5, 3-20, 3-35
MQ_PUT, 3-20, 3-36
return expected and actual messages, 3-45
MQ_PUT1, 2-8, 3-20, 3-36
MQ_SET, 3-5, 3-20, 3-37
MQAPI, 3-27
include in scripts, 3-16, 9-4
MQGMO, 3-27, 3-29
MQGROUP statement, 5-7, 5-22
multiple groups, 8-6
MQGROUP table, A-2
MQGROUP_COUNT_NBR REXX variable, 3-46, 8-52
MQGROUP_REPEAT_NBR REXX variable, 3-46, 8-52
MQMD, 3-28
MQMESSAGE table, A-6
MQMESSAGESET report, A-5
MQMESSAGESET table, A-4
MQOPENQUEUE table, A-5
MQPMO, 3-29
MQS capture filter tags, 2-18
MQSCRIPT table, A-3
multiple script playback, 8-4
M
N
macros
data replacement offset and length determination,
3-41
MAPD
assign a PF key, 3-47
command prefix invocation character, 3-48
help panels, 3-50
map entire data file, 3-49
map individual message, 3-48
troubleshoot, 3-50
mask data filters, 3-10
mask filters, 3-11
merge all details into script, 3-16
merge repositories, 2-24
message content data, 3-17
translate from ASCII to EBCDIC, 3-16, 9-4
message data filters, 3-9
character, 3-11
hexadecimal, 3-11
mask, 3-11
packed decimal, 3-11
relational operators, for, 3-10
text, 3-11
zoned decimal, 3-11
message data mapping, 3-47, 3-50
message ID, return expected and actual, 3-45
message length
return expected and actual, 3-45
Monitor MQ Requests, 2-2, 2-6
administrator access, 2-9
MQ group options, 4-8
MQ log, 5-18
MQ_BACKOUT, 2-8, 3-20, 3-32
notation conventions
screens and commands, xvi
SYSIN, B-4
SYSPLEX samples, 2-24
unattended playback, for, 3-17
K
keyboard shortcuts, accessibility, xx
KEYS command, 2-19
L
O
OBJECT_ID REXX variable, 3-46
Offset and Length Determination Macros, 3-41
omit specified activity from playback, 8-22
options
change playback, 4-5
environment, 4-5
output datasets for script/subset repository creation,
3-23
override queues during playback, 8-19
overview
create scripts, 1-1
play back scripts, 1-2
record activity, 1-1
reporting, 1-2
P
packed decimal filters, 3-10–3-11
parameters
generate Global Recording request skeleton, 2-23
Global Recording request syntax, 2-11
retrieve parameters from Global Recording requests, 2-22
PLAY_TO, 8-17, 8-19
I-4
CONNECTION_ID, 8-24
playback, 5-1
attribute precedence, 5-3
control assets, 5-2, 6-2
control library, 5-2, B-1
data replacement, 8-28
expand data during, 8-38
generate reports, 5-1
input statements, 5-2
JCL samples, B-4
log file, 5-16, 6-14
MQPLAY1 procedure, 5-16, 6-14
overview, 5-1
reports, 6-9
return codes, 5-21
REXX variables, 3-44
table, A-1
Playback Error Summary, 5-23–5-24
ERRORLOG DD, 5-24
HTML, 5-24
HTMLLOG DD, 5-24
playback statements, 5-3
COLLECT, 5-14
CONTROL, 5-3
MQGROUP, 5-7
SCRIPT, 5-11
Playback Summary, 6-9
playback, interactive, 4-1
basic reports, 4-16
change options, 4-5
create new, 4-2
custom reports, 4-17
delete, 4-14
environment options, 4-5
error log, 4-3
generate from script log, 4-4
generate reports, 4-15
MQ group options, 4-8
reporting database, 4-3
script options, 4-11
select previously saved, 4-14
submit, 4-12
prefix
output datasets, for, 3-23
PRGLOG DD, 2-23
PROCEDURE statement, 8-49
process
edit batch job for script/subset repository creation,
3-25
in foreground, 3-25
submit batch job for script/subset repository creation, 3-25
protocol parameter tag
MQS, 2-14
PTFS, C-1
PUT_QUEUE_NAME REXX variable, 3-46
PUT_TO attribute, 5-3
PUT_TO_QUEUE, 8-19
Q
QUEUE_MANAGER
attribute, 5-3
queues, initiation, 2-2
R
reason codes, 3-21
return expected and actual, 3-45
recording activity
add a request, 2-7, 2-10
cancel a request, 2-7
create a recording request, 2-1, 2-9
disable a recording request, 2-7
force a recording request, 2-7
monitor a request, 2-1
restart a recording request, 2-7
stop a recording request, 2-7
update a recording request, 2-7
view a recording request, 2-7
view session activity, 2-7
recording option parameter tags, 2-17
recording requests, 2-1
relational operators, 3-10
header filters detail, for, 3-8
message data filters, for, 3-10
REPEAT, 8-9, 8-50
repeat simultaneous script playback, 8-9
<REPLACE> tag, 3-40
Offset and Length Determination Macros, 3-41
REPLAY_ID REXX variable, 3-46
REPLY_TO_QUEUE attribute, 5-3
report control library, 5-2, B-2
REPORT statement, 5-1, 5-16, 6-1
syntax, 6-6
report tables, A-1
reporting, APPC
report generation parameters, 3-3
Reports
Baseline Comparison Report, 8-18
Capture Segment Summary, 3-1
Default Script Analysis report, 5-2
Error Summary Report, 5-24
Exception Report, 6-7
HTML Event Summary, 3-19
HTML Exception Report, 6-2, 6-6, 6-14, 6-17, 8-4,
8-7, 8-10, 8-12, 8-15, 8-20, 8-26, 8-29, 8-39, 8-52
HTML Exception Report Mismatch Detail, 6-18
HTML Exception Report Mismatch Summary, 6-17
HTML Playback Error Summary, 5-1–5-2, 5-16
HTML Response Time Summary, 6-22
HTML Script Timing Summary, 6-20
Playback Error Summary, 5-23–5-24
Playback Summary, 6-9
Response Time Summary, 6-6, 6-8–6-9, 6-21, 8-7,
8-10, 8-12, 8-15
Sample MQGROUP Text Report (Form Layout), 6-5
Sample MQGROUP Text Report (Table Layout), 6-4
Script Analysis, 5-21, 6-2, 6-16, 8-52
Script Timing Summary, 6-6, 6-8–6-9, 6-20, 8-7,
8-10, 8-12, 8-15
Table Report, 6-12
Time Sequence Event Summary, 3-19
reports
basic, 4-16, 6-2, 6-6
Capture Segment Summary, 3-2
control assets, 6-2
CONTROL statement, 6-2
CSV reports, 6-5
custom, 4-17, 6-2, 6-9
Customer Support Diagnostic Report, C-1
I-5
generate playback reports, 4-15
JCL samples, B-4
MQMESSAGESET, A-5
navigate, 6-16
overview, 6-1
PLAYBACK, 6-9
reports, custom
field definitions, 6-24
MQGROUP, 6-9
MQMESSAGE, 6-9
MQMESSAGESET, 6-9
MQOPENQUEUE, 6-9
MQSCRIPT, 6-9
PLAYBACK, 6-9
repositories
delete datasets, 2-7, 2-21
merge capture repositories, 2-24
segmented, 2-5
specify dataset for subset repository, 3-21
specify for script/subset repository creation, 3-13
switch dataset segments, 2-7, 2-22
request key, 2-19
Response Time Summary, 6-6, 6-8, 6-21, 8-7, 8-10,
8-12, 8-15
return codes, TCP/IP playback, 5-21
RETURN statement, 8-45
reuse repository options, 2-6, 9-2
reverse playback, 8-17
REXX variables, 3-44
ACTUAL_COMPCODE, 3-44
ACTUAL_CORRELID, 3-45
ACTUAL_LENGTH, 3-45
ACTUAL_MSG, 3-45
ACTUAL_MSGID, 3-45
ACTUAL_REASON, 3-45
EXPECTED_COMPCODE, 3-44
EXPECTED_CORRELID, 3-45
EXPECTED_LENGTH, 3-45
EXPECTED_MSG, 3-45
EXPECTED_MSGID, 3-45
EXPECTED_REASON, 3-45
GET_QUEUE_NAME, 3-46
MQGROUP_COUNT_NBR, 3-46, 8-52
MQGROUP_REPEAT_NBR, 3-46, 8-52
OBJECT_ID, 3-46
PUT_QUEUE_NAME, 3-46
REPLAY_ID, 3-46
SCRIPT_REPEAT_NBR, 3-47
REXXON, 8-33, 8-38, 8-52
RO
conditional codes, 3-10
relational operators filter criteria, 3-8
symbol, 3-10
S
sample
index, B-1
log files, B-1
SQQFSAMP library, B-4
SYSPLEX, 2-24
translate from ASCII to EBCDIC, 3-16, 9-4
sample datasets and libraries
sample external files for test scenarios, 8-1
sample log files, 8-1
sample playback control members, 8-1
sample reporting control members, 8-1
sample repository datasets, 8-1
sample scripts, 8-1
Sample MQGROUP Text Report (Form Layout), 6-5
Sample MQGROUP Text Report (Table Layout), 6-4
samples, APPC
MCSREPT, 3-3
save filter/option JCL, 3-25
scheduled capture parameter tags, 2-15
script
analysis, 8-52
browse, 3-26
dataset messages, 3-50
edit, 3-38
entries, 9-5
library, B-3
options, 4-11
processing options, 3-16
SCRIPT statement, 5-11
separate details, 3-16
syntax rules, 3-39
Script Analysis Report, 5-21, 6-2, 6-16, 8-52
script create
execution options
WebSphere MQ, 9-6
include MQAPI parameters, 9-4
Script Create parameters, D-1
script datasets
LRECL, 3-24
script log
generate playback, 4-4
script tags
<CONTENT>, 3-30–3-31
<DETAIL>, 3-32
<MQ_BACKOUT...>, 3-32
<MQ_CLOSE...>, 3-32
<MQ_COMMIT...>, 3-33
<MQ_CONNECT...>, 3-33
<MQ_DISCONNECT...>, 3-34
<MQ_GET...>, 3-34
<MQ_INQUIRE...>, 3-34
<MQ_OPEN...>, 3-35
<MQ_PUT...>, 3-36
<MQ_PUT1...>, 3-36
<MQ_SET...>, 3-37
<REPLACE>, 3-40
<TIME>, 3-37
<VERSION>, 3-37
Script Timing Summary, 6-6, 6-8–6-9, 6-20, 8-7, 8-10,
8-12, 8-15
SCRIPT_REPEAT_NBR REXX variable, 3-47
scripts, create, 3-1, 3-17
access Create MQ Scripts option, 3-4
allocate datasets for log, script, detail, event summary, 3-24
filter criteria, 3-4
generate Event Summary, 3-18
group events, 3-14
header filter detail, 3-7
header filters, 3-5
import filters/options, 3-12
include MQAPI parameters, 3-16
log entries, 3-17
message data filters, 3-9
minimize script size, 3-14
output datasets, specify, 3-23
output options, 3-15
overview, 3-1
I-6
Hiperstation for WebSphere MQ User Guide
processing options, 3-24
save filter/option JCL, 3-25
source repositories, wildcards for selecting, 3-14
store detail data, 3-15
scripts, WebSphere MQ
suppress time stamps, 9-4
security, 2-7
security monitoring, 7-1
audit trail, 7-2
serial playback, 8-4
SET statements
in log file, 5-20, 6-16
SET ACTION, 5-20
SET CNTLDS, 5-20
SET COLLMEM, 5-20
SET REPTCNTL, 5-21
SET REPTDS, 5-20
SET REPTMEM, 5-21
SET SCRIPT, 5-20
SET SORTED, 5-20
SET UNSORTED, 5-20
SET_REXX_STREAM_VARIABLES, 8-46, 8-52
simultaneous script playback, 8-6
skeleton, Global Recording request parameters, 2-23
SKIP
CONNECTION_ID, 8-22
SMP/E
global CSI dataset, C-1
target zone, C-1
SQQFSAMP, 2-12, 2-20–2-21
samples library, B-4
SQQFSCRP, 8-1
statements
COLLECT, 5-14
CONTROL, 5-3
MQGROUP, 5-7
SCRIPT, 5-11
STEPLIB, 5-18
structure data type, 3-27
submit a job, 5-21
subset repositories, create, 3-17
access Create MQ Scripts option, 3-4
allocate repository dataset, 3-22
filter criteria, 3-4
generate Event Summary, 3-18
group events, 3-14
header filter detail, 3-7
header filters, 3-5
import filter/option JCL, 3-12
message data filters, 3-9
MQAPI parameters, 3-16, 9-4
output datasets, specify, 3-23
output options, 3-15
overview, 3-1
processing options, 3-24
save filter/option JCL, 3-25
source repositories, wildcards for selecting, 3-14
specify dataset for subset repository, 3-21
store detail data, 3-15
subset repository, 9-5
switch repository segments, 2-21
synchronize group playback, 8-11
syntax
conventions, xvii
diagrams, xvii
syntax rules, 3-39
SYSIN
unattended playback, for, 3-17
SYSIN DD, 2-10, 2-22
SYSPLEX, 2-24
job input parameters, 2-25
SYSTEM queues, 2-2
system queues, 1-1
SYSTSIN DD, 2-10, 2-20
T
Table Report, 6-12
tables
MQGROUP, A-2
MQMESSAGE, A-6
MQMESSAGESET, A-4
MQOPENQUEUE, A-5
MQSCRIPT, A-3
PLAYBACK, A-1
TCPIP playback return codes, 5-22
TEMPSTP1, 5-18
TEMPSTP2, 5-18
test scenarios, 8-1
control playback timing, 8-14
expand data during playback, 8-38
omit specified activity from playback, 8-22
override queues, 8-19
play back multiple groups with PLAY_TO, 8-24
play back multiple scripts serially, 8-4
play multiple scripts simultaneously, 8-6
repeat simultaneous playback, 8-9
replace data dynamically, 8-33
replace data with static values, 8-28
reverse playback, 8-17
synchronize group playback, 8-11
test scripts
build, 3-1
text filters, 3-10
THOPT, 8-14
Time Sequence Event Summary, 3-19
time stamps, suppress, 3-16
<TIME> tag, 3-37
timing options, 4-6
transmission queues, 1-1, 2-2
trigger queues, 1-1
triggers, 2-2
troubleshoot
Global Recording batch jobs, 2-23
U
unattended playback, 5-1
attribute precedence, 5-3
batch, 5-1
COLLECT statement, 5-14
control assets, 5-2, 6-2
control playback timing, 8-14
CONTROL statement, 5-3
DDname for detail data, 3-23
expand data during, 8-38
generate reports, 5-1
input statements, 5-2
JCL, 3-17
log file, 5-16, 6-14
MQGROUP statement, 5-7
MQPLAY1 procedure, 5-16, 6-14
I-7
omit specified activity, 8-22
override queues, 8-19
overview, 5-1
play back scripts serially, 8-4
play back scripts simultaneously, 8-6
PLAY_TO, 8-24
Playback Error Summary, 5-24
repeat simultaneous playback, 8-9
replace data dynamically, 8-33
replace data with static values, 8-28
reverse playback, 8-17
Script Analysis Report, 5-21
SCRIPT statement, 5-11
statements, 5-3
synchronize group playback, 8-11
SYSIN, 3-17
unsynchronized playback, 3-49
update a Global Recording request, 2-22
UPROCS, 2-20, 2-22
USESTIME, 8-11, 8-14
V
<VERSION> tag, 3-37
view
session information, 2-8
VIEW function, 2-22–2-23
W
Web report JCL, B-2
WebSphere MQ
basic playback reports, 4-16
custom playback reports, 4-17
wildcards
segment repositories, 2-5
select source repositories, 3-14
X
XML parameters, 2-11
Z
zoned decimal filters, 3-10–3-11