Hiperstation for Mainframe Servers User Guide

Transcription

Hiperstation for Mainframe Servers User Guide
Hiperstation
Hiperstation for Mainframe Servers
User Guide
Release 8.0.1
ii
Hiperstation for Mainframe Servers 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.
CWQGUG8A
December 4, 2013.
iii
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Accessing Hiperstation Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
HTML Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
BookManager Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
PC Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Mainframe Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Known-Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Using this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Manual Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Notation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx
Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Reading Syntax Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
Installing Windows Accessibility Features . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Selecting Font and Font Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Changing Color and Contrast. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii
Setting Cursor Blink Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Using Keyboard Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Accessibility Exceptions Work Arounds . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Known Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv
Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
FrontLine Support Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Contacting Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Phone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Corporate Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvi
Chapter 1. Hiperstation for Mainframe Servers Overview . . . . . . . . . . . . . . . . . . 1-1
Chapter 2. APPC Global Recording and Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
Creating an APPC Global Recording Request. . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Define Script Creation Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Monitoring and Managing Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
View Active Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Reviewing Repositories and Creating Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Generate Scripts from a Selected Repository. . . . . . . . . . . . . . . . . . . . . . . 2-14
Generate Scripts from Selected Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
Defining Global Recording Manager Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Accessing Global Recording Administration . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Using the Global Recording Batch Interface . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Create a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Create a Global Recording Request with the Batch Interface . . . . . . 2-17
Global Recording Request Parameter Syntax . . . . . . . . . . . . . . . . . . 2-18
Global Recording Request Parameters . . . . . . . . . . . . . . . . . . . . . . . . 2-20
Check the Status of Existing Requests. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-39
iv
Hiperstation for Mainframe Servers User Guide
Manage Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Retrieve the Parameters of an Existing Request. . . . . . . . . . . . . . . . . . . .
Generate a Request Parameters Skeleton . . . . . . . . . . . . . . . . . . . . . . . . .
Create Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Script Creation Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Troubleshoot Failed Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recording Request Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Script Create Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generating a Capture Segment Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Review the Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Merging APPC Capture Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-40
2-42
2-43
2-43
2-44
2-50
2-50
2-50
2-50
2-52
2-52
Chapter 3. APPC Unattended Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Starting Unattended Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Generating APPC Unattended Processing Statements . . . . . . . . . . . . . . . . . . . 3-2
Setting Unattended Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . 3-2
CONTROL Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
ALLOCATE/ACCEPT Statement Parameters. . . . . . . . . . . . . . . . . . . . 3-4
SCRIPT Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
COMPANY Statement Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
CACHE INCLUDE and EXCLUDE Statement Parameters . . . . . . . . . 3-8
Building Unattended Statements and JCL. . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Building JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
Restrict Specified Script Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
Chapter 4. Unattended Playback of APPC Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Using Unattended Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Step 1. Review Storage Requirements for Unattended Mode Processing . 4-1
Step 2. Record the Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Step 3. Identify the Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Step 4. Identify the Scripts To Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Step 5. Submit the Batch Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Playing Back APPC Datastreams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Timing Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Think-Time Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Control and Timing Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Unattended Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Editing APPC Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
APPC Statement Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
APPC Control Script Tags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
<VERSION> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
<CONTENT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
<DETAIL> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
<ERROR> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
<EXTDATA> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
<INBOUND> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
<OUTBOUND> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
<PIU> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
<REPLACE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
<EXTRACT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
<TIME> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
<UNKNOWN> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
APPC Verb Script Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
<CONFIRM> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
<CONFIRMED> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
<ALLOCATE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
<DEALLOCATE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
v
<FLUSH> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
<PREPARE_TO_RECEIVE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
<REQUEST_TO_SEND> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
<SEND_DATA> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
<SEND_ERROR> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
<SEND_EXPEDITED_DATA> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Contents of APPC Detail Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
APPC Unattended Playback Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Statement Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
APPC Unattended Playback Statement Summary. . . . . . . . . . . . . . . . . . . 4-17
CONTROL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18
CACHEXCL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
CACHINCL Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
COMPANY Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
TABLEDEF Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
TABLE Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
ALLOCATE and ACCEPT Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-22
Required Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
Optional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
APPCGRP Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Required Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-30
Optional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-30
SCRIPT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Required Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Optional Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Script Not Found Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Unattended Playback Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
APPC REXX Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35
APPC Error Determination REXX Variables . . . . . . . . . . . . . . . . . . . . . . . 4-35
APPC Environment Data REXX Variables. . . . . . . . . . . . . . . . . . . . . . . . . 4-36
APPC Application Data REXX Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
APPC_ACTUAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-37
APPC_EXPECTED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-37
APPC_ACTUAL_LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
APPC_EXPECTED_LENGTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
APPC General REXX Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
CYCLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
GRPCYCLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
PORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
APPC Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
Outbound Performance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
Inbound Performance Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
Elapsed Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
APPC Unattended Playback Example Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
Example 1: Play Back 100 APPC Conversations All at Once . . . . . . . . . . 4-41
Example 2: Play Back 100 APPC Conversations Started Every 3 Seconds 4-41
Example 3: Play Back 100 APPC Conversations Started at Intervals . . . . 4-41
Example 4: Play Back One Lengthened APPC Conversation . . . . . . . . . . 4-42
Example 5: Play Back Two Related APPC Conversations . . . . . . . . . . . . . 4-42
Example 6: Play Back APPC Conversations Started in Various Ways . . . . 4-43
Allocate 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
Allocate 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
Allocate 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
Allocate 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
vi
Hiperstation for Mainframe Servers User Guide
APPC Data-Driven Testing Example Using REXX . . . . . . . . . . . . . . . . . . . . .
Review the Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extract the Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Share the Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Replace the Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alter the Request String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Play Scripts Serially and Concurrently . . . . . . . . . . . . . . . . . . . . . . . . . .
Create Playback Control Statements for the Business Transaction .
Create JCL to Play Back the Business Transaction . . . . . . . . . . . . . .
Review the Playback Job Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APPC Data-Driven Testing Example Using Playback Tables. . . . . . . . . . . . . .
Playback Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extract the Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Store a Shared Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Retrieve a Shared Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alter the Request String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Getting Playback Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-44
4-45
4-47
4-48
4-51
4-53
4-54
4-55
4-56
4-57
4-59
4-60
4-60
4-60
4-60
4-61
4-63
4-64
Chapter 5. APPC Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outbound Performance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inbound Performance Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Elapsed Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REXX Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-1
5-1
5-2
5-2
5-2
5-3
5-3
Chapter 6. TCP/IP Global Recording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Adding a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Correcting Invalid IP Address Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
Monitoring and Maintaining Existing Requests. . . . . . . . . . . . . . . . . . . . . . . . 6-8
View Session Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
Monitor All Existing Requests (Administrator Access) . . . . . . . . . . . . . . 6-10
Using the Global Recording Batch Interface. . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
Create a Global Recording Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-10
Global Recording Request Parameter Syntax. . . . . . . . . . . . . . . . . . 6-11
Global Recording Request Parameters . . . . . . . . . . . . . . . . . . . . . . . 6-13
Check the Status of Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19
Manage Existing Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20
Retrieve the Parameters of an Existing Request. . . . . . . . . . . . . . . . . . . . 6-21
Generate a Request Parameters Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . 6-22
Troubleshoot Failed Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23
Merging TCP/IP Capture Repositories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23
Chapter 7. TCP/IP Scripts and Subset Repositories . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Creating Scripts and Subset Repositories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
Create TCP/IP Scripts and Establish Filtering Criteria. . . . . . . . . . . . . . . . 7-1
DB2 Connect Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
IMS Connect Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
CTG Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
ECI Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
Filtering IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
Define Activity Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
Specify the Source Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-13
Define Detail Data Storage and Output Requirements . . . . . . . . . . . . . . 7-14
Specify Output Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16
Select Script Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-17
vii
Specify Subset Repository Output Datasets. . . . . . . . . . . . . . . . . . . . . . . . 7-18
Select a Processing Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19
Browsing and Editing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20
Browse a Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21
<VERSION> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21
<DETAIL> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21
<TIME> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22
<CONNECT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-22
<DISCONNECT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24
<CLIENT> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25
<SERVER> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-25
<CTG> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26
<DB2> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26
<ECI> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27
<IMS> Tag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-27
<CONTENT> Tag for Inline Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-28
<CONTENT> Tag for External Data . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29
Edit a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-29
Script Syntax Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-30
<REPLACE> Tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32
Offset and Length Determination Macros . . . . . . . . . . . . . . . . . . . . 7-33
Hiperstation for Mainframe Servers REXX Variables . . . . . . . . . . . . 7-35
Editing TCP/IP Detail Data with File-AID/MVS . . . . . . . . . . . . . . . . . . . . . . . . 7-38
Assign a PF Key to MAPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-39
Map an Individual Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-39
Map an Entire Data File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40
Access MAPD Help Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41
Troubleshoot Message Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41
Script Dataset Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-41
Detail Dataset Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-42
General Information and Error Messages . . . . . . . . . . . . . . . . . . . . . 7-42
Chapter 8. TCP/IP Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Introducing TCP/IP Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Creating a New Interactive Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Generating a Playback from a Script Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Changing Playback Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Environment Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Socket Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Script Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
Submitting Your Playback for Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12
Selecting a Previously Saved Playback to Review . . . . . . . . . . . . . . . . . . . . . . . 8-14
Deleting a Playback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14
Generating Playback Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14
TCP/IP - Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15
TCP/IP - Custom Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Chapter 9. TCP/IP Unattended Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
Creating Playback Control Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-1
Define Statements for Server Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
CONTROL Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
SOCKETS Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8
SCRIPT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15
COLLECT Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-16
Define Statements for Client Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
CONTROL Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18
SOCKETS Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-22
viii
Hiperstation for Mainframe Servers User Guide
SCRIPT Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Preparing the Playback Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Submitting the Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Review Playback Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Playback Return Code Descriptions . . . . . . . . . . . . . . . . . . . . . . . . .
Troubleshooting with the Playback Error Summary . . . . . . . . . . . . . . . . . . .
9-25
9-25
9-27
9-28
9-28
9-30
Chapter 10. TCP/IP Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Reporting Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Creating and Managing Reporting Control Assets . . . . . . . . . . . . . . . . . . . . . 10-2
CONTROL Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
REPORT Statements for Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6
HTML Exception REPORT Statement. . . . . . . . . . . . . . . . . . . . . . . . 10-6
Response Time and Script Timing REPORT Statements . . . . . . . . . 10-9
REPORT Statement for Custom Reports . . . . . . . . . . . . . . . . . . . . . . . . . 10-9
Preparing the Reporting Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13
Submitting the Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-16
Reading and Navigating Basic Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17
HTML Exception Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17
Script Timing Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-20
Response Time Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22
Chapter 11. Archive Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introducing the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Hiperstation as a Security Monitoring Tool . . . . . . . . . . . . . . . . .
Implementing Hiperstation as a Security Monitoring Tool . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Archive Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11-1
11-1
11-1
11-1
11-2
11-3
Chapter 12. Hiperstation for Mainframe Servers Profile Defaults . . . . . . . . . . . . 12-1
APPC Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
TCP/IP Profile Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6
Auditing TCP/IP Profile Defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13
Playback TCP/IP Profile Defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14
Appendix A. TCP/IP Data Collection and Reporting Tables . . . . . . . . . . . . . . . . .
PLAYBACK Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLAYBACK Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PLAYBACK Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SOCKETS Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SOCKETS Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SOCKETS Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCRIPT Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCRIPT Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SCRIPT Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONNECTION Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONNECTION Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CONNECTION Statistic Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MESSAGE Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MESSAGE Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A-1
A-1
A-2
A-2
A-3
A-4
A-4
A-5
A-5
A-6
A-7
A-7
A-8
A-9
A-9
ix
Appendix B. TCP/IP Report Field Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Appendix C. TCP Script Create Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1
Appendix D. Customer Support Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-1
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G-1
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I-1
x
Hiperstation for Mainframe Servers User Guide
xi
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.
2-13.
2-14.
2-15.
2-16.
2-17.
2-18.
2-19.
2-20.
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.
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.
Global Recording - Add Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Global Recording - Monitor Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
APPC Capture Criteria Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
APPC - Script Content Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
APPC - Script Datasets Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
APPC - Script Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
Global Recording - Monitor Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Global Recording - Active Sessions Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Review Repository - Dataset List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Review Repository - Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
Script Processing Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
Review Repository - Session List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
Script Processing Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
DCIJCL — Sample JCL to Add or Manage Requests. . . . . . . . . . . . . . . . . . . . . . . 2-18
SQQFSAMP Member DCIADXL6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21
SQQFSAMP Member SCJCL — Sample JCL to Create Scripts . . . . . . . . . . . . . . . 2-44
SQQFSAMP Member SCAPPC — Sample Script Creation Parameters . . . . . . . . . 2-46
SQQFSAMP Member MCSREPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-51
Capture Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-52
Sample Repository Merging JCL: SYSPLEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-53
Generate Unattended Statements Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Generate APPC Unattended Statements Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
APPC Statement Generation Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
APPC CONTROL Statement Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
APPC ALLOCATE/ACCEPT Statement Parameters Screen . . . . . . . . . . . . . . . . . . . 3-4
APPC ALLOCATE/ACCEPT Connection Parameters Screen . . . . . . . . . . . . . . . . . 3-5
APPC ALLOCATE/ACCEPT Documentation Parameters Screen . . . . . . . . . . . . . . 3-5
APPC ALLOCATE/ACCEPT Timing Parameters Screen . . . . . . . . . . . . . . . . . . . . . 3-6
APPC ALLOCATE/ACCEPT Security-LUW Parameters Screen . . . . . . . . . . . . . . . . 3-7
SCRIPT Statement Parameters Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
Company Statement Parameters Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
CACHE INCLUDE and EXCLUDE Statement Parameters Screen . . . . . . . . . . . . . 3-8
Unattended Statement Build Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
ISPF EDIT Screen Showing Generated Statements . . . . . . . . . . . . . . . . . . . . . . . . 3-10
Unattended JCL Build Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
ISPF EDIT Screen Showing Generated JCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
Generation Restrictions Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
ISPF EDIT Screen Showing Restricted Generated Statements . . . . . . . . . . . . . . . 3-12
APPC Unattended Playback Statement Sequence . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Sample Script Using APPC Application Data REXX Variables . . . . . . . . . . . . . . . 4-37
Sample Script Containing the APPC_ACTUAL Variable . . . . . . . . . . . . . . . . . . . 4-37
Sample Script Containing the APPC_EXPECTED Variable . . . . . . . . . . . . . . . . . 4-38
Sample Script Containing the APPC_ACTUAL_LENGTH Variable . . . . . . . . . . . 4-38
Sample Script Containing the ACCP_EXPECTED_LENGTH Variable . . . . . . . . . 4-39
APPC Summary Report Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
JCL to Play Back 100 APPC Conversations, All at Once . . . . . . . . . . . . . . . . . . . 4-41
JCL to Play Back 100 APPC Conversations, One Started Every 3 Seconds . . . . . 4-41
JCL to Play Back 100 Different APPC Conversations . . . . . . . . . . . . . . . . . . . . . . 4-42
JCL to Play Back One Lengthened APPC Conversation. . . . . . . . . . . . . . . . . . . . 4-42
JCL to Play Back Two Related APPC Conversations. . . . . . . . . . . . . . . . . . . . . . . 4-43
JCL to Play Back Several APPC Conversations Started in Various Ways . . . . . . . 4-43
Recorded REQUEST Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Recorded ADDDATA Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
Recorded PROCESS Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-47
REQUEST Script with Hiperstation for Mainframe Servers REXX Variables . . . . 4-48
REQUEST Script with Key Sharing Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49
xii
Hiperstation for Mainframe Servers User Guide
4-19.
4-20.
4-21.
4-22.
4-23.
4-24.
4-25.
4-26.
4-27.
4-28.
4-29.
4-30.
4-31.
4-32.
4-33.
4-34.
4-35.
4-36.
4-37.
4-38.
5-1.
6-1.
6-2.
6-3.
6-4.
6-5.
6-6.
6-7.
6-8.
6-9.
6-10.
6-11.
6-12.
6-13.
7-1.
7-2.
7-3.
7-4.
7-5.
7-6.
7-7.
7-8.
7-9.
7-10.
7-11.
7-12.
7-13.
7-14.
7-15.
7-16.
7-17.
7-18.
7-19.
7-20.
7-21.
8-1.
8-2.
8-3.
8-4.
8-5.
8-6.
ADDDATA Script with Key Sharing Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-50
PROCESS Script with Key Sharing Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-51
ADDDATA Script with Key Replacement Logic . . . . . . . . . . . . . . . . . . . . . . . . . . 4-52
PROCESS Script with Key Replacement Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-53
REQUEST Script with Request Modification Logic . . . . . . . . . . . . . . . . . . . . . . . 4-54
APPC Conversation Log for Example Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-56
Control Statements to Play Scripts Back Serially . . . . . . . . . . . . . . . . . . . . . . . . . 4-56
JCL for the Example Business Transaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-57
Job Log for a Single Thread, Single Iteration Playback . . . . . . . . . . . . . . . . . . . . 4-57
Job Log for a Multiple Thread, Single Iteration Playback . . . . . . . . . . . . . . . . . . 4-58
Job Log for a Multiple Thread, Multiple Iteration Playback . . . . . . . . . . . . . . . . 4-59
Job Log for a Multiple Thread, Multiple Iteration Playback (Continued) . . . . . . 4-59
Store a Shared Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-60
Retrieve a Shared Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-61
Request String Using Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-62
Script Being Played Back. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-63
Variable Data Read from the Table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-63
Table Definition Using LOG Keyword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-64
JCL to Merge and Sort Three LOG Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-64
Sample Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-65
APPC Summary Report Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
Hiperstation for Mainframe Servers Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
Global Recording Requests Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
Global Recording - Monitor TCP/IP Requests Screen. . . . . . . . . . . . . . . . . . . . . . . 6-3
TCP/IP Collect Data - Filtering Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
Portion of Screen Filter Sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4
TCP/IP Data Collect - Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
TCP/IP Collect Data - Filtering Screen with IP Address Errors . . . . . . . . . . . . . . . . 6-7
TCP/IP Collect Data Filters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7
Global Recording - Monitor TCP/IP Requests Screen. . . . . . . . . . . . . . . . . . . . . . . 6-8
Global Recording - Active TCP/IP Sessions Screen. . . . . . . . . . . . . . . . . . . . . . . . . 6-9
DCIJCL — Sample JCL to Add or Manage Requests. . . . . . . . . . . . . . . . . . . . . . . 6-11
SQQFSAMP member DCIADXTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Sample Repository Merging JCL: SYSPLEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24
Hiperstation for Mainframe Servers Main Menu . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
TCP/IP Create Scripts - Filtering Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
TCP/IP Create Scripts - DB2 Connect Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
TCP/IP Create Scripts - DB2 Connect Filter Detail Screen . . . . . . . . . . . . . . . . . . . 7-5
TCP/IP Create Scripts - IMS Connect Filters Screen . . . . . . . . . . . . . . . . . . . . . . . . 7-6
TCP/IP Create Scripts - IMS Connect Filter Detail Screen . . . . . . . . . . . . . . . . . . . 7-7
TCP/IP Create Scripts - CTG Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7
TCP/IP Create Scripts - CTG Filter Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
TCP/IP Create Scripts - ECI Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
TCP/IP Create Scripts - ECI Filter Detail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
TCP/IP Create Scripts - Filtering IP Addresses Screen. . . . . . . . . . . . . . . . . . . . . . 7-11
TCP/IP Create Scripts - Grouping Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12
TCP/IP Create Scripts - Input Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-13
TCP/IP Create Scripts - Create Options Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . 7-15
TCP/IP Create Scripts - Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16
TCP/IP Create Scripts - Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18
TCP/IP Create Scripts - Subset Output Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19
TCP/IP Create Scripts - Process Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20
LOCPOS Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-34
BRULE Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-35
BRULES Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-35
TCP/IP Playback - Selection Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
TCP/IP Playback - Datasets Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
TCP/IP Script Dataset List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
TCP/IP Playback - Script Member List Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
TCP/IP Playback - Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
TCP/IP Playback - Log File Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Figures
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.
8-29.
9-1.
9-2.
9-3.
9-4.
10-1.
10-2.
10-3.
10-4.
10-5.
10-6.
10-7.
11-1.
12-1.
12-2.
12-3.
12-4.
12-5.
12-6.
12-7.
12-8.
12-9.
12-10.
12-11.
D-1.
D-2.
xiii
Environment Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Environment - Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
Environment - Timing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6
Environment - Connection Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7
Environment - Data Replacement Options Screen . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Socket Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8
Socket - Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9
Socket Timing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9
Socket - Connection Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Socket - Data Replacement Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10
Script Socket Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
Script Processing Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11
Script Connection Options Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12
TCP/IP Playback - Submit Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12
TCP/IP Playback - Save JCL File Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
TCP/IP Playback - Save Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14
TCP/IP Reporting - Selection Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15
TCP/IP Reporting Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15
TCP/IP - Basic Reports Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16
Custom Report Parameters Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17
Table Report Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17
Form Report Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18
Custom Report Locations Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18
Sample TCP/IP Connection Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
TCPRUN-Sample TCP/IP Playback JCL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-26
TCPPBSRT-Sample JCL to Sort Data Collected During Playback . . . . . . . . . . . . . 9-27
Playback Error Summary Report (HTML Format) . . . . . . . . . . . . . . . . . . . . . . . . 9-31
Sample Message Report in Table Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4
Sample Message Report in Form Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5
Sample Reporting Job ESRJCL4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-15
HTML Exception Report Mismatch Summary (Top of Report) . . . . . . . . . . . . . 10-17
HTML Exception Report Mismatch Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19
HTML Script Timing Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-20
HTML Response Time Summary Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22
Hiperstation Archive Recording Setup Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-1
APPC Record and Script Create Defaults - Record Settings . . . . . . . . . . . . . . . . . 12-2
APPC Record and Script Create Defaults - Script Create Settings . . . . . . . . . . . . 12-4
Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7
TCP/IP Global Record/Script Create Defaults - Record Settings. . . . . . . . . . . . . . 12-7
TCP/IP Global Record/Script Create Defaults - Script Create Settings . . . . . . . . . 12-9
TCP/IP Global Record/Script Create Defaults - Dataset Settings . . . . . . . . . . . . 12-12
Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13
Auditing Defaults for TCP/IP Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14
Hiperstation Profile Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-15
TCP Interactive Playback Defaults Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-16
Hiperstation Diagnostics Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-1
Customer Support Diagnostic Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-2
xiv
Hiperstation for Mainframe Servers User Guide
xv
Tables
4-1.
9-1.
9-2.
10-1.
B-1.
B-2.
C-1.
APPC Playback Return Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Playback Sessions for a SOCKETS statement with COUNT(2) REPEAT(3) . . . . . . 9-28
Hiperstation for Mainframe Servers Internal Return Codes . . . . . . . . . . . . . . . . 9-29
Contents of System-Level Reporting Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
Field Names and Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-1
Valid Values for RequestHeadernnnn, ResponseHeadernnnn,
ExpResponseHeadernnnn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B-5
TCP/IP Script Create Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C-1
xvi
Hiperstation for Mainframe Servers User Guide
xvii
Introduction
Intro
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
describes 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.
xviii
Hiperstation for Mainframe Servers 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 xix
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
xix
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
This section describes the:
• contents of this manual
• notation conventions used throughout the manual
• command syntax and syntax diagrams
Manual Contents
This manual describes how to use Hiperstation for Mainframe Servers. It contains the
following subjects:
xx
Hiperstation for Mainframe Servers User Guide
• Chapter 1, “Hiperstation for Mainframe Servers Overview” provides an overview of
the product and testing process.
• Chapter 2, “APPC Global Recording and Scripts” explains how to capture APPC
traffic, monitior and modify recording requests, and generate testing scripts.
• Chapter 3, “APPC Unattended Processing” explains how to use Unattended
Processing to generate unattended playback statements and JCL for batch testing
APPC applications.
• Chapter 4, “Unattended Playback of APPC Scripts” describes how to play back APPC
scripts in batch including explanation of script tags, unattended mode statements,
and sample JCL.
• Chapter 5, “APPC Reporting” describes how to generate APPC reports using
unattended processing statements and keywords, along with examples of the reports.
• Chapter 6, “TCP/IP Global Recording” explains how to create a recording request and
how to monitor and maintain existing requests.
• Chapter 7, “TCP/IP Scripts and Subset Repositories” explains how to create scripts
and subset repositories from a capture repository, how to edit scripts, and how to
review and edit the TCP/IP message data.
• Chapter 8, “TCP/IP Interactive Playback” describes how to play back your scripts
interactively.
• Chapter 9, “TCP/IP Unattended Playback” describes how to set up unattended
playback of TCP/IP data, including script tags.
• Chapter 10, “TCP/IP Reporting” explains how to create TCP/IP testing reports.
• Chapter 11, “Archive Functions” describes the Archive function.
• Chapter 12, “Hiperstation for Mainframe Servers Profile Defaults” provides
information on how to edit your Hiperstation for Mainframe Servers profile settings.
• Appendix A, “TCP/IP Data Collection and Reporting Tables” lists the TCP/IP fields
that can be collected and reported.
• Appendix B, “TCP/IP Report Field Definitions” defines fields that appear in TCP/IP
reports.
• Appendix C, “TCP Script Create Parameters” provides a list of the TCP script create
parameters with a short description of the parameter.
• Appendix D, “Customer Support Diagnostics” explains how to run a Customer
Support Diagnostic Report that lists all PTFs applied to your installation.
• “Glossary” provides a description of terms used in this guide.
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
Introduction
xxi
• 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.
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.
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.
xxii
Hiperstation for Mainframe Servers User Guide
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.
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
Introduction
xxiii
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.
xxiv
Hiperstation for Mainframe Servers 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
xxv
• 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.
xxvi
Hiperstation for Mainframe Servers 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 Mainframe Servers 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 may help Customer Support diagnose an issue.
See Appendix D, “Customer Support Diagnostics” for details. Although it is not
required, generating the report before calling may expedite diagnosis.
1-1
Chapter 1.
Hiperstation for Mainframe Servers Overview
Chap 1
Hiperstation for Mainframe Servers is a powerful testing tool used to perform a variety of
functions. For example:
• Application Developers can unit test new features.
• Quality Assurance personnel can perform system, integration, and regression testing
to validate application functions.
• System Programmers can verify database availability for client applications.
• Database Administrators can test database modifications.
• System Security or Audit personnel can record all activity occurring on the system for
audit purposes.
Hiperstation for Mainframe Servers offers features for testing SNA and TCP/IP
applications. These features support a variety of protocols. The SNA options support
3270, LU0, and APPC. The TCP/IP options support HTTP, HTTPS, ECI, CTG, DB2C, IMSC,
and generic TCP/IP.
Applications testing involves:
• Recording activity — Capture all application traffic or record specific activities
based on the criteria you specify.
Note:
A good practice is to make sure that your browser’s cache is empty before
generating HTTP and/or HTTPS traffic for Global Recording to capture, or
alternatively, configure your browser to check the Web page for a new
version on every visit.
• 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 Mainframe Servers can process. Add REXX logic to:
– Create dynamic scripts that facilitate data-driven testing. For example, create a
script that performs an account inquiry, and 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 terminate Hiperstation for
Mainframe Servers playback if the inquiry returns a “system busy” message.
• Playing back scripts — Play back scripts against the application being tested to
compare recorded application responses to live application responses or to ensure
that the application can support the expected volume of traffic. You can also use the
playback function 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.
1-2
Hiperstation for Mainframe Servers User Guide
2-1
Chapter 2.
APPC Global Recording and Scripts
Chap 2
Testing with Hiperstation for Mainframe Servers involves capturing activity and
generating testing scripts from the captured activity. Perform these tasks with the
following Hiperstation for Mainframe Servers options:
• Monitor Requests — Create, manage, and monitor Global Recording requests.
Record all of the APPC, 3270, or LU0 traffic on the system or specify the logical unit
names, network IDs, logmodes, TP names, terminals, applications, or user IDs to
record. Set up the recording request to initiate script creation when the recording
request ends or suspend script creation and generate scripts later.
• Review Repository — View a list of the sessions captured in a given recording.
Generate scripts from selected sessions or for entire capture repositories. Save the
specified script creation criteria in the affiliated recording request or discard it after
script creation.
• Global Recording Manager — Build lists of applications, terminals, and user IDs to
include or exclude from 3270/LU0 recording. Global Recording Manager Lists
provide greater flexibility in defining Global Recording requests.
Hiperstation for Mainframe Servers also offers a batch interface to Global Recording. Use
it along with a job scheduler to automate recording initiation and termination, as well as
script creation. For example, create a job that starts recording, a job that stops recording,
and a job that generates scripts. Then schedule them to run every day at the appropriate
times.
You can use the interfaces together. For example,
• Schedule request management jobs to capture activity for the same period of time
each day. Then use the Review Repository option to select specific sessions for
scripting.
• Use the online interface to create Global Recording Manager lists. Then use the lists
to govern automated recordings.
Additionally, Hiperstation for Mainframe Servers provides the following features to help
you with script creation:
• The Capture Segment Summary report helps you identify the information stored in
your capture repositories. It indicates when recording began and ended for each
segment of the specified repositories. Use it to select the appropriate segments for
script creation. Review the report with a file browsing tool such as ISPF Browse or
import it into a spreadsheet or database for easy manipulation.
• The Capture Repository Merging Utility allows you to merge related repositories to
minimize script creation time. 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 Mainframe Servers supports disabling of User Key CSA allocation.
See the IBM publication, MVS Initialization and Tuning Reference, for more
information.
2-2
Hiperstation for Mainframe Servers User Guide
Creating an APPC Global Recording Request
Global Recording writes captured activity to a specified dataset or range of datasets called
a repository. Testing scripts are generated from the capture repository. If your installer
enabled Autostart Script Creation, Global Recording initiates script creation at the end of
recording. However, you can suspend script creation and initiate it later using the Review
Repository option (page 2-12) or the batch interface (page 2-43). For example, you may
want to capture an entire day’s activity, and then generate scripts in the evening when
more system resources are available.
To capture activity and potentially generate scripts, 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.
Note:
The Global Recording started task must be running before the start of the VTAM
sessions that you need to record, that is, before the BIND is issued by the
communicating applications (for example, CICS or IMS). Global Recording then
captures the APPC conversations that begin after the recording request is active.
An APPC conversation is the activity that occurs between the ALLOCATE and
DEALLOCATE.
Depending on the type of recording request, different Monitor Requests screens appear.
For 3270 or LU0 requests, it presents the same screens as the Monitor Requests option in
Hiperstation for VTAM. If you need to create a 3270 or LU0 request, refer to the
Hiperstation for VTAM User Guide.
This section explains how to use the Monitor Requests option to create an APPC
recording request. You can also create and manage recording requests with batch jobs.
See “Using the Global Recording Batch Interface” on page 2-17.
To create an APPC Global Recording request:
1. On the Option line of the Hiperstation - Product Menu, type 2 and press Enter.
2. On the Option line of the Hiperstation for Mainframe Servers Main Menu, type 1 and
press Enter.
3. If there are no existing requests, the “Global Recording - Add Requests Screen”
appears (Figure 2-1). The Type of request to add field defaults to option 1. Type 2 to
select APPC and press Enter.
Figure 2-1. Global Recording - Add Requests Screen
Hiperstation -------Command ===>
Global Recording - Add Requests
---------------------
Press ENTER to continue, or END to return.
*****************************************************************************
*
*
*
No Global Recording Requests were found for your userid.
*
*
*
*****************************************************************************
Type of request to add:
2 1. 3270
2. APPC
Notes:
a. The 3270 option presents the same screens as Hiperstation for VTAM. Refer to the
Hiperstation for VTAM User Guide for more information.
APPC Global Recording and Scripts
2-3
b. If TN3270 traffic at your site uses its own address space, separate from TCP/IP,
use the 3270 option to capture TN3270 activity. Otherwise, use the Monitor
TCP/IP Requests option. See “TCP/IP Global Recording” on page 6-1. If you are
unsure of the address space configuration, consult your installer.
Otherwise, the “Global Recording - Monitor Requests Screen” appears (Figure 2-2). It
shows all of the existing 3270/LU0 and APPC requests that you created. Active
requests are highlighted.
Figure 2-2. Global Recording - Monitor Requests Screen
Hiperstation --------- Global Recording - Monitor 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, (1)Add 3270, (2)Add APPC, or
(9)Switch repositories
LU
Side-A/ Side-B/
Repository
Type Applid
Terminal Userid
Dataset
Users
---- -------- -------- -------- ------------------------------------- ---APPC VAP1*
VAS4*
*
USER2312.APPC.REPOS
0
******************************* BOTTOM OF DATA ********************************
S
-
4. In the first request in the S (select) column, type 2 to Add an APPC request and press
Enter. The “APPC Capture Criteria Screen” appears (Figure 2-3).
Figure 2-3. APPC Capture Criteria Screen
Hiperstation --------------Command ==>
APPC - Capture Criteria -------------------------
Press ENTER to continue, or PF1 for help, or enter CANCEL to exit.
Identify which APPC conversations to record:
Side A LU . *
(Logical unit name or *)
Side B LU . H40AC*
(Logical unit name or *)
Logmode . . LU62B01 (VTAM logmode name or *)
Userid . . *
(Userid or *)
TP name . .
HH : MM : SS
Start Time . . . 00 : 00 : 00
End Time . . . . 00 : 00 : 00
Netids: (Optional)
Side A Netid . . XXXXXXXX
Side B Netid . .
MM / DD / YY
Start Date . . . 00 / 00 / 00
End Date . . . . 00 / 00 / 00
Repository Dataset . . . 'USER2312.APPC.REPOS'
First and last number. .
(If wildcard in dataset)
Recording options: (Enter "/" to select)
Suspend script creation
/ Normal event notification
Re-use repositories
/ Error event notification
FORCE request at 'End Time'
5. Enter the Side A LU and Side B LU. These are the VTAM logical unit (LU) names of
the partners that make up the APPC conversations that you need to record. Both
fields require one of the following:
– A specific LU name.
– An asterisk (*) to select all LUs. Leaving this field blank also selects all LUs.
– An LU prefix followed by an asterisk to select a group of LUs. For example, VAP1*
selects all LUs beginning with VAP1.
If you supply a Side A LU but no Side B LU, or the reverse, all conversations involving
the specified LU are recorded. This field holds eight characters.
2-4
Hiperstation for Mainframe Servers User Guide
6. Enter the Side A Netid and Side B Netid. These are the VTAM Network IDs for the
Side A LU and Side B LU partners. Use these fields to restrict capture to only the APPC
conversations on specific VTAM networks. Both fields require one of the following:
– A specific network ID.
– An asterisk (*) to select all networks. Leaving this field blank also selects all
networks.
– A network ID prefix followed by an asterisk to select a group of networks. For
example, US* selects all networks beginning with US.
This field holds eight characters.
7. Enter the Logmode (VTAM logon mode name) used by the conversations to be
recorded. To specify a range of similar logmodes, use the asterisk (*) wildcard. For
example, SNAS* selects all logmode names beginning with SNAS. This field holds
eight characters. Leave Logmode empty if you do not want to restrict recording to a
specific logmode.
Note:
In flight conversation (conversation without VTAM bind) will not be able to
filter for logmode.
8. Enter the user sign on ID associated with the conversation to be recorded. Enter one
of the following:
– A specific user ID.
– An asterisk (*) to select all users. Leaving the field blank also selects all users.
– A user ID prefix followed by an asterisk to select a group of users. For example,
USR* selects all user IDs beginning with USR.
This field holds eight characters.
9. Enter the TPName (transaction program name) associated with the conversations to
be recorded. Enclose TP Names that contain spaces in single quotation marks. If the
TP name contains non-printable characters, supply it in hexadecimal notation,
enclosed in single quotation marks, and prefixed with the letter X (for example,
X'0EC1D7C9D5C70F’). This field holds 64 characters. Leave it empty if you do not
want to restrict recording to a specific TP name.
10. Enter the start and end date and time. If you provide a start time, a start date is
required. If you provide an end time, an end date is required. If you supply a start
date, but accept all zeros for the start time, the request activates at midnight at the
beginning of the start date.
– To activate the request immediately, accept the default value of all zeros in both
the Start Time and Start Date fields.
– To activate or deactivate the request at a specific time, enter start and end times
and dates:
•
•
•
•
•
•
Enter
Enter
Enter
Enter
Enter
Enter
a two-digit hour based on a 24-hour clock.
either a two-digit minute, or press Tab to accept 00.
either a two-digit second, or press Tab to accept 00.
a two-digit month.
a two-digit day.
a two-digit year.
– To keep the request active until you STOP, FORCE, or CANCEL it, accept the
default value of all zeros for both the End Time and End Date fields.
Note:
If you select the FORCE request at ‘End Time’ option under Recording
Options, an End Time is required.
11. In the Repository Dataset field, enter the name of the dataset to use for storing
captured information. To create a segmented repository, use the following wildcard
APPC Global Recording and Scripts
2-5
characters in the dataset name field and define a range with the First and last
number fields:
– Asterisk (*): Inserts an incremental value into the dataset name qualifier the
asterisk appears in. This wildcard pads the incremental value with enough zeros
to ensure an eight character qualifier. For example, USER.APPC.REC* with first=1
and last=3 creates capture repositories:
USER.APPC.REC00001
USER.APPC.REC00002
USER.APPC.REC00003
– Question mark (?): Inserts the incremental value into the dataset name qualifier
where the question marks appear. Enter at least one question mark for each digit
of the greatest value in the range fields. For example, USER.APPC.REC?? with
first=9 and last=11 creates capture repositories:
USER.APPC.REC09
USER.APPC.REC10
USER.APPC.REC11
Note: Begin each segment of the dataset name with an alpha character (A-Z) or @#$,
including segments with wildcard characters.
12. Enter a beginning and ending value in the First and Last number fields to define the
range of numbers if you specified wildcard characters in the Repository Dataset
field.
If you did not use wild card characters in the Repository Dataset field, leave these
fields blank and go to the next step.
13. Type a slash to select the desired recording options:
– Suspend script creation controls automatic script creation. Select this field to
prevent script creation at the end of the recording request. If you leave this field
blank you will be guided through the script creation criteria screens prior to your
capture request being activated. This will also cause automatic script creation to
execute when your capture request is stopped.
– Normal event notification sends all recording request status and error messages
to your TSO session. This option is selected by default. If you are recording a
large number of sessions, consider disabling this option to reduce the number of
messages you receive.
– Re-use repositories applies to segmented repositories only. It causes Global
Recording to continue capturing activity after the repository segments are full.
After the last segment fills, it begins writing to the first segment again, replacing
the oldest captured activity with the newest. If this option is not selected,
recording terminates after the last segment is full.
– Error event notification sends only the error messages associated with the
request to your TSO session. This option is selected by default. If you are
recording a large number of sessions, consider selecting this option and disabling
Normal event notification to minimize the number of messages you receive.
Note: Normal event notification sends all messages, including error messages,
to your TSO session. If Normal event notification is selected, Global
Recording ignores the Error event notification option. To prevent
receiving messages altogether, clear both Normal event notification and
Error event notification.
– FORCE request at ‘End Time’, issues a FORCE command at the end time
specified in the request. FORCE terminates recording of all sessions including inflight sessions. Script creation begins immediately, unless the Suspend script
2-6
Hiperstation for Mainframe Servers User Guide
creation option is selected. Be aware that you may lose buffered data, resulting in
partially recorded sessions.
If you do not select this option, Global Recording issues a STOP command at the
request’s specified end time. It stops recording new sessions but continues to
record any active sessions. After all in-flight sessions end, recording terminates
and script creation begins unless the Suspend script creation option is selected.
Although this ensures complete session captures, it may delay script creation.
14. Press Enter to continue. If you specified an existing dataset in the request, the
Capture Criteria - Output Options prompt appears.
15. Type 1 to overwrite the existing data (choose this option only if you do not need to
retain any data that might exist in the specified dataset) or type 2 to append the
existing data and press Enter.
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.
If the dataset you specified does not exist, the Allocate Dataset screen appears.
Generally, the default parameters are appropriate, but you can modify them as
necessary. Press Enter to continue.
If you selected Suspend script creation, request creation is complete. Depending on
the request options, your terminal may display messages associated with your
request.
16. Press Enter to clear any messages your terminal displays. (You may need to press
Enter several times.) After you clear all of the messages, the Monitor Requests screen
appears. See “Monitoring and Managing Existing Requests” on page 2-10.
If you did not select Suspend script creation, the “APPC - Script Content Screen”
appears (Figure 2-4). See the next section, “Define Script Creation Criteria”.
Define Script Creation Criteria
An APPC script contains all APPC verbs issued by both sides of a single APPC
conversation. Some conversations may contain only two verbs: ALLOCATE and
DEALLOCATE. Others may contain thousands of verbs.
Define script creation criteria with a series of screens that can be accessed when you
create or update a recording request or when you generate scripts with the Review
Repository option (page 2-12).
Note:
You can also use the batch interface to create scripts (page 2-43).
To define script creation criteria:
1. Access the “APPC - Script Content Screen” (Figure 2-4) using one of the following:
– Monitor Requests option, while creating or updating a recording request. This
screen appears after you define capture criteria, if you do not select the Suspend
script creation option.
– Review Repository option, while generating scripts. This screen appears if the
recording request affiliated with the selected repository does not contain script
creation criteria or if you select the Review script create criteria option.
APPC Global Recording and Scripts
2-7
Figure 2-4. APPC - Script Content Screen
Hiperstation ------------------ APPC - Script Content ------------------------Command ==>
Press ENTER to continue, or PF1 for help, or enter CANCEL to exit.
Where should details be stored: (Enter number to select)
1 1. Merged into the script
2. Separate from the script, inbound and outbound together
3. Separate from the script, inbound and outbound split
What
/
/
/
should be recorded:
Conversation log
Script
Details
(Enter "/" to select)
Dataset processing options: (Enter "/" to select)
Replace existing conversation log or members
Y Replace existing script members
Replace existing detail members
2. Specify where to store the detail data associated with the captured APPC verbs.
Storing details in separate files may ease browsing, editing, and managing scripts and
detail data. Select one of the following options:
– 1 merges all details into the scripts. This option produces one PDSE member for
each script.
– 2 separates the details from the scripts. This option creates two PDSE members
for each script: one containing all of the detail data, and one containing the
APPC verbs with links to the associated detail.
– 3 separates the inbound and outbound details from each other and from the
script. This option creates three PDSE members for each script: one containing
the APPC verbs with links to the associated detail, one containing the outbound
details, and one containing the inbound details.
When you enter a number, the cursor automatically moves to the Conversation Log
option in the next block of fields.
3. Specify which items to generate by typing a slash (/) in the selection field next to the
item.
– Conversation Log — A report of each captured APPC conversation containing
statements that describe the connections between TPs. Use this report as the
input for an unattended playback job. See Chapter 4, “Unattended Playback of
APPC Scripts”.
– Script — The APPC verbs from a single conversation. Scripts may also contain
the detail data associated with the verbs, depending on the selection in the
previous field. Hiperstation for Mainframe Servers generates one script for each
captured conversation.
– Details — The inbound and outbound data associated with the captured APPC
verbs.
4. Specify which Dataset processing options (dataset members), if any, to overwrite. To
replace the conversation log member, script members, or detail data members, type a
slash (/) in the selection field next to the applicable options:
– Replace existing conversation log or members
– Replace existing script members
– Replace existing detail members
5. Press Enter. The “APPC - Script Datasets Screen” appears (Figure 2-5).
2-8
Hiperstation for Mainframe Servers User Guide
Figure 2-5. APPC - Script Datasets Screen
Hiperstation ---------------- APPC - Script Datasets -------------------------Command ==>
Press ENTER to continue, or PF1 for help, or enter CANCEL to exit.
Script Datasets:
Conversation log:
*
Prefix:
Suffix: 0000000
Prefix:
Suffix: 0000000
Prefix:
Suffix: 0000000
DDname:
Prefix:
Suffix: 0000000
DDname:
Prefix:
Suffix: 0000000
DDname:
Script: . . . .
*
Combined detail:
Outbound detail:
Inbound detail:
Supply dataset names, member name prefixes, and member name suffixes to
identify where the recorded data should be stored. Rows marked with *
are required because of options you selected on the previous panel.
The fields containing an asterisk (*) are required. The asterisks appear based on the
choices you made on the previous screen.
6. Enter the Script Dataset names for the fields containing an asterisk. These datasets
are the sequential dataset or PDS(E) that will contain the given item. Enter up to 46
characters. Do not include a member name. If you supply a partially qualified dataset
name, Global Recording automatically prefixes it with your TSO prefix or user ID
depending on the prefix setting in your TSO profile.
Note:
The Conversation Log may be written to a sequential or partitioned dataset.
All other items must be written to PDS or PDSE.
Each dataset name field is followed by a Prefix and a Suffix field to supply member
naming information for the given item. The Combined detail, Outbound detail,
and Inbound detail dataset name fields present an additional field, DDname, after
the Suffix field, to supply verb-detail linking information.
– Prefix is a one- to six-character prefix that, in conjunction with the member
suffix, forms an eight character member name.
– Suffix is a numeric value that, in conjunction with the member prefix, forms an
eight-character member name. Hiperstation for Mainframe Servers increments
this value to create new members, for example, each time it creates a new script.
It also increments this value if the specified member already exists and you did
not elect to replace it.
• If you enter a suffix that is too short, Hiperstation for Mainframe Servers
pads the suffix with zeros to the left. For example, if the prefix is OES and
the suffix is 10, the first script member name is OES00010, and the next
member is OES00011.
• If you enter a suffix that is too long, Hiperstation for Mainframe Servers
truncates the digits on the left. For example, if you enter SCRIPT for the
prefix and 1234 for the suffix, the first script member is SCRIPT34, and the
next member is SCRIPT35.
This field accepts up to seven digits.
– DDname is a data definition name that links the APPC verbs with the associated
detail data when the script and details are stored separately. Hiperstation for
Mainframe Servers uses this name to locate the appropriate detail data during
playback.
APPC Global Recording and Scripts
2-9
A dataset allocation screen appears for each specified dataset that does not exist.
Generally, the default values are appropriate. However, you can override any or all
values if desired.
7. Press Enter to allocate the dataset. If additional datasets need to be allocated, the
next allocation screen appears.
If all of the specified datasets exist, or after all of the new datasets are allocated, the
“APPC - Script Options Screen” appears (Figure 2-6).
Figure 2-6. APPC - Script Options Screen
Hiperstation ------------------ APPC - Script Options ------------------------Command ==>
Press ENTER to continue, or PF1 for help, or enter CANCEL to exit.
Script options: (Enter "/" to select)
Suppress time stamps in script
Write script tags in short CPIC format
Write all PIU traffic as script comments
Include SNA service transactions (logmodes: SNASVCMG, CPSVCMG, CPSVRMGR)
Description
. . . APPC Test1 scripts
8. The cursor appears in the selection field next to the first option. Type a slash (/) next
to the desired options.
– Suppress time stamps in script — omits time stamps from the scripts. If you are
reviewing the scripts for debugging purposes, select this option to make the
scripts easier to read. If you need to play back the script, do not select this
option. Hiperstation for Mainframe Servers uses the time stamps to synchronize
playback.
– Write script tags in short CPIC format — writes the APPC verbs in Common
Programming Interface for Communications (CPIC) format, rather than
Hiperstation proprietary format. For example, a send verb appears in the script as
CMSEND rather than SEND_DATA. This option supports readability and has no
impact on playback.
– Write all PIU traffic as script comments — Writes VTAM Path Information
Units (PIUs) into the script — that is, the 26-byte Transmission Headers (TH), the
3-byte Request Headers (RH), and the variable length Request Units (RU) that are
sent between VTAM logical units. In the scripts, this information appears in
CONTENT tags under a PIU tag. Although the information does not appear with
the traditional comment indicator (*) in column one, playback ignores the PIU
block of tags. This option supports debugging VTAM applications.
– Include SNA service transactions — writes special APPC conversations used by
subsystems such as VTAM and CICS into the scripts. For example, the Change
Number of Session (CNOS) and Exchange Log Name (XLN) transactions appear in
the script if you select this option. These conversations use the following
logmodes: SNASVCMG, CPSVCMG, or CPSVRMGR. This option supports
application debugging and does not impact playback.
9. Enter a Description to be written into the header of each script. This is an optional
field that holds 55 characters.
10. If you accessed the Script Criteria screens through the:
– Monitor Requests option, request creation is complete. Depending on the
request options, your terminal may display messages associated with your
request. Press Enter to clear the messages. You may need to press Enter several
times. After you clear all of the messages, the Monitor Requests screen appears.
See “Monitoring and Managing Existing Requests” on page 2-10.
2-10
Hiperstation for Mainframe Servers User Guide
– Review Repository option, the “Script Processing Screen” appears next (Figure
2-11 on page 2-14). The cursor starts in the Select processing option field. Type
1 for background processing or 2 for foreground processing. The cursor
automatically advances to the Job statement area of the screen. If you selected
option 1, enter job statement information. Press Enter. Your terminal may
display processing messages. Press Enter to clear the messages and return to the
Review Repository screen.
Monitoring and Managing Existing Requests
The Monitor Requests option (Figure 2-7) presents a list of all existing 3270/LU0 and
APPC requests that you created. Active requests appear highlighted.
Use this screen to:
•
•
•
•
•
•
Stop recording
Add, delete, or update a request
Restart an inactive request
Disable a request to prevent it from automatically restarting
View the sessions being captured
Switch the repository segment so that you can review captured activity without
interrupting recording
1. To access the “Global Recording - Monitor Requests Screen” (Figure 2-7), type 1 on
the Option line of the Hiperstation for Mainframe Servers Main Menu and press
Enter.
Figure 2-7. Global Recording - Monitor Requests Screen
Hiperstation --------- Global Recording - Monitor 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, (1)Add 3270, (2)Add APPC, or
(9)Switch repositories
LU
Side-A/ Side-B/
Repository
Type Applid
Terminal Userid
Dataset
Users
---- -------- -------- -------- ------------------------------------- ---APPC VAP1*
VAS4*
*
USER2312.APPC.REPOS
0
******************************* BOTTOM OF DATA ********************************
S
-
2. Position the cursor in the S column next to the desired request, type the appropriate
line command, and press Enter. Following is a description of the line commands:
(C)ancel
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 first. Wait for recording to terminate before issuing the CANCEL
command. Use ISPF file management tools to delete any repository or repository
segments created by the request.
(F)orce
Forces termination of capture and deactivates the request. Since this option
immediately terminates capture, it may result in partially recorded business
transactions. To stop capturing new sessions, but allow capture to finish for in-flight
sessions, use STOP instead. If script criteria are specified within the request, script
creation begins immediately.
APPC Global Recording and Scripts
2-11
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)estart
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.
(D)isable
Disables the request. All requests, except disabled requests, are restarted when the
Global Recording started task is brought up. An asterisk (*) appears to the left of the
repository dataset indicating the request is disabled. STOP or FORCE the request and
wait for the request to terminate prior to disabling it.
(S)elect
Displays the “Global Recording - Active Sessions Screen” (Figure 2-8), which lists all
APPC conversations or 3270/LU0 sessions being recorded.
(U)pdate
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. After you finish editing, issue a RESTART command to
reactivate the request.
(1) Add 3270
Adds a new 3270 or LU0 Global Recording request. This option is detailed in the
Hiperstation for VTAM User Guide.
(2) Add APPC
Adds a new APPC Global Recording request. See“Creating an APPC Global Recording
Request” on page 2-2.
(9) Switch Repositories
Closes the repository segment that is currently being written and open the next
segment. If you did not specify a wildcard character in the Repository Dataset field,
this option is not available.
View Active Sessions
The “Global Recording - Active Sessions Screen” (Figure 2-8) displays a list of all sessions
currently being recorded for a given request.
1. To access this screen, type S (select) next to the appropriate request on the Monitor
Requests screen and press Enter.
Figure 2-8. Global Recording - Active Sessions Screen
------------------- Global Recording * Active APPC Sessions ------- Row 1 of 2
COMMAND ===>
SCROLL ===> PAGE
SLU
PLU
Userid
Start Time
Last Update
InB
OutB Lost
K01DSDS K01M2EP
11/21 00:25:51 11/21 00:25:51 0002 0001 0000
TPNAME=KBBRPSRV
******************************* BOTTOM OF DATA ********************************
2-12
Hiperstation for Mainframe Servers User Guide
2. Enter the secondary logical unit (SLU) in the conversation — the LU that initiated
the session.
3. Enter the primary logical unit (PLU) in the conversation — the LU that is being
accessed by the SLU.
4. Enter the user sign-on ID associated with the conversation being recorded. Not all
APPC conversations have an associated User ID.
5. Enter the start time and date that the SLU initiated the conversation or the time the
first transaction was recorded for the given session.
6. Enter the last time Global Recording flushed and processed the captured information
from the ECSA buffers. This indicates the age of the counts displayed in the InB,
OutB, and Lost fields.
Note:
If this field indicates a significant lag, or sessions are being recorded that are
not appearing on this screen, contact your MVS Systems Programmer. The
Hiperstation Installation Guide provides instructions for optimizing Global
Recording performance.
– InB is the number of inbound data steams received by the PLU.
– OutB is the number of outbound data streams sent by the PLU.
– Lost is the number of transactions (PIUs) lost. Slow processing or full buffers can
result in lost messages.
Note:
If this field reports lost messages, your MVS Systems Programmer can
resolve the issue by optimizing Global Recording performance as
described in the Hiperstation Installation Guide.
7. Press End to return to the Monitor Requests screen.
Reviewing Repositories and Creating Scripts
Use the Review Repository option to review the sessions captured in a given repository
and to generate scripts. Create scripts from selected sessions or from all session in the
repository.
To use the Review Repository option:
1. On the Option line of the Hiperstation for Mainframe Servers Main Menu, type 2 for
Review Repository and press Enter. The “Review Repository - Dataset List Screen”
appears (Figure 2-9).
Figure 2-9. Review Repository - Dataset List Screen
Hiperstation --------- Review Repository - Dataset List ----------- Row 1 of 2
Command ===>
Scroll ===> PAGE
Specify a repository dataset name or select a repository from the list
below and press ENTER to process it, or END to return.
Repository dataset . . .
First and last number. .
(If wildcard in dataset)
Line commands are: (S)elect
S
-
Repository datasets
Volser Referred Type Owner
-------------------------------------------- ------ -------- ---- -------USER2312.APPC.REPOSIT
SU9007 09/28/07 APPC USER2312
USER2312.XXXXXX
SU9005 09/28/07 3270 USER2312
******************************* BOTTOM OF DATA ********************************
APPC Global Recording and Scripts
2-13
2. If the repository dataset does not appear in the repository list, or to apply temporary
script creation criteria:
– Type the dataset name in the Repository dataset field. If the dataset name
includes wildcard characters, the first and last wildcard values to use for selecting
the applicable segments are required. For example, entering MY.DATASET.CAP??
(with values 1 and 5) selects segments CAP01 through CAP05. The script criteria
you provide are discarded after script creation.
– Otherwise, select the dataset name from the dataset list. You can use the UP and
DOWN PF keys or the FIND and RFIND commands to locate the desired dataset.
The dataset list contains a list of all of the 3270/LU0 and APPC repositories you
have created. In administrator mode, discussed on page 2-16, the list shows
repositories created by all users on the system. If you select a repository from the
list, and you own the repository, any script creation criteria you supply is saved
in the associated Global Recording request.
Note:
Select as many repositories as you like. Review Repository presents the
appropriate screens for each selection.
The Volser column contains the serial number of the volume where the given
repository is stored. This field shows MIGRAT for migrated datasets. Referred is the
MVS reference date associated with the repository dataset. It indicates the last time
the dataset was modified. Type specifies the type of Global Recording request, 3270
or APPC, that captured the information in the repository dataset. Owner is the ID of
the user who created the request associated with the repository dataset. Owner
primarily supports administrator access to Global Recording. See “Accessing Global
Recording Administration” on page 2-16.
3. Press Enter to continue. The Review Repository - Processing Options prompt appears
(Figure 2-10).
– Type 1 to generate 3270 or LU0 scripts for all of the sessions captured in the
selected repository. Refer to the Hiperstation for VTAM User Guide for more
information on this option.
– Type 2 to generate APPC scripts for the selected repository. See “Generate Scripts
from a Selected Repository” on page 2-14.
– Leave the selection field empty to access a list of all sessions captured in the
selected repository. Use this option to review repository contents, generate
scripts from selected sessions, and review or modify script creation criteria. See
“Generate Scripts from Selected Sessions” on page 2-14.
Note: To review or modify existing script creation criteria, leave the field empty
even if you intend to generate scripts from all of the captured sessions.
The Session List screen allows you to review and modify script criteria.
Figure 2-10. Review Repository - Processing Options Screen
Hiperstation------------ Review Repository - Dataset List --------------------C +-----------------------------------------------------------------+ ==> PAGE
| ----------- Review Repository - Processing Options ----------- |
S | Command ===>
|
b |
|
| You specified a repository dataset or selected one from the
|
R | dataset list to process. Press ENTER to review the sessions
|
F | captured to this repository, or select an option below and
|
| press ENTER to create scripts for all sessions of that type
|
L | from this repository, or END to return.
|
|
|
S | Script creation option: (Enter number to select)
| wner
- |
2 1. Record ALL 3270 sessions
| ------|
2. Record ALL APPC sessions
| SER2312
|
| SER2312
* +-----------------------------------------------------------------+
2-14
Hiperstation for Mainframe Servers User Guide
4. Press Enter. Continue with the following section, “Generate Scripts from a Selected
Repository” or “Generate Scripts from Selected Sessions” on page 2-14 depending on
the option you selected.
Generate Scripts from a Selected Repository
This section describes the screens that appear after you select the Record ALL APPC
sessions option on the “Review Repository - Processing Options Screen” (Figure 2-10).
The APPC - Script Criteria screen appears if:
• No script creation criteria are defined. If you selected the repository dataset name
from the list on the “Review Repository - Dataset List Screen” (Figure 2-9 on page
2-12), the criteria you specify is saved within the associated Global Recording
request.
• You entered the repository dataset name in the Repository dataset field on the
“Review Repository - Dataset List Screen” (Figure 2-9 on page 2-12). The script criteria
you specify are discarded after the scripts are generated.
See “Define Script Creation Criteria” on page 2-6.
Otherwise, the “Script Processing Screen” appears (Figure 2-11).
Figure 2-11. Script Processing Screen
Hiperstation ----------------- Script Processing -----------------------------Command ===>
Select the way you want the script creation process to run. Press ENTER
to create your scripts, or END to return, or enter CANCEL to exit.
Select processing option:
2 1. Submit batch job
2. TSO
(Enter number to select)
Job statement information for batch job:
===> //JOBNAME JOB (ACCOUNT),'NAME'
===> //*
===> //*
===> //*
1. In the Select processing option field, type 1 for background processing or 2 for
foreground processing. The cursor automatically advances to the job statement area
of the screen. If you selected background processing, enter job statement
information.
2. Press Enter.
Depending on your selection, Review Repository either submits the job or initiates
processing. If you selected foreground processing, messages are sent to your TSO
session.
3. Press Enter to clear the messages and return to the Review Repository screen.
Generate Scripts from Selected Sessions
This section describes the screens that appear if, on the “Review Repository - Processing
Options Screen” (Figure 2-10), you elect to review the sessions captured in the repository
and generate scripts from selected sessions.
Review Repository processes the repository dataset to create the list of sessions. It
presents a processing status message that disappears when processing is complete. The
length of time the message appears depends on the size of the repository.
APPC Global Recording and Scripts
Note:
2-15
Interrupt session processing by pressing the ATTN key.
When the processing message disappears, the “Review Repository - Session List Screen”
appears (Figure 2-12).
Figure 2-12. Review Repository - Session List Screen
Hiperstation--------Command ===>
Review Repository - Session List ----------- Row 1 of 5
Scroll ===> PAGE
Select a session and press ENTER to process it, or END to return.
Repository dataset . . : USER2312.APPC.CAP01.WSCRPT
Script creation option: (Enter "/" to select)
Review script create criteria
Line commands are: (R)ecord
S
-
LU Type
------APPC
APPC
APPC
APPC
APPC
Applid/Side-A
------------H01AC054
H06APPC9
H01APPC9
H01APPC9
H06APPC9
Termid/Side-B
------------H01AC055
H01APPC9
H06APPC9
H06APPC9
H01APPC9
Userid
-------JOB
USER2312
USER2312
USER2312
USER2312
Start Date
---------11/16/06
11/16/06
11/16/06
11/16/06
11/16/06
Start Time
---------00:04:00
10:54:12
14:57:26
11:06:19
10:55:40
You can use the UP and DOWN PF keys or the FIND and RFIND commands to locate the
desired sessions. After the cursor is in the list, use the Tab and Back Tab keys to move the
cursor up and down the list.
The Repository dataset field is prefilled with the name of the repository dataset selected
on the previous screen.
1. Enter an R (Record) in the selection column next to each session you want to create a
script for. Record generates a script for each selected session. Sessions selected for
recording are highlighted when scrolling the Session list.
2. Enter a slash in the Review script create criteria field to invoke the script criteria
screens allowing you to review or modify the existing script criteria.
If you entered the repository dataset name in the Repository dataset field on the
“Review Repository - Dataset List Screen” (Figure 2-9 on page 2-12), your script
criteria changes are discarded after the scripts are created. If you selected the
repository dataset from the list, your changes are saved in the associated Global
Recording request.
If necessary, see the online help for a description of the session columns.
3. After you finish selecting sessions, press Enter.
– The APPC script criteria screens appear (see “Define Script Creation Criteria” on
page 2-6) if:
• No script creation criteria are defined within the associated Global Recording
request.
• You entered the repository dataset name in the Repository dataset field on
the “Review Repository - Dataset List Screen” (Figure 2-9 on page 2-12).
• You selected the Review script create criteria field on the Session List
screen.
– Otherwise, Review Repository displays the “Script Processing Screen” (Figure 213). In the Select processing option field:
• Type 1 for background processing or 2 for foreground processing.
• If you selected background processing, enter job statement information.
2-16
Hiperstation for Mainframe Servers User Guide
• Press Enter.
Depending on your selection, Review Repository either submits the job or initiates
processing. If you selected foreground processing, messages are sent to your TSO
session.
4. Press Enter to clear the messages and return to the Review Repository screen.
Figure 2-13. Script Processing Screen
Hiperstation ----------------- Script Processing -----------------------------Command ===>
Select the way you want the script creation process to run. Press ENTER
to create your scripts, or END to return, or enter CANCEL to exit.
Select processing option:
2 1. Submit batch job
2. TSO
(Enter number to select)
Job statement information for batch job:
===> //JOBNAME JOB (ACCOUNT),'NAME'
===> //*
===> //*
===> //*
Defining Global Recording Manager Lists
Within a 3270 or LU0 Global Recording request, you either specify the terminals,
applications, and user IDs to capture or you specify a Global Recording Manager List. A
Global Recording Manager List defines the terminals, applications, and user IDs to record
or exclude from recording.
Use Global Recording Manager Lists to save time and work. For example, if the users you
need to record do not have similar user IDs where you can use wildcards for selection,
you can either create a separate request for each user ID or you can define a Global
Recording Manager List and create a single request that uses that list.
The Hiperstation for VTAM User Guide describes all functions related to 3270 and LU0 Global
Recording requests. Refer to it to learn how to create, copy, or modify a Global Recording
Manger List.
Accessing Global Recording Administration
Global Recording Administration provides:
• Access to all APPC, 3270, or LU0 recording requests on the system.
• Access to all capture repositories created by the requests on the system.
• Authority to edit and delete any Global Recording Manager List.
To access Global Recording Administration, type ADMIN on the Option line of the
Hiperstation for Mainframe Servers Main Menu and press Enter. The word
“Administration” appears after the menu title.
Note:
Access to Global Recording Administration requires the proper authority. If you
receive a security error, contact your Hiperstation installer or security
administrator.
Options 1 through 3 behave the same in administration mode, except the Monitor
Request screen shows all of the requests on the system, the Review Repository option lists
APPC Global Recording and Scripts
2-17
the repositories created by all of the requests on the system, and the Global Recording
Manager allows you to edit and delete lists created by any user on the system.
Using the Global Recording Batch Interface
Hiperstation for Mainframe Servers 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.
The Global Recording batch interface also provides a script creation function. Set up the
recording request to initiate script creation when the request ends or suspend script
creation and schedule it to run at a later time. For example, if you are recording a large
volume of traffic, schedule a job to create scripts in the evening when more system
resources are available.
Use the online and batch interfaces together. For example:
• Create a recording request with the online interface, and then manage it with
scheduled jobs.
• Initiate recording with the batch interface, and then use the Monitor Requests option
to view a list of sessions being capture.
Create a Global Recording Request
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.
Global Recording can initiate script creation at the end of the recording request, or you
can initiate it later with a separate job (see “Create Scripts” on page 2-43) or with the
Review Repository option in the online interface (see “Reviewing Repositories and
Creating Scripts” on page 2-12). For example, capture an entire day’s activity and
generate scripts in the evening when more system resources are available, or use Review
Repository to generate scripts from selected sessions.
To capture activity and potentially generate scripts, 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.
Note:
Global Recording does not support VTAM compressed data streams.
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-18 prior to writing or modifying
parameters.
This section describes adding an APPC Global Recording request. The procedures for
adding a request are the same regardless of the type of request. However, the request
parameters that are the input for the job are specific to the protocol. If you need
parameter information for adding a 3270 or LU0 request, refer to the Hiperstation for VTAM
User Guide.
Create a Global Recording Request with the Batch Interface
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-20.
2-18
Hiperstation for Mainframe Servers User Guide
2. Use SQQFSAMP member DCIJCL (Figure 2-14) to execute the ADD request function.
Figure 2-14. 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 MQSERIES 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.QQF800.SQQFSAMP')
<-REVIEW
//DCI
EXEC PROC=DCIPROC
//FEEDBACK DD *
//SYSTSIN DD *
ISPSTART PGM(QACDCIP) PARM(ADD)
<-REVIEW
/*
//SYSIN
DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFSAMP(DCIADXL6) <-REVIEW
******************************** Bottom of Data ********************************
3. Insert job statement information at the top of the sample.
4. Ensure the UPROCS statement points to the procedures library that contains
DCIPROC.
5. 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-40). 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.
6. On the SYSTSIN DD statement, ensure ADD is specified on the PARM keyword.
7. 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.
8. Schedule or submit the job.
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
APPC Global Recording and Scripts
2-19
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 preceded by a backslash inside the angle brackets. For example:
<Terminal> '*' </Terminal>
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. Specify the format of the value by placing an X or a C before the value, outside of
the quotation marks.
<Request_ID> C'QA_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 terminal parameter
example:
<Terminal>
</Terminal>
'*'
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 APPC Global Recording request parameters are sub-parameters of the
<APPC> protocol parameter. The start and end time and date parameters are subparameters of Scheduled_Capture, which is a sub-parameter of the <APPC> protocol
parameter.
<APPC>
<Request_ID> C’MY_REQ’
</Reqeust_ID>
<Scheduled_Capture>
<Start_Date>
'00/00/0000'
</Start_Date>
<Start_Time>
'00:00:00'
</Start_Time>
</Scheduled_Capture>
</APPC>
2-20
Hiperstation for Mainframe Servers User Guide
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. For syntax rules, see “Global
Recording Request Parameter Syntax” on page 2-18.
Start with one of the following:
• The parameters from an existing request. See “Retrieve the Parameters of an Existing
Request” on page 2-42.
• A parameters skeleton. See “Generate a Request Parameters Skeleton” on page 2-43.
• SQQFSAMP member DCIADXL6: Contains all available APPC Global Recording
request parameters.
• SQQFSAMP member DCIADDL6: Contains a subset of commonly used APPC
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:
1. 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
2. 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 may not 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 on page 2-18.
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.
This section provides an illustration of sample DCIADXL6, showing parameter hierarchy,
(Figure 2-15) and, following the figure, defines all of the available APPC Global
Recording request parameters.
APPC Global Recording and Scripts
Figure 2-15. SQQFSAMP Member DCIADXL6
********************************* Top of Data **********************************
<APPC>
<Request_ID>
X'000000000000'
</Request_ID>
<SideA_LU>
'*'
</SideA_LU>
<SideB_LU>
'*'
</SideB_LU>
<User_ID>
'*'
</User_ID>
<SideA_Netid>
'*'
</SideA_Netid>
<SideB_Netid>
'*'
</SideB_Netid>
<Logmode>
''
</Logmode>
<TPname>
X'00000000'
</TPname>
<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>
<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>
''
''
''
'SYSDA'
''
'TRKS'
'10'
'5'
'9004'
<Recording_Options>
<Suspend_Script_Create> 'NO'
</Suspend_Script_Create>
<Reuse_Capture_File>
'NO'
</Reuse_Capture_File>
<Force_At_End_Time>
'NO'
</Force_At_End_Time>
<!-- Valid 'Event_Notification' values are YES, NONE, or ERROR -->
<Event_Notification>
'YES'
</Event_Notification>
</Recording_Options>
2-21
2-22
Hiperstation for Mainframe Servers User Guide
<Script_Criteria>
<Description>
</Description>
<Recording_Script>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
'Compuware Global Record Batch Interface'
'COMPWARE.SAMPLE.SCRIPTS'
'SCR'
'1'
'NO'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Recording_Script>
<Script_Create_Options>
<!-- Valid 'Detail_Store_Type' values; MERGED, COMBINED, SPLIT -->
<Detail_Store_Type>
'MERGED'
</Detail_Store_Type>
<Record_Conv_Log>
'YES'
</Record_Conv_Log>
<Record_Script>
'YES'
</Record_Script>
<Record_Detail>
'YES'
</Record_Detail>
<Suppress_Time_Stamps> 'NO'
</Suppress_Time_Stamps>
<Tags_Short_CPIC>
'NO'
</Tags_Short_CPIC>
<PIU_As_Comments>
'NO'
</PIU_As_Comments>
<Inc_SNA_SVC_Trans>
'NO'
</Inc_SNA_SVC_Trans>
</Script_Create_Options>
<Conversation_Log>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
<Allocation>
<Management_Class>
</Management_Class>
<Storage_Class>
</Storage_Class>
'COMPWARE.SAMPLE.CNVLOG'
'LOG'
'1'
'NO'
''
''
APPC Global Recording and Scripts
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Conversation_Log>
<Combined_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.COMBINED'
'CDT'
'1'
'NO'
'DETAILCB'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Combined_Detail>
<Inbound_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.INBOUND'
'IDT'
'1'
'YES'
'DETAILIB'
2-23
2-24
Hiperstation for Mainframe Servers User Guide
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Inbound_Detail>
<Outbound_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.OUTBOUND'
'ODT'
'1'
'DETAILOB'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Outbound_Detail>
</Script_Criteria>
</APPC>
Protocol Parameter Tag
APPC
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 APPC tags.
APPC Global Recording and Scripts
2-25
General Request Parameter Tags
Request ID
Specifies the ID of the Global Recording request. To assign a request ID, supply a sixbyte hexadecimal or character value in single quotes. Place a format indicator in
front of the value outside of the quotation marks. X specifies hexadecimal values and
C specifies character values. For example:
– <Request_ID> X'010203040506' </Request_ID>
– <Request_ID> C'QAREQ1'</Request_ID>
The batch interface pads hexadecimal values that are fewer than six bytes with zeros
and character values that are fewer 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.
SideA_LU and SideB_LU
The VTAM logical unit (LU) names of the partners that make up the APPC
conversations that you need to record. Both fields require one of the following:
– A specific LU name.
– An asterisk (*) to select all LUs. Leaving this field blank also selects all LUs.
– An LU prefix followed by an asterisk to select a group of LUs. For example, VAP1*
selects all LUs beginning with VAP1.
If you supply a SideA_LU but no SideB_LU, or the reverse, all conversations involving
the specified LU are recorded. This field holds eight characters.
User_ID
The user sign on ID associated with the conversation you need to record. Enter one
of the following:
– A specific user ID.
– An asterisk (*) to select all users. Leaving this field blank also selects all LUs.
– A user ID prefix followed by an asterisk to select a group of users. For example,
USR* selects all user IDs beginning with USR.
This field holds eight characters.
SideA_Netid and SideB_Netid
The VTAM Network ID for the Side A LU and Side B LU partners. Use these tags to
restrict capture to only the APPC conversations on specific VTAM networks. Both
tags require one of the following:
– A specific network ID.
– An asterisk (*) to select all networks. Leaving this field blank also selects all
networks.
– A network ID prefix followed by an asterisk to select a group of networks. For
example, US* selects all networks beginning with US.
This field holds eight characters.
Logmode
The VTAM logon mode name used by the conversations you need to record. To
specify a range of similar logmodes, use the asterisk (*) wildcard. For example, SNAS*
selects all logmode names beginning with SNAS. Omit this tag if you do not want to
restrict recording to a specific logmode.
2-26
Hiperstation for Mainframe Servers User Guide
TPname
The transaction program name associated with the conversations you need to record.
Enclose TP Names in single quotation marks. If the TP name contains non-printable
characters, supply it in hexadecimal notation, enclosed in single quotation marks,
and prefixed with the letter X (for example, X'0EC1D7C9D5C70F’). This tag accepts
up to 64 characters. Omit this tag if you do not want to restrict recording to a specific
TP name.
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 for 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 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 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).
If you set the Force_At_End_Time recording option to 'Y', an end time and date
are required.
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.
If you set the Force_At_End_Time recording option to 'YES', an end time and
date are required.
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.
APPC Global Recording and Scripts
2-27
Dataset
The name of the dataset to use for storing captured information. This required
parameter accepts 44 characters.
To create a segmented capture file, use either of the following wildcard characters
in the dataset name. Define a range for the wildcard characters with the
First_Number and Last_Number tags:
• Asterisk (*): Inserts an incremental value into the dataset name qualifier the
asterisk appears in. This wildcard pads the incremental value with enough
zeros to ensure an eight character qualifier. For example, USER.APPC.REC*
with first=1 and last=3 creates capture datasets:
USER.APPC.REC00001
USER.APPC.REC00002
USER.APPC.REC00003
• Question mark (?): Inserts the incremental value into the qualifier where the
question marks appear. Enter at least one question mark for each digit of the
value supplied on the Last_Number tag. For example, USER.APPC.REC??
with first=9 and last=11 creates capture datasets:
USER.APPC.REC09
USER.APPC.REC10
USER.APPC.REC11
Note: Begin each segment of the dataset name with an alpha character (A-Z) or
@#$, including segments with wildcard characters.
First_Number and Last Number
Defines the first value and last value to use for wildcard characters specified on
the Dataset tag. For each tag, supply a value up to seven digits. If you did not use
a wildcard, do not include these tags.
Initial Disposition
Specifies 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, the batch interface 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.
2-28
Hiperstation for Mainframe Servers User Guide
Volume_Serial
The serial number of the volume where the dataset is to be stored.
Device_Type
The type of device that the dataset is to be stored on. Device_Type 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 include: 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. After 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 parameters are Recording_Options sub-parameters. Supply the
applicable parameters between the opening and closing Recording_Options tags.
Suspend_Script_Create
Suspends script creation. Supply this tag with a value of:
• 'YES' to create scripts later.
• 'NO' to automatically initiate script creation when the recording request
ends. Be sure to supply script creation criteria.
If you omit this tag, the batch interface suspends script creation.
Reuse_Capture_File
This parameter applies only to segmented capture files. 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.
Force_At_End_Time
Issues a FORCE command at the end time specified in the request. FORCE
terminates recording of all sessions including active sessions. Script creation
begins immediately, unless you elected to suspend script creation. Be aware that
you may lose buffered data, resulting in partially recorded sessions.
To enable this option, supply this tag with a value of 'YES'. Be sure to supply
End_Time and End_Date values enclosed in Scheduled_Capture tags.
APPC Global Recording and Scripts
2-29
If you omit this tag or supply it with a value of 'NO', Global Recording issues a
STOP command at the request’s specified end time. It stops recording new
sessions, but continues to record all in-flight sessions. When all active sessions
end, recording is terminated and script creation begins unless you elected to
suspend script creation. This option ensures complete session captures. However,
it may delay script creation.
Event_Notification
Defines the type of messages sent to your TSO session. Supply a value of:
• 'ERROR' to receive error messages only.
• 'YES' to receive status and error messages.
• 'NONE' to disable event notification.
If you are recording a large number of sessions, consider disabling this option or
selecting error notification to reduce the number of messages you receive. If you
omit this tag, Global Recording sends all recording and script creation messages.
Note:
To see the messages that the batch interface produces, such as parameter
verification messages or the return code for the request creation job,
review the PRGLOG DD in the JES job log. See “Troubleshoot Failed Jobs”
on page 2-50.
General Script Criteria Tags
If you supply the Suspend_Script_Create tag with a value of 'NO', script creation criteria
are required.
Script_Criteria
Defines script creation parameters. The rest of the parameters described in the
section are all sub-parameters of this tag. Supply the applicable parameters between
opening and closing Script_Criteria tags.
Description
A string of up to 55 characters that appears in the header section of the script.
This tag is optional.
Recording Script Tags
Recording_Script
The batch interface writes each script to a separate member of a PDS or PDSE. This
block of tags defines the attributes of the PDS(E).
The following parameters are Recording_Script sub-parameters. Supply the applicable
parameters between the opening and closing Recording_Script tags.
Dataset
The PDS(E) to contain the scripts. This is a required parameter. It accepts up to 44
characters.
Member_Prefix
One to six character prefix that, in conjunction with the member suffix, forms
the member name for each script created. This is a required parameter.
Member_Suffix
A numeric value that, in conjunction with the member prefix, forms the member
name for each script created. The batch interface increments this value each time
it creates a new script. Supply a suffix that in combination with the prefix equals
eight characters.
2-30
Hiperstation for Mainframe Servers User Guide
• If you supply a suffix that is too short, the batch interface pads the suffix
with zeros to the left. For example, if the prefix is OES and the suffix is 10,
the first script member name is OES00010, and the next member is
OES00011.
• If you supply a suffix that is too long, the batch interface truncates the digits
on the left. For example, if you enter SCRIPT for the prefix and 1234 for the
suffix, the first script member is SCRIPT34, and the next member is
SCRIPT35.
This is a required parameter. It accepts up to seven digits.
Replace_Members
Overwrites existing members that have the same names as the Dataset,
Member_Prefix, and Member_Suffix tags.
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', the batch interface does not overwrite existing
members.
Allocation
Allocation parameters for the recording script 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 where the dataset is to be stored.
Device_Type
The type of device that the dataset is to be stored on. It 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. After 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.
Directory_Blocks
APPC Global Recording and Scripts
2-31
The number of blocks to use for a PDS directory. If the dataset is a PDSE, the
batch interface ignores this value.
Block_Size
The maximum length, in bytes, of the blocks of data that the system reads in
as it processes a dataset.
Record_Length
The maximum length, in bytes, provided for each record in the dataset.
Script datasets must be minimally 105 bytes. The record length must be at
least four less than the block size.
Dataset_Name_Type
The type of dataset to contain the scripts. Supply this tag with a value of
'PDS' or 'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates
the script file as a PDS.
Script Creation Option Tags
Script_Create_Options
Defines the format and content of the scripts.
The following are Script_Create_Options sub-parameters. Supply the applicable
parameters between the opening and closing Script_Create_Options tags.
Detail_Store_Type
Defines where to store the detail data associated with the captured APPC verbs.
Storing details in separate files may ease browsing, editing, and managing scripts
and detail data. Supply this tag with a value of:
• 'MERGED', to merge the detail with the APPC verbs. This option createS one
PDSE member for each script.
• 'COMBINED' to separate the details from the scripts. This option creates two
PDSE members for each script: one containing all of the detail data, and one
containing the APPC verbs with links to the associated detail. If you specify
this option, supply the Record_Detail tag with a value of 'YES' and the
Combined_Detail block of tags. See “Combined Detail Tags” on page 2-34.
• 'SPLIT' to separate the inbound and outbound details from each other and
from the script. This option creates three PDSE members for each script: one
containing the APPC verbs with links to the associated detail, one containing
the outbound details, and one containing the inbound details. If you specify
this option, supply the Record_Detail tag with a value of 'YES' and the
Inbound_Detail and Outbound_Detail blocks of tags. See “Inbound Detail
Tags” on page 2-36 and “Outbound Detail Tags” on page 2-38.
This is a required tag.
Record_Conv_Log
Generates a conversation log, which is a report of each captured APPC
conversation. Conversation logs contain the bulk of the input required for
Unattended Playback jobs. You can save time when preparing the playback job
by starting with the log. See Chapter 4, “Unattended Playback of APPC Scripts”
to learn about the playback statements you may need to add or modify.
If you need a conversation log, supply this tag with a value of 'YES' and include
the Conversation_Log block of tags. See “Conversation Log Tags” on page 2-32.
Otherwise, supply a value of 'NO' or omit the tag altogether.
Record_Script
Generates one script for each captured conversation.
2-32
Hiperstation for Mainframe Servers User Guide
To create scripts, supply this tag with a value of 'YES'. Otherwise, supply a value
of 'NO' or omit the tag altogether.
Record_Detail
Generates the inbound and outbound data associated with the captured APPC
verbs.
To generate details, supply this tag with a value of 'YES' and include the
appropriate detail dataset block of tags.
• If you specified 'COMBINED' on the Detail_Store_Type tag, include the
Combined_Detail block of tags (see page 2-34).
• If you specified 'SPLIT' on the Detail_Store_Type tag, include the
Inbound_Detail (see page 2-36) and Outbound_Detail (see page 2-38) blocks
of tags.
Otherwise, supply a value of 'NO' or omit the tag altogether.
Suppress_Time_Stamps
Omits time stamps from the scripts. If you are reviewing the scripts for
debugging purposes, supply this tag with a value of 'YES' to make the scripts
easier to read. If you need to play back the script, do not enable this option.
Hiperstation for Mainframe Servers uses the time stamps to synchronize play
back.
Tags_Short_CPIC
Writes the APPC verbs in Common Programming Interface for Communications
(CPIC) format, rather than Hiperstation proprietary format. For example, a send
verb appears in the script as CMSEND rather than SEND_DATA. This option
supports readability and has no impact on playback. To enable this option,
supply this tag with a value of 'YES'.
PIU_As_Comments
Writes VTAM Path Information Units (PIUs) into the script — that is, the 26-byte
Transmission Headers (TH), the 3-byte Request Headers (RH), and the variable
length Request Units (RU) that are sent between VTAM logical units. In the
scripts, this information appears in CONTENT tags under a PIU tag. Although the
information does not appear with the traditional comment indicator (* in
column one), playback ignores the PIU block of tags. This option supports
debugging VTAM applications. To enable this option, supply this tag with a value
of 'YES'.
Inc_SNA_SVC_Trans
Writes special APPC conversations used by subsystems such as VTAM and CICS
into the scripts. For example, the Change Number of Session (CNOS) and
Exchange Log Name (XLN) transactions appear in the script if you select this
option. These conversations use the following logmodes: SNASVCMG,
CPSVCMG, or CPSVRMGR. This option support application debugging and does
not impact playback. To enable this option, supply this tag with a value of 'YES'.
Conversation Log Tags
The batch interface writes the conversation log into a member of a PDS or PDSE. This
block of tags defines the attributes of the PDS(E). It is required if you supplied a value a
value of 'YES' on the Record_Conv_Log tag.
The following parameters are Conversation_Log sub-parameters. Supply the applicable
parameters between the opening and closing Conversation_Log tags.
Dataset
The PDS(E) to contain the conversation log. This is a required parameter. It accepts
up to 44 characters.
APPC Global Recording and Scripts
2-33
Member_Prefix
One to six character prefix that, in conjunction with the member suffix, forms the
member name for the conversation log. This is a required parameter.
Member_Suffix
A numeric value that, in conjunction with the member prefix, forms the member
name for the conversation log. The batch interface increments this value each time it
creates a new member. For example, if you save all of your conversation logs to the
same dataset, it increments this value to create a unique member name each time
you generate a new log, unless you elect to Replace_Members, discussed next. Supply
a suffix that in combination with the prefix equals eight characters.
– If you supply a suffix that is too short, the batch interface pads the suffix with
zeros to the left. For example, if the prefix is OES and the suffix is 10, the first
script member name is OES00010, and the next member is OES00011.
– If you supply a suffix that is too long, the batch interface truncates the digits on
the left. For example, if you enter CONLOG for the prefix and 1234 for the
suffix, the first script member is CONLOG34, and the next member is
CONLOG35.
This is a required parameter. It accepts up to seven digits.
Replace_Members
Overwrites existing members that have the same names as those specified with the
Dataset, Member_Prefix, and Member_Suffix tags.
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', the batch interface does not overwrite existing
members.
Allocation
Allocation parameters for the conversation log 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 where the dataset is to be stored.
Device_Type
The type of device that the dataset is to be stored on. 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
2-34
Hiperstation for Mainframe Servers User Guide
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. After 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.
Directory_Blocks
The number of blocks to use for a PDS directory. If the dataset is a PDSE, the
batch interface ignores this value.
Block_Size
The maximum length, in bytes, of the blocks of data that the system reads in as it
processes a dataset.
Record_Length
The maximum length, in bytes, provided for each record in the dataset.
Conversation log datasets must be minimally 105 bytes. The record length must
be at least four less than the block size.
Dataset_Name_Type
The type of dataset to contain the scripts. Supply this tag with a value of 'PDS' or
'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates the script file
as a PDS.
Combined Detail Tags
If you elected to store the detail and the script separately, the batch interface writes each
script’s detail to a separate member of a PDS or PDSE. This block of tags defines the
attributes of the PDS(E). It is required if you supplied a value of 'COMBINED' on the
Detail_Store_Type tag and a value of 'YES' on the Record_Detail tag.
The following parameters are Combined_Detail sub-parameters. Supply the applicable
parameters between the opening and closing Combined_Detail tags.
Dataset
The PDS(E) to contain the detail data. This is a required parameter. It accepts up to 44
characters.
Member_Prefix
One to six character prefix that, in conjunction with the member suffix, forms the
member name for the detail data associated with each script created. This is a
required parameter.
Member_Suffix
A numeric value that, in conjunction with the member prefix, forms the member
name for each detail dataset created. The batch interface increments this value each
time it creates a new detail data member. Supply a suffix that in combination with
the prefix equals eight characters.
– If you supply a suffix that is too short, the batch interface pads the suffix with
zeros to the left. For example, if the prefix is OES and the suffix is 10, the first
script member name is OES00010, and the next member is OES00011.
– If you supply a suffix that is too long, the batch interface truncates the digits on
the left. For example, if you enter DETAIL for the prefix and 1234 for the suffix,
the first script member is DETAIL34, and the next member is DETAIL35.
APPC Global Recording and Scripts
2-35
This is a required parameter. It accepts up to seven digits.
Replace_Members
Overwrites existing members that have the same names as those specified with the
Dataset, Member_Prefix, and Member_Suffix tags.
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', the batch interface does not overwrite existing
members.
DDName
Data definition name that links the APPC verbs with the associated detail data when
the script and details are stored separately. Hiperstation for Mainframe Servers uses
this name to locate the appropriate detail data during playback. This is a required
tag. Supply a one to eight character DD name.
Allocation
Allocation parameters for the detail 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 where the dataset is to be stored.
Device_Type
The type of device that the dataset is to be stored on. 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. After 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.
Directory_Blocks
The number of blocks to use for a PDS directory. If the dataset is a PDSE, the
batch interface ignores this value.
Block_Size
2-36
Hiperstation for Mainframe Servers User Guide
The maximum length, in bytes, of the blocks of data that the system reads in as it
processes a dataset.
Record_Length
The maximum length, in bytes, provided for each record in the dataset. Detail
datasets must be minimally 105 bytes. The record length must be at least four
less than the block size.
Dataset_Name_Type
The type of dataset to contain the scripts. Supply this tag with a value of 'PDS' or
'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates the script file
as a PDS.
Inbound Detail Tags
If you elected to store inbound and outbound detail separately, the batch interface writes
each script’s inbound detail to a separate member of a PDS or PDSE. This block of tags
defines the attributes of the PDS(E). It is required if you supplied a value of 'SPLIT' on the
Detail_Store_Type tag and a value of 'YES' on the Record_Detail tag.
The following parameters are Inbound_Detail sub-parameters. Supply the applicable
parameters between the opening and closing Inbound_Detail tags.
Dataset
The PDS(E) to contain the inbound detail data. This is a required parameter. It
accepts up to 44 characters.
Member_Prefix
One to six character prefix that, in conjunction with the member suffix, forms the
member name for the inbound detail data associated with each script created. This is
a required parameter.
Member_Suffix
A numeric value that, in conjunction with the member prefix, forms the member
name for each inbound detail dataset created. The batch interface increments this
value each time it creates a new detail data member. Supply a suffix that in
combination with the prefix equals eight characters.
– If you supply a suffix that is too short, the batch interface pads the suffix with
zeros to the left. For example, if the prefix is OES and the suffix is 10, the first
script member name is OES00010, and the next member is OES00011.
– If you supply a suffix that is too long, the batch interface truncates the digits on
the left. For example, if you enter INBDET for the prefix and 1234 for the suffix,
the first script member is INBDET34, and the next member is INBDET35.
This is a required parameter. It accepts up to seven digits.
Replace_Members
Overwrites existing members that have the same names as those specified with the
Dataset, Member_Prefix, and Member_Suffix tags. This setting applies to both
inbound and outbound detail data members.
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', the batch interface does not overwrite existing
members.
DDName
Data definition name that links the APPC verbs with the associated detail data when
the script and details are stored separately. Hiperstation for Mainframe Servers uses
this name to locate the appropriate detail data during playback. This is a required
tag. Supply a one to eight character DD name.
APPC Global Recording and Scripts
2-37
Allocation
Allocation parameters for the inbound detail 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 where the dataset is to be stored.
Device_Type
The type of device that the dataset is to be stored on. 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. After 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.
Directory_Blocks
The number of blocks to use for a PDS directory. If the dataset is a PDSE, the
batch interface ignores this value.
Block_Size
The maximum length, in bytes, of the blocks of data that the system reads in as it
processes a dataset.
Record_Length
The maximum length, in bytes, provided for each record in the dataset. Detail
datasets must be minimally 105 bytes. The record length must be at least four
less than the block size.
Dataset_Name_Type
The type of dataset to contain the scripts. Supply this tag with a value of 'PDS' or
'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates the script file
as a PDS.
2-38
Hiperstation for Mainframe Servers User Guide
Outbound Detail Tags
If you elected to store inbound and outbound detail separately, the batch interface writes
each script’s inbound detail to a separate member of a PDS or PDSE. This block of tags
defines the attributes of the PDS(E). It is required if you supplied a value of 'SPLIT' on the
Detail_Store_Type tag and a value of 'YES' on the Record_Detail tag.
The following parameters are Outbound_Detail sub-parameters. Supply the applicable
parameters between the opening and closing Outbound_Detail tags.
Dataset
The PDS(E) to contain the outbound detail data. This is a required parameter. It
accepts up to 44 characters.
Member_Prefix
One to six character prefix that, in conjunction with the member suffix, forms the
member name for the outbound detail data associated with each script created. This
is a required parameter.
Member_Suffix
A numeric value that, in conjunction with the member prefix, forms the member
name for each outbound detail dataset created. The batch interface increments this
value each time it creates a new detail data member. Supply a suffix that in
combination with the prefix equals eight characters.
– If you supply a suffix that is too short, the batch interface pads the suffix with
zeros to the left. For example, if the prefix is OES and the suffix is 10, the first
script member name is OES00010, and the next member is OES00011.
– If you supply a suffix that is too long, the batch interface truncates the digits on
the left. For example, if you enter INBDET for the prefix and 1234 for the suffix,
the first script member is INBDET34, and the next member is INBDET35.
This is a required parameter. It accepts up to seven digits.
DDName
Data definition name that links the APPC verbs with the associated detail data when
the script and details are stored separately. Hiperstation for Mainframe Servers uses
this name to locate the appropriate detail data during playback. This is a required
tag. Supply a one to eight character DD name.
Allocation
Allocation parameters for the outbound detail 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 where the dataset is to be stored.
Device_Type
APPC Global Recording and Scripts
2-39
The type of device that the dataset is to be stored on. 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. After 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.
Directory_Blocks
The number of blocks to use for a PDS directory. If the dataset is a PDSE, the
batch interface ignores this value.
Block_Size
The maximum length, in bytes, of the blocks of data that the system reads in as it
processes a dataset.
Record_Length
The maximum length, in bytes, provided for each record in the dataset. Detail
datasets must be minimally 105 bytes. The record length must be at least four
less than the block size.
Dataset_Name_Type
The type of dataset to contain the scripts. Supply this tag with a value of 'PDS' or
'LIBRARY' (PDSE). If you omit this tag, the batch interface allocates the script file
as a PDS.
Check the Status of Existing Requests
Use the KEYS function to:
• Check the status of a specific Global Recording request.
• Generate status information for all of your existing Global Recording requests. 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 — APPC for
APPC requests and LU2 for 3270 or LU0 requests.
• 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-14 on page 2-18) to execute the KEYS function.
2-40
Hiperstation for Mainframe Servers User Guide
1. Insert job statement information at the top of the sample.
2. Make sure that 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
keys 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 *
<APPC>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>‘USR2503.APPC.QA.REC??’
</Dataset>
</Capture_File>
</APPC>
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 APPC requests that you
created, the KEYS function requires the protocol parameter. For example:
// SYSIN DD *
<APPC>
</APPC>
6. Submit the job.
Manage Existing Requests
Use the batch interface request management functions to:
• 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-39.
Use SQQFSAMP member DCIJCL (Figure 2-14 on page 2-18) to execute request
management functions.
APPC Global Recording and Scripts
Note:
2-41
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 first. 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.
If a request contains script criteria and the suspend script creation
option is not selected, script creation begins immediately.
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.
Closes the capture file segment that is currently being written and
opens the next segment. This option is only available 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 *
<APPC>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>‘USR2503.APPC.QA.REC??’
</Dataset>
</Capture_File>
</APPC>
5. Submit the job.
Note:
The batch interface does not supply an update function. Use a combination of
other functions to modify a request.
2-42
Hiperstation for Mainframe Servers User Guide
1. Use the VIEW function to retrieve the parameters from the request. See
“Retrieve the Parameters of an Existing Request” on page 2-42.
2. Modify the parameters. See “Global Recording Request Parameters” on page
2-20 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 the Parameters of 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 when 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-14 on page 2-18) 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. 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 *
<APPC>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>‘USR2503.APPC.QA.REC??’
</Dataset>
</Capture_File>
</APPC>
6. Submit the job.
APPC Global Recording and Scripts
2-43
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 when creating a new request.
• See all of the available parameters.
• Reference the syntax of a particular tag.
Use SQQFSAMP member DCIJCL (Figure 2-14 on page 2-18) 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 3270 or LU0 requests:
// SYSIN DD *
<LU2>
</LU2>
For APPC requests:
// SYSIN DD *
<APPC>
</APPC>
Create Scripts
To maximize flexibility, the batch interface provides a script create function allowing you
to:
• Generate scripts at any time. For example, if you are unsure of script creation criteria
when you create the recording request, suspend script creation and run it later.
• Schedule script creation to run when maximum system resources are available. For
example, if you are recording large volumes of traffic, schedule a script creation job
to run in the evening.
• Create scripts with parameters other than the parameters specified in the recording
request. For example, the script criteria in the recording request are set up to generate
stress testing scripts. However, you also need to generate unit testing scripts. Run an
independent script create with the appropriate criteria.
• Create scripts before recording ends, if the capture file is segmented. For example, to
create a script for a recently recorded session, SWITCH repository segments and run a
script creation job against the closed segment.
To create scripts with the batch interface:
1. Define the script creation parameters. See “Script Creation Parameters” on page 2-44.
2-44
Hiperstation for Mainframe Servers User Guide
2. Use SQQFSAMP member SCJCL (Figure 2-16) to execute the SCRIPTS function.
3. Insert job statement information at the top of the sample. Make sure the UPROCS
statement points to the procedures library that contains DCIPROC.
4. On the SYSTSIN DD statement, make sure SCRIPTS is specified on the PARM keyword.
5. On the SYSIN DD statement, either supply the name of the dataset containing the
script creation parameters or enter the parameters in-stream.
Notes:
a. 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.
b. If you plan to submit the job with a REXX queue command, place the parameters
in an external file and remove all blank lines. Otherwise, parameter values are
converted to uppercase and you may receive error messages.
Figure 2-16. SQQFSAMP Member SCJCL — Sample JCL to Create Scripts
********************************* Top of Data **********************************
//* INSERT JOB CARD HERE...............................................
/*JOBPARM SYSAFF=sysn
//*********************************************************************
//* JCL TO CREATE 3270 OR APPC SCRIPTS INDEPENDENT FROM THE USER
*
//* INTERFACE.
*
//*
*
//* UPROCS:
DATASET THAT CONTAINS THE DCIPROC.
*
//*
*
//*
*
//* SYSTSIN: TSO BACKGROUND INPUT STREAM.
*
//*
ISPSTART PGM(QACDCIP) - EXECUTE THE DCI PROGRAM
*
//*
PARM(command) - IS THE COMMAND PASSED TO THE DCI
*
//*
*
//* SYSIN:
XML INPUT.
*
//*
*
//*********************************************************************
//UPROCS JCLLIB ORDER=('COMPWARE.QQF800.SQQFSAMP')
<-REVIEW
//DCI
EXEC PROC=DCIPROC
//SYSTSIN DD *
ISPSTART PGM(QACDCIP) PARM(SCRIPTS)
/*
//SYSIN
DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFSAMP(SCAPPC)
<-REVIEW
******************************** Bottom of Data ********************************
6. Schedule or submit the job.
Script Creation Parameters
Like Global Recording request parameters, Script Creation parameters are defined in
XML. For syntax rules, see “Global Recording Request Parameter Syntax” on page 2-18.
A script creation job requires a protocol parameter, capture file specification parameters,
and script criteria parameters. Recording requests contain all of these parameters. You
can use the parameters from an existing recording request as the input for a script
creation job. For example, if script criteria was specified in the recording request, but
script creation was suspended, use the VIEW function to retrieve the parameters (page
2-42). Then use the output from the VIEW as the input for the script creation job. The
script create function ignores irrelevant parameters.
If you intend to modify the script criteria or the request does not contain script criteria,
start with sample SCAPPC located in SQQFSAMP.
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.
APPC Global Recording and Scripts
2-45
Notes:
1. 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.
2. 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 may not 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 on page 2-18.
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.
This section provides an illustration of sample SCAPPC (Figure 2-17) and defines all of
the script creation parameters available.
Parameter hierarchy is shown in Figure 2-17 and defined within the parameter
definitions.
2-46
Hiperstation for Mainframe Servers User Guide
Figure 2-17. SQQFSAMP Member SCAPPC — Sample Script Creation Parameters
<APPC>
<Capture_File>
<Dataset>
</Dataset>
<First_Number>
</First_Number>
<Last_Number>
</Last_Number>
</Capture_File>
'COMPWARE.SAMPLE.CAPTURE.FILE*'
'1'
'20'
<Recording_Options>
<!-- Valid 'Event_Notification' values are YES, NONE, or ERROR -->
<Event_Notification>
'NONE'
</Event_Notification>
</Recording_Options>
<Script_Criteria>
<Description>
</Description>
<Recording_Script>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
'Compuware Independent Script Create'
'COMPWARE.SAMPLE.SCRIPTS'
'SCR'
'1'
'NO'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Recording_Script>
<Script_Create_Options>
<!-- Valid 'Detail_Store_Type' values; MERGED, COMBINED, SPLIT -->
<Detail_Store_Type>
'SPLIT'
</Detail_Store_Type>
<Record_Conv_Log>
'YES'
</Record_Conv_Log>
<Record_Script>
'YES'
</Record_Script>
<Record_Detail>
'YES'
</Record_Detail>
<Suppress_Time_Stamps> 'NO'
</Suppress_Time_Stamps>
<Tags_Short_CPIC>
'NO'
</Tags_Short_CPIC>
<PIU_As_Comments>
'NO'
</PIU_As_Comments>
<Inc_SNA_SVC_Trans>
'NO'
</Inc_SNA_SVC_Trans>
</Script_Create_Options>
APPC Global Recording and Scripts
<Conversation_Log>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
'COMPWARE.SAMPLE.CNVLOG'
'LOG'
'1'
'NO'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Conversation_Log>
<Combined_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.COMBINED'
'CDT'
'1'
'NO'
'DETAILCB'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Combined_Detail>
2-47
2-48
Hiperstation for Mainframe Servers User Guide
<Inbound_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<Replace_Members>
</Replace_Members>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.INBOUND'
'IDT'
'1'
'YES'
'DETAILIB'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Inbound_Detail>
<Outbound_Detail>
<Dataset>
</Dataset>
<Member_Prefix>
</Member_Prefix>
<Member_Suffix>
</Member_Suffix>
<DDName>
</DDName>
'COMPWARE.SAMPLE.DETAIL.OUTBOUND'
'ODT'
'1'
'DETAILOB'
<Allocation>
<Management_Class>
''
</Management_Class>
<Storage_Class>
''
</Storage_Class>
<Volume_Serial>
''
</Volume_Serial>
<Device_Type>
'SYSDA'
</Device_Type>
<Data_Class>
''
</Data_Class>
<Space_Units>
'TRKS'
</Space_Units>
<Primary_Quantity>
'10'
</Primary_Quantity>
<Secondary_Quantity> '5'
</Secondary_Quantity>
<Directory_Blocks>
'25'
</Directory_Blocks>
<Block_Size>
'9004'
</Block_Size>
<Record_Length>
'256'
</Record_Length>
<!-- Valid 'Dataset_Name_Type' values are PDS or LIBRARY -->
<Dataset_Name_Type>
'PDS'
</Dataset_Name_Type>
</Allocation>
</Outbound_Detail>
</Script_Criteria>
</APPC>
APPC Global Recording and Scripts
2-49
Protocol Parameter Tag
APPC
Identifies the type of scripts to create. This is a parent tag to all other parameters
described in this section. Begin and end the XML input stream with an opening and
closing APPC tag.
Capture File Specification Tags
Capture_File
Specifies the dataset containing the captured information.
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 that contains the captured information. This is a
required parameter.
If the capture file is segmented, supply a First_Number and Last_Number tag.
First_Number
The first value to use for resolving the wildcard characters specified on the
Dataset tag. If the dataset name does not contain a wildcard character, this tag is
unnecessary.
Last_Number
The last value to use for resolving wildcard characters specified on the Dataset
tag. If the dataset name does not contain a wildcard character, this tag is
unnecessary.
Event Notification Tags
Recording_Options
Provides the Event_Notification setting. This function uses the same event
notification feature as the recording request ADD function. This is why the
Event_Notification tag is nested within opening and closing Recording _Options
tags. If you omit this block of tags, the batch interface sends all script creation
messages to your TSO session.
Event_Notification
Defines the type of script creation messages sent to your TSO session. Supply a
value of:
• 'ERROR' to receive error messages only.
• 'YES' to receive script creation status and error messages.
• 'NONE' to disable event notification.
If you are generating a large number of scripts, consider disabling this option or
selecting error notification to reduce the number of messages you receive.
Regardless of this setting, the batch interface sends a copy of all script creation
messages to the JESMSGLG DD in the JES Job Log. The SYSPRINT DD summarizes
script creation job messages. Access the job log at your convenience.
Note:
To see the messages that the batch interface produces, such as parameter
verification messages or the return code for the script creation job,
review the PRGLOG DD in the JES job log. See “Troubleshoot Failed Jobs”
on page 2-50.
2-50
Hiperstation for Mainframe Servers User Guide
Script Criteria Tags
Defines script creation parameters. These are the same parameters as the script
criteria parameters described in “Global Recording Request Parameters”. See “General
Script Criteria Tags” on page 2-29 through “Outbound Detail Tags” on page 2-38.
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. If your installer accepted the default, PRGLOG resides in the
JES job log.
The rest of this section provides information to help you troubleshoot recording request
errors and script create errors.
Recording Request Errors
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 status and error messages pertaining to request creation or
modification, while the started task reports status and error messages pertaining to
recording.
The batch interface reports its status and error messages to the PRGLOG in the JES job
log.
The started task writes recording error and status message in the JES job log and SYSTEM
log. However, the logs contain messages from all recording requests. To see the message
pertaining to your requests, set the recording request Event_Notification parameter,
discussed on page 2-29, to 'YES' or 'ERROR'. Global Recording sends the applicable
messages to your TSO session.
Script Create Errors
The Global Recording batch interface initiates the script create function. If it cannot
initiate script creation, it writes errors to the PRGLOG. For example, if a required
parameter is missing or the syntax of a parameter is incorrect. Otherwise, it writes a
single message to the PRGLOG indicating that script create completed with or without
errors. If the message indicates that it completed with errors, review:
• JESMSGLG in the JES job log to see script creation status and error messages.
• SYSPRINT in the JES job log to see a script creation summary.
Generating 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.
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:
APPC Global Recording and Scripts
2-51
1. Locate sample member MCSREPT (Figure 2-18) 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 2-18.
Figure 2-18. 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
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,
2-52
Hiperstation for Mainframe Servers User Guide
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
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 2-19. Capture Summary Report
HIPERSTATION - CAPTURE SEGMENT SUMMARY
USER25.TEST1.REPOS01
USER25.TEST1.REPOS02
USER25.TEST1.REPOS03
Note:
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
The reported timestamps reflect when the first and last records were written to
each repository dataset. Records are written to a repository dataset when Global
Recording flushes and processes the captured information from the ECSA buffers.
Depending on the size of the buffers and the volume of traffic on your system,
there may be a minor difference between the timestamps shown in the report
and the actual transaction times shown in the scripts. If there is a significant
difference, contact your Global Recording administrator or your installer. The
Hiperstation Installation Guide provides instructions for tuning your buffer to
optimize Global Recording performance.
In addition, a recorded session may span multiple segments. If the activity you
need to script is near the beginning or end of a given repository segment, script
the neighboring segment as well.
Merging APPC Capture Repositories
Hiperstation for Mainframe Servers 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, you can 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-20) with a standard editing tool such as ISPF Edit.
APPC Global Recording and Scripts
2-53
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, place 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-20.
7. Submit or schedule the job. To submit the job immediately, type SUB on the
Command line and press Enter.
Figure 2-20. 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.QQF800.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: USR2503.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 ********************************
2-54
Hiperstation for Mainframe Servers User Guide
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 dataset name that does not already exist. To segment the new
repository, specify the dataset name with the appropriate wildcard characters and
supply a FIRST and LAST parameter (discussed next). For information regarding
repository name wildcard characters, see “In the Repository Dataset field, enter the
name of the dataset to use for storing captured information. To create a segmented
repository, use the following wildcard characters in the dataset name field and define
a range with the First and last number fields:” on page 2-4.
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.
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 that the dataset is to be stored on. 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. After 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 as defined by the storage
administrator at your site. This optional parameter has no default value.
REP_DATACLAS
The data class to apply to the output dataset as defined by the storage administrator
at your site. Your storage administrator provides default values for dataset definition
parameters such as SPACE, RECFM, and LRECL. This optional parameter has no
default value.
REP_MGMTCLAS
The management class to apply to the output dataset as defined by the storage
administrator at your site. Your storage administrator controls attributes of SMS
managed datasets such as migration, back up, compression, retention period, and
space reclamation. This optional parameter has no default value.
APPC Global Recording and Scripts
2-55
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 specifies 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.
TCP/APPC/MQ
The record-type selection parameter. This utility supports Hiperstation for Mainframe
Servers and Hiperstation for WebSphere MQ, so you must specify the type of record
to select from the input repository, in this case APPC. If you omit the parameter, the
utility uses the default value of MQ.
2-56
Hiperstation for Mainframe Servers User Guide
3-1
Chapter 3.
APPC Unattended Processing
Chap 3
Hiperstation for Mainframe Servers offers unattended playback for batch testing
applications that use APPC. This function requires unattended processing statements and
JCL to run the unattended statements. Hiperstation for Mainframe Servers also offers a
facility that generates these statements and the necessary JCL for you. This chapter
explains how to use Unattended Processing to generate:
•
•
•
•
•
CONTROL statements
ALLOCATE/ACCEPT statements
SCRIPT statements
COMPANY statements
CACHE INCLUDE and CACHE EXCLUDE statements
It also explains how to build the JCL necessary for running the unattended processing
statements. Chapter 4, “Unattended Playback of APPC Scripts” explains how to run an
unattended playback, describes unattended playback statements, and provides JCL
examples for common unattended testing functions.
Note: You can also generate 3270 statements from the Unattended Processing facility in
Hiperstation for Mainframe Servers. Append APPC statements to previously
generated 3270 statements or vice versa. For detailed information on generating
3270 statements, see the Hiperstation for VTAM User Guide.
Starting Unattended Processing
Start Unattended Processing by selecting option 2 on the Hiperstation Product Menu,
and option 4 on the Hiperstation for Mainframe Servers Main Menu. The “Generate
Unattended Statements Screen” appears (Figure 3-1).
Figure 3-1. Generate Unattended Statements Screen
------------------ Hiperstation * Generate Unattended Statements ------------Command ===>
What to generate:
1. Generate Statements for Unattended 3270
2. Generate Statements for Unattended APPC
Enter "/" to select options
Add several script statements
Append new Log to end of an existing Log
(Add control cards generated in this execution to the end
of those created via a previous execution)
Enter END command to return to Main Menu.
Use this screen to generate unattended processing statements for 3270 or APPC. You can
also add script statements to the end of existing unattended playback statements or
append unattended playback statements to an existing file by entering a slash (/) in the
corresponding field. Use the Append feature to run APPC and 3270 playbacks in the same
unattended processing run. For detailed information on generating 3270 statements, see
the Hiperstation for VTAM User Guide.
3-2
Hiperstation for Mainframe Servers User Guide
Generating APPC Unattended Processing Statements
Select option 2 to access the “Generate APPC Unattended Statements Screen” (Figure 32).
Figure 3-2. Generate APPC Unattended Statements Screen
-------------- Hiperstation * Generate APPC Unattended Statements ------------Command ===>
What to generate:
_
1. Select the APPC unattended statements you wish to generate
2. Generate APPC unattended statements for each
member in the script dataset
3. Generate APPC unattended statements using a
standard script profile
Enter END command to return to the previous panel
The following options let you access three primary functions from the “Generate APPC
Unattended Statements Screen”:
1. Option 1 — Use this option to select which statements to generate. You can then
navigate various screens and enter information Hiperstation for Mainframe Servers
uses to generate unattended playback statements. For more information, see “Setting
Unattended Statement Parameters” on page 3-2.
2. Option 2 — Use this option to choose a script dataset and generate unattended
processing statements for all scripts in that dataset. Also use this option to do a mass
generation. Based on your entries to option 1, Hiperstation for Mainframe Servers
generates unattended playback statements for all scripts in the datasets you choose.
For more information, see “Building Unattended Statements and JCL” on page 3-8.
3. Option 3 — Use this option to restrict the generation of unattended playback
statements to a subset of the scripts contained in a dataset. Use this option to narrow
the generation of statements based on either sender/receiver or script prefix. You can
also use this option to include pre and postprocessing scripts, which lets you
“sandwich” each of your scripts between two others, such as logon and logoff scripts.
For more information, see “Restrict Specified Script Datasets” on page 3-11.
Note:
See the online help for a description of the commands available on this screen.
Setting Unattended Statement Parameters
Select option 1 to display the “APPC Statement Generation Parameters Screen” (Figure 33).
APPC Unattended Processing
3-3
Figure 3-3. APPC Statement Generation Parameters Screen
--------------- Hiperstation * APPC Statement Generation Parameters ---------Command ===>
Select the APPC Statement Type you wish
to include in your unattended job
1. CONTROL Statement parameters
2. ALLOCATE/ACCEPT Statement parameters
3. SCRIPT Statement parameters
4. COMPANY Statement parameters
5. CACHINCL and CACHEXCL Statement parameters
Enter END command to return to previous panel
The “APPC Statement Generation Parameters Screen” allows you to select the type of
APPC unattended playback statement to define or modify.
After you select the type of statement you want to build, a screen appears where you can
provide the necessary information. The information you enter is saved and used when
you request generation of control cards and JCL.
You can also modify your unattended processing statements before generating control
cards and JCL. For example, you might define CONTROL information first, and then
ALLOCATE information or vice versa. The sequence in which the statements are defined
has no effect on the generation of the unattended playback statements.
CONTROL Statement Parameters
Select option 1 to display the “APPC CONTROL Statement Parameters Screen” (Figure 34).
Figure 3-4. APPC CONTROL Statement Parameters Screen
------------------ Hiperstation * APPC CONTROL Statement Parameters--------------Command ===>
Connection Information:
LU62 Prefix. . . . HS62___
LU62 Suffix. . . . 4
LU Alias==> 3
1. Uservar
2. Generic
3. None
Documentation Generation Options:
Trace. . . . . . .
Use MM/DD/YY?. . . Y
Timing Options:
No Resp Time-Out. 45______
No FMH5 Time-Out. 300_____
Processing Options:
Unit. . . . . . . ________
Volume. . . . . . ________
Msgform . . . . N
Use Start Time. N
Caching?. . . . Y
Using REXX? . . Y
Enter END command to return to the previous panel
Use this screen to alter the default settings for APPC CONTROL statements. Modify or
add a parameter by typing in the appropriate field. Press Enter without entering a
command to validate the current entries without leaving this screen.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
3-4
Hiperstation for Mainframe Servers User Guide
ALLOCATE/ACCEPT Statement Parameters
Select option 2 to display the “APPC ALLOCATE/ACCEPT Statement Parameters Screen”
(Figure 3-5).
Figure 3-5. APPC ALLOCATE/ACCEPT Statement Parameters Screen
------------- Hiperstation * APPC ALLOCATE/ACCEPT Statement Parameters ---------Command ===>
Choose the ALLOCATE/ACCEPT parameters you wish to include
1. Connection information includes:
Application, Sender and Receiver definitions,
type of protocol, number of conversations,
synchronization level and the number of times
to repeat this request.
2. Documentation Generation includes:
Trace, Summary, VTAM Trace and REXX Log.
3. Timing Options includes:
Logon Delay, Start Delay, Think Time,
Think Time Percent, Synchronize,
All Sync and Time Sync.
4. Security/Unit of Work includes:
Logical Unit of Work Name, Logical Unit of
Work instance, Security Profile, Security Type,
User and Password.
Enter END command to return to the previous panel
Use this screen to access four other screens where you can alter default settings for APPC
ALLOCATE/ACCEPT statements. Parameters for the ALLOCATE/ACCEPT statement are
divided into four categories:
•
•
•
•
Connection
Documentation
Timing
Security and logical unit of work
Enter the appropriate option for the category of parameters to be defined.
Parameter settings are saved in your profile and retained from session to session.
Connection ALLOCATE/ACCEPT Statement Parameters
Select option 1 on the “APPC ALLOCATE/ACCEPT Statement Parameters Screen” (Figure
3-5), to alter default settings for APPC ALLOCATE/ACCEPT Connection Parameters
(Figure 3-6).
APPC Unattended Processing
3-5
Figure 3-6. APPC ALLOCATE/ACCEPT Connection Parameters Screen
---------- Hiperstation * APPC ALLOCATE/ACCEPT Connection Parameters ---------Command ===>
Request Type==> 1
1. Allocate 2. Accept
TP Name .
Receiver.
Sender. .
Repeat. .
PIP . . .
_______________________ Logmode. . . . ________
*_____________________
Receiver Alias _______________________
______________________
Sender Alias . _______________________
1
Count. . . . . 1
_____________________________________________________________
Protocol Type==>
1. Mapped
3. Full Duplex Mapped
2. Basic
4. Full Duplex Basic
Sync Level==>
1. None
3. Syncpt
2. Confirm
Other ALLOCATE/ACCEPT Statement Parameters==>
1. Connection parameters
2. Documentation parameters
3. Timing parameters
4. Security/Unit of Work parameters
Enter END command to return to the previous panel
Modify or add a parameter by typing in the appropriate field. Press Enter without
entering a command or typing an option in the Other ALLOCATE/ACCEPT Statement
Parameters field to validate current entries without leaving this screen.
To transfer directly to one of the other ALLOCATE/ACCEPT parameters screens, type the
number of the desired option in the Other ALLOCATE/ACCEPT Statement Parameters
field and press Enter. Hiperstation for Mainframe Servers validates the current entries and
the selected screen appears.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
Documentation ALLOCATE/ACCEPT Statement Parameters
Select option 2 on the “APPC ALLOCATE/ACCEPT Statement Parameters Screen” (Figure
3-5 on page 3-4), to alter default settings for APPC ALLOCATE/ACCEPT Documentation
Parameters (Figure 3-7).
Figure 3-7. APPC ALLOCATE/ACCEPT Documentation Parameters Screen
----------- Hiperstation * APPC ALLOCATE/ACCEPT Documentation Parameters -------Command ===>
Summary.
REXX Log
Trace. APPC.TRACE
VTAM?
Other ALLOCATE/ACCEPT Statement Parameters==>
1. Connection parameters
2. Documentation parameters
3. Timing parameters
4. Security/Unit of Work parameters
Enter END command to return to the previous panel
Modify or add a parameter by typing in the appropriate field. Press Enter without
entering a command or typing an option in the Other ALLOCATE/ACCEPT Statement
Parameters field to validate current entries without leaving this screen.
3-6
Hiperstation for Mainframe Servers User Guide
To transfer directly to one of the other ALLOCATE/ACCEPT parameters screens, type the
number of the desired option in the Other ALLOCATE/ACCEPT Statement Parameters
field and press Enter. Hiperstation for Mainframe Servers validates the current entries and
the selected screen appears.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
Timing ALLOCATE/ACCEPT Statement Parameters
Select option 3 on the “APPC ALLOCATE/ACCEPT Statement Parameters Screen” (Figure
3-5 on page 3-4), to alter default settings for APPC ALLOCATE/ACCEPT statement timing
parameters (Figure 3-8).
Figure 3-8. APPC ALLOCATE/ACCEPT Timing Parameters Screen
------------ Hiperstation * APPC ALLOCATE/ACCEPT Timing Parameters -----------Command ===>
Logon Delay. . . .
Start Delay. . . .
Start Time . . . .
Synchronization Options==> 1
1. None
2. Sync within Group
Think Time Option==>
1. Play at full speed
3. User-specified think time
Think Time(mm,ss)
,
Think Time Percent
Time Sync. . . . . .
Serialize? . . . . . N
3. Sync across Groups
2. Think time recorded on script
Other ALLOCATE/ACCEPT Statement Parameters==>
1. Connection parameters
2. Documentation parameters
3. Timing parameters
4. Security/Unit of Work parameters
Enter END command to return to the previous panel
Modify or add a parameter by typing in the appropriate field. Press Enter without
entering a command or typing an option in the Other ALLOCATE/ACCEPT Statement
Parameters field to validate current entries without leaving this screen.
To transfer directly to one of the other ALLOCATE/ACCEPT parameters screens, type the
number of the desired option in the Other ALLOCATE/ACCEPT Statement Parameters
field and press Enter. Hiperstation for Mainframe Servers validates the current entries,
and the selected screen appears.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
Security and LUW ALLOCATE/ACCEPT Statement Parameters
Select option 4 on the “APPC ALLOCATE/ACCEPT Statement Parameters Screen” (Figure
3-5 on page 3-4), to alter default settings for APPC ALLOCATE/ACCEPT statement
security and logical unit of work (LUW) parameters (Figure 3-9).
APPC Unattended Processing
3-7
Figure 3-9. APPC ALLOCATE/ACCEPT Security-LUW Parameters Screen
------------ Hiperstation * APPC ALLOCATE/ACCEPT Security-LUW Parameters--------Command ===>
Logical Unit of Work:
LUW Name . . . . . . _____________________
LUW Instance Number. ____________ ____
Security==> _
1. None
2. Same
Security
Security
User . .
Password
3. Pgm
4. Prst
5.Sameprst
Options:
Profile . . _____________________
. . . . . . _____________________
. . . . . . _____________________
Other ALLOCATE/ACCEPT Statement Parameters==> _
1. Connection parameters
2. Documentation parameters
3. Timing parameters
4. Security/Logical Unit of Work parameters
Enter END command to return to the previous panel
Also use this screen to alter LUW parameters. Modify or add a parameter by typing in the
appropriate field. Press Enter without entering a command or typing an option in the
Other ALLOCATE/ACCEPT Statement Parameters field to validate current entries without
leaving this screen.
To transfer directly to one of the other ALLOCATE/ACCEPT parameters screens, type the
number of the desired option in the Other ALLOCATE/ACCEPT Statement Parameters
field and press Enter. Hiperstation for Mainframe Servers validates the current entries and
the selected screen appears.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
Hiperstation for Mainframe Servers does not retain dubbing information from session to
session.
SCRIPT Statement Parameters
Select option 3 on the “APPC Statement Generation Parameters Screen” (Figure 3-3 on
page 3-3) to display the “SCRIPT Statement Parameters Screen” (Figure 3-10).
Figure 3-10. SCRIPT Statement Parameters Screen
-------------------- Hiperstation * SCRIPT Statement Parameters --------------Command ===>
Dub?. . . . . ..
Replace Member?.
Repeat . . . . .
Stop On. . . . .
Skip Compare . .
Wait for Input .
N
N
1
Enter END command to return to the previous panel
Use this screen to alter default settings for APPC SCRIPT statements. Modify or add a
parameter by typing in the appropriate field. Press Enter without entering a command to
validate current entries without leaving this screen.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
3-8
Hiperstation for Mainframe Servers User Guide
COMPANY Statement Parameters
Select option 4 on the “APPC Statement Generation Parameters Screen” (Figure 3-3 on
page 3-3 to display the “Company Statement Parameters Screen” (Figure 3-11).
Figure 3-11. Company Statement Parameters Screen
-------------------- Hiperstation * Company Statement Parameters ----------------Command ===>
Company . .
Enter END command to return to previous panel
Enter your company’s name in the Company field. Enclose it in single quotes if it
includes dashes or blanks. The name you define will print on your batch reports. If you
do not specify a name, Hiperstation for Mainframe Servers uses Compuware Corporation
as the default.
Leave the Dub Title field blank as it does not apply to APPC statements.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
CACHE INCLUDE and EXCLUDE Statement Parameters
Select option 5 on the “APPC Statement Generation Parameters Screen” (Figure 3-3 on
page 3-3 to display the CACHE INCLUDE and EXCLUDE Statement Parameters screen
(Figure 3-12).
Figure 3-12. CACHE INCLUDE and EXCLUDE Statement Parameters Screen
---------- Hiperstation * CACHE INCLUDE and EXCLUDE Statement Parameters -----Command ===>
CACHINCL Statement:
APPCINCL
CACHEXCL Statement:
Enter END command to return to the previous panel
Use this screen to alter default settings for APPC CACHINCL and CACHEXCL statements.
Modify or add a parameter by typing in the appropriate field. Press Enter without
entering a command to validate current entries without leaving this screen.
For descriptions of the parameters and the commands you can use on this screen, see the
online help.
Building Unattended Statements and JCL
Select option 2 on the “Generate APPC Unattended Statements Screen” (Figure 3-2 on
page 3-2), to display the “Unattended Statement Build Screen” (Figure 3-13).
APPC Unattended Processing
3-9
Figure 3-13. Unattended Statement Build Screen
------------------- Hiperstation * Unattended Statement Build ----------------Command ===>
Please supply the name of the dataset containing the scripts, and the name of
the dataset and member which will contain the generated statements.
Script Dataset:
Project . . . USER2312
Group . . . . TEST
Type . . . . SCRIPTS
Other Partitioned Dataset:
Dataset Name. . . .
Enter a "/" above to define more than one Script Dataset
Batch Statement Dataset Name:
Project . . . USER2312
Group . . . . UNATTND
Type . . . . CONTROL
Member. . . . APPCTEST
Other Partitioned Dataset:
Dataset Name. . . .
Press ENTER to generate Unattended Playback statements END to exit.
Use the “Unattended Statement Build Screen” to enter the name of the dataset
containing the scripts you want to generate unattended statements for.
Type the dataset information in the Script Dataset fields or the Other Partitioned Dataset
field.
You can define more than one dataset (up to seven) by typing a / in the Dataset Name
field. Hiperstation processes any additional datasets after the dataset defined on this
screen. Specify at least one dataset on this screen.
Hiperstation examines each of the members in the selected dataset and determines their
domain destination or sender/receiver. Hiperstation flags as 3270 those script members
that Hiperstation can identify a domain destination for. Hiperstation excludes these
members from APPC-type requests.
Use the Batch Statement Dataset Name fields to enter the name of the dataset and
member to store generated statements in. If the member exists, Hiperstation for
Mainframe Servers overwrites it unless you selected the Append option on the initial
“Generate Unattended Statements Screen” (Figure 3-1 on page 3-1).
For descriptions of the commands you can use on this screen, see the online help.
When you press Enter without entering a command, Hiperstation for Mainframe Servers
validates the screen entries, generates unattended statements in the chosen dataset
member, and then displays that member on the ISPF EDIT screen (Figure 3-14).
3-10
Hiperstation for Mainframe Servers User Guide
Figure 3-14. ISPF EDIT Screen Showing Generated Statements
File Edit Confirm Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER2312.UNATTND.CONTROL(APPCTEST) - 01.00
Columns 00001 00072
Command ===>
Scroll ===> PAGE
****** ***************************** Top of Data ******************************
000001
CACHINCL
000002
APPCINCL
000003
CONTROL
000004
LU62PFX(HS62)
000005
LU62SFX(4)
000006
LUALIAS(NONE)
000007
NORESPTO(45)
000008
NOFMH5TO(300)
000009
USDATE(YES)
000010
ALLOCATE
000011
RECEIVER(A)
000012
REPEAT(1)
000013
COUNT(1)
000014
THOPT(1)
000015
SCRIPT(RT000003)
000016
REPEAT(1)
000017
SCRIPT(RT000002)
000016
REPEAT(1)
000017
SCRIPT(RT000001)
-
After you make any changes, enter the END command to access Hiperstation for
Mainframe Servers’ “Unattended JCL Build Screen” (Figure 3-15).
Building JCL
Use the “Unattended JCL Build Screen” to create JCL for running the unattended
statements just generated.
Figure 3-15. Unattended JCL Build Screen
----------------------- Hiperstation * Unattended JCL Build ------------------Command ===>
Please supply the dataset and member into which the
batch JCL will be written.
JCL Dataset Name:
Project . . . ACMJET0
Group . . . . TSO
Type . . . . JCL
Member. . . . UNATTEND
Other Partitioned Dataset:
Dataset Name. . . .
Job Statement Information:
//ACMJET0G JOB (’OHPBAS5.2DSP’,84),’J.TESTER’,MSGCLASS=R,
//
REGION=2048K,CLASS=P,NOTIFY=ACMJET0
//*
//*
ENTER to generate the Unattended Playback JCL END key to terminate.
Use either the JCL Dataset Name fields or the Other Partitioned Dataset field to choose
the dataset and member where Hiperstation for Mainframe Servers writes the generated
JCL.
Enter your standard job statements in the Job Statement Information area.
When you press Enter, Hiperstation for Mainframe Servers:
APPC Unattended Processing
3-11
• Validates screen entries
• Generates JCL in the chosen dataset member
• Displays the generated JCL on the ISPF EDIT screen (Figure 3-16).
Figure 3-16. ISPF EDIT Screen Showing Generated JCL
File Edit Confirm Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
ACMJET0.TSO.JCL(APPCPB) - 01.00
Columns 00001 00072
Command ===>
Scroll ===> PAGE
****** ***************************** Top of Data ******************************
000001 //ACMJET0G JOB (’OHPBAS5.2DSP’,84),’J.TESTER’,MSGCLASS=R,
000002 //
REGION=2048K,CLASS=P,NOTIFY=ACMJET0
000003 //*
000004 //*
000005 //*
000006 //STEP1
EXEC PGM=EHSBATCH
000007 //SYSPRINT DD SYSOUT=*
000008 //STEPLIB DD DISP=SHR,DSN=ACMJET0.VP.R600.LOADLIB
000009 //SYSLIB
DD DISP=SHR,DSN=ACMJET0.TEST.SCRIPTS
000010 //SYSIN
DD DISP=SHR,DSN=ACMJET0.UNATTND.CONTROL(APPCTEST)
****** **************************** Bottom of Data ****************************
After you make any changes, either save the JCL for later use or enter the SUBMIT
command to run the unattended playback job immediately.
Restrict Specified Script Datasets
Select option 3 on the “Generate APPC Unattended Statements Screen” (Figure 3-2 on
page 3-2) to display the “Unattended Statement Build Screen” (Figure 3-13 on page 3-9).
Use this screen as described in “Building Unattended Statements and JCL” on page 3-8.
The only difference is that when you press Enter without entering a command,
Hiperstation for Mainframe Servers validates the screen entries, generates unattended
statements in the chosen dataset member, and then displays the “Generation Restrictions
Screen” (Figure 3-17).
Figure 3-17. Generation Restrictions Screen
----------------------- Hiperstation * Generation Restrictions ---------------Command ===> _
Pre-process scripts - run these scripts prior to each of
the scripts selected below.
APPCSTRT ________ ________ ________ ________
Restrict the generation of unattended statements to
script names beginning with the prefix, and/or scripts
for a particular application.
Script selection options:
Generate statements for scripts prefixed by . . . . RT
Generate statements for scripts for application . .
Post-process scripts - run these script after each of the
scripts selected above.
APPCTERM ________ ________ ________ ________
Press the ENTER key to continue, the END key to terminate
Use the Generation Restriction screen to narrow down the number of scripts to generate
unattended statements for. If you enter a prefix, Hiperstation for Mainframe Servers only
includes script member names beginning with those characters. If you enter an
application, Hiperstation for Mainframe Servers only includes script members with that
sender/receiver in unattended statement generation.
3-12
Hiperstation for Mainframe Servers User Guide
You can also choose scripts, such as logon and logoff scripts, to run before and/or after
the generated statements.
For descriptions of the commands you can use on this screen, see the online help.
When you press Enter without entering a command, Hiperstation for Mainframe Servers
validates the screen entries, generates unattended statements in the dataset member
entered on the Unattended Statement Build screen, and then displays that member on
the ISPF EDIT screen (Figure 3-18).
Figure 3-18. ISPF EDIT Screen Showing Restricted Generated Statements
File Edit Confirm Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
ACMJET0.UNATTND.CONTROL(APPCTEST) - 01.00
Columns 00001 00072
Command ===>
Scroll ===> PAGE
****** ***************************** Top of Data ******************************
000001
CACHINCL
000002
APPCINCL
000003
CONTROL
000004
LU62PFX(HS62)
000005
LU62SFX(4)
000006
LUALIAS(NONE)
000007
NORESPTO(45)
000008
NOFMH5TO(300)
000009
USDATE(YES)
000010
ALLOCATE
000011
RECEIVER(A)
000012
REPEAT(1)
000013
COUNT(1)
000014
THOPT(1)
000015
SCRIPT(APPCSTRT)
000016
SCRIPT(RT000002)
000017
REPEAT(1)
After you make any changes, enter the END command to access Hiperstation for
Mainframe Servers’ “Unattended JCL Build Screen” (Figure 3-15 on page 3-10). Refer to
“Building JCL” on page 3-10 for information on using this screen to create JCL for
running your generated unattended statements.
4-1
Chapter 4.
Unattended Playback of APPC Scripts
Chap 4
Using Unattended Playback
Unattended playback processing works through coded batch statements run by the
Hiperstation EHSBATCH program. Unattended mode processing allows you to perform
stress, regression, and concurrent testing easily and without intervention. Play back
multiple scripts against one or more applications, simultaneously or serially.
Note: You can also perform unattended playback of 3270 and LU0 scripts captured with
Hiperstation for Mainframe Servers. Refer to the “Unattended Playback,
Dubbing, and Comparison for 3270 and LU0 Scripts” chapter of the Hiperstation
for VTAM User Guide.
Step 1. Review Storage Requirements for Unattended Mode Processing
Ensure your virtual and caching storage are sufficient for your processing needs. The
Hiperstation Installation Guide lists MVS storage requirements for unattended processing.
Step 2. Record the Scripts
Unattended playback executes the activity in the APPC script. If Global Record was used
previously for APPC recording, usable scripts already exist. Locate the PDSs where the
scripts reside and define them to unattended playback through the SYSLIB DD statement.
Step 3. Identify the Application
The ALLOCATE and ACCEPT statements identify the conversations for a particular APPC
LU name.
Step 4. Identify the Scripts To Run
The SCRIPT statement identifies the names of the scripts to run and the number of times
to repeat each script.
Note:
All files used during unattended mode must be available for allocation before
submitting the batch job.
Step 5. Submit the Batch Job
Hiperstation for Mainframe Servers requires JCL to identify the program to run, the
datasets where the scripts reside, an output message dataset, and the input dataset
containing the Hiperstation for Mainframe Servers control statements. The JCL
statements required for unattended playback include:
EXEC
The program name (PGM=EHSBATCH). Set the region to about 4096 KB to test 50
simultaneous conversations.
4-2
Hiperstation for Mainframe Servers User Guide
SYSPRINT
Message dataset for output for unattended playback. The logical record length of the
SYSPRINT dataset is 133.
SYSLIB
Identifies the datasets containing the scripts to run.
SYSCNTL
Identifies the input control dataset containing the Hiperstation for Mainframe
Servers control statements. The record length of this dataset (LRECL) must be 80. Use
this dataset to contain CONTROL and COMPANY statements defined during
installation. This allows the systems programmer to set up a procedure with this
information already defined.
SYSIN
Identifies the input dataset containing the Hiperstation for Mainframe Servers
control statements.
Note: The JCL submitted for an unattended mode job cannot contain sequence numbers
in columns 73-80.
Playing Back APPC Datastreams
To play back a recorded APPC datastream, submit a batch job using unattended playback.
Using information taken from the conversation log to control playback, Hiperstation for
Mainframe Servers reads the previously recorded script, connects to a real application,
and plays back the APPC data. During playback, Hiperstation for Mainframe Servers
assumes the role of one side of the APPC conversation.
Note:
The conversation log identifies the APPC conversations to play back. It is
generated during script creation if you select the Conversation Log option on the
“APPC - Script Content Screen” (Figure 2-4).
As long as expected responses such as SENDs and ALLOCATEs are received, playback
continues. However, if the application sends unexpected commands or data, playback
terminates.
Hiperstation for Mainframe Servers displays an informational message when the length
of the data received from the partner application is different from the expected length.
However, it does not examine the content of the data received from the partner
application to report comparison information. Add REXX variables to the script to
generate data comparison reports. See “APPC REXX Variables” on page 4-35.
Before you begin testing, determine whether the application expects to initiate APPC
conversations or expects to receive conversations initiated by other applications.
If the application expects to receive APPC conversations, the conversation log that you
play back should contain ALLOCATE statements. However, if the application expects to
initiate APPC conversations, the conversation log that you play back should contain
ACCEPT statements.
An ALLOCATE statement in the conversation log tells Hiperstation for Mainframe Servers
to initiate conversations with the application named in the RECEIVER keyword.
An ACCEPT statement in the conversation log prepares Hiperstation for Mainframe
Servers to accept conversations initiated by the application named in the SENDER
keyword. An ACCEPT statement in the conversation log requires you to initiate an APPC
conversation between an application and Hiperstation for Mainframe Servers. Otherwise,
Hiperstation for Mainframe Servers waits (not running any scripts) until an application
initiates an APPC conversation. After Hiperstation for Mainframe Servers receives a
Unattended Playback of APPC Scripts
4-3
request for an APPC conversation from an application, the ACCEPT and SCRIPT
statements that match the incoming conversation start. The match is based on logical
unit names, logmode name, and TP name.
Timing Issues
Hiperstation for Mainframe Servers offers a number of options for controlling the various
timing aspects of playback. If you do not choose any of these options, the playback
proceeds as quickly as possible.
Think-Time Parameters
Three think-time keyword parameters are available: THINK, THOPT, and THPCT. These
parameters let you control the release of data to the application. Using these parameters,
you can tell Hiperstation for Mainframe Servers to send data to the partner application:
• As fast as possible (the default)
• At the same time intervals as during recording
• At a set fixed time interval
• At a percentage of the time intervals as during recording (for example, halve the
playback time by entering 50%, double the playback time by entering 200%).
Refer to “ALLOCATE and ACCEPT Statements” on page 4-22 for a more detailed
description of these parameters and their usage.
Control and Timing Parameters
Four other parameters provide control over the start of conversations and the timing of
the data sent from each conversation: USESTIME, TIMESYNC, LOGD, and STARTDLY.
LOGD
If you start multiple conversations under a single ALLOCATE statement by supplying
the COUNT parameter, all conversations start at the same time, by default. You can,
delay the start of each conversation by supplying the LOGD parameter. LOGD sets
the number of seconds to elapse between the start of each conversation defined on
the COUNT keyword. For more information, refer to “LOGD(ss)” on page 4-25.
STARTDLY
If you want an ALLOCATE statement to become active only after a set time has
elapsed during the playback job, use the STARTDLY parameter. STARTDLY sets the
number of seconds to elapse during playback before the associated ALLOCATE is
activated. For more information, refer to “STARTDLY(ss)” on page 4-26.
Note:
Although STARTDLY and STIME provide similar functionality, there is more
overhead in Hiperstation for Mainframe Servers when STARTDLY is used. If
you have difficulty playing back large numbers of terminals, use STIME to get
better results.
STIME
If USESTIME is specified, the STIME date and time value controls the activation of
the ALLOCATE statement. STIME is ignored if USESTIME is not on the CONTROL
statement.
TIMESYNC
The TIMESYNC parameter on more than one ALLOCATE or ACCEPT statement tells
Hiperstation for Mainframe Servers to send the data in all scripts controlled by the
TIMESYNC parameter in the order of the time stamps found within the scripts. The
time stamps are treated as sequencing instructions to determine which data to send
4-4
Hiperstation for Mainframe Servers User Guide
to the partner applications next. For more information, refer to “TIMESYNC” on page
4-28.
Note: If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the two
parameters are used together, Hiperstation for Mainframe Servers issues error
EHSB074I - KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED ON
CONTROL STATEMENT, ignores the TIMESYNC parameter, and continues
with playback.
USESTIME
The USESTIME parameter on the CONTROL statement specifies that ALLOCATE
statements start at the time interval set on their respective STIME keywords, rather
than at the beginning of the playback job. If the USESTIME parameter is not present
on the CONTROL statement, all ALLOCATE statements start when the playback job
begins. See “SCRIPT Statement” on page 4-32 for details on USESTIME.
Notes:
1. If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the
two parameters are used together, Hiperstation for Mainframe Servers issues
error EHSB074I - KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED
ON CONTROL STATEMENT, ignores the TIMESYNC parameter, and
continues with playback.
2. Using sub-second STIME intervals with USESTIME is not recommended. One
second should be the smallest STIME amount used.
Unattended Playback
When Hiperstation for Mainframe Servers plays back APPC conversations, it can use a
single VTAM LU for one side of each APPC conversation. This logical unit is defined to
VTAM with an APPL statement, typically in a member of the SYS1.VTAMLST dataset.
SQQFSAMP member APPC100 provides a sample definition.
Editing APPC Scripts
At playback time, you can add to, replicate, or merge recording scripts by changing the
keywords within the recording script and conversation log. The keywords identify the
recording scripts used in the playback and the number of times a recording script is
repeated. The conversation log can be in the batch job stream as a SYSIN dataset.
However, it is typically a PDS member, although it does not have to be in the same PDS
where the recording scripts reside.
APPC Statement Descriptions
APPC input control statements control the number of conversations and the recording
scripts to run.
APPC Control Script Tags
You can opt to have Global Record automatically create scripts, or you can write them
from scratch. A script contains a symbolic representation of all traffic that occurred
between two APPC TPs. Hiperstation for Mainframe Servers uses the following script tags.
Unattended Playback of APPC Scripts
4-5
<VERSION> Tag
Identifies the version of the Hiperstation for Mainframe Servers script creation program
that created the script.
The VERSION tag appears only once in a script.
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.
<CONTENT> Tag
Identifies detail data associated with a previous CMDEAL, CMSEND, CMSNDX, CMSERR,
PIU, or UNKNOWN tag.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
The CONTENT tag appears as many times as necessary to contain all of the detail data
associated with the previous tag. The number of times the CONTENT tag appears
depends on the record length of the file that contains the detail data. For example, if
detail data is being written to a separate detail file and that file has a large LRECL, only a
single CONTENT tag might be needed.
Writing a long detail value to a file with a small LRECL requires the use of multiple
CONTENT tags. Each subsequent CONTENT tag is a continuation of the previous
CONTENT tag.
Note:
“Contents of APPC Detail Data” on page 4-14 describes the record layouts of
Hiperstation for Mainframe Servers’ detail file.
<DETAIL> Tag
Specifies where detail data is located. If the DETAIL tag is not in a script before a tag that
has associated content, all tag contents are in the recording script rather than in a
separate detail file.
COMBINED
Forces both inbound and outbound data to be contained in a single PDS member.
4-6
Hiperstation for Mainframe Servers User Guide
INBOUND
Identifies the dataset where inbound data is stored.
OUTBOUND
Identifies the dataset where outbound data is stored.
Each of these attributes can have a value of either an asterisk (*) or ddname(member).
The * value specifies that the detail data is contained in the current script member. The
ddname(member) value specifies that the detail data is contained within an external file
with the defined DDname and dataset member name.
If the ddname(member) value is present, the dataset identified by ddname must be a
dataset with no member defined in the JCL. For example:
//DATA01
DD DISP=SHR,DSN=USR2503.PDS
(where DSORG=PO)
<ERROR> Tag
Indicates that an error was detected during datastream evaluation or during script
generation. This tag is followed by an error message describing the problem that
Hiperstation for Mainframe Servers encountered.
<EXTDATA> Tag
Specifies which record, in a detail file, the next CONTENT tag should retrieve. This tag
does not have any associated content.
RETRIEVE=NEXT
Tells Hiperstation for Mainframe Servers to retrieve the next sequential record from
the external file.
RETRIEVE=PREV
Tells Hiperstation for Mainframe Servers to reuse the most recently retrieved record.
<INBOUND> Tag
Identifies a collection of data that was sent from the ALLOCATE receiver to the
ALLOCATE sender. This tag needs an associated end tag.
Unattended Playback of APPC Scripts
4-7
<OUTBOUND> Tag
Identifies a collection of data that was sent from the ALLOCATE sender to the ALLOCATE
receiver. This tag needs an associated end tag.
<PIU> Tag
Tells Hiperstation for Mainframe Servers to ignore certain APPC traffic during playback.
The traffic is either a
• VTAM BIND,
• CINIT,
• RSP(BIND),
• RSP(CINIT) PIU,
• VTAM FMH5 PIU,
• or a PIU produced as a result of an:
– APPC Send_Data,
– Send_Error,
– Send_Expedited_Data,
– Prepare_to_Receive,
– Confirm,
– Confirmed,
– Request_to_Send,
– or Deallocate verb
The PIU tag represents a complete PIU, which consists of a transmission header (TH), a
request header (RH), and a request unit (RU). PIU tags are present if the Write all traffic
as script comments and interpreted values debugging options were selected. All
request and response PIUs are included before the <CMxxxx> (for the CPIC forms) tag
they apply to.
The content of this tag (contained in subsequent CONTENT tags) is a complete PIU.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
<REPLACE> Tag
The REPLACE tag replaces the information within the APPC data streams during
playback. Use this tag to supply new data, such as account numbers, user names, etc.
The REPLACE tag may be applied to the CONTENT of a single CMSEND, CMSNDX,
CMSERR, or CMDEAL tag or to a range of tags. If applied to a range, the REPLACE tag acts
on all of the CMSEND, CMSNDX, CMSERR, and CMDAL tags within the range.
4-8
Hiperstation for Mainframe Servers User Guide
Insert the REPLACE tag before the CMSEND, CMSNDX, CMSERR, or CMDEAL tag or
group of tags it applies to. 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.
Notes:
1. If the CMSEND, CMSNDX, CMSERR or CMDEAL data stream is longer than the
LRECL of the script dataset, the data stream is broken into multiple CONTENT
records (lines). The REPLACE tag applies to the entire logical value — that is, all
CONTENT records — of the subsequent CMSEND, CMSNDX, CMSERR or CMDEAL
tags.
2. When a script is created without CPIC format, the <CMSEND> tag is recorded as
<SEND-DATA> tag (see “<SEND_DATA> Tag” on page 4-13 for a description of the
tag).
FIELD
Identifies the byte offset and new value of a field within the datastream that will be
replaced at playback time. (The field value is not changed within the script or detail
file.)
The offset value is zero-based and applies to the entire “traffic” portion of a detail
data record. The offset value does not consider the length, type, or label portions of a
detail file record. For example, <REPLACE FIELD=(0,‘CAT’)> specifies that the first
byte following the label portion of a detail file record is the start of three bytes to be
replaced with the character string ‘CAT’.
Specify one or more FIELD attributes on a given REPLACE tag as shown below:
<REPLACE FIELD=(0,’CAT’) FIELD=(20,’DOG’)>
Notes:
1. Hiperstation provides macros for easily determining offset values. These
macros are especially helpful when determining the offset for a multi-record
CONTENT tag. Although these macros are documented in the TCP/IP portion
of the manual, they apply to APPC scripts as well. See “Offset and Length
Determination Macros” on page 7-33 for more information.
2. Multiple REPLACE tags are not allowed.
If a playback table entry is used instead of a literal value or REXX variable, add an
ampersand (&) as a prefix to the value and define the playback table with TABLE
statements having appropriate ID parameters. If the appropriate table is not defined,
the value after the ampersand (&) will be treated as a literal. For example, if TABLE1
is not defined, &TABLE1 will be considered a literal. The table ID is prefixed with an
ampersand (&) and may be enclosed in single quotes ('), but the quotes are not
required. For example,
<REPLACE FIELD=(0,‘&IFBRACCT’)>
and
<REPLACE FIELD=(0,&IFBRACCT)>
are both valid.
Unattended Playback of APPC Scripts
4-9
The table data will be retrieved using the current PORT and GRPCYCLE information.
Assume TABLEDEF and TABLE are stated as follows:
TABLEDEF
PORTS(p) DATADSN(USERID.APPC.TABLE.DATA)
TABLE
ID(TABLE1) REPEATS(r) DATALEN(d)
The cell index will be calculated with the formula:
index = ((GRPCYCLE - 1)//r) * p + PORT
where // represents mod (the remainder of the amount divided by r).
Following is an example where p = 3, r = 5 (ports = 3, repeats = 5):
Cell
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
index
[1] =
[2] =
[3] =
[4] =
[5] =
[6] =
[7] =
[8] =
[9] =
[10] =
[11] =
[12] =
[13] =
[14] =
[15] =
PORT
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
GRPCYCLE
1,6,11,16 ...
1,6,11,16 ...
1,6,11,16 ...
2,7,12,17 ...
2,7,12,17 ...
2,7,12,17 ...
3,8,13,18 ...
3,8,13,18 ...
3,8,13,18 ...
4,9,14,19 ...
4,9,14,19 ...
4,9,14,19 ...
5,10,15,20 ...
5,10,15,20 ...
5,10,15,20 ...
The DATALEN(d) will be the literal data length.
TYPE
Specifies how to apply the data replacement.
– TYPE=ONE applies the data replacement to the next CMSEND, CMSNDX,
CMSERR, or CMDEAL message. This is the default.
– TYPE=ALL applies the data replacement to all subsequent CMSEND, CMSNDX,
CMSERR, or CMDEAL messages. 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 specifies the
number of bytes. If n is greater than the value defined on the FIELD parameter,
Hiperstation for Mainframe Servers 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 provides macros for easily determining length values. These
macros are especially helpful when determining the length of a value that
spans multiple CONTENT tags. Although these macros are documented in
the TCP/IP portion of the manual, they apply to APPC scripts as well. See
“Offset and Length Determination Macros” on page 7-33 for more
information.
4-10
Hiperstation for Mainframe Servers User Guide
<EXTRACT> Tag
The EXTRACT tag extracts the information within the APPC data streams during
playback.
Insert the EXTRACT tag before the CMSEND, CMSNDX, CMSERR, or CMDEAL tag or
group of tags it applies to. To establish a range, specify ALL on the TYPE parameter of the
EXTRACT tag and insert another EXTRACT tag at the end of the range. Specify DELETE
on the TYPE parameter of the closing EXTRACT tag to terminate the action of the
previous EXTRACT tag.
FIELD
Identifies the byte offset and playback table identification (TABLE ID(member_name)).
The offset value is zero-based and applies to the entire inbound data record. Since the
EXTRACT tag does not have a length parameter, the length will be determined by the
TABLE DATALEN(n).
The table ID is prefixed with an ampersand (&) and may be enclosed in single quotes
('), but the quotes are not required. For example,
<EXTRACT FIELD=(0,‘&TABLE1’)>
and
<EXTRACT FIELD=(0,&TABLE1)>
are both valid.
If table ID is not defined during playback, EXTRACT will not be performed and no
error message will be produced.
The extracted data will be stored in the table using PORT and GRPCYCLE
information.
Assume TABLEDEF and TABLE are stated as follows:
TABLEDEF
PORTS(p) DATADSN(USR2503.APPC.TABLE.DATA)
TABLE
ID(TABLE1) REPEATS(r)
The cell index will be calculated with the formula:
index = ((GRPCYCLE - 1)//r) * p + PORT
where // represents mod (the remainder of the amount divided by r).
Let's take an example of p = 3, r = 5 (ports = 3, repeats = 5):
Cell
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
index
[1] =
[2] =
[3] =
[4] =
[5] =
[6] =
[7] =
[8] =
[9] =
PORT
1
2
3
1
2
3
1
2
3
GRPCYCLE
1,6,11,16 ...
1,6,11,16 ...
1,6,11,16 ...
2,7,12,17 ...
2,7,12,17 ...
2,7,12,17 ...
3,8,13,18 ...
3,8,13,18 ...
3,8,13,18 ...
Unattended Playback of APPC Scripts
Cell
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
TABLE1
index
[10] =
[11] =
[12] =
[13] =
[14] =
[15] =
PORT
1
2
3
1
2
3
4-11
GRPCYCLE
4,9,14,19 ...
4,9,14,19 ...
4,9,14,19 ...
5,10,15,20 ...
5,10,15,20 ...
5,10,15,20 ...
Specify one or more FIELD attributes on a given EXTRACT tag:
<EXTRACT FIELD=(0,’&TABLE1’) FIELD=(20,&TABLE2) TYPE=ONE>
<TIME> Tag
Provides a time stamp for the immediately following tag. You can use the TIME tag
during playback for script synchronization.
The content of this tag is a time stamp with the format:
YYYY/MM/DD_HH:MM:SS.SSSSS. For example: <TIME>2006/07/28_13:02:42.246413.
<UNKNOWN> Tag
Identifies data that Hiperstation for Mainframe Servers did not understand and was
unable to interpret. The content of this tag (contained in subsequent CONTENT tags) is
the portion of the VTAM Request Unit (RU) that was not understood.
You cannot play back a script containing the UNKNOWN tag. Script execution ends if
Hiperstation for Mainframe Servers encounters an UNKNOWN tag during playback.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
APPC Verb Script Tags
You can use the tags in this section either via their APPC form, which is given in the
individual headings, or via their CPIC form. CPIC forms are shown under the APPC forms
in the syntax diagrams.
<CONFIRM> Tag
Represents a confirm request from a TP. It has a CPIC form of CMCFM. This tag does not
have any associated content.
4-12
Hiperstation for Mainframe Servers User Guide
<CONFIRMED> Tag
Represents a confirmed response from a TP. It has a CPIC form of CMCFMD. This tag does
not have any associated content.
<ALLOCATE> Tag
For a description of this tag, refer to “ALLOCATE and ACCEPT Statements” on page 4-22.
Notes:
The list of parameters on page 4-23 are valid on an ALLOCATE in the
conversation log/replay JCL, but are invalid on an ALLOCATE in the APPC script.
The ALLOCATE tag in the script can also be known by its CPI-C alias, CMALLC,
as with other APPC verbs in the script.
<DEALLOCATE> Tag
Represents a deallocate request from a TP. It has a CPIC form of CMDEAL. The content of
this tag (contained in subsequent CONTENT tags) is any LOGDATA that is present.
TYPE
Identifies the type of deallocation request made by the TP. Valid values are FLUSH,
CONFIRM, and ABEND.
SENSE
The four-byte SNA sense data produced by the deallocation request.
LOGDATA
Indicates whether error log data is present.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
<FLUSH> Tag
Represents a flush request. Accumulated data not yet sent is sent immediately. It has a
CPIC form of CMFLUS.
Unattended Playback of APPC Scripts
4-13
<PREPARE_TO_RECEIVE> Tag
Represents a Prepare_to_Receive request from a TP. It has a CPIC form of CMPTR. This tag
does not have any associated content.
TYPE
Identifies the type of Prepare_to_Receive request made by the TP. Valid values are
FLUSH and CONFIRM.
LOCKS
Identifies the TP value for the LOCKS parameter. Valid values are SHORT and LONG.
<REQUEST_TO_SEND> Tag
Represents a Request_to_Send request from a TP. It has a CPIC form of CMCRTS. This tag
does not have any associated content.
<SEND_DATA> Tag
Indicates that the TP sent some type of application data. The TP can send normal data,
user control data, error data, and presentation services data. This tag has a CPIC form of
CMSEND. The content of this tag (contained in subsequent CONTENT tags) is the data
that was sent.
DATATYPE
APPLDATA:
Indicates that normal data was sent.
PSDATA:
Indicates whether presentation services data was sent. Presentation services data
is the form used for PREPARE, COMMIT, and ROLLBACK synchpoint requests.
UCDATA:
Indicates whether user control data was sent.
ERDATA:
Indicates whether error data was sent.
4-14
Hiperstation for Mainframe Servers User Guide
Note:
The absence of PSDATA, UCDATA, and ERDATA indicates that normal
application data was sent.
MAPNAME
Specifies the name of any map that was sent along with the data.
ENCRYPT
Indicates whether the data is encrypted.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file
that is associated with this occurrence of the tag.
<SEND_ERROR> Tag
Indicates that the TP sent an error response to the other side of the conversation. This tag
has a CPIC form of CMSERR. The content of this tag (contained in subsequent CONTENT
tags) is any LOGDATA that is present.
SENSE
The four-byte SNA sense data associated with the CMSERR request.
LOGDATA
Indicates whether error log data is present.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
<SEND_EXPEDITED_DATA> Tag
Indicates that the TP sent expedited data. It has a CPIC form of CMSNDX. The content of
this tag (contained in subsequent CONTENT tags) is the expedited data that was sent.
LABEL
If a detail file is used by this script, LABEL identifies the record in the detail file that
is associated with this occurrence of the tag.
Contents of APPC Detail Data
This section describes the contents associated with the following Hiperstation for
Mainframe Servers detail data script tags:
•
•
•
•
•
CMSEND,
CMSERR,
CMSNDX,
CMDEAL,
PIU, and
Unattended Playback of APPC Scripts
4-15
• UNKNOWN.
This information can follow either the CONTENT tag delimiter ( > ), or it can be
contained in a file separate from the tag. The content of a tag is typically applicationdefined data sent by a transaction program. The content can also be error log data, user
control data, complete PIUs, and so on.
Syntax
Whether the detail data is contained within a script or in a separate detail file, the record
format of the detail data is the same:
Fields: L L T T C C C C C C C C V ...
Offset: 0 1 2 3 4 5 6 7 8 9 A B C ...
There are four fields within the detail data structure:
Length (LL)
The first field (LL) is at offset 0 and is two bytes in length. The high-order bit is
always set to zero and the remaining bits indicate the length of the record, which
includes the length of the LL, TT, and CCCCCCCC fields.
The LL value can be from x‘000C’ to x‘7FF8’ (12 to 32760, decimal). These limits are
reduced if the customer uses a record format of V or VB or if an LRECL of less than
32760 is supplied for the dataset.
The LL field is usually equal to the current logical record length (LRECL) of the
record as recognized by the access method, and as stored in the RDW for RECFM=V
datasets. However, if you use a text editor such as ISPF/PDF, which removes trailing
blanks from RECFM=V records, to edit and save the detail data dataset, the LL field
can be different than the record’s LRECL. Hiperstation for Mainframe Servers assumes
that the LL field is correct: if LL is less than the LRECL, only the LL portion is used; if
LL is larger than the LRECL, Hiperstation for Mainframe Servers pads the record with
blanks to reach the LL value.
Padding the record with blanks eliminates the problem introduced by the ISPF/PDF
editor for RECFM=V datasets. This padding process does not actually alter the detail
data dataset, the padding takes place within Hiperstation for Mainframe Servers
buffers at playback time.
Type (TT)
The second field (TT) is at offset two and is two bytes in length. This field indicates
the format of the fields that follow. The values are assigned as follows:
B’0000 xxxx xxxx xxxx’ - Version number of this detail data
B’xxxx
B’xxxx
B’xxxx
B’xxxx
1xxx
x1xx
xx0x
xxx1
xxxx
xxxx
xxxx
xxxx
xxxx’
xxxx’
xxxx’
xxxx’
-
1 = First in chain, 0 = Not first in chain
1 = Last in chain, 0 = Not last in chain
Reserved, must be zero
1 = Data is inbound, 0 = Data is outbound
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
0000
0000
0000
0000
0000
0000
0000
0000
0001’
0010’
0011’
0100’
0101’
0110’
0111’
1000’
-
Basic conversation application data (1)
Mapped conversation application data (2)
Presentation services data (3)
User control data (4)
Error log data (5)
Error data (6)
Null data (7)
Expedited data (8)
4-16
Hiperstation for Mainframe Servers User Guide
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
B’xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
xxxx
0000
0000
0000
0000
0000
0000
0000
1001’
1010’
1011’
1100’
1101’
1110’
1111’
-
Unknown data (9)
PIU (10)
FMH5+PIP PIU (11)
BIND PIU (12)
BIND response PIU (13)
CINIT PIU (14)
CINIT response PIU (15)
Label (CCCCCCCC)
The third field (CCCCCCCC) is at offset four and is eight bytes in length. This field is
a character format label that matches a label found within the associated script. If the
detail data is included in the recording script rather than in a separate detail file, no
“LABEL=label” attribute is contained on any of the script tags. This label field
contains human-readable numbers (as opposed to hex), starting with c‘00000001’
(x‘F0F0F0F0F0F0F0F1’) and incrementing by one for each new record.
Value (V)
The fourth field is at offset 12 and is from 0 through 32748 bytes in length (or less if
the LRECL is more restrictive). If the field is of 0 length (an LL value of x‘000C’) a
transaction program issued a Send_Data with a 0 length data value.
For each of the 15 types of data (B‘xxxx xxxx 0000 0001’ through B‘xxxx xxxx 0000
1111’) indicated in the TT field, this fourth field contains the following, where ll
represents a field length byte and xx represents an arbitrary data byte:
x’ll
x’xx
x’00
x’xx
x’ll
x’ll
x’ll
x’03
x’xx
x’xx
x’xx
x’xx
x’xx
x’xx
x’xx
ll xx ...’
- Basic conversation
...’
- Mapped conversation
01 ...’
- Presentation services
...’
- User control data
ll 12 E1 xx ...’ - Error log data
ll 12 F4 xx ...’ - Error data
ll 12 F1’
- Null data
xx ll ll xx ...’ - Expedited data
...’
- Unknown data
...’
- PIU
...’
- FMH5+PIP PIU
...’
- BIND PIU
...’
- BIND response PIU
...’
- CINIT PIU
...’
- CINIT response PIU
(GDS prefix)
(No GDS prefix)
(Complete RU)
(No GDS prefix)
(GDS prefix)
(GDS prefix)
(GDS prefix)
(Complete RU)
(Portion of RU)
(Complete PIU)
(Complete PIU)
(Complete PIU)
(Complete PIU)
(Complete PIU)
(Complete PIU)
APPC Unattended Playback Statements
APPC Unattended Playback statements provide processing rules and define what
conversations (scripts) to play back.
Following introductory information on the sequencing of statements for APPC testing,
the statements are presented in hierarchal order.
Statement Sequence
Enter statements into your JCL in the sequence shown in Figure 4-1.
Unattended Playback of APPC Scripts
4-17
Figure 4-1. APPC Unattended Playback Statement Sequence
CONTROL STATEMENT
ALLOCATE STATEMENT
SCRIPT STATEMENT
SCRIPT STATEMENT
…
ACCEPT STATEMENT
SCRIPT STATEMENT
SCRIPT STATEMENT
…
There is no limit to the number of ALLOCATE, ACCEPT, or APPCGRP statements or the
number of SCRIPT statements that can follow. The statements have no column
dependence. Continue statements on multiple lines by using the continuation character:
a dash (–). However, the continuation character cannot be used to separate a keyword
and its operand value.
Insert a comment after the continuation character as long as the dash and comment are
separated by at least one blank space.
APPC Unattended Playback Statement Summary
CONTROL: Defines environmental data to Hiperstation for Mainframe Servers. See
“SCRIPT Statement” on page 4-32 for APPC-specific information.
CACHINCL: Identifies which scripts Hiperstation for Mainframe Servers loads into
memory during initialization. See “CACHINCL Statement” on page 4-20 for information.
CACHEXCL: Identifies which scripts Hiperstation for Mainframe Servers will not store in
memory. See “CACHEXCL Statement” on page 4-20 for more information.
COMPANY: Defines an alternative company name to use in the title of the batch
Hiperstation for Mainframe Servers reports. See “COMPANY Statement” on page 4-21 for
information.
TABLEDEF: Defines the playback table using the following parameters: PORTS,
DATADSN, and LOGDSN. See “TABLEDEF Statement” on page 4-21 for more information.
TABLE: Specifies the playback table name to be read in and/or written out. It defines the
data length and number of cells in the table. See “TABLE Statement” on page 4-22 for
more information.
ALLOCATE and ACCEPT: Identify a number of conversations connected to a particular
APPC LU name. See “ALLOCATE and ACCEPT Statements” on page 4-22 for information.
APPCGRP: Similar to the ALLOCATE statement, APPCGRP allows multiple SCRIPT
statements containing the <ALLOCATE> tag. See “APPCGRP Statement” on page 4-29 for
information.
SCRIPT: Identifies a script to run for the conversations defined on the preceding
ALLOCATE or ACCEPT statement. One or more SCRIPT statements follow an ALLOCATE
or ACCEPT statement. See “SCRIPT Statement” on page 4-32 for more information.
* (asterisk): Identifies a comment statement.
4-18
Hiperstation for Mainframe Servers User Guide
CONTROL Statement
The CONTROL statement sets the options that control the operation of all subsequent
ALLOCATE and ACCEPT statements.
CACHEOFF
When used, Hiperstation for Mainframe Servers does not store scripts in memory.
Eliminating this type of processing results in higher I/O for scripts that are run more
than once.
DEFER
When used, Hiperstation for Mainframe Servers forces report consolidation for less
than 50 reports to be written onto DASD by a CONTROL parameter. Report
consolidation saves memory during playbacks where a large number of terminals are
used and memory might be an issue.
LU62PFX(hs62|n)
The one to seven character prefix used to define Hiperstation for Mainframe Servers
APPC APPLIDs during installation. The default prefix value is HS62. Only change this
variable if your site changed the node names during installation. Otherwise, the
default value is acceptable.
LU62SFX(4|n)
The length of the suffix used to define Hiperstation for Mainframe Servers APPC
APPLIDs during installation. The default suffix value is four. Only change this
variable if your site changed the node names during installation; otherwise, the
default value is acceptable.
LUALIAS(USERVAR|GENERIC|NONE)
Prepares Hiperstation for Mainframe Servers to send and expect to receive alias LU
names. An LU has a real name and may have an alias name. The real name is defined
to VTAM with an APPL statement in SYS1.VTAMLST. Hiperstation for Mainframe
Servers creates the alias name dynamically using the VTAM USERVAR or generic
resource.
Unattended Playback of APPC Scripts
4-19
The default value is LUALIAS(USERVAR), which indicates that Hiperstation for
Mainframe Servers uses any values on the SNDALIAS and RCVALIAS parameters as
VTAM USERVARS. For more information on these options, see the SNA Programmer’s
LU 6.2 Guide, IBM document number SC31-8811.
MSGFORM
When used, Hiperstation for Mainframe Servers time stamps messages in the
SYSPRINT dataset. The default is no time stamps.
NODEFER
When used, Hiperstation for Mainframe Servers suppresses report consolidation.
Report consolidation is programatically turned on when 50 or more reports are to be
written onto DASD. Report consolidation saves memory during playbacks where a
large number of terminals are used and memory could be an issue.
NOFMH5TO(300|sss)
(No FMH5 Time Out) The number of seconds for Hiperstation for Mainframe Servers
to wait for an FMH5 from the APPC partner. This is measured in whole seconds, with
a 300 seconds (5 minutes) default. If the conversation log has ACCEPT statements
and the partner applications might not initiate all conversations within the default
amount of time, make this value larger than the default.
NORESPTO(45|sss)
(No Response Time Out) The number of seconds for Hiperstation for Mainframe
Servers to wait for a response from the APPC partner. This is measured in whole
seconds, with a 45 second default. If the partner application normally takes more
than 45 seconds to respond, make this value larger than the default.
If the time expires without a response from the partner, Hiperstation for Mainframe
Servers issues an informational message and the play process continues.
REXXOFF
When used, Hiperstation for Mainframe Servers does not preprocess scripts using
REXX. Eliminating this preprocessing results in more efficient (CPU and memory)
running of scripts. Only use this parameter if your scripts do not contain REXX.
TRACE(sysout_class|dataset)
If this keyword is present, Hiperstation for Mainframe Servers prints internal
information. The amount of material printed can be substantial, and the trace
material format is not documented.
CAUTION:
This option traces internal Hiperstation for Mainframe Servers information. Do not
use TRACE without guidance from Hiperstation for Mainframe Servers Customer
Support.
USDATE(YES|NO)
The format of the date field. Enter YES (default) for MM/DD/YY. Enter NO for
YY/MM/DD.
USESTIME
(Use Start Time) If present, each ALLOCATE statement containing an STIME
parameter starts at a time interval after the start of the playback job, rather than
immediately. If the USESTIME parameter is not supplied, or if an ALLOCATE
statement does not contain an STIME parameter, the ALLOCATE statements start
when the playback job begins.
With USESTIME supplied, the ALLOCATE statement containing the earliest STIME
value starts when the playback job begins. The ALLOCATE statement with the next
chronological STIME value then starts only after the amount of time indicated by the
4-20
Hiperstation for Mainframe Servers User Guide
difference in STIME values has elapsed. For example, assume the following playback
job begins at exactly 9:00 AM:
CONTROL USESTIME
*
ALLOCATE ... STIME(‘2006/07/19_12:05:00.000000’)
SCRIPT(AAA)
*
ALLOCATE ... STIME(‘2006/07/19_12:00:00.000000’)
SCRIPT(BBB)
Script BBB starts at 9:00 AM and script AAA starts at 9:05 AM.
Note: If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the two
parameters are used together, Hiperstation for Mainframe Servers issues error
EHSB074I - KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED ON
CONTROL STATEMENT, ignores the TIMESYNC parameter, and continues
with playback.
UNIT(unit)
The unit on which Hiperstation dynamically allocates the journal or log datasets.
VOL(volume)
The DASD volume on which Hiperstation dynamically allocates the journal or log
datasets.
Note:
SMS, or other DASD management tools, can override the value specified on
the VOL parameter.
CACHEXCL Statement
The CACHEXCL statement identifies scripts to not store in memory. You can use one or
more CACHEXCL statements.
ddname(script)
The script not to store in memory.
CACHINCL Statement
The CACHINCL statement identifies the scripts that Hiperstation for Mainframe Servers
preloads into memory at initialization. You can use one or more CACHINCL statements.
Unattended Playback of APPC Scripts
4-21
ddname(script)
The script name and location. If you do not enter a ddname, Hiperstation for
Mainframe Servers assumes SYSLIB is the ddname.
COMPANY Statement
A COMPANY statement identifies a company name for all of the batch reports.
companyname
Identifies a company name up to 40 bytes long. The default is Compuware
Corporation. If the company name includes dashes or blanks, enclose the name in
single quotes.
TABLEDEF Statement
The TABLEDEF statement defines the number of ports that will be used with your
playback tables and specifies the dataset names for the input (DATADSN) and output
(LOGDSN) files.
PORTS(n)
Specifies the total number of ports that will be used in the playback. This is the total
number of APPC ALLOCATES. A port is assigned to each ALLOCATE/APPCGRP in the
playback, but a playback table cannot be assigned to a specific ALLOCATE/APPCGRP.
Therefore, a table must contain all possible ports that will be assigned during
playback. This parameter is required.
DATADSN(datasetname)
Specifies the dataset name of your input table. Input data is used to import external
data into a table that will be used with the <REPLACE> tag. The maximum length is
260 (256 bytes of data plus four bytes for the RDW (record descriptor word)).
DATADSN must be a PDSE file. This parameter is required.
LOGDSN(datasetname)
Specifies the dataset name of the log file where your output data will be put. The
maximum length for log data is the length specified in DATADSN plus 50 or 310 (256
bytes of data plus four bytes for the RDW plus 50). LOGDSN must be a PDSE file. This
parameter is required.
4-22
Hiperstation for Mainframe Servers User Guide
TABLE Statement
The table specified using the TABLE statement
ID(membername)
Specifies the table’s name, which is a member name of DATADSN and/or LOGDSN.
This parameter is required.
REPEATS(n)
This value is used in conjunction with the PORTS parameter in the TABLEDEF
statement to define the number of entries in the table. REPEATS is a required
parameter since there is no default number of repeats. This parameter is required.
DATALEN(n)
Sets the length of the replacement data stream. The maximum length is 256 bytes.
This parameter is required.
DATAIN
This reads the DATADSN member into the playback table.
LOG
Writes the contents of the table into the LOGDSN member.
INIT(NULL|SPACE|ZERO)
Initializes the playback table. Sets the table entry’s default to a null value (x‘00’), a
space (x‘40’), or a zero (x‘F0’). NULL is the default.
ALLOCATE and ACCEPT Statements
The ALLOCATE and ACCEPT statements set APPC control and conversation-specific
values. ALLOCATE sends an APPC allocation. ACCEPT receives an APPC allocation.
Control-specific values must appear on ALLOCATE and ACCEPT statements in the
conversation log. They are not valid in the script.
ALLOCATE conversation-specific values can appear in either the conversation log or the
script. ACCEPT conversation-specific values must appear in the conversation log. The
ALLOCATE statement (with or without conversation-specific values) must always be
present in the conversation log, since its subparameter SCRIPT contains the script name.
The script can then contain an ALLOCATE statement with additional conversationspecific values.
Note:
There can be only one ALLOCATE statement in a script.
Before running playback, the conversation log must be changed so that each ALLOCATE
statement names a Hiperstation for Mainframe Servers LU. This name is different from
the LU name originally recorded in the conversation log (in most situations).
Replace the ALLOCATE keyword in the conversation log with the ACCEPT statement if
Hiperstation for Mainframe Servers is to receive rather than send an APPC allocation.
Data defined in the conversation log overrides any data defined in the script.
Unattended Playback of APPC Scripts
4-23
Control and conversation-specific values of the ALLOCATE and ACCEPT statements are
shown in the following syntax diagram. Parameter values are described after the diagram.
The following parameters are valid in the conversation log, but are invalid in the script:
•
ALLSYNCH
•
SYNCH
•
COUNT
•
THINK
•
LOGD
•
THOPT
•
RLOG
•
THPCT
•
SERIAL
•
TIMESYNC
•
STARTDLY
•
TRACE
•
SUMMARY
•
VTAMTRCE
4-24
Hiperstation for Mainframe Servers User Guide
Required Parameters
LOGMODE(modename)
Identifies the VTAM session logmode used for this conversation. When you use the
ACCEPT statement, you must enter a LOGMODE value.
RECEIVER(luname)
On an ALLOCATE statement, RECEIVER identifies the logical unit (LU) to which
Hiperstation sends the ALLOCATE request (an FMH5). On an ACCEPT statement,
RECEIVER identifies the LU name representing Hiperstation for Mainframe Servers.
TPNAME(tpname)
Identifies the transaction program being invoked. When you use the ACCEPT
statement, you must enter a TPNAME value.
Optional Parameters
ALLSYNCH
Tells Hiperstation for Mainframe Servers to send each new APPC verb in unison for
every ALLOCATE and ACCEPT statement containing the ALLSYNCH parameter. That
is, for each script controlled by an ALLOCATE or ACCEPT statement containing the
ALLSYNCH parameter, Hiperstation for Mainframe Servers waits for all required
responses from the partner applications before sending any new data.
With this technique, all scripts controlled by the ALLSYNCH parameter are played
using the speed of the “slowest” application. New data is not sent to any application
until all applications have responded.
Portions of a script that require no response from the application (for example, two
SEND_DATA verbs back-to-back) cause Hiperstation for Mainframe Servers to issue
the next APPC verb in each script without delay.
ALLSYNCH must be supplied on more than one ALLOCATE or ACCEPT statement in
a conversation log. Use ALLSYNCH when the scripts being played back on the
ALLOCATE and ACCEPT statements in a conversation log are identical.
Using ALLSYNCH to keep multiple-identical scripts in unison is a useful way to stress
the communications network, not your applications.
Use the SYNCH parameter, instead of ALLSYNCH, to run conversations on a single
ALLOCATE or ACCEPT statement in a synchronized manner.
COUNT(nnn)
Sets the number of conversations to be started or accepted by the ALLOCATE or
ACCEPT statement. The maximum number of conversations that can be run depends
on the amount of virtual storage available to the playback job. If the COUNT
parameter is not supplied, a single conversation is started. COUNT is similar to the
TERM(nn) parameter on the GROUP statement, which starts multiple sessions.
Use the COUNT parameter to run several identical conversations under a single
ALLOCATE or ACCEPT statement. By default, all conversations defined on an
ALLOCATE statement with the COUNT parameter are started at the same instant. To
start each of the conversations with a time interval, use the LOGD parameter in
conjunction with the COUNT parameter.
The COUNT and REPEAT parameters can appear on the same statement. The total
number of conversations that run reflects the product of the COUNT and REPEAT
values.
FTIME(timestamp)
(Finish Time). Sets the end-date and end-time of the originally recorded
conversation. The FTIME value is not used during playback.
Unattended Playback of APPC Scripts
4-25
LOGD(ss)
(Logon Delay). Sets the number of seconds between the start of each new
conversation defined by the COUNT parameter. If LOGD is not supplied on an
ALLOCATE statement that contains a COUNT parameter, all conversations are started
as soon as the ALLOCATE statement becomes active (after STARTDLY or STIME
processing, if any).
LOGD enables the start of identical conversations over a period of time, rather than
all at once. Supplying the LOGD parameter on an ALLOCATE statement that does not
contain a COUNT parameter has no effect.
LUWINST(instance_no)
Sets the logical unit of work instance number (6 bytes) for this conversation.
LUWNAME(luwname)
Defines the logical unit of work name for this conversation. The LUWNAME is not
the same entity as the LUs used in the conversation. A logical unit of work represents
a resource that is recoverable by an application such as CICS, IMS, or DB2.
LUWSEQ(sequence_no)
Sets the logical unit of work sequence number (2 bytes) for this conversation.
PIP(pip_value)
Supplies program initialization parameters. You can supply multiple PIP parameters.
PIP data is used by some APPC applications to send initialization parameters to a
partner application.
RCVALIAS(lualias)
Identifies an alias name for the RECEIVER LU name.
REPEAT(1|nnn)
Sets the number of times to start the conversations controlled by the ALLOCATE
statement. The scripts controlled by an ALLOCATE statement that contains the
REPEAT parameter runs n times sequentially. The default is 1 (one). There is no
maximum limit.
Note:
REPEAT is not supported on the ACCEPT statement. Use the COUNT
parameter instead.
REPEAT starts a new conversation after the previous conversation on the same
ALLOCATE statement has finished. The COUNT parameter, in contrast, starts new
conversations all at once (unless modified by the LOGD parameter).
Both the REPEAT and COUNT parameters can appear on the same statement. The
total number of conversations that run is the product of the REPEAT and COUNT
values.
RLOG(sysout_class|dataset)
Indicates that Hiperstation for Mainframe Servers allocates a REXX log for each APPC
conversation in the group. If the value is a single character, Hiperstation for
Mainframe Servers allocates the REXX log to SYSOUT in the class set by that single
character. If the value is more than one character, Hiperstation for Mainframe Servers
allocates the REXX log to a permanent file. By default, the REXX output is directed to
the SYSPRINT dataset.
The dataset value can be either a dataset name by itself or a dataset name with a
member name:
RLOG(dataset)
RLOG(dataset(member))
The dataset or member or both can contain wildcard characters (* or ?).
4-26
Hiperstation for Mainframe Servers User Guide
If a dataset name is supplied with no member and no wildcards, a dataset is created
with the name dsn.Pnnnn, where nnnn is the port number assigned to the
conversation.
SECPROF(sec_profile)
The security profile for this conversation.
SECPSWD(password|DECRYPT(password))
The password for the supplied user ID. Use DECRYPT to decrypt the password in the
script. If users change the password, they have the option of editing the script and
putting the password in plain text (omitting the DECRYPT()).
SECURITY(NONE|SAME|PGM|PRST|SAMEPRST)
The type of conversation level security in use by this conversation:
NONE: No security is in use.
SAME: A user has already been verified.
PGM: Verify the user ID and password using a security program.
PRST: Implement persistent verification and require user signon
SAMEPRST: Implement persistent verification and do not require user signon
SECUSER(userid)
The security user ID for this conversation.
SENDER(luname)
The LU name that Hiperstation for Mainframe Servers uses as the sender of the
ALLOCATE request. Some transaction programs that receive an ALLOCATE may be
sensitive to the LU the ALLOCATE originated from. This parameter lets you control
the originating LU (the ALLOCATE sender).
When SENDER appears on an ALLOCATE statement, the value is the LU name that
Hiperstation for Mainframe Servers uses to represent itself. This LU name must not be
in use by any other application while the playback job is running. This LU name
must be defined to VTAM on the MVS system where the playback job runs, and the
logical unit must be activated, which is done automatically at some sites or can be
done manually with the MVS VARY command.
Before running playback, the conversation log must be changed so that each
ALLOCATE statement names a Hiperstation for Mainframe Servers LU. This name is
different from the LU name originally recorded in the conversation log (in most
situations).
When the SENDER parameter appears on an ACCEPT statement, the value is the LU
name in use by the partner application (the application that initiates the APPC
conversation with Hiperstation for Mainframe Servers).
SERIAL
If this keyword is present, all requests made to VTAM are serialized. Each request
finishes before the next starts. SERIAL ensures, on a job-wide basis, that no two ports
have an APPC verb in progress at the same time.
SINGLE
Allows support for single session APPC devices.
SNDALIAS(lualias)
An alias name for the SENDER LU name.
STARTDLY(ss)
Sets the number of seconds between the start of the playback job and the start of the
ALLOCATE statement containing this STARTDLY parameter. If the USESTIME
Unattended Playback of APPC Scripts
4-27
parameter is not supplied on the CONTROL statement, all conversations defined on
an ALLOCATE statement begin when the playback job begins. STARTDLY delays the
start of an ALLOCATE statement until the set number of seconds has elapsed.
The STIME parameter on an ALLOCATE statement used in conjunction with the
USESTIME parameter on the CONTROL statement provides a similar activity.
If defined by the LOGD parameter, the conversation starts after the sum of LOGD
and STARTDLY expires.
STIME(‘timestamp’)
Indicates the date and time when Hiperstation for Mainframe Servers recorded the
ALLOCATE request (unless you have edited the STIME value directly). When you use
USESTIME on the CONTROL statement, an STIME value can be used to control the
activation of an ALLOCATE statement.
The STIME value is ignored if the USESTIME parameter is not supplied on the
CONTROL statement.
Note:
Using sub-second STIME intervals with USESTIME is not recommended. One
second should be the smallest STIME amount used.
SUMMARY(sysout_class|dataset)
Tells Hiperstation for Mainframe Servers to generate a summary report for the group.
If the value is a single character, Hiperstation for Mainframe Servers allocates the
summary report to SYSOUT in the class set by that single character. If the value is
more than one character, Hiperstation for Mainframe Servers allocates the summary
report to a permanent file. By default, no summary report is produced.
The dataset value can be either a dataset name by itself or a dataset name with a
member name:
SUMMARY(dataset)
SUMMARY(dataset(member))
To allocate a PDSE at the same time, use the format:
SUMMARY(dataset*(member*))
The dataset must be either a sequential file or a PDSE. You cannot use a PDS as a
summary report file because playback can write multiple members at the same time,
a function not supported by PDSs.
The dataset or member or both can contain wildcard characters (* or ?).
If a dataset name is supplied with no wildcards, no suffix is added to the dataset
name.
SYNCH
Controls when data is sent by Hiperstation for Mainframe Servers to the partner
application for all conversations running under the current ALLOCATE or ACCEPT
statement. To run multiple conversations in parallel, use the COUNT parameter
along with SYNCH.
SYNCH tells Hiperstation for Mainframe Servers to send each new APPC verb for this
ALLOCATE or ACCEPT statement in unison. For each conversation running under
this ALLOCATE or ACCEPT statement, Hiperstation for Mainframe Servers waits for
all required responses from the partner applications before sending any new data.
With this technique, the playback of conversations under the ALLOCATE or ACCEPT
statement is at the speed of the “slowest” application. New data is not sent to any
application until all applications have responded.
For portions of a script that do not require a response from the application (for
example, two SEND_DATA verbs back-to-back), Hiperstation for Mainframe Servers
4-28
Hiperstation for Mainframe Servers User Guide
has nothing to wait for from the application; it issues the next APPC verb in each
script without waiting.
The ALLSYNCH parameter can be used instead of SYNCH to run conversations under
several ALLOCATE and ACCEPT statements in this synchronized manner.
SYNCLVL(NONE|CONFIRM|SYNCPT)
Indicates the type of synchpoint protocol used in the conversation. For more
information on the NONE, CONFIRM, and SYNCPT options, see the SNA
Programmer’s LU 6.2 Guide, IBM document number SC31-8811.
THINK(mm,ss)
Sets a think time, which is the amount of time that Hiperstation for Mainframe
Servers waits before sending the next APPC verb. This parameter is only valid in
conjunction with THOPT(3). For example, the statement: ALLOCATE... THOPT(3)
THINK(0,1) play back a script with one second between each APPC verb that
Hiperstation for Mainframe Servers sends to the partner.
THOPT(1|2|3)
Controls the speed at which APPC conversations are played.
1. Play at full speed. The data is played back as fast as the system can run. This
is the default.
2. Think time recorded in the script. Think time is represented by the <TIME>
tag recorded in the script.
3. User-specified think time. Tells Hiperstation for Mainframe Servers to use the
think time set by the THINK(minutes,seconds) parameter.
THPCT(nnn)
Sets a think time percentage. This parameter is only valid in conjunction with
THOPT(2|3). For example, the statement: ALLOCATE … THOPT(2) THPCT(25) plays
back the script at 25 percent of the original think time recorded in the script. The
APPC data sent to the partner by Hiperstation for Mainframe Servers is sent after
waiting for 25 percent of the amount of time recorded in the script.
THPCT values of less than 100 cause the script to be played back with a think time
less than originally recorded. THPCT values greater than 100 cause the script to be
played back with a think time greater than originally recorded.
TIMESYNC
When supplied on more than one ALLOCATE or ACCEPT statement, indicates that
the data in all scripts controlled by the TIMESYNC parameter is sent in the order of
the time stamps found on the APPC verbs within the scripts. The time stamps are
treated as sequencing instructions to decide which data to send to the partner
applications next.
TIMESYNC single-threads the sending of data to the partner applications and
guarantees that the data is sent in the same sequence as originally recorded.
TIMESYNC, by itself, does not control how “fast” the playback takes place, only the
order of data sent among several conversations. Use the THOPT, THINK, and THPCT
parameters to control the speed of the playback.
Supplying the TIMESYNC parameter on only a single ALLOCATE or ACCEPT
statement has no effect.
Note: If USESTIME is used with TIMESYNC, only USESTIME is recognized. If the two
parameters are used together, Hiperstation for Mainframe Servers issues error
EHSB074I - KEYWORD(TIMESYNC) IGNORED - USESTIME SPECIFIED ON
CONTROL STATEMENT, ignores the TIMESYNC parameter, and continues
with playback.
Unattended Playback of APPC Scripts
4-29
TRACE(sysout_class|dataset)
This option traces internal Hiperstation for Mainframe Servers information. Do not
use TRACE without guidance from Hiperstation for Mainframe Servers Customer
Support.
If used, Hiperstation for Mainframe Servers allocates a trace for each APPC
conversation. Trace contains the actual APPC datastreams that flowed between the
application and the Hiperstation for Mainframe Servers transaction program. If the
value is a single character, the trace is allocated to SYSOUT in the class set by that
single character. If the value is more than one character, the trace is allocated to a
permanent file.
By default, no trace is allocated.
The dataset value can be either a dataset name by itself or a dataset name with a
member name:
TRACE(dataset)
TRACE(dataset(member))
The dataset or member or both can contain wildcard characters (* or ?).
If a dataset name is supplied with no member and no wildcards, a dataset is created
with the name dsn.Pnnnn, where nnnn is the port number assigned to the
conversation.
TYPE(MAPPED|BASIC|FDMAPPED|FDBASIC)
Indicates whether the conversation uses the MAPPED, BASIC, full-duplex MAPPED,
or full-duplex BASIC protocol. For more information on these options, see the SNA
Programmer’s LU 6.2 Guide, IBM document number SC31-8811.
VTAMTRCE
Tells Hiperstation for Mainframe Servers that the trace contains additional VTAM
data such as the bind, RPLs, and response and bracket conditions.
APPCGRP Statement
The APPCGRP statement is similar to the ALLOCATE statement, but it allows multiple
SCRIPT statements containing the <ALLOCATE> tag. While the APPCGRP statement can
use all of the keywords and parameters listed for the ALLOCATE/ACCEPT statements, it is
recommended that special care be given when using keywords not shown on the
APPCGRP syntax diagram.
4-30
Hiperstation for Mainframe Servers User Guide
APPCGRP starts conversations specified in script statements in sequence. As a result, only
one conversation is active at any one time. Each APPCGRP statement uses one parallel
session. Multiple script statements within APPCGRP run in serial, one at a time.
Required Parameters
RECEIVER (luname)
RECEIVER identifies the logical unit (LU) to which Hiperstation sends the APPCGRP
request (an FMH5), most likely the same receiver the original ALLOCATE statement
contained.
SENDER (luname)
The LU name that Hiperstation for Mainframe Servers uses as the sender of the
ALLOCATE request. Some transaction programs that receive an ALLOCATE request
may be sensitive to the LU the ALLOCATE originated from. This parameter lets you
control the originating LU (the ALLOCATE sender).
The value is the LU name that Hiperstation for Mainframe Servers uses to represent
itself. This LU name must not be in use by any other application while the playback
job is running. This LU name must be defined to VTAM on the MVS system where the
playback job runs, and the logical unit must be activated, which is done
automatically at some sites, or can be done manually with the MVS VARY command.
Optional Parameters
COUNT(nnn)
Sets the number of instances for the APPCGRP statement. The maximum number of
APPCGRP statements that can be run depends on the amount of virtual storage
available to the playback job. If the COUNT parameter is not supplied, a single
conversation is started.
Use the COUNT parameter to run several identical series of conversations under a
single APPCGRP statement. The first conversations defined on an APPCGRP
statement with the COUNT parameter are started at the same instant, and
subsequent conversations run serially. To start each of the APPCGRP statements with
a time interval, use the LOGD parameter in conjunction with the COUNT parameter.
The COUNT and REPEAT parameters can appear on the same statement. The total
number of APPCGRP statements or instances of the APPCGRP statement that run
reflects the product of the COUNT and REPEAT values.
LOGD(ss)
(Logon Delay). Sets the number of seconds between the start of each new APPCGRP
statement set by the COUNT parameter. If LOGD is not supplied on an APPCGRP
Unattended Playback of APPC Scripts
4-31
statement that contains a COUNT parameter, all instances of the APPCGRP statement
started immediately (after any STARTDL processing).
LOGD enables the start of all instances of the APPCGRP parameter over a period of
time, rather than all at once. Supplying the LOGD parameter on an APPCGRP
statement that does not contain a COUNT parameter has no effect.
REPEAT (1|nnn)
Sets the number of times to start the APPCGRP statements. The scripts, controlled by
an APPCGRP statement that contains the REPEAT parameter, run n times
sequentially. The default is 1 (one). There is no maximum limit.
REPEAT starts a new conversation after the previous conversation on the same
APPCGRP statement has finished. The COUNT parameter, in contrast, starts new
conversations all at once (unless modified by the LOGD parameter.
Both the REPEAT and COUNT parameters can appear on the same statement. The
total number of APPCGRP statements that run is the product of the REPEAT and
COUNT values.
SKIPPERR
Continues playback at the next script within an APPCGRP if an APPC process error
occurs. This means that processing does not stop if an APPC processing error occurs,
only the script containing the error is not processed. The return code will be set with
the highest return code within the APPCGRP. The REPEAT count for the APPCGRP
will be executed as long as the last script does not get any error. An empty script will
execute without an error and, therefore, it can be used as the last script for proper
APPCGRP REPEAT(nn).
STARTDLY(ss)
Sets the number of seconds between the start of the playback job and the start of the
APPCGRP statement containing the STARTDLY parameter. STARTDLY delays the start
of an APPCGRP statement until the set number of seconds elapses. If defined by the
LOGD parameter, the APPCGRP statement starts after the sum of LOGD and
STARTDLY expires.
SUMMARY (sysout_class|dataset)
Tells Hiperstation for Mainframe Servers to generate a summary report for the group.
If the value is a single character, Hiperstation for Mainframe Servers allocates the
summary report to SYSOUT in the class set by that single character. If the value is
more than one character, Hiperstation for Mainframe Servers allocates the summary
report to a permanent file. By default, no summary report is produced.
The dataset value can be either a dataset name by itself, or a dataset name with a
member name:
SUMMARY(dataset)
SUMMARY(dataset(member))
To allocate a PDSE at the same time, use the format:
SUMMARY(dataset*(member*))
The dataset must be either a sequential file or PDSE. You cannot use a PDS as a
summary report file because playback can write multiple members at the same time,
a function not supported by PDSs.
The dataset or member or both can contain wildcard characters (* or ?).
If a dataset name is supplied with no wildcards, no suffix is added to the dataset
name.
4-32
Hiperstation for Mainframe Servers User Guide
SCRIPT Statement
A SCRIPT statement identifies a script to be played back, and optionally indicates the
number of times to run the script.
Required Parameter
scriptname
Identifies the SCRIPT (member name from the SYSLIB) to be played back.
Optional Parameters
REPEAT(1|nnn)
Identifies the number of times a script plays back. The default is 1 (one).
STOPON(n)
Tells Hiperstation for Mainframe Servers to stop processing when it reaches the
specified number (n) of mismatches for that run. If there are fewer than the set
number of mismatches, script processing continues to the end.
Note:
The message displayed for script termination is the same one that appears
when the script has no mismatches. For this reason, make sure you check all
messages for the playback and/or comparison.
Script Not Found Messages
It is possible that when Hiperstation for Mainframe Servers issues message EMTRM016:
SCRIPT SPECIFIED DOES NOT EXIST, REXX may issue the following messages:
IRX0554E
Explanation:
loaded.
The EXEC load file DDname is not allocated. The REXX EXEC cannot be
User Response: Verify that the script name is correct. Check the SYSLIB to see if it defines the
correct dataset. Verify that inappropriate REXX CALL statements have not run.
IRX0110I
Explanation:
The REXX EXEC cannot be interpreted.
User Response: Verify that the script name is correct. Check the SYSLIB to ensure that it
defines the correct dataset. Verify that inappropriate REXX CALL statements have not run.
IRX0112I
Explanation:
The REXX EXEC cannot be loaded.
User Response: Verify that the script name is correct. Check the SYSLIB to ensure that it
defines the correct dataset. Verify that inappropriate REXX CALL statements have not run.
Unattended Playback Return Codes
Hiperstation for Mainframe Servers 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 Table 4-1 on page 4-34 for a complete list
of APPC return codes.
Unattended Playback of APPC Scripts
4-33
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 ‘script’ or ‘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 display in the user’s TSO
session. On others, return codes are written to a job log. If you need help locating your
return codes, see your systems administrator.
Hiperstation for Mainframe Servers also writes the following informational messages to
the SYSPRINT upon job completion:
EHSB098I MAXIMUM SCRIPT RC=rc, INTERNAL RC=rc
This message, in most cases, reports the highest script and internal return code values.
The larger of these two values is returned as the job step completion code.
Note:
If you did not define custom return codes, this message reports 0 for the SCRIPT
RC value.
If the GROUP statement has multiple scripts, Hiperstation for Mainframe Servers returns
the value set by the last script processed. For example, Hiperstation for Mainframe
Servers reports the return code from the LOGOFF script in the following GROUP.
GROUP
SCRIPT(LOGON)
SCRIPT(TEST)
SCRIPT(LOGOFF)
Due to this processing rule, the EHSB098I message may not report the highest return
code value for this type of playback job. For example, if the TEST script returned an
internal return code value of 4, and the LOGOFF script returned a value of 0, EHSB098I
reports and a value of 0 for the INTERNAL RC.
If the GROUP statement has a COUNT parameter, which initiates concurrent playback
sessions, or a REPEAT parameter, which initiates consecutive playback sessions,
Hiperstation for Mainframe Servers returns the highest value of all of the sessions. For
example, a GROUP statement with COUNT(2) and REPEAT(3) invokes two concurrent
playback sessions, repeated three times consecutively. If the first repeat returns a code of
0 for one playback session and 12 for the other, the second repeat yields 4 and 0, and the
third repeat yields 0 and 0, as shown in the table below, Hiperstation for Mainframe
Servers returns 12 for the job step completion code.
Session 1
Session 2
REPEAT Scripts in GROUP
RC
Scripts in GROUP
RC
1
Script
0
Script
12
2
Script
4
Script
0
3
Script
0
Script
0
If a GROUP statement contains multiple SCRIPT statements, and has a COUNT
parameter, Hiperstation for Mainframe Servers compares the return code set by the last
script processed in each session and returns the highest value. For example, the following
playback statements result in two concurrent playback sessions in which LOGON, TEST
and LOGOFF are played consecutively.
GROUP COUNT(2)
SCRIPT(LOGON)
SCRIPT(TEST)
SCRIPT(LOGOFF)
4-34
Hiperstation for Mainframe Servers User Guide
If the last script processed in the first session yields a code of 4, and the last script
processed in the second session yields a code of 12, as shown in the table below,
Hiperstation for Mainframe Servers returns a job step completion code of 12.
Session 1
Session 2
Scripts in GROUP
RC
Scripts in GROUP
RC
LOGON
0
LOGON
0
TEST
0
TEST
4
LOGOFF
4
LOGOFF
12
In addition to the EHSB098I message, Hiperstation for Mainframe Servers writes status,
error, and warning messages to SYSPRINT. If the playback job step returns a non-zero
code, review the return code description provided in Table 4-1. Then review the warning
and error messages to determine the cause of the problem. Refer to the Hiperstation
Messages and Codes for help with error resolution.
Table 4-1. APPC Playback Return Codes
Code
Description
0
All scripts ran successfully.
4
Warning: Any miscomparison caused by APPC processing. This includes:
12
•
Expected and actual record data lengths not equal
•
Expected and actual log data lengths not equal
•
Expected and actual sense data values not equal
•
An ACCEPT did not receive an ALLOCATE by the time the NOFMH5TO expired
•
A conversation log statement was rejected.
Error: APPC unattended playback process contains exceptions at the record level. For example:
•
One or more corresponding record lengths not equal
•
Sense data not equal on one or more records
•
Log data not the same length for corresponding records.
16
Error: Invalid script statement found.
20
Serious Error:
24
•
Port could not be started because APPC application is not valid or active
•
Port started, but could not be initialized
•
REXX EXEC/script not found.
Serious Error: The first port to start could not get started — the unattended playback process
is terminated.
Unattended Playback of APPC Scripts
4-35
Table 4-1. APPC Playback Return Codes
Code
Description
28
SEVERE ERROR: Port subtask could not be started.
•
SYSPRINT could not be opened or error processing SYSPRINT
•
SYSIN could not be opened or error processing SYSIN
•
SYSCNTL could not be opened or error processing SYSCNTL
•
User failed security authorization
•
APPC pool names could not be built from the provided prefix and suffix values
•
Product is not licensed for APPC unattended mode processing
•
APPC is not supported for APPC scripts
•
Trace could not be initialized
•
No terminals found to be played back
•
VTAM initialization error.
•
A syntax error exists on the JOURNAL, LOG, XLOG, RLOG, AUTODOC, SUMMARY, or
TRACE keywords on the CONTROL, GROUP, ALLOCATE, or COMPARE statements.
32
SERIOUS ERROR: A print file is full or could not be processed. The print files are the JOURNAL,
LOG, XLOG, RLOG, AUTODOC, SUMMARY, and TRACE files.
36
Playback Error: Any playback table related error will set return code 36.
40
SEVERE ERROR: Hiperstation for Mainframe Servers is about to expire or has expired. Contact
Hiperstation for Mainframe Servers Customer Support for a date extension and new release
availability information.
44
SECURITY ERROR: Hiperstation for Mainframe Servers detected an unauthorized default
parameter table. Contact your systems programmer.
APPC REXX Variables
Hiperstation for Mainframe Servers provides several predefined REXX variables that
return information during playback. Incorporate the variables into REXX logic that you
can optionally add to your scripts. The following sections provide definitions for the
REXX variables.
To learn more about using the variables, including detailed examples, refer to the
Hiperstation Scripting Reference.
APPC Error Determination REXX Variables
The following variables provide information pertaining to an error encountered during
script processing. During playback, Hiperstation for Mainframe Servers issues VTAM
macros to perform operations indicated in the script. Return codes from these macros are
placed into the following REXX variables.
Many of these variables provide data from the Request Parameter List (RPL). These values
are the character representations of binary values.
REXX
Variables
Cpicrc
Description
Contains the equivalent CPIC return code for the error. If there is no error, the CPICRC
is zero.
4-36
Hiperstation for Mainframe Servers User Guide
REXX
Variables
Description
Errmsgno
Contains the Hiperstation for Mainframe Servers error message number of the
error condition.
Rplfbk2
Contains the feedback code from the previous APPC operation. It is the register 0 value.
Rplrtncd
Contains the return code from the previous APPC operation. It is the register 15 value.
Rpl6ccst
Contains the conversation state from the VTAM RPL of the previous APPC operation.
Rpl6rcpr
Contains the primary reason code from the VTAM RPL of the previous APPC operation.
Rpl6rcsc
Contains the secondary reason code from the VTAM RPL of the previous APPC
operation.
Rpl6snsi
Contains the sense data from the VTAM RPL of the previous APPC operation.
Rpl6what
Contains the “what received” value from the VTAM RPL of the previous APPC operation.
APPC Environment Data REXX Variables
The following variables provide information pertaining to the APPC conversation. These
variables cannot be used to set their corresponding conversation values. These are readonly informational variables available for review while a script is running.
REXX
Variables
Description
Convcorr
Contains the conversation correlator.
Logmode
Contains the name of the logmode.
Luwinst
Contains the logical unit of work instance number for the conversation.
Luwname
Contains the logical unit of work name for the conversation.
Luwseq
Contains the logical unit of work sequence number for the conversation.
Opnrcdes
Contains the feedback code from the CNOS.
Opnrtncd
Contains the return code from the CNOS.
Receiver
Contains the LU name receiving the ALLOCATE.
Secuser
Contains the userID used for security purposes.
Sender
Contains the LU name sending the ALLOCATE.
Tpname
Contains the transaction program name.
APPC Application Data REXX Variables
The following variables provide values for both the expected and the actual data received
from an application during playback. The variables are read-only and are set after normal
or expedited data is received from the partner application. The values are usable only
immediately after the set of <CONTENT> tags associated with the <SEND_DATA> or
<SEND_EXPEDITED_DATA> verb.
The variables represent the data received from the partner application. They must be
examined in the context of an <INBOUND> group of verbs in a Hiperstation for
Mainframe Servers-allocated conversation, or in an <OUTBOUND> group of verbs in a
Hiperstation for Mainframe Servers-accepted conversation.
For example, an ALLOCATE statement in the conversation log runs the script shown in
Figure 4-2 on page 4-37. In this example, the first REXX SAY statement lists a null value
(0 length string) because Hiperstation for Mainframe Servers has not received data from
the partner application. However, the four REXX SAY statements in the <INBOUND>
group produce meaningful output.
Unattended Playback of APPC Scripts
4-37
Figure 4-2. Sample Script Using APPC Application Data REXX Variables
<VERSION>8
<ALLOCATE>
<OUTBOUND>
<SEND_DATA>
<CONTENT>....00000001This is outbound data
say appc_actual
/* This is not meaningful, a null value is displayed. */
<PREPARE_TO_RECEIVE>
</OUTBOUND>
<INBOUND>
<SEND_DATA>
<CONTENT>....00000002This is inbound data
say appc_actual
/* The actual data received (up to 2048 bytes).
say appc_expected
/* The data we expect to receive (complete).
say appc_actual_length
/* The length of the actual data (may be more than 2048).
say appc_expected_length /* The length of data we expect to receive (complete).
<PREPARE_TO_RECEIVE>
</INBOUND>
<OUTBOUND>
<DEALLOCATE>
</OUTBOUND>
*/
*/
*/
*/
APPC_ACTUAL
The APPC_ACTUAL variable contains the data most recently received from the partner
application. This data can either be normal data from a <SEND_DATA> verb or expedited
data from a <SEND_EXPEDITED_DATA> verb. If the application sends more than 2048
bytes of data, only the first 2048 bytes are available in this variable.
The variable contains only a relevant value immediately after the set of <CONTENT> tags
associated with <SEND_DATA> or <SEND_EXPEDITED_DATA> verbs. This value is reset as
soon as another script tag is encountered. Likewise, the variable is only meaningful
following APPC verbs that represent data received by Hiperstation for Mainframe Servers.
Examining the variable in a section of the script where Hiperstation for Mainframe
Servers is sending data is not meaningful.
The example below shows the APPC_ACTUAL variable used to produce meaningful data
after the set of a <CONTENT> tag that is associated with a <SEND_DATA> verb.
Figure 4-3. Sample Script Containing the APPC_ACTUAL Variable
<INBOUND>
<SEND_DATA>
<CONTENT>....00000002This is inbound data
say appc_actual
/* The actual data received (up to 2048 bytes). */
<PREPARE_TO_RECEIVE>
say appc_actual
/* A 0 length string is displayed.
*/
</INBOUND>
APPC_EXPECTED
The APPC_EXPECTED variable contains the data that Hiperstation for Mainframe Servers
expects to receive from the partner application as a result of the most recently issued
<SEND_DATA> or <SEND_EXPEDITED_DATA> verb. The value represents the data
contained in the script or the associated detail file. The complete expected value is placed
in the variable, even if it exceeds 2048 bytes (in contrast to the APPC_ACTUAL variable).
The variable contains a relevant value only immediately following the set of
<CONTENT> tags that is associated with the <SEND_DATA> or
<SEND_EXPEDITED_DATA> verb, and its value is reset when the next script tag is
encountered. The variable generates useful data only when it is set after APPC verbs that
represent data received by Hiperstation for Mainframe Servers. Consequently, using the
variable in a section of the script where Hiperstation for Mainframe Servers is sending
data will not produce meaningful data.
4-38
Hiperstation for Mainframe Servers User Guide
The example below shows the APPC_EXPECTED variable used to produce meaningful
data after the <CONTENT> tag associated with the <SEND_DATA> verb.
Figure 4-4. Sample Script Containing the APPC_EXPECTED Variable
<INBOUND>
<SEND_DATA>
<CONTENT>....00000002This is inbound data
say appc_expected
/* Displays‘This is inbound data’. */
<PREPARE_TO_RECEIVE>
say appc_expected
/* A 0 length string is displayed. */
</INBOUND>
APPC_ACTUAL_LENGTH
The APPC_ACTUAL_LENGTH variable contains the length of the data most recently
received from the partner application. This value can be obtained from either the normal
data from a <SEND_DATA> verb or from expedited data from a
<SEND_EXPEDITED_DATA> verb. This variable contains the exact length of the data
received from the partner, even if it exceeds 2048 bytes. Consequently, this value may be
larger than the result of the REXX built-in: LENGTH(APPC_ACTUAL).
The APPC_ACTUAL_LENGTH variable contains a relevant value only immediately
following the set of <CONTENT> tags that is associated with the <SEND_DATA> or the
<SEND_EXPEDITED_DATA> verb, and its value is reset when the next script tag is
encountered. The variable generates useful data only when it is set after APPC verbs that
represent data received by Hiperstation for Mainframe Servers. As a result, using the
variable in a section of the script where Hiperstation for Mainframe Servers is sending
data will not produce meaningful data.
The example below shows the APPC_ACTUAL_LENGTH variable used to produce
meaningful data after the <CONTENT> tag associated with the <SEND_DATA> verb.
Figure 4-5. Sample Script Containing the APPC_ACTUAL_LENGTH Variable
<INBOUND>8
<SEND_DATA>
<CONTENT>....00000002This is inbound data
say appc_actual_length /* The length of the actual data (may be more than 2048). */
<PREPARE_TO_RECEIVE>
say appc_actual_length /* A 0 value is displayed.*/
</INBOUND>
APPC_EXPECTED_LENGTH
The APPC_EXPECTED_LENGTH variable contains the length of the data that
Hiperstation for Mainframe Servers expects to receive from the partner application. This
can either be normal data from a <SEND_DATA> verb or expedited data from a
<SEND_EXPEDITED_DATA> verb. The value is the length of the data contained in the
script or associated detail file. The length does not include any of the Hiperstation for
Mainframe Servers header information that appears on <CONTENT> tags (the first 12
bytes).
This variable contains a relevant value only immediately following the set of
<CONTENT> tags associated with the <SEND_DATA> or the <SEND_EXPEDITED_DATA>
verb. Its value is reset when the next script tag is encountered. The variable generates
useful data when it is set after APPC verbs that represent data received by Hiperstation for
Mainframe Servers. Consequently, using the variable in a section of the script where
Hiperstation for Mainframe Servers is sending data will not produce meaningful data.
The example below shows the APPC_EXPECTED_LENGTH variable used to produce
meaningful data after the set of a <CONTENT> tag associated with a <SEND_DATA> verb.
Unattended Playback of APPC Scripts
4-39
Figure 4-6. Sample Script Containing the ACCP_EXPECTED_LENGTH Variable
<INBOUND>8
<SEND_DATA>
<CONTENT>....00000002This is inbound data
say appc_expected_length /* The length of data expcted to receve (20 bytes). */
<PREPARE_TO_RECEIVE>
say appc_expected_length /* A 0 value is displayed. */
</INBOUND>
APPC General REXX Variables
The following variables return general playback information.
CYCLE
Returns the repeat value of the script. This value is set to one when a script begins
execution.
GRPCYCLE
Returns the repeat value of the ALLOCATE or APPCGRP statement. This value is set to
one when an ALLOCATE or APPCGRP statement begins execution.
The variable is increased by one each time an ALLOCATE or APPCGRP statement finishes
all of its scripts. You can use the REPEAT keyword on the ALLOCATE or APPCGRP
statement in batch processing.
The GRPCYCLE variable can be used to provide a unique value during each iteration of
an ALLOCATE or APPCGRP statement’s execution.
PORT
Returns a value listing the port assigned to each ALLOCATE or APPCGRP statement. The
variable is increased by one for each ALLOCATE or APPCGRP statement. You can use the
COUNT keyword on an ALLOCATE or APPCGRP statement in batch processing.
APPC Summary Report
The APPC summary report (Figure 4-7) lists performance and mismatch information from
the execution of scripts using unattended playback.
Figure 4-7. APPC Summary Report Example
HIPERSTATIONSUMMARY REPORT
TERMINAL ID: ** NA ** TPF NAME: H01APPCI
TIME: 15:35:37
DATE: 06/06/27
PAGE: 000
-------------OUTBOUND------------------------------- INBOUND --------------SCRIPT
PORT NUMBER MINIMUM
AVERAGE
MAXIMUM
NUMBER MINIMUM
AVERAGE
MAXIMUM
ELAPSED
-----------------------------------------------------------------------------------------------------------------SCR1003
3
1
00:00.298 00:00.298 00:00.298
1
00:00.095
00:00.095
00:00.095
00:00:06.007
SCR1003
3
1
00:00.007 00:00.007 00:00.007
1
00:00.017
00:00.017
00:00.017
00:00:06.692
SCR1003
3
1
00:00.013 00:00.013 00:00.014
1
00:00.014
00:00.014
00:00.014
00:00:06.538
SCR1003
3
1
00:00.007 00:00.007 00:00.007
1
00:00.026
00:00.026
00:00.026
00:00:06.377
*GRP-TOT
4
00:00.007
00:00.081
00:00.298
4
00:00.014
00:00.038
00:00.095
00:00:06.692
4-40
Hiperstation for Mainframe Servers User Guide
General Information
Script
The script being run. Two special script names, *SCR-TOT and *GRP-TOT, denote
script and group totals, respectively.
Port
Each terminal is assigned a port ID. A port ID is associated with the script.
Outbound Performance Information
Number
Number of SENDs or ALLOCATEs processed by the terminal for the script.
Minimum
Minimum response time for the SENDs or ALLOCATEs processed by the terminal for
the script.
Average
Outbound average is calculated from the sum of all response times for the port,
divided by the number of outbound transactions for that port.
Maximum
Maximum response time for the SENDs and ALLOCATEs processed by the terminal
for the script.
Inbound Performance Information
Number
Number of RECEIVEs or ACCEPTs processed by the terminal for the script.
Minimum
Minimum response time for the RECEIVEs or ACCEPTs processed by the terminal for
the script.
Average
Inbound average is calculated from the sum of all think times for the port, divided by
the number of inbound transactions for that port.
Maximum
Maximum response time for the RECEIVEs and ACCEPTs processed by the terminal
for the script.
Elapsed Time
Elapsed
Elapsed time is calculated based on the total amount of time it took the port and the
application to process the total number of transactions. For *SCR-TOT, this is the
maximum elapsed time of the individual scripts. For *GRP-TOT this is the sum of the
*SCR-TOT elapsed times.
APPC Unattended Playback Example Jobs
This section contains several example setups that illustrate how to play Hiperstation for
Mainframe Servers APPC scripts using unattended playback.
Unattended Playback of APPC Scripts
4-41
Example 1: Play Back 100 APPC Conversations All at Once
This example is designed to stress test a CICS region by playing a previously recorded
APPC conversation 100 times, with all conversations starting simultaneously. The
COUNT(100) parameter starts multiple conversations with an application, all started
when the ALLOCATE statement becomes active.
In this example, the ALLOCATE statement becomes active at the start of the playback
job. Activating the ALLOCATE statement can be delayed using the USESTIME parameter
on the CONTROL statement or the STARTDLY parameter on the ALLOCATE statement.
Figure 4-8. JCL to Play Back 100 APPC Conversations, All at Once
//HIPER
EXEC PGM=EHSBATCH,REGION=8192K
//STEPLIB DD DSN=HIPER.LOAD,DISP=SHR
//SYSLIB
DD DSN=MY.SCRIPTS,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN
DD *
CONTROL
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) COUNT(100)
SCRIPT(CICS10)
Example 2: Play Back 100 APPC Conversations Started Every 3 Seconds
This example is designed to stress test a CICS region by using one previously recorded
APPC conversation and playing it back 100 times. This time, however, rather than
starting all of the conversations at once, Hiperstation for Mainframe Servers starts one
every 3 seconds (perhaps to represent 100 users starting transactions at different times).
The COUNT(100) parameter causes Hiperstation for Mainframe Servers to start multiple
conversations, and the LOGD(3) parameter tells Hiperstation for Mainframe Servers to let
three seconds elapse between the start of each conversation.
Figure 4-9. JCL to Play Back 100 APPC Conversations, One Started Every 3 Seconds
CONTROL
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) COUNT(100) LOGD(3)
SCRIPT(CICS10)
Example 3: Play Back 100 APPC Conversations Started at Intervals
This example is designed to simulate a load on the CICS region similar to what existed at
recording time. The USESTIME parameter on the CONTROL statement tells Hiperstation
for Mainframe Servers to start these conversations at the same relative time intervals as
originally recorded.
The ALLOCATE statement with the earliest STIME value is started when the playback job
begins. The conversation that begins next is the one with the next higher STIME value.
Because the STIME values cover a period from 7:00 AM through 11:30 AM, the playback
job runs for 4.5 hours.
The USESTIME parameter only controls the start of a conversation; after a conversation
has started, it runs at full speed, waiting only for any responses from the partner
application found in the script. Using the THOPT(2) parameter on an ALLOCATE
statement causes Hiperstation for Mainframe Servers to run its side of the conversation at
the same speed as at recording time, rather than at full speed.
4-42
Hiperstation for Mainframe Servers User Guide
Figure 4-10. JCL to Play Back 100 Different APPC Conversations
CONTROL USESTIME
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) STIME(‘2007/01/01_07:00:00.000000’)
SCRIPT(CICS0001)
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) STIME(‘2007/01/01_07:01:22.000000’)
SCRIPT(CICS0002)
.
. (more ALLOCATE statements)
.
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) STIME(‘2007/01/01_11:30:00.000000’)
SCRIPT(CICS0100)
Example 4: Play Back One Lengthened APPC Conversation
This example is designed to take a single APPC conversation and make it “longer” than
the original recording. The purpose of this test is to see if the partner application in the
CICS region can handle a high rate of inquiries contained within a single conversation.
An editor was used to create three scripts from the one script that was originally
recorded.
• The START script contains only the <VERSION> and <ALLOCATE> tags.
• The BIGDATA script contains the <VERSION> tag, and the APPC verb tags are
repeatedly sent to the application.
Note: The application must be able to run properly with the increased and repeated
data. An inquiry program may be a likely candidate for such testing, but an
update program may not be. Understanding how your target application
operates is important when deciding if such a test is relevant and valid.
• The FINISH script contains only the <VERSION>, <OUTBOUND>, <DEALLOCATE>,
and </OUTBOUND> tags.
This example causes the contents of the BIGDATA script to be sent to the CICSA
application 1000 times. To successfully accomplish this, the BIGDATA script must
contain APPC verbs in a sequence that the application can understand and process
repeatedly.
Figure 4-11. JCL to Play Back One Lengthened APPC Conversation
ALLOCATE SENDER(HS620001) RECEIVER(CICSA)
SCRIPT(START)
SCRIPT(BIGDATA) REPEAT(1000)
SCRIPT(FINISH)
Example 5: Play Back Two Related APPC Conversations
This example is designed to test an application that uses two physical APPC
conversations to support a single, “logical” conversation. Each partner in the application
uses one of the conversations as a “SEND” side and the other conversation as a
“RECEIVE” side. This technique simulates a “full-duplex” conversation, where each side
of the conversation is always able to send information without waiting for permission
from the other side.
Because two physical conversations (the two scripts) are related by logic within the
partner application, Hiperstation for Mainframe Servers must adhere to the time stamps
in each script so that one participant of the logical conversation does not get ahead of
Unattended Playback of APPC Scripts
4-43
the other. The TIMESYNC parameter on the ALLOCATE statements tells Hiperstation for
Mainframe Servers to send data from the scripts in the order shown by the time stamps.
The TIMESYNC parameter must appear on each ALLOCATE (or ACCEPT) statement that
participates in this cross-script sequencing.
Figure 4-12. JCL to Play Back Two Related APPC Conversations
CONTROL
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) TIMESYNC
SCRIPT(CICSSND)
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) TIMESYNC
SCRIPT(CICSRCV)
Example 6: Play Back APPC Conversations Started in Various Ways
This example is designed to demonstrate many of the timing parameters available for
APPC scripts and to explain the effects. The parameters we describe are:
•
•
•
•
•
•
•
•
USESTIME
COUNT
REPEAT
SYNCH
STIME
LOGD
STARTDLY
THOPT
The USESTIME parameter on the CONTROL statement causes Hiperstation for Mainframe
Servers to start the ALLOCATE statements at the time interval indicated by the STIME
parameter, which is on the ALLOCATE statement.
The ALLOCATE statement with the lowest STIME value is started when the playback job
is started. The ALLOCATE statement that has the next higher STIME value is started after
waiting the amount of time indicated by the difference in STIME values. An ALLOCATE
statement without an STIME parameter is started as soon as the playback job starts.
A description of each ALLOCATE statement follows the example in Figure 4-13.
Figure 4-13. JCL to Play Back Several APPC Conversations Started in Various Ways
CONTROL USESTIME
*
* Allocate 1
*
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) COUNT(10) SYNCH STIME(‘2006/07/19_12:00:00.000000’)
SCRIPT(CICS1)
*
* Allocate 2
*
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) COUNT(10) LOGD(3) STIME(‘2006/07/19_12:05:00.000000’)
SCRIPT(CICS1)
*
* Allocate 3
*
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) REPEAT(5) THOPT(2)
SCRIPT(CICS1)
*
* Allocate 4
*
ALLOCATE SENDER(HS620001) RECEIVER(CICSA) COUNT(100) REPEAT(5) STARTDLY(30)
SCRIPT(CICS1)
4-44
Hiperstation for Mainframe Servers User Guide
Allocate 1
The COUNT(10) parameter on ALLOCATE 1 causes ten conversations to start at once, as
soon as the STIME value permits. Because the SYNCH parameter is supplied, those ten
conversations do not run at full speed, but instead run at the speed of the “slowest”
conversation.
Hiperstation for Mainframe Servers sends the first SEND_DATA verb in each of the ten
conversations at the same instant. If a response is expected from the application, the
second SEND_DATA verb in each conversation is not issued until the application issues
its response to all ten conversations. Each subsequent verb that Hiperstation for
Mainframe Servers issues is sent at the same instant for all ten conversations (after
waiting for the ten responses from the application).
This technique for keeping all data sent from Hiperstation for Mainframe Servers in step
across multiple conversations is most useful in stress testing individual parts of an
application program. The SYNCH parameter ensures that the ten running application
instances all receive their data from Hiperstation for Mainframe Servers at the same time.
Allocate 2
This ALLOCATE statement starts five minutes after the first ALLOCATE statement because
its STIME value is five minutes later. The COUNT(10) parameter specifies that ten
conversations are to start and the LOGD(3) parameter tells Hiperstation to start them
three seconds apart. After the conversations start, they run at full speed.
Allocate 3
This ALLOCATE statement starts as soon as the playback job is started because no STIME
parameter is present. The REPEAT(5) parameter tells Hiperstation for Mainframe Servers
to start the five conversations one at a time, each new conversation starting after the
previous one has ended.
After a conversation starts, the THOPT(2) parameter tells Hiperstation for Mainframe
Servers to send data at the same time intervals as the original recording. This is
controlled by the time stamps found within the script.
Hiperstation for Mainframe Servers does not have control over the speed of the partner
application’s response, only the speed that the data is sent to the partner.
Allocate 4
This ALLOCATE statement starts thirty seconds after the playback job is started due to
the presence of the STARTDLY(30) parameter. The COUNT(100) parameter indicates that
100 conversations start simultaneously. Those conversations run at full speed, affected by
system resources. As soon as one conversation ends, a new conversation starts in its
place, a total of five times. This ALLOCATE statement causes 500 conversations to run.cc
APPC Data-Driven Testing Example Using REXX
This section illustrates data-driven testing with a series of APPC conversations that
together form a complete “business transaction”. The transaction in this example
includes three APPC conversations. The first, generates a unique record key that the
subsequent conversations use to retrieve and process data. To ensure a successful testing:
• The conversations must be played back in the correct sequence and each
conversation must be completed before the next begins.
• The record key recorded in the scripts must be replaced with the key that is generated
by the server during playback.
Unattended Playback of APPC Scripts
4-45
Review the scripts for a thorough understanding of the business transaction’s data flow
(next), then learn how to:
• Extract the information generated by the server that is used in all of the
conversations, page 4-47.
• Share the extracted information with all of the scripts. This requires passing the
information to and retrieving it from shared storage, page 4-48.
• Replace the recorded information with the stored information during each iteration
of the playback, page 4-51.
• Alter the initial request string during each iteration of playback to exercise the
application with unique requests, page 4-53.
• Play back the script serially to ensure a successful playback, and play back the script
multiple times to stress or volume test the application, page 4-54.
Review the Scripts
The business transaction sited in this example is comprised of three APPC conversations,
each using information from the previous conversation.
Hiperstation for Mainframe Servers creates a separate script for each recorded APPC
conversation. It gives each script a unique name based on prefix and suffix specified on
the “APPC - Script Datasets Screen” (Figure 2-5 on page 2-8). However, following the
example is easier if the scripts have meaningful names. Therefore, the scripts are referred
to as:
1. REQUEST shown in Figure 4-14
The client sends a request string to a CICS server. The CICS server transaction stores
the request internally and returns a unique key to the client.
2. ADDDATA shown in Figure 4-15
The client sends the key returned by the REQUEST conversation to a second CICS
server transaction, which uses the key to retrieve the stored request and add a
timestamp to the request. The server returns the modified request to the client and
stores a copy of the request internally for future processing.
3. PROCESS shown in Figure 4-16
The client sends the same key to a third CICS server transaction. The server uses the
passed key to retrieve the request string (signon ID+timestamp). It then destroys the
internal store, processes the request, and delivers the results to the client. Processing
results in a reversed request string.
The activity was recorded from the client perspective. Therefore, “Outbound” represents
flows from the client to the CICS server transactions. “Inbound” represents flows into the
client from the server.
4-46
Hiperstation for Mainframe Servers User Guide
Figure 4-14. Recorded REQUEST Script
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51:00.614087',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
<CONTENT> 00000004 shows the initial request coming from the client.
<CONTENT> 00000006 shows the unique key that the server generated and returned
(HPER045C).
Figure 4-15. Recorded ADDDATA Script
<VERSION>8
<DETAIL COMBINED='*'>
<ALLOCATE TPNAME=H4M SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.617627' FTIME='2006/07/21_09:51:00.763590',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.617627
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.617627
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.763590
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER000109:51:01
<TIME>2006/07/21_09:51:00.763590
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
<CONTENT> 00000002 shows the key, which was initially returned from the server in the
REQUEST transaction, being sent by the client to the CICS server to retrieve the request
record.
<CONTENT> 00000004 shows the server’s response, which is the initial request string
concatenated with a timestamp suffix.
Unattended Playback of APPC Scripts
4-47
Figure 4-16. Recorded PROCESS Script
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.768107
<ALLOCATE TPNAME=H4T SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.768107' FTIME='2006/07/21_09:51:00.921482',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.768107
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.768107
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.921482
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 0000000410:15:901000REVEROF NOTREVE
<TIME>2006/07/21_09:51:00.921482
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
<CONTENT> 00000002 shows the REQUEST key again being forwarded to the CICS server
by the client to request processing.
<CONTENT> 00000004 shows the processed data being returned from the server, that is,
the reversed concatenated request string.
Extract the Key
Playing back the testing scripts initiates a new business transaction, which causes the
server to generate a new key. Propagate the newly generated key through all of the
scripts, for each iteration of playback, to prevent the application from producing an error
and playback from failing.
Use the following Hiperstation for Mainframe Servers REXX variables to extract the
newly generated key:
• APPC_ACTUAL — Returns the content of received APPC data.
• APPC_ACTUAL_LENGTH — Returns the length of the received APPC data.
Hiperstation for Mainframe Servers destroys the contents of these variables when the
conversation terminates (indicated with the <DEALLOCATE> tag), so create your own
variables that assume the values of the REXX variables. For example, actual_data =
APPC_ACTUAL.
In the <INBOUND> section of the REQUEST script, after the <SEND_DATA> and its
associated <CONTENT> tag, insert the REXX APPC variable assignments and a “SAY”
instruction to present the actual data and the actual data length in the job log.
Figure 4-17 shows the modified REQUEST script. Additions are indicated with bold text.
4-48
Hiperstation for Mainframe Servers User Guide
Figure 4-17. REQUEST Script with Hiperstation for Mainframe Servers REXX Variables
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51:00.614087',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
actual_data = APPC_ACTUAL
actual_data_length = APPC_ACTUAL_LENGTH
say “APPC actual data is:” APPC_ACTUAL “Length:” APPC_ACTUAL_LENGTH
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Share the Key
Sharing the extracted key is the next step in replacing the key that is recorded in the
scripts with the newly generated key. This requires:
• Adding logic to the REQUEST script to pass the extracted key to a common storage
area.
• Adding logic to the ADDDATA and PROCESS scripts to retrieve the key from the
shared area.
To share the key:
1. Add the USERDATA DD statement to the JCL to define the amount of shared storage.
For example,
//USERDATA DD DUMMY,BUFNO=1,BUFL=800
BUFNO is the number of buffers. BUFL is the length of each buffer. BUFNO
multiplied by BUFL equals the total bytes of storage defined.
Note: Do not use the first 8 bytes of this area, as Hiperstation for Mainframe Servers
uses it for internal purposes. However, these instructions provide for this
consideration.
2. Copy the HSGET and HSPUT routines from the Hiperstation samples library,
SQQFSAMP, into the dataset containing the APPC scripts.
Note:
SQQFSAMP member HSNOTE1 provides functional descriptions of these
routines.
3. Insert an HSPUT() call, without parameters, into the beginning of the REQUEST
script, just after the <VERSION> and <DETAIL> tags, to initialize the shared area.
Include an IF statement to validate successful completion of the call based on the
return code. A return code of 1 indicates success. Use the REXX EXIT instruction to
terminate playback if the call fails.
Note:
Although, initialization is required only once, the HSPUT() call is executed
each time the script plays back. The return code for a successful HSPUT
Unattended Playback of APPC Scripts
4-49
initialization is one. The return code for subsequent successful HSPUT calls is
zero. Any return code greater than one indicates call failure.
The bold text at the top of Figure 4-18 on page 4-49 shows this logic.
4. Insert another HSPUT call at the end of the REQUEST script, after the closing
</INBOUND> tag, to copy the extracted key to the stored area. This time include the
following parameters:
– actual_data — Returns the extracted key value.
– offset — Defines where in the shared area to begin writing the key value. These
scripts can be played back multiple times concurrently. If the offset is defined as
a static value, the routine overwrites the key each time the group of scripts plays
back. Use the Hiperstation PORT variable to define a unique offset. Hiperstation
for Mainframe Servers assigns a unique port number to each thread in an
APPCGRP replay. For example, if three instances of the group of scripts play back
concurrently (COUNT(3)), the port in the first instance is one, the second is two,
and the third is three. Since the key is eight bytes, set the offset=PORT*8. This
also preserves the first eight bytes for Hiperstation for Mainframe Servers internal
use.
Again, include an IF statement to validate successful completion of the HSPUT call.
Remember, all successful HSPUT calls that occur after initialization produce a return
code of zero, so set the IF condition to RETC>0. Use the EXIT instruction to
terminate playback if the call fails. The bold text at the bottom of Figure 4-18 on
page 4-49 shows this logic.
Figure 4-18. REQUEST Script with Key Sharing Logic
<VERSION>8
<DETAIL COMBINED='*'>
RETC = HSPUT()
IF RETC>1 THEN
DO
SAY “Initial HSPUT failed with return code:” retc
EXIT
END
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51:00.614087',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
actual_data = APPC_ACTUAL
actual_data_length = APPC_ACTUAL_LENGTH
say “APPC actual data is:” APPC_ACTUAL “Length:” APPC_ACTUAL_LENGTH
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
offset = PORT*8
RETC = HSPUT(actual_data,offset)
IF retc>0 THEN
DO
SAY “HSPUT storage of data on port” PORT “failed. Return code:” RETC
EXIT
END
5. Insert an HSPUT() call, without parameters, into the beginning of the ADDDATA and
PROCESS scripts, just after the <VERSION> and <DETAIL> tags, to verify that the
shared area exists. Include an IF statement to validate successful completion of the
4-50
Hiperstation for Mainframe Servers User Guide
call based on a return code of zero. Use the REXX EXIT instruction to terminate
playback if the call fails.
The bold text at the top of Figure 4-19 on page 4-50 and Figure 4-20 on page 4-51
shows this logic.
6. Below the HSPUT() call in the ADDDATA and PROCESS scripts, insert HSGET(offset,8)
to retrieve the key from shared storage.
– “offset” indicates where to find the key in the storage area. Provide the same
definition for offset here as was defined in storing the key (offset=PORT*8).
– “8” indicates the length of the data to retrieve.
Assign a variable to the HSGET(offset,8) value to use for validation. HSGET returns a
null string if the call fails. Using the variable assigned to the HSGET value, create an
IF statement that compares the length of the returned key to zero. Include a SAY
instruction:
– To print a failure message in the job log if the length is zero. Terminate the
playback with the REXX EXIT instruction.
– To print the returned key value and length in the job log if the length is not zero.
Finally, use the REXX substring instruction to ensure the returned key is eight
characters long.
The bold text beneath the second asterisk (*) in Figure 4-19 on page 4-50 and Figure
4-20 on page 4-51 shows this logic.
Figure 4-19. ADDDATA Script with Key Sharing Logic
<VERSION>8
<DETAIL COMBINED='*'>
*
RETC = HSPUT()
IF RETC>0 THEN
DO
SAY “ADDDATA initialization of HSPUT failed with return code:” RETC
EXIT
END
*
offset = PORT*8
key_field = HSGET(offset,8)
IF LENGTH(key_field) = 0 THEN
DO
SAY “ADDDATA HSGET retrieval of data failed”
EXIT
END
ELSE
SAY “Retrieved HSGET data is:” key_field “Length:” LENGTH(key_field)
key=substr(key_field,1,8)
<ALLOCATE TPNAME=H4M SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.617627' FTIME='2006/07/21_09:51:00.763590',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.617627
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.617627
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.763590
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER000109:51:01
<TIME>2006/07/21_09:51:00.763590
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Unattended Playback of APPC Scripts
4-51
Figure 4-20. PROCESS Script with Key Sharing Logic
<VERSION>8
<DETAIL COMBINED='*'>
*
RETC = HSPUT()
IF RETC>0 THEN
DO
SAY “PROCESS initialization of HSPUT failed with return code:” RETC
EXIT
END
*
offset = PORT*8
key_field = HSGET(offset,8)
IF LENGTH(key_field) = 0 THEN
DO
SAY “PROCESS HSGET retrieval of data failed”
EXIT
END
ELSE
SAY “Retrieved HSGET data is:” key_field “Length:” LENGTH(key_field)
key=substr(key_field,1,8)
<TIME>2006/07/21_09:51:00.768107
<ALLOCATE TPNAME=H4T SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.768107' FTIME='2006/07/21_09:51:00.921482',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.768107
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.768107
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.921482
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 0000000410:15:901000REVEROF NOTREVE
<TIME>2006/07/21_09:51:00.921482
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Replace the Key
Now it is time to add logic to replace the recorded key with the newly generated key.
Insert the Hiperstation REPLACE verb in the <OUTBOUND> section of the ADDDATA and
PROCESS scripts, after the <TIME> tag and before the <SEND_DATA> tag. This verb has
two parameters:
• FIELD(offset,data) — “offset” indicates where to begin replacing data. Since the only
data being sent is the key, set “offset” to 0 (zero) to replace data starting with the first
byte. The “data” value is the string or REXX variable that replaces the specified
information. In this case, set “data” to “key” as that is the variable assigned to the
retrieved key by the substring instruction.
• TYPE — Stipulates alteration of next or all subsequent <SEND_DATA> <CONTENT>
values. In this example, the next <SEND_DATA> is the only value requiring data
replacement, so set TYPE=ONE.
See “<REPLACE> Tag” on page 4-7 for more information. Figure 4-21 and Figure 4-22
show this logic in bold text.
4-52
Hiperstation for Mainframe Servers User Guide
Figure 4-21. ADDDATA Script with Key Replacement Logic
<VERSION>8
<DETAIL COMBINED='*'>
*
RETC = HSPUT()
IF RETC>0 THEN
DO
SAY “ADDDATA initialization of HSPUT failed with return code:” RETC
EXIT
END
*
offset = PORT*8
key_field = HSGET(offset,8)
IF LENGTH(key_field) = 0 THEN
DO
SAY “ADDDATA HSGET retrieval of data failed”
EXIT
END
ELSE
SAY “Retrieved HSGET data is:” key_field “Length:” LENGTH(key_field)
key=substr(key_field,1,8)
<ALLOCATE TPNAME=H4M SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.617627' FTIME='2006/07/21_09:51:00.763590',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.617627
<REPLACE FIELD=(0,key) TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.617627
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.763590
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER000109:51:01
<TIME>2006/07/21_09:51:00.763590
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Unattended Playback of APPC Scripts
4-53
Figure 4-22. PROCESS Script with Key Replacement Logic
<VERSION>8
<DETAIL COMBINED='*'>
*
RETC = HSPUT()
IF RETC>0 THEN
DO
SAY “PROCESS initialization of HSPUT failed with return code:” RETC
EXIT
END
*
offset = PORT*8
key_field = HSGET(offset,8)
IF LENGTH(key_field) = 0 THEN
DO
SAY “PROCESS HSGET retrieval of data failed”
EXIT
END
ELSE
SAY “Retrieved HSGET data is:” key_field “Length:” LENGTH(key_field)
key=substr(key_field,1,8)
<TIME>2006/07/21_09:51:00.768107
<ALLOCATE TPNAME=H4T SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.768107' FTIME='2006/07/21_09:51:00.921482',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.768107
<REPLACE FIELD(0,key) TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000002HPER045C
<TIME>2006/07/21_09:51:00.768107
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.921482
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 0000000410:15:901000REVEROF NOTREVE
<TIME>2006/07/21_09:51:00.921482
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Alter the Request String
The group of scripts forming the business transaction plays back successfully at this
point. However, the scripts, as they exist, repeatedly execute the same request: EVERTON
FOREVER0000.
Use the Hiperstation:
• REPLACE verb to modify the request string each time the group of scripts play back.
• REXX variables PORT and GRPCYCLE to provide a unique value for request string
data replacement. As previously discussed, PORT returns the value of the COUNT
playback parameter — that is, the unique number assigned to each thread in the
APPCGRP replay. GRPCYCLE returns the value of the REPEAT playback parameter,
which denotes the iteration of playback.
In the REQUEST script:
• Just above the <OUTBOUND> block, insert a variable assignment based on the PORT
and GRPCYCLE variables. Use standard REXX functions to identify the portion of the
PORT and GRPCYCLE counts to return. In this case, the two digits from the right of
each count. Indicate a character to pad the returned value with if the value is not two
digits. This example pads the value on the left with zeros. Concatenate the returned
values with the REXX concatenation operator || to create a unique four-digit value.
• In the <OUTBOUND> block, after the <TIME> tag, insert the Hiperstation REPLACE
verb with an “offset” value of 15 and “data” value of the variable assigned to the
PORT||GRPCYCLE concatenation.
4-54
Hiperstation for Mainframe Servers User Guide
This results in a unique request string for each instance and iteration of the playback. For
example, if you play back the script twice concurrently and repeat the playback three
times, the request string increments as follows:
•
•
•
•
•
•
EVERTON
EVERTON
EVERTON
EVERTON
EVERTON
EVERTON
FOREVER0101
FOREVER0201
FOREVER0102
FOREVER0202
FOREVER0103
FOREVER0203
The bold text in Figure 4-23 on page 4-54 shows this logic.
Figure 4-23. REQUEST Script with Request Modification Logic
<VERSION>8
<DETAIL COMBINED='*'>
RETC = HSPUT()
IF RETC>1 THEN
DO
SAY “Initial HSPUT failed with return code:” retc
EXIT
END
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127,
LOGMODE=#INTER TYPE=MAPPED SYNCLVL=NONE SECURITY=NONE,
STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51:00.614087',
CONVCORR='-AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=,
'0AB30B1787D5'X LUWSEQ='0001'X>
newiter=right(PORT,2,’0’)||right(GRPCYCLE,2,’0’)
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<REPLACE FIELD=(15,newiter) TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
actual_data = APPC_ACTUAL
actual_data_length = APPC_ACTUAL_LENGTH
say “APPC actual data is:” APPC_ACTUAL “Length:” APPC_ACTUAL_LENGTH
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
offset = PORT*8
RETC = HSPUT(actual_data,offset)
IF retc>0 THEN
DO
SAY “HSPUT storage of data on port” PORT “failed. Return code:” RETC
EXIT
END
Play Scripts Serially and Concurrently
Hiperstation for Mainframe Servers offers three input statements for designating which
scripts (conversations) to play back and how to play them back:
• ALLOCATE — Use this statement to play back a single APPC conversation with
Hiperstation for Mainframe Servers initiating the conversation.
• ACCEPT — Use this statement to play back a single APPC conversation with
Hiperstation for Mainframe Servers receiving the conversation.
• APPCGRP — Use this statement to play multiple APPC conversations back.
See “APPC Unattended Playback Statements” on page 4-16, for more information.
All three of these statements offer the COUNT and REPEAT parameters to play the scripts
back multiple times for stress or volume testing.
Unattended Playback of APPC Scripts
4-55
• COUNT(n) plays back the scripts within the ALLOCATE/ACCEPT/APPCGRP n times
concurrently.
• REPEAT(n) plays the scripts within the ALLOCATE/ACCEPT/APPCGRP n times, one
after the other.
Use them together to play multiple threads repeatedly. For example, COUNT(2)
REPEAT(3), plays back two instances of the script at the same time, three times in a row.
Couple this with the APPCGRP statement to repeatedly play back multiple threads of a
series of APPC conversations, such as the business transaction described in this example.
The rest of this discussion provides an example of the playback control statements and
JCL necessary to repeatedly play back multiple threads of this business transaction. It
also shows the resulting job logs.
Create Playback Control Statements for the Business Transaction
Manually build playback control statements or generate a conversation log during script
creation to use as the SYSIN for the job.
In the conversation log, Hiperstation for Mainframe Servers creates a separate ALLOCATE
statement for each APPC conversation. Generating the log is the easiest method if you
need to play the conversations back concurrently. However, if you need to play multiple
conversations back serially, manually building the statements is less work than
modifying the log.
Figure 4-24 on page 4-56 shows the conversation log generated for the scripts in this
example. Figure 4-25 on page 4-56 shows the playback control statements necessary to
play the scripts back serially, which is required to complete the business transaction
successfully.
In this example, SENDER and RECEIVER are the only common parameters between the
APPCGRP statement and the generated ALLOCATE statements. This is due to the
statement hierarchy. That is, the parameters defined on the ALLOCATE or APPCGRP
statement override the parameters recorded in the scripts under the given statement.
Since the scripts within the APPCGRP statement contain information from different
conversations, the control parameters may be different from script to script. For example,
the TPNAME for each conversation is different. Hiperstation retrieves the necessary
information from the scripts during playback.
In the conversation log:
• The SENDER and RECEIVER values reflect the client and server VTAM LU names.
During playback, Hiperstation assumes the role of the sender or the receiver
depending on the selected playback control statement and the SENDER and
RECEIVER parameters. For example, if you want Hiperstation to initiate the
conversation, use the ALLOCATE or APPCGRP statement and specify Hiperstation’
VTAM LU name on the SENDER parameter. If you want Hiperstation to receive the
conversation, use the ACCEPT or APPCGRP statement and specify the appropriate LU
name on the RECEIVER parameter.
• The script names reflect the names generated by Hiperstation. In this example, the
script members were renamed for easy recognition. Make sure the values specified in
the SCRIPT statements reflect the actual member names as shown in manually built
control statements (Figure 4-25).
The manually built playback control information (Figure 4-25) also includes a:
• CONTROL statement with the MSGFORM parameter, which prints timestamps in the
job log.
• COUNT parameter with a value of 2 on the APPCGRP statement. This initiates two
threads of the business transaction. That is, it plays the same group of scripts twice
concurrently.
4-56
Hiperstation for Mainframe Servers User Guide
• REPEAT parameter with a value of 2 on the APPCGRP statement. This causes playback
of the two threads to repeat a second time.
Figure 4-24. APPC Conversation Log for Example Scripts
********************************* Top of Data **********************************
* LOG STARTED ON 2006/12/18 AT 17:05:10
* DESC:
*
* ALLOCATE NUMBER(1)
*
ALLOCATE TPNAME(H4S) SENDER(USCWXN01.H01AC079) RECEIVER(USCWXN01.H01AC127)LOGMODE(#INTER) TYPE(MAPPED) SYNCLVL(NONE) SECURITY(NONE)STIME('2006/09/18_08:50:59.713241') FTIME('2006/09/18_08:50:59.804103')CONVCORR('-AD1') LUWNAME(USCWXN01.TCW00567) LUWINST('0AB30B1787D5'X)LUWSEQ('0001'X)
SCRIPT(TST00002)
*
* ALLOCATE NUMBER(2)
*
*
ALLOCATE TPNAME(H4M) SENDER(USCWXN01.H01AC079) RECEIVER(USCWXN01.H01AC127)LOGMODE(#INTER) TYPE(MAPPED) SYNCLVL(NONE) SECURITY(NONE)STIME('2006/09/18_08:50:59.807643') FTIME('2006/09/18_08:50:59.953606')CONVCORR('-AD1') LUWNAME(USCWXN01.TCW00567) LUWINST('0AB30B1787D5'X)LUWSEQ('0001'X)
SCRIPT(TST00003)
*
* ALLOCATE NUMBER(3)
*
*
ALLOCATE TPNAME(H4T) SENDER(USCWXN01.H01AC079) RECEIVER(USCWXN01.H01AC127)LOGMODE(#INTER) TYPE(MAPPED) SYNCLVL(NONE) SECURITY(NONE)STIME('2006/09/18_08:50:59.958123') FTIME('2006/09/18_08:51:00.111498') CONVCORR('-AD1')LUWNAME(USCWXN01.TCW00567) LUWINST('0AB30B1787D5'X)LUWSEQ('0001'X)
SCRIPT(TST00004)
*
* LOG FINISHED ON 2006/12/18 AT 17:05:11
*
******************************** Bottom of Data ********************************
Figure 4-25. Control Statements to Play Scripts Back Serially
********************************* Top of Data **********************************
CONTROL MSGFORM
APPCGRP SENDER(UXCWXN01.H01APPCP) RECEIVER(USCWXN01.H01AC127) COUNT(2) REPEAT(2)
SCRIPT(REQUEST)
SCRIPT(ADDDATA)
SCRIPT(PROCESS)
******************************** Bottom of Data ********************************
Create JCL to Play Back the Business Transaction
The following illustration shows standard Hiperstation for Mainframe Servers playback
JCL with the addition of the USERDATA DD defining the shared storage area for the key
replacement logic depicted in this example. See “Step 5. Submit the Batch Job” on page
4-1, for all other DD statement definitions. This sample also shows in-line control
statements. You can store them in a dataset, if you like, and reference the dataset name
on the SYSIN DD.
Unattended Playback of APPC Scripts
4-57
Figure 4-26. JCL for the Example Business Transaction
//HIPER
EXEC PGM=EHSBATCH,REGION=4096K
//STEPLIB DD DSN=SYS2.COMPWARE.QQF800.SQQFLOAD,DISP=SHR
//SYSLIB
DD DSN=USR2503.APPC.SCRIPT,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//USERDATA DD DUMMY,BUFNO=1,BUFL=800
//SYSIN
DD *
CONTROL MSGFORM
*
* ALLOCATE NUMBER(1)
*
APPCGRP SENDER(USCWXN01.H01APPCP) RECEIVER(USCWXN01.H01AC127)COUNT(1)
SCRIPT(REQUEST)
SCRIPT(ADDDATA)
SCRIPT(PROCESS)
Review the Playback Job Logs
This section shows the job logs resulting from a single thread, single iteration playback; a
multiple thread, single iteration playback; and a multiple thread, multiple iteration
playback.
Figure 4-27 shows the job log for a single thread, single iteration playback of the example
business transaction.
The REXX SAY statements generated by the REQUEST script show the key (HPER055C)
generated by the CICS Server at replay time.
The SAY statements generated by the ADDDATA script show that the:
• Correct key value was retrieved by HSGET.
• Original request was returned with the timestamp concatenation, which verifies that
the second CICS Server transaction completed successfully.
• Original request string was successfully updated with the concatenated, two-digit
PORT and GRPCYCLE values (0101). If you recall, the first two digits reflect the count
value (thread) and the last two reflect the repeat value (iteration).
The SAY statements generated by the PROCESS script show that the:
• HSGET correctly retrieved the replay key.
• Request string was returned in reverse, which verifies that the third CICS server
transaction completed successfully
Figure 4-27. Job Log for a Single Thread, Single Iteration Playback
10:21:25
10:21:25
10:21:25
10:21:25
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
10:21:26
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
MSTR
MSTR
MSTR
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
MSTR
MSTR
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
MSTR
MSTR
MSTR
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
MSTR
MSTR
EHSB018I INPUT CONTROL STATEMENT SCAN COMPLETE
EHSB910I REPLAY STARTING: 09/18/06 AT 10:21:25
EHSB000I ALL PORTS ATTACHED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER055C Length: 8
Actual data is: HPER055C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER055C Length: 8
APPC actual data: EVERTON FOREVER010110:21:27 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER055C Length: 8
PROCESS data returned: 72:12:011010REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB003I PORT TERMINATED
EHSB004I GROUP 0001 TERMINATED
EHSB020I ALL PORTS TERMINATED
4-58
Hiperstation for Mainframe Servers User Guide
Now examine Figure 4-28 to see how initiating a second thread (increasing the COUNT
parameter value to two) impacts the job log. Notice that the first two digits of the request
string suffix reflect the playback thread. See how they match the reported PORT number.
Figure 4-28. Job Log for a Multiple Thread, Single Iteration Playback
10:24:23
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
10:24:24
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
MSTR
MSTR
MSTR
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
MSTR
MSTR
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
MSTR
MSTR
MSTR
0001
0002
0002
0002
0001
0002
0002
0001
0001
0001
0002
0001
0001
0001
0001
0002
0002
0002
0001
0002
0001
0001
0001
0002
0002
0002
0001
0002
MSTR
MSTR
EHSB018I INPUT CONTROL STATEMENT SCAN COMPLETE
EHSB910I REPLAY STARTING: 09/18/06 AT 10:24:24
EHSB000I ALL PORTS ATTACHED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER062C Length: 8
Actual data is: HPER062C Length: 8
APPC actual data is: HPER063C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
Actual data is: HPER063C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER062C Length: 8
retrieved HSGET data is: HPER063C Length: 8
APPC actual data: EVERTON FOREVER010110:24:25 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
APPC actual data: EVERTON FOREVER020110:24:25 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER063C Length: 8
retrieved HSGET data is: HPER062C Length: 8
PROCESS data returned: 52:42:011010REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
PROCESS data returned: 52:42:011020REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB003I PORT TERMINATED
EHSB003I PORT TERMINATED
EHSB004I GROUP 0001 TERMINATED
EHSB020I ALL PORTS TERMINATED
Figure 4-29 shows a truncated job log from a multiple thread, multiple iteration
playback. Each iteration of the APPCGRP REPEAT increments the supplied GRPCYCLE
REXX variable, starting at 1 on the first iteration. Examine the job log to see how using
GRPCYCLE makes each request unique across business transaction iterations.
This time, the LOGD, or Logon Delay, parameter was added to the APPCGRP statement to
offset the start time of each thread. In this case, the parameter is LOGD(1), or one
second. The job log shows that port (Thread) two started one second after port (Thread)
one.
Unattended Playback of APPC Scripts
4-59
Figure 4-29. Job Log for a Multiple Thread, Multiple Iteration Playback
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:41
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
MSTR
MSTR
0001
MSTR
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
MSTR
MSTR
0002
MSTR
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
EHSB018I INPUT CONTROL STATEMENT SCAN COMPLETE
EHSB910I REPLAY STARTING: 09/18/06 AT 10:27:41
EHSB054I START SYNCHRONIZATION AND/OR DELAY REQUESTED
EHSB000I ALL PORTS ATTACHED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER072C Length: 8
Actual data is: HPER072C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER072C Length: 8
APPC actual data: EVERTON FOREVER010110:27:42 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER072C Length: 8
PROCESS data returned: 24:72:011010REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER075C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER075C Length: 8
APPC actual data: EVERTON FOREVER010210:27:42 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER075C Length: 8
PROCESS data returned: 24:72:012010REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB003I PORT TERMINATED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER078C Length: 8
Actual data is: HPER078C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER078C Length: 8
APPC actual data: EVERTON FOREVER020110:27:43 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER078C Length: 8
PROCESS data returned: 34:72:011020REVEROF NOTREVE Length: 27
Figure 4-30. Job Log for a Multiple Thread, Multiple Iteration Playback (Continued)
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:42
10:27:43
10:27:43
10:27:43
10:27:43
10:27:43
10:27:43
10:27:43
10:27:43
10:27:43
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
GROUP
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
0001
MSTR
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
PORT
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
0002
MSTR
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB011I BEGINNING SCRIPT REQUEST
PLAY OUTBOUND
APPC actual data is: HPER081C Length: 8
Actual data is: HPER081C Length: 8
EHSB019I COMPLETED SCRIPT REQUEST
EHSB011I BEGINNING SCRIPT ADDDATA PLAY OUTBOUND
retrieved HSGET data is: HPER081C Length: 8
APPC actual data: EVERTON FOREVER020210:27:43 Length: 27
EHSB019I COMPLETED SCRIPT ADDDATA
EHSB011I BEGINNING SCRIPT PROCESS PLAY OUTBOUND
retrieved HSGET data is: HPER081C Length: 8
PROCESS data returned: 34:72:012020REVEROF NOTREVE Length: 27
EHSB019I COMPLETED SCRIPT PROCESS
EHSB024I BEING TERMINATED
EHSB003I PORT TERMINATED
EHSB004I GROUP 0001 TERMINATED
APPC Data-Driven Testing Example Using Playback
Tables
This section illustrates data-driven testing with a series of APPC conversations described
in the previous section, “APPC Data-Driven Testing Example Using REXX” on page 4-44.
However, this section will describe using playback tables instead of using REXX code
within the APPC. The benefit of using Playback tables over REXX is much faster
processing time.
4-60
Hiperstation for Mainframe Servers User Guide
Playback Tables
Playback tables are defined as follows:
TABLEDEF PORTS(n) DATADSN(dataset_name) LOGDSN(dataset_name)
TABLE
TABLE
TABLE
TABLE
ID(member_name)
ID(member_name)
ID(member_name)
ID(member_name)
REPEATS(n)
REPEATS(n)
REPEATS(n)
REPEATS(n)
DATALEN(n) DATAIN LOG INIT(NULL|SPACE|ZERO)
DATALEN(n) DATAIN
DATALEN(n)
LOG
DATALEN(n)
For a description of the parameters for TABLEDEF and TABLE see “TABLEDEF Statement”
and “TABLE Statement” on page 4-22
Extract the Key
When using playback tables, both the <EXTRACT> tag and the <REPLACE> tag are used.
<EXTRACT> Tag
<EXTRACT FIELD=(0,'&REVERSED') TYPE=ONE>
<EXTRACT FIELD=(0,'&SHAREKEY') TYPE=ONE>
<REPLACE> Tag
<REPLACE FIELD=(0,'&SHAREKEY') TYPE=ONE>
See “<REPLACE> Tag” on page 4-7 and “<EXTRACT> Tag” on page 4-10 for a description
of these tags and their parameters.
Store a Shared Key
Figure 4-31 is an example showing how to store a shared key.
Figure 4-31. Store a Shared Key
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127, LOGMODE=#INTER TYPE
=MAPPED SYNCLVL=NONE SECURITY=NONE, STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51
:00.614087', CONVCORR='AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=, '0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<EXTRACT FIELD=(0,'&SHAREKEY') TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Retrieve a Shared Key
Figure 4-31 is an example showing how to retrieve a shared key and use the key in a
playback.
Unattended Playback of APPC Scripts
4-61
Figure 4-32. Retrieve a Shared Key
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.768107
<ALLOCATE TPNAME=H4T SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127, LOGMODE=#INTER TYPE
=MAPPED SYNCLVL=NONE SECURITY=NONE, STIME='2006/07/21_09:51:00.768107' FTIME='2006/07/21_09:51
:00.921482', CONVCORR='AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=, '0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.768107
<REPLACE FIELD=(0,'&SHAREKEY') TYPE=ONE> <== Note '=' missing after FIELD
<SEND_DATA DATATYPE=APPLDATA>
and extra space before '&SHAREKEY'
<CONTENT> 00000002HPER045C
above errors were corrected.
<TIME>2006/07/21_09:51:00.768107
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.921482
<EXTRACT FIELD=(0,'&REVERSED') TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 0000000410:15:901000REVEROF NOTREVE
<TIME>2006/07/21_09:51:00.921482
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
</INBOUND>
Alter the Request String
In the previous section using REXX, REXX code is used in the script.
When using tables, the request string is prepared in the TABLEDSN using the DATAIN
keyword. Figure 4-34 is an example of how to prepare a request string.
4-62
Hiperstation for Mainframe Servers User Guide
Figure 4-33. Request String Using Tables
HLQ = SYSVAR(SYSUID)
/* YOU MAY REASSIGN HLQ with SOMETHING OTHER THAN SYSUID */
DDN_04CHAR = HLQ || '.BOC.TABLE.DATA(REQUEST)'
DDN_19CHAR = HLQ || '.BOC.TABLE.DATA(REQUESTX)'
ADDRESS TSO
'ALLOCATE DATASET('''DDN_04CHAR''') SHR FILE(RDM04)'
'ALLOCATE DATASET('''DDN_19CHAR''') SHR FILE(RDM19)'
Ports = 2
Repeats = 05
i=0
DO GRPCYCLE = 1 to Repeats
DO PORT = 1 TO Ports
i = i + 1
A.i = right(PORT,2,'0')||right(GRPCYCLE,2,'0')
B.i = 'EVERTON FOREVER' || A.i
END
END
"EXECIO * DISKW RDM04 (stem A. FINIS)"
"EXECIO * DISKW RDM19 (stem B. FINIS)"
'FREE FILE(RDM04)'
'FREE FILE(RDM19)'
RETURN 0
VIEW
USR2503.BOC.TABLE.DATA(REQUEST) - 01.00
Command ===>
****** ******************************* Top of Data *
000001 0101
000002 0201
000003 0102
000004 0202
000005 0103
000006 0203
000007 0104
000008 0204
000009 0105
000010 0215
VIEW
USR2503.BOC.TABLE.DATA(REQUESTX) - 01.00
Command ===>
****** ******************************* Top of Data **
000001 EVERTON FOREVER0101
000002 EVERTON FOREVER0201
000003 EVERTON FOREVER0102
000004 EVERTON FOREVER0202
000005 EVERTON FOREVER0103
000006 EVERTON FOREVER0203
000007 EVERTON FOREVER0104
000008 EVERTON FOREVER0204
000009 EVERTON FOREVER0105
000010 EVERTON FOREVER0215
With these files prepared before the APPC playback, the script in Figure 4-34 will be
played back.
Unattended Playback of APPC Scripts
4-63
Figure 4-34. Script Being Played Back
<VERSION>8
<DETAIL COMBINED='*'>
<TIME>2006/07/21_09:51:00.523225
<ALLOCATE TPNAME=H4S SENDER=USCWXN01.H01AC079, RECEIVER=USCWXN01.H01AC127, LOGMODE=#INTER TYPE
=MAPPED SYNCLVL=NONE SECURITY=NONE, STIME='2006/07/21_09:51:00.523225' FTIME='2006/07/21_09:51
:00.614087', CONVCORR='AD1' LUWNAME=USCWXN01.TCW00567 LUWINST=, '0AB30B1787D5'X LUWSEQ='0001'X>
<OUTBOUND>
<TIME>2006/07/21_09:51:00.523225
<REPLACE FIELD=(15,'&REQUEST') TYPE=ONE> or This is same as REXX example
<REPLACE FIELD=(0,'&REQUESTX') TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000004EVERTON FOREVER0001
<TIME>2006/07/21_09:51:00.523225
<PREPARE_TO_RECEIVE TYPE=FLUSH>
</OUTBOUND>
<INBOUND>
<TIME>2006/07/21_09:51:00.614087
<EXTRACT FIELD=(0,'&SHAREKEY') TYPE=ONE>
<SEND_DATA DATATYPE=APPLDATA>
<CONTENT> 00000006HPER045C
<TIME>2006/07/21_09:51:00.614087
<DEALLOCATE TYPE=FLUSH LOGDATA=NO>
Getting Playback Information
Figure 4-35. Variable Data Read from the Table
VIEW
USR2503.BOC.TABLE.DATA(REQUEST) - 01.00
Command ===>
****** ******************************* Top of Data *
000001 0101
000002 0201
000003 0102
000004 0202
000005 0103
000006 0203
000007 0104
000008 0204
000009 0105
000010 0215
VIEW
USR2503.BOC.TABLE.DATA(REQUESTX) - 01.00
Command ===>
****** ******************************* Top of Data **
000001 EVERTON FOREVER0101
000002 EVERTON FOREVER0201
000003 EVERTON FOREVER0102
000004 EVERTON FOREVER0202
000005 EVERTON FOREVER0103
000006 EVERTON FOREVER0203
000007 EVERTON FOREVER0104
000008 EVERTON FOREVER0204
000009 EVERTON FOREVER0105
000010 EVERTON FOREVER0215
In Figure 4-35, C= refers to the reference counter, which tells how many times it has been
used for <REPLACE> and <EXTRACT>. L= refers to the data length for the table.
REQUESTX, SHAREKEY, RESPTIME, and REVERSED are table names.
When using tables, key information is written using the LOG keyword. See Figure 4-36
for an example of the table definition.
4-64
Hiperstation for Mainframe Servers User Guide
Figure 4-36. Table Definition Using LOG Keyword
TABLEDEF
TABLE
TABLE
TABLE
TABLE
PORTS(2) DATADSN(USR2503.BOC.TABLE.DATA) LOGDSN(USR2503.BOC.TABLE.LOG)
ID(REQUEST)
ID(SHAREKEY)
ID(RESPTIME)
ID(REVERSED)
REPEATS(05)
REPEATS(05)
REPEATS(05)
REPEATS(05)
DATALEN(04)
DATALEN(08)
DATALEN(27)
DATALEN(27)
DATAIN LOG
LOG
LOG
LOG
Use the JCL in Figure 4-37 to merge and sort three LOG file.
Figure 4-37. JCL to Merge and Sort Three LOG Files
//SORT
EXEC PGM=SORT,COND=(0,LT)
//SYSOUT
DD
SYSOUT=*
//*SORTOUT DD
SYSOUT=*,DCB=(RECFM=VB,LRECL=130)
//SORTOUT DD
DISP=SHR,DSN=USR2503.BOC.TABLE.LOG(SAMPLE1)
//SORTIN
DD
DISP=SHR,DSN=USR2503.BOC.TABLE.LOG(REQUEST)
//
DD
DISP=SHR,DSN=USR2503.BOC.TABLE.LOG(SHAREKEY)
//
DD
DISP=SHR,DSN=USR2503.BOC.TABLE.LOG(RESPTIME)
//
DD
DISP=SHR,DSN=USR2503.BOC.TABLE.LOG(REVERSED)
//* LOG DATASET IS VARIABLE RECORD
//* THEREFORE, SORT CONTROL LOCATION STARTS AT 5
//* ADD 5 TO REAL DATA LOCATION FOR SORT CONTROL
//SYSIN
DD
*
SORT FIELDS=(5,26,CH,A)
//
Sample Output
Figure 4-38 shows sample output from a Sort job after your Playback.
Unattended Playback of APPC Scripts
Figure 4-38. Sample Output
000001
000002
000003
000004
000005
000006
000007
000008
000009
000010
000011
000012
000013
000014
000015
000016
000017
000018
000019
000020
000021
000022
000023
000024
000025
000026
000027
000028
000029
000030
000031
000032
000033
000034
000035
000036
000037
000038
000039
000040
PORT=00001,GRPCYCLE=000001,C=001,L=019,REQUESTX='EVERTON FOREVER0101'
PORT=00001,GRPCYCLE=000001,C=003,L=008,SHAREKEY='HPER117C'
PORT=00001,GRPCYCLE=000001,C=001,L=027,RESPTIME='EVERTON FOREVER010114:31:44'
PORT=00001,GRPCYCLE=000001,C=001,L=027,REVERSED='44:13:411010REVEROF NOTREVE'
PORT=00001,GRPCYCLE=000002,C=001,L=019,REQUESTX='EVERTON FOREVER0102'
PORT=00001,GRPCYCLE=000002,C=003,L=008,SHAREKEY='HPER126C'
PORT=00001,GRPCYCLE=000002,C=001,L=027,RESPTIME='EVERTON FOREVER010214:31:45'
PORT=00001,GRPCYCLE=000002,C=001,L=027,REVERSED='54:13:412010REVEROF NOTREVE'
PORT=00001,GRPCYCLE=000003,C=001,L=019,REQUESTX='EVERTON FOREVER0103'
PORT=00001,GRPCYCLE=000003,C=003,L=008,SHAREKEY='HPER132C'
PORT=00001,GRPCYCLE=000003,C=001,L=027,RESPTIME='EVERTON FOREVER010314:31:48'
PORT=00001,GRPCYCLE=000003,C=001,L=027,REVERSED='84:13:413010REVEROF NOTREVE'
PORT=00001,GRPCYCLE=000004,C=001,L=019,REQUESTX='EVERTON FOREVER0104'
PORT=00001,GRPCYCLE=000004,C=003,L=008,SHAREKEY='HPER138C'
PORT=00001,GRPCYCLE=000004,C=001,L=027,RESPTIME='EVERTON FOREVER010414:31:48'
PORT=00001,GRPCYCLE=000004,C=001,L=027,REVERSED='84:13:414010REVEROF NOTREVE'
PORT=00001,GRPCYCLE=000005,C=001,L=019,REQUESTX='EVERTON FOREVER0105'
PORT=00001,GRPCYCLE=000005,C=003,L=008,SHAREKEY='HPER144C'
PORT=00001,GRPCYCLE=000005,C=001,L=027,RESPTIME='EVERTON FOREVER010514:31:48'
PORT=00001,GRPCYCLE=000005,C=001,L=027,REVERSED='84:13:415010REVEROF NOTREVE'
PORT=00002,GRPCYCLE=000001,C=001,L=019,REQUESTX='EVERTON FOREVER0201'
PORT=00002,GRPCYCLE=000001,C=003,L=008,SHAREKEY='HPER116C'
PORT=00002,GRPCYCLE=000001,C=001,L=027,RESPTIME='EVERTON FOREVER020114:31:44'
PORT=00002,GRPCYCLE=000001,C=001,L=027,REVERSED='44:13:411020REVEROF NOTREVE'
PORT=00002,GRPCYCLE=000002,C=001,L=019,REQUESTX='EVERTON FOREVER0202'
PORT=00002,GRPCYCLE=000002,C=003,L=008,SHAREKEY='HPER125C'
PORT=00002,GRPCYCLE=000002,C=001,L=027,RESPTIME='EVERTON FOREVER020214:31:45'
PORT=00002,GRPCYCLE=000002,C=001,L=027,REVERSED='54:13:412020REVEROF NOTREVE'
PORT=00002,GRPCYCLE=000003,C=001,L=019,REQUESTX='EVERTON FOREVER0203'
PORT=00002,GRPCYCLE=000003,C=003,L=008,SHAREKEY='HPER131C'
PORT=00002,GRPCYCLE=000003,C=001,L=027,RESPTIME='EVERTON FOREVER020314:31:48'
PORT=00002,GRPCYCLE=000003,C=001,L=027,REVERSED='84:13:413020REVEROF NOTREVE'
PORT=00002,GRPCYCLE=000004,C=001,L=019,REQUESTX='EVERTON FOREVER0204'
PORT=00002,GRPCYCLE=000004,C=003,L=008,SHAREKEY='HPER137C'
PORT=00002,GRPCYCLE=000004,C=001,L=027,RESPTIME='EVERTON FOREVER020414:31:48'
PORT=00002,GRPCYCLE=000004,C=001,L=027,REVERSED='84:13:414020REVEROF NOTREVE'
PORT=00002,GRPCYCLE=000005,C=001,L=019,REQUESTX='EVERTON FOREVER0205'
PORT=00002,GRPCYCLE=000005,C=003,L=008,SHAREKEY='HPER143C'
PORT=00002,GRPCYCLE=000005,C=001,L=027,RESPTIME='EVERTON FOREVER020514:31:48'
PORT=00002,GRPCYCLE=000005,C=001,L=027,REVERSED='84:13:415020REVEROF NOTREVE'
4-65
4-66
Hiperstation for Mainframe Servers User Guide
5-1
Chapter 5.
APPC Reporting
Chap 5
Hiperstation for Mainframe Servers offers the following reports:
• APPC Summary Report provides performance statistics and comparison results.
• REXX Log reports the text from the REXX SAY statements.
Hiperstation for Mainframe Servers generates requested reports during playback if your
playback job ALLOCATE/ACCEPT statement includes the appropriate keywords.
This chapter explains how to generate each report and describes the fields on the reports.
Summary Report
Include the SUMMARY keyword on your ALLOCATE/ACCEPT statement to produce a
summary report (refer to the syntax diagram in the “ALLOCATE and ACCEPT
Statements” discussion, on page 4-22). The APPC summary report details performance
and comparison check information from the execution of scripts using unattended
playback.
SUMMARY(class|dsn)
Tells Hiperstation for Mainframe Servers to generate a summary report for the group.
If the value is a single character, Hiperstation for Mainframe Servers allocates the
summary report to SYSOUT in the class set by that single character. If the value is
more than one character, Hiperstation for Mainframe Servers allocates the summary
report to a permanent file. By default, no summary report is produced.
The dataset value can be either a dataset name by itself or a dataset name with a
member name:
SUMMARY(dataset)
SUMMARY(dataset(member))
To allocate a PDSE at the same time, use the format:
SUMMARY(dataset*(member*))
The dataset must be either a sequential file or a PDSE. You cannot use a PDS as a
summary report file because playback can write multiple members at the same time,
a function not supported by PDSs.
The dataset or member or both can contain wildcard characters (* or ?).
If a dataset name is supplied with no wildcards, no suffix is added to the dataset
name.
5-2
Hiperstation for Mainframe Servers User Guide
Figure 5-1. APPC Summary Report Example
HIPERSTATIONSUMMARY REPORT
TERMINAL ID: ** NA ** TPF NAME: H01APPCI
TIME: 15:35:37
DATE: 06/06/27
PAGE: 000
-------------OUTBOUND------------------------------- INBOUND --------------SCRIPT
PORT NUMBER MINIMUM
AVERAGE
MAXIMUM
NUMBER MINIMUM
AVERAGE
MAXIMUM
ELAPSED
-----------------------------------------------------------------------------------------------------------------SCR1003
3
1
00:00.298 00:00.298 00:00.298
1
00:00.095
00:00.095
00:00.095
00:00:06.007
SCR1003
3
1
00:00.007 00:00.007 00:00.007
1
00:00.017
00:00.017
00:00.017
00:00:06.692
SCR1003
3
1
00:00.013 00:00.013 00:00.014
1
00:00.014
00:00.014
00:00.014
00:00:06.538
SCR1003
3
1
00:00.007 00:00.007 00:00.007
1
00:00.026
00:00.026
00:00.026
00:00:06.377
*GRP-TOT
4
00:00.007
00:00.081
00:00.298
4
00:00.014
00:00.038
00:00.095
00:00:06.692
General Information
Script
The script being run. Two special script names, *SCR-TOT and *GRP-TOT, denote
script and group totals, respectively.
Port
Each terminal is assigned a port ID that is associated with the script.
Outbound Performance Information
Number
Number of SENDs or ALLOCATEs processed by the terminal for the script.
Minimum
Minimum response time for the SENDs or ALLOCATEs processed by the terminal for
the script.
Average
Outbound average is calculated from the sum of all response times for the port,
divided by the number of outbound transactions for that port.
Maximum
Maximum response time for the SENDs and ALLOCATEs processed by the terminal
for the script.
Inbound Performance Information
Number
Number of RECEIVEs or ACCEPTs processed by the terminal for the script.
Minimum
Minimum response time for the Receives or ACCEPTs processed by the terminal for
the script.
Average
Inbound average is calculated from the sum of all think times for the port, divided by
the number of inbound transactions for that port.
Maximum
Maximum response time for the RECEIVEs and ACCEPTs processed by the terminal
for that script.
APPC Reporting
5-3
Elapsed Time
Elapsed
Elapsed time is calculated based on the total amount of time it took the port and the
application to process the total number of transactions. For *SCR-TOT, this is the
maximum elapsed time of the individual scripts. For *GRP-TOT, this is the sum of the
*SCR-TOT elapsed times.
REXX Log
Include the RLOG keyword on your ALLOCATE/ACCEPT statements to produce a REXX
Log (refer to the syntax diagram in the “ALLOCATE and ACCEPT Statements” discussion,
on page 4-22). The REXX log reports the text of REXX SAY statements, which are most
often used to track the progress of a script.
RLOG(class|dsn)
Indicates that Hiperstation for Mainframe Servers allocates a REXX log for each APPC
conversation in the group. If the value is a single character, Hiperstation for
Mainframe Servers allocates the REXX log to SYSOUT in the class set by that single
character. If the value is more than one character, Hiperstation for Mainframe Servers
allocates the REXX log to a permanent file. By default, the REXX output is directed to
the SYSPRINT dataset.
The dataset value can be either a dataset name by itself or a dataset name with a
member name:
RLOG(dataset)
RLOG(dataset(member))
The dataset or member or both can contain wildcard characters (* or ?).
If a dataset name is supplied with no member and no wildcards, a dataset is created
with the name dsn.Pnnnn, where nnnn is the port number assigned to the
conversation.
5-4
Hiperstation for Mainframe Servers User Guide
6-1
Chapter 6.
TCP/IP Global Recording
Chap 6
Recording TCP/IP activity is the first step of TCP/IP application testing. Use the Monitor
TCP/IP 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. You can
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, and then
generate scripts.
Note:
Hiperstation for Mainframe Servers 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 TCP/IP 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
Client IP Address
Client Port
Server IP Address
Server Port
Note:
Global Record provides limited support of TCP/IP compressed data streams.
Though compressed activity may be captured, Hiperstation for Mainframe
Servers cannot generate scripts from the recorded activity. However, you can
record this type of activity to validate that your application is sending data to
the correct port.
To add a recording request:
1. From the Hiperstation Product Menu, select option 2 Hiperstation for Mainframe
Servers. The Hiperstation for Mainframe Servers Main Menu appears (Figure 6-1).
6-2
Hiperstation for Mainframe Servers User Guide
Figure 6-1. Hiperstation for Mainframe Servers Main Menu
--------------- Hiperstation for Mainframe Servers - Main Menu --------------Option ===>
Product Release: 08.00.01
SNA (3270, LU0, APPC)
1 Monitor Requests
2 Review Repository
3 Global Record Manager
4 Unattended Processing
Add/Review your Global Record requests
Create scripts from a repository
Manage Include/Exclude filter lists
Setup Unattended Playback and Compare JCL
TCP/IP
5 Archive Requests
6 Monitor TCP/IP Requests
7 Create TCP/IP Scripts
8 Playback TCP/IP Scripts
9 TCP/IP Playback Reporting
10 Archive Web Reporting
Add, Review or Terminate archive requests
Add/Review your Global Record requests
Create scripts from a repository
Execute playbacks of TCP/IP scripts
Report on database created from playback
Manage TCP/IP archive web reports
Note:
If TN3270 traffic at your site shares an address space with TCP/IP, use the
Monitor TCP/IP Requests option to record TN3270 activity. Otherwise, use
the SNA Monitor Requests, 3270 option. The 3270 option presents the same
screens as Hiperstation for VTAM’s Global Record. Refer to the Hiperstation
for VTAM User Guide for more information. If you are unsure of the address
space configuration, consult your installer.
2. Select option 6 Monitor TCP/IP Requests.
– If no recording requests exist for your user ID, the “Global Recording Requests
Screen” appears (Figure 6-2). Press Enter to add a request.
Figure 6-2. Global Recording Requests Screen
------------------------- Global Recording * Requests ------------------------COMMAND ===>
******************************************************************************
*
*
*
No Global Recording Requests were found for your userid.
*
*
*
******************************************************************************
Enter END to exit, ENTER to add a new request.
– If your user ID has existing requests, the “Global Recording - Monitor TCP/IP
Requests Screen” (Figure 6-3) appears. Place the cursor on the line next to any
existing request, type A (Add) and press Enter.
TCP/IP Global Recording
6-3
Figure 6-3. Global Recording - Monitor TCP/IP Requests Screen
Hiperstation ----- Global Recording - Monitor TCP/IP 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
------- -------- -------USER251
238
239
*******************************
Repository
Dataset
-------------------------------------------USER251.TCPIP.CAPALL.REP11
BOTTOM OF DATA ********************************
The “TCP/IP Collect Data - Filtering Screen” appears (Figure 6-4). These panels limit
the amount of TCP/IP data you record and identify where the raw data should be
stored during the Global Recording process.
Figure 6-4. TCP/IP Collect Data - Filtering Screen
Hiperstation --------- TCP/IP Collect Data - Filtering ------- Row 1 to 1 of 1
Command ===>
Scroll ===> PAGE
Identify the data to collect, then type OK on the Command line.
Restrict collection
HH :
Start Time . . 00 :
End Time . . . 00 :
to
MM
00
00
certain times (optional):
: SS
MM / DD / YYYY
: 00
Start Date . . 00 / 00 / 0000
: 00
End Date . . . 00 / 00 / 0000
Collect data that match these filters (use * for wildcards):
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
- --- --------------- Client ------------- -------------- Server -------------S Ftr IP Address
Port IP Address
Port
* *** ****************************** ***** ****************************** *****
001 172.22.173.*
*
10.10.0.200
*
******************************* Bottom of data ********************************
3. To limit capture to a specific time frame, enter a start and end time and date.
For example, the following range records activity for 28 hours beginning at 9:00 am
on May 10th and ending at 1:00 pm on May 11th.
Start Time = 09:00:00 Start Date 05/10/10
End Time = 13:00:00 End Date 05/11/10
To begin recording immediately and terminate the recording at your request, leave
these fields blank. Valid date ranges are from January 1, 2001 through December 31,
2040.
4. Create filters to capture activity based on Client IP address, Client Port, Server IP
Address, and/or Server Port. Hiperstation for Mainframe Servers records activity that
matches all of the criteria on any of the filters. Enter at least one filter.
– IPV4: Client IP Address or Server IP Address: Consists of four numeric
segments separated by periods. Each segment’s value can be 0-255. Leading zeros
are not required in any segment. Specify a range of addresses by entering a
wildcard (*) for any or all nodes of the address. For example, 172.22.*.* indicates
that the activity on all addresses beginning with 172.22 is subject to capture, or
172.*.173.165 indicates that all addresses beginning with 172 and ending with
173.165 are subject to capture.
6-4
Hiperstation for Mainframe Servers User Guide
– IPV6: Client IP Address or Server IP Address: An IPv6 IP address is 16 bytes long
and, in textual form, consists of eight two-byte segments. Each two-byte segment
is defined as a four-digit hexadecimal XXXX (0..9,A..F) value and segments are
separated by colons. Specify a range of addresses by entering a wildcard (*) for
any or all nodes of the address. Given that many of these segments could have a
zero value, IPv6 defines a shorthand representation to prevent the repetitive
entering of :0. Use double colon (::), to represent one or more consecutive zero
segments. Thus, an Ipv6 address of FE80:0:0:0:0:0:0:A0A could be written as
FE80::A0A. For more information about valid IP address filters, see “Filtering IP
Addresses” on page 7-9.
– Client Port or Server Port: A numeric field whose value can be 0-65535. Leading
zeros are not required. Specify a port or enter an asterisk (*) wildcard to capture
all ports associated with the specified IP addresses.
Notes:
• To add, copy, or delete a filter, enter the applicable line command (Insert,
Repeat, or Delete) in the filter number area and press Enter.
• Global Record cannot accurately determine the Client/Server assignment if
the initial CONNECT message for a specific session is not present. To ensure
proper capture of data in instances where the initial CONNECT message is
not present, create a duplicate filter with the Client and Server data reversed.
Example: (filter 000001 was the initial filter, 000002 is the duplicate):
Figure 6-5. Portion of Screen Filter Sample
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
- --- --------------- Client ------------- -------------- Server -------------S Ftr IP Address
Port IP Address
Port
* *** ****************************** ***** ****************************** *****
_ 001 172.22.173.*_________________ *___ 10.10.0.200 __________________ 2770_
_ 002 10.10.0.200__________________ *___ 172.22.173.*__________________ 515__
******************************* Bottom of data ********************************
5. After you have finished entering filtering criteria, type OK on the command line to
accept filters as entered and press Enter to continue (or type CANCEL on the
command line and press Enter to leave the screen without saving any information).
Your IP Address is checked for validity.
– If the address is valid the “TCP/IP Data Collect - Output Screen” appears (Figure
6-6).
– If the IP Address is invalid, a question mark appears in the selection column. See
“Correcting Invalid IP Address Errors” on page 6-6 to correct your errors and
then return to Figure 6-6 to continue.
– A warning, specified as a “W” will appear if you omit the FFFF and enter an IP
address in the format:
::10.10.0.32
Type an S over the W to select that IP address and you will navigate to the
“TCP/IP Collect Data Filters Screen” where you will get a message stating
“Deprecated IPV4 mapped IPV6 will capture only IPV6 address. On this screen,
you can modify your IP address if desired.
TCP/IP Global Recording
6-5
Figure 6-6. TCP/IP Data Collect - Output Screen
Hiperstation ----------- TCP/IP Collect Data - Output ------------------------Command ===>
Choose where to store the data, then press Enter to continue.
Repository dataset:
Dataset name . . . . . 'USER2312.TCPIP.CAPALL.REP??'
First and last number . 0000011 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 keep:
Data from client . . . ALL
Data from server . . . ALL
(ALL or number of bytes)
(ALL or number of bytes)
This screen specifies where to store captured data, whether to append or overwrite
existing data, and limits the number of client and server message bytes to capture.
You can store all captured data in one large sequential dataset or segment the dataset
to make data more accessible. After a segment is full, Global Recording closes that
segment and begins writing captured data to the next specified segment. You can
switch segments during recording to access recently captured data without
interrupting recording. See “Monitoring and Maintaining Existing Requests” on page
6-8.
6. In the Dataset name field, enter the name of the repository dataset to use for storing
captured information. To create a segmented dataset, use either of the following
wildcard characters (* or ?) in the dataset name field and define a range with the First
and last number fields:
– Asterisk (*): Inserts an incremental value into the dataset name qualifier where
the asterisk appears. This wildcard pads the incremental value with enough zeros
to ensure an eight character qualifier. For example, enter USER.REP*.DATABASE
with first=1 and last=3 to create capture repositories:
USER.REP00001.DATABASE
USER.REP00002.DATABASE
USER.REP00003.DATABASE
– Question mark (?): Inserts an incremental value into the qualifier where the
question marks appear. Enter at least one question mark for each digit of the
value supplied in the last Number field. For example, enter USER.
REP??.DATABASE with first=9 and last=11 to create capture repositories:
USER.REP09.DATABASE
USER.REP10.DATABASE
USER.REP11.DATABASE
Note:
Each segment of the dataset name must begin with an alpha character (A-Z)
or @#$ (including segments containing wildcard characters).
7. Select one of the following Re-use repository options:
– Delete existing data allows capture to start writing data to the begining of the
repository or the first segment of a repository set. Any data that exists will be
overwritten. Mutually exclusive with append to existing data. Use this option to
replace existing repository datasets.
– 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. Mutually exclusive with delete existing data.
6-6
Hiperstation for Mainframe Servers User Guide
– Overwrite existing data when all segments are full allows captured data to
continue writing data to the first segment of a repository set when the last
segment fills up. This option is only valid when using a repository set. If you do
not select this option, recording terminates when the last segment is full.
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.
8. Specify an Amount of data to keep, in bytes, of data to capture from each client and
server datastream.
Hiperstation can record any TCP/IP data that passes through this MVS system and
matches your filtering criteria. To record all of that data, specify ALL in both of these
fields. Otherwise, any non-zero numeric value will limit the amount of data
recorded from a single message.
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 server messages. If your testing requires comparing actual and expected
values during playback, enter 'ALL'.
9. Press Enter to continue.
– If you specified a dataset that does not exist, the Allocate a TCP/IP 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.
– Otherwise, the Global Recording - Monitor TCP/IP Requests screen appears. See
the next section, “Monitoring and Maintaining Existing Requests”.
Correcting Invalid IP Address Errors
If you enter an invalid IP address filter and press Enter, the line with the error will
contain a question mark (?) in the Selection column. The IP address will be considered
invalid if you enter data outside the allowed range or if you enter too many or too few
address nodes for the IPv4 or IPv6 IP address format. See Figure 6-7 for an example of an
invalid IP address.
Note:
For information on how to create valid IP filters, see “Filtering IP Addresses” on
page 7-9.
TCP/IP Global Recording
6-7
Figure 6-7. TCP/IP Collect Data - Filtering Screen with IP Address Errors
Hiperstation --------- TCP/IP Collect Data - Filtering ------- Row 1 to 2 of 2
Command ===>
Scroll ===> PAGE
Identify the data to collect, then type OK on the Command line.
Restrict collection
HH :
Start Time . . 00 :
End Time . . . 00 :
to
MM
00
00
certain times (optional):
: SS
MM / DD / YYYY
: 00
Start Date . . 00 / 00 / 0000
: 00
End Date . . . 00 / 00 / 0000
Collect data that match these filters (use * for wildcards):
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
S
*
?
--- --------------- Client ------------- -------------- Server -------------Ftr IP Address
Port IP Address
Port
*** ****************************** ***** ****************************** *****
001 10.22.115.555
1868 10.10.0.200
23
002 172.22.115.*
1869 10.10.0.200
24
003 FE80::*
1867 FE80:0:0:0:0:0:0:A0A
25
******************************* Bottom of data ********************************
If you are unsure of what is wrong, you can type S to select the invalid IP address filter.
When you press Enter, the “TCP/IP Collect Data Filters Screen” appears (Figure 6-8).
Figure 6-8. TCP/IP Collect Data Filters Screen
Hip +-------------------------------------------------------------------------+
Com | Hiperstation ----------- TCP/IP Collect Data Filters ------------------ |
| Command ===>
Scroll ===> PAGE |
Ide |
|
| Review and/or edit. Use END when done, PF1 for help or SKIP to exit
|
Res |
|
| TCP Filter Number . .
001 of 002
|
Sta |
|
End | Field Name
Filtering Criteria
|
| *********************
*********************************************
|
Col | Client IP Address . . ? 10.22.115.555________________________________
|
| Client Port . . . . .
1868_
|
Lin | Server IP Address . .
10.10.0.200__________________________________
|
| Server Port . . . . .
23___
|
- - |
|
S F |
|
* * |
|
s 0 |
|
0 |
|
*** +-------------------------------------------------------------------------+
The “TCP/IP Collect Data Filters Screen” shows a question mark (?) for the field with the
error. If you cannot figure out what the error is from looking at this screen, press PF1 to
open the online help. Scroll forward to the description of the field containing the error
for more information.
In this example, the fourth node of the Client IP Address is too large. The number must
be between 0-255. When you enter a correct node address and press Enter, the question
mark will disappear.
Another possible reason for the question mark to appear would be if you enter an IPv6
address on the “TCP/IP Collect Data - Filtering Screen” (Figure 6-4) that is too long to fit
in the available field. The fact that the IP address is incomplete would cause the question
mark (?) to appear. If your error is marked with an ‘R’, it designates a security error
indicating that the IP adddress and port are restricted.
You cannot mix IPV4 and IPV6 IP addresses. The client IP address and the server IP
address must both be IPV4 or both be IPV6. You can use an asterisk (*) to specify either an
IPV4 or IPV6 IP address, but you cannot use blank as an IP address.
6-8
Hiperstation for Mainframe Servers User Guide
You must correct all IP address errors before you can continue to the next screen. Correct
your IP address errors and return to Figure 6-6 on page 6-5 to continue. The correction
you make on the “TCP/IP Collect Data Filters Screen” will be carried over to the “TCP/IP
Collect Data - Filtering Screen”.
If you cannot figure out how to correct your IP address, you can use the SKIP command
to exit the “TCP/IP Collect Data Filters Screen” and return to your previous screen. You
cannot exit using END if there are errors on this screen. For more information on how to
create valid IP filters, see “Filtering IP Addresses” on page 7-9.
Monitoring and Maintaining Existing Requests
The “Global Recording - Monitor TCP/IP Requests Screen” (Figure 6-9) typically displays
all of the recording requests that you 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 6-10. Active recording requests are
highlighted.
Figure 6-9. Global Recording - Monitor TCP/IP Requests Screen
Hiperstation ------- Global Recording - Monitor TCP/IP Requests --- Row 1 of 4
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
------- -------- -------USER2312
199
325
USER2312
*******************************
Repository
Dataset
-------------------------------------------USER2312.TCPIP.CAPALL.REP14
USER2312.TCPIP.CAPALL.REP13
BOTTOM OF DATA ********************************
Use this screen to:
• Add, cancel, force, stop, restart, disable, update, or view a recording request.
• Switch capture repository segments.
• View session information.
The Active Sessions column displays the number of active TCP/IP connections at the
time the Monitor TCP/IP Request screen is accessed. The Total Sessions column displays
the total number of TCP/IP connections captured. These values fluctuate as new
connections are established and existing connections are closed. Hiperstation for
Mainframe Servers updates this count as it processes buffered information. If the request
is active, press Enter to refresh the screen.
The Repository Dataset column displays, for active requests, the dataset that data is
currently being written to. For inactive requests written to segmented repositories, this is
the first dataset in the repository set.
Place the applicable line command next to the selected request and press Enter.
Following is a description of the line commands available on this screen.
• (C)ancel 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.
TCP/IP Global Recording
6-9
• (F)orce 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 (P) instead.
• (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)estart restarts the selected request after using the D, F, or P line commands.
• (D)isable disables the selected request and prevents it 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)elect displays a list of all TCP/IP connections currently being captured. See the
next section, “View Session Information”.
• (U)pdate 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. When editing is complete, issue a RESTART command to
reactivate the request.
• (A)dd adds a request. See “Adding a Global Recording Request” on page 6-1.
• (V)iew 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 line command to access recently recorded information
without interrupting capture. If you selected Overwrite existing data when all
segments are full (Figure 6-6 on page 6-5), Hiperstation for Mainframe Servers
begins writing data to the first segment after the last segment is full. If the first
segment is in use, Hiperstation for Mainframe Servers produces a “Dataset Full”
message and begins writing to the next segment.
View Session Information
You can 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.
To view session information, type S next to an active request on the “Global Recording Monitor TCP/IP Requests Screen” (Figure 6-9 on page 6-8) and press Enter. The “Global
Recording - Active TCP/IP Sessions Screen” appears (Figure 6-10). Press End to return to
the Monitor TCP/IP Requests screen.
Figure 6-10. Global Recording - Active TCP/IP Sessions Screen
Hiperstation ---- Global Recording - Active TCP/IP Sessions ---- Row 1 of 1000
Command ===>
SCROLL ===> PAGE
------- Client -----IP Address
Port
--------------------10.10.0.204
2770
10.14.89.163
1648
10.20.16.126
4837
172.22.115.157
1868
10.10.0.207
3684
10.10.0.204
2618
10.10.0.204
2768
172.22.103.191
3110
------- Server -----IP Address
Port
--------------------172.22.19.28
515
10.10.0.200
17300
10.10.0.200
23
10.10.0.200
23
10.10.0.200
1410
10.10.0.205
1410
172.22.19.28
515
10.10.0.200
23
Session Start
MM/DD HH:MM:SS
-------------03/17 14:04:20
03/17 14:04:15
03/17 14:03:45
03/17 14:03:29
03/17 14:02:59
03/17 14:02:59
03/17 14:02:31
03/17 14:02:14
Last Update at
MM/DD HH:MM:SS
-------------03/17 14:04:21
03/17 14:04:59
03/17 14:05:03
03/17 14:05:04
03/17 14:02:59
03/17 14:02:59
03/17 14:02:32
03/17 14:05:03
Total
Bytes
----5580
1905
31K
5449
56
56
5580
27K
The information that appears on this screen includes Client and Server IP Address and
Port, the time when the connection was established, the time of the most recent activity
within the connection, and total bytes of message data recorded for the given
connection. ‘K’ indicates the value is in thousands, ‘M’ indicates millions.
6-10
Hiperstation for Mainframe Servers User Guide
Monitor All Existing Requests (Administrator Access)
If you have the appropriate authority, you can access the Monitor TCP/IP Requests
option as an administrator. You can 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 may also require authority to
update the script and/or repository datasets specified in the recording request.
Your Hiperstation installer enables the security validation — your Security
Administrator maintains the authorities.
To view all of the existing recording requests:
1. On the Command line of the Hiperstation for Mainframe Servers - Main Menu, type
ADMIN and press Enter. The screen title updates to indicate administrator access
mode.
2. Select the Monitor TCP/IP Requests option and press Enter. The “Global Recording Monitor TCP/IP Requests Screen” appears (Figure 6-9 on page 6-8).
Using the Global Recording Batch Interface
Hiperstation for Mainframe Servers 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.
You can use the online and batch interfaces together. For example:
• Create a recording request with the online interface and then manage it with
scheduled jobs.
• Initiate recording with the batch interface and then use the Monitor TCP/IP Requests
option to view a list of sessions being captured.
Create a Global Recording Request
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 6-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 6-13.
2. Use SQQFSAMP member DCIJCL (Figure 6-11) 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.
TCP/IP Global Recording
6-11
c. When 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 6-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 80byte 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 6-11. 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 MQSERIES 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.QQF800.SQQFSAMP')
<-REVIEW
//DCI
EXEC PROC=DCIPROC
//FEEDBACK DD *
//SYSTSIN DD *
ISPSTART PGM(QACDCIP) PARM(ADD)
<-REVIEW
/*
//SYSIN
DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFSAMP(DCIADXTP) <-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 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.
6-12
Hiperstation for Mainframe Servers User Guide
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 preceded by a back slash inside the angle brackets. For example:
<Client_IP_Address> '*' </Client_IP_Address>
If the parameter value contains spaces, it must be placed in single quotation marks. In
the samples and generated parameter sets, the parameter values always appear 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'QA_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 Client IP Address
parameter example:
<Client_IP_Address>
</Client_IP_Address>
'*'
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 TCP/IP Global Recording request parameters are sub-parameters of the
<TCP> protocol parameter. The start and end time and date parameters are subparameters of Scheduled_Capture, which is a sub-parameter of the <TCP> protocol
parameter.
<TCP>
<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>
</TCP>
Note:
This example shows tag nesting. It is not a complete set of request parameters.
TCP/IP Global Recording
6-13
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. The comment text is entered and is followed by two dashes and a closing
angle bracket. For example:
<!--This is an XML comment. -->
Global Recording Request Parameters
Global Recording request parameters are defined in XML. For syntax rules, see “Global
Recording Request Parameter Syntax” on page 6-11.
Start with one of the following:
• The parameters from an existing request. See “Retrieve the Parameters of an Existing
Request” on page 6-21.
• A parameters skeleton. See “Generate a Request Parameters Skeleton” on page 6-22.
• SQQFSAMP member DCIADXTP, which contains all available TCP/IP Global
Recording request parameters.
• SQQFSAMP member DCIADDTP, which contains a subset of commonly used TCP/IP
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:
1. 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
2. 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 may not 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 on page 6-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.
This section provides an illustration of sample DCIADXTP (Figure 6-12) and defines all of
the available TCP/IP Global Recording request parameters.
Parameter hierarchy is shown in Figure 6-12 and defined within the parameter
definitions.
6-14
Hiperstation for Mainframe Servers User Guide
Figure 6-12. SQQFSAMP member DCIADXTP
********************************* Top of Data **********************************
<TCP>
<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 APPEMD or OVERWRITE -->
<Initial_Disposition>
'APPEND'
</Initial_Disposition>
<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_Client>
</Data_From_Client>
<Data_From_Server>
</Data_From_Server>
</Data_To_Keep>
''
''
''
'SYSDA'
''
'TRKS'
'10'
'5'
'9004'
'NO'
'ALL'
'ALL'
<TCP_Capture_Filters>
<Filter Record="1">
<Client_IP_Address>
'*'
</Client_IP_Address>
<Client_Port>
'*'
</Client_Port>
<Server_IP_Address>
'*'
</Server_IP_Address>
<Server_Port>
'*'
</Server_Port>
</Filter>
</TCP_Capture_Filters>
</TCP>
******************************** Bottom of Data ********************************
TCP/IP Global Recording
6-15
Protocol Parameter Tag
TCP
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 TCP tags.
General Request Parameter Tag
Request ID
Specifies the ID of the Global Recording request. To assign a request ID, supply a sixbyte 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'QAREQ1'</Request_ID>
The batch interface pads hexadecimal values that are fewer than six bytes with zeros
and character values that are fewer 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 for 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 and End_Date
The month, day, and year to activate or deactivate the request. Specify a two
digit month, a two digit day, and a four digit year separated by 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). 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).
If you set the Force_At_End_Time recording option to 'Y', an end time and date
are required.
Start_Time and End_Time
The time to activate or deactivate the request. Specify a two-digit hour, a twodigit 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.
If you specify an end time, an end date is required. 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 set the Force_At_End_Time recording option to 'YES', an end time and
date are required.
6-16
Hiperstation for Mainframe Servers 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 required
parameter accepts 44 characters.
To create a segmented capture file, use either of the following wildcard characters
in the dataset name. Define a range for the wildcard characters with the
First_Number and Last_Number tags:
• Asterisk (*): Inserts an incremental value into the dataset name qualifier
where the asterisk appears. This wildcard pads the incremental value with
enough zeros to ensure an eight character qualifier. For example,
USER.TCP.REC* with first=1 and last=3 creates capture datasets:
USER.TCP.REC00001
USER.TCP.REC00002
USER.TCP.REC00003
• Question mark (?): Inserts the incremental value into the qualifier where the
question marks appear. Enter at least one question mark for each digit of the
value supplied on the Last_Number tag. For example, USER.TCP.REC?? with
first=9 and last=11 creates capture datasets:
USER.TCP.REC09
USER.TCP.REC10
USER.TCP.REC11
Note: Begin each segment of the dataset name with an alpha character (A-Z) or
@#$, including segments with wildcard characters.
First_Number and Last_Number
Defines the first value and last value to use for wildcard characters specified on
the Dataset tag. For each tag, supply a value up to seven digits. If you did not use
a wildcard, do not include these tags.
Initial Disposition
Specifies 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.
TCP/IP Global Recording
6-17
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 where the dataset is to be stored.
Device_Type
The type of device where the dataset is to be stored. Device_Type 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 include: 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. After 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 only to segmented capture files. 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 client and server 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
6-18
Hiperstation for Mainframe Servers User Guide
and want to avoid storing and processing unnecessary data, limit capture of server
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_Client
The number of bytes to capture from each datastream coming from the client.
This is an optional parameter. If you omit this tag, Global Recording captures all
message data.
Data_From_Server
The number of bytes to capture from each datastream coming from the server.
This is an optional parameter. If you omit this tag, Global Recording captures all
message data.
TCP Capture Filter Tags
Filter Record="x"
Defines a capture filter. Supply the 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 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.
All of the sub-parameters are optional. However, the batch interface requires at least
one filter and each filter must contain at least one of the following sub-parameter. To
record all activity on the system, create a filter containing any of the sub-parameters
with a wildcard value. For example:
<Filter Record="1">
<Client_IP_Address> '*'
</Client_IP_Address>
</Filter>
Client_IP_Address
The client IP addresses subject to capture. Specify:
• A specific IP address.
• A range of addresses by supplying a wildcard character (*) for any or all nodes
of the address. For example, 172.22.*.* indicates that the activity on all
addresses beginning with 172.22 is subject to capture, or 172.*.173.165
indicates all addresses beginning with 172 and ending with 173.165 are
subject to capture.
• All IP address by supplying a single asterisk or omitting the tag altogether.
Client_Port
The client ports subject for capture. Specify a port or enter an asterisk (*) to
capture all ports associated with the specified client IP addresses.
Server_IP_Address
The server IP addresses subject to capture. Specify:
• A specific IP address.
TCP/IP Global Recording
6-19
• A range of addresses by supplying a wildcard (*) for any or all nodes of the
address. 10.10.*.* indicates all addresses beginning with 10.10 are subject to
capture, or 10.*.0.200 indicates all addresses beginning with 10 and ending
with 0.200 are subject to capture.
• All IP address by supplying a single asterisk or omitting the tag altogether.
Server_Port
The server ports subject for capture. Specify a port or enter an asterisk (*) to
capture all ports associated with the specified server IP addresses.
Check the Status of Existing Requests
Use the KEYS function to:
• 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 — the name of the capture file (also known as the 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 6-11 on page 6-11) 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
keys 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 *
<APPC>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USR2503.TCP.QA.REC??’
</Dataset>
</Capture_File>
</APPC>
6-20
Hiperstation for Mainframe Servers User Guide
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 TCP/IP requests that you
created, the KEYS function requires the protocol parameter. For example:
// SYSIN DD *
<TCP>
</TCP>
6. Submit the job.
Manage Existing Requests
Use the batch interface request management functions to:
•
•
•
•
•
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 6-19.
Use SQQFSAMP member DCIJCL (Figure 6-11 on page 6-11) 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. STOP or FORCE the
request prior to disabling it.
TCP/IP Global Recording
6-21
– SWITCH closes the capture file segment that is currently being written and opens
the next segment. This option is only available 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 *
<TCP>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USR2503.TCP.QA.REC??’
</Dataset>
</Capture_File>
</TCP>
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 the Parameters of an Existing Request” on page 6-21.
2. Modify the parameters. See “Global Recording Request Parameters” on page
6-13 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
and 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 the Parameters of 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 when 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 6-11 on page 6-11) 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.
6-22
Hiperstation for Mainframe Servers User Guide
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. 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 *
<TCP>
<Request_ID>
C'QA_REQ’
</Request_ID>
<Capture_File>
<Dataset>
‘USR2503.TCP.QA.REC??’
</Dataset>
</Capture_File>
</TCP>
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 when creating a new request.
• See all of the available parameters.
• Reference the syntax of a particular tag.
Use SQQFSAMP member DCIJCL (Figure 6-11 on page 6-11) 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 *
<TCP>
</TCP>
TCP/IP Global Recording
6-23
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. If your installer accepted the default, PRGLOG resides in the
JES job log.
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 TCP/IP Capture Repositories
Hiperstation for Mainframe Servers 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, you can 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 6-13) 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, 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, place each parameter on a separate line. For
the parameters that require a value, follow the parameter name with a space, an
equals sign (=), another space, and the value.
Parameter definitions follow Figure 6-13.
7. Submit or schedule the job. To submit the job immediately, type SUB on the
Command line and press Enter.
6-24
Hiperstation for Mainframe Servers User Guide
Figure 6-13. 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.QQF800.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: USR2503.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 dataset name 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). For information regarding
repository name wildcard characters, see step 6 on page 6-5.
FIRST and LAST
The first and last values to use for resolving the wildcard characters specified in the
repository name. For each field, 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 these parameters.
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.
TCP/IP Global Recording
6-25
REP_UNIT
The type of device that the dataset will be stored on. 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. After 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 as defined by the storage
administrator at your site. This optional parameter has no default value.
REP_DATACLAS
The data class to apply to the output dataset as defined by the storage administrator
at your site. Your storage administrator provides default values for dataset definition
parameters such as SPACE, RECFM, and LRECL. This optional parameter has no
default value.
REP_MGMTCLAS
The management class to apply to the output dataset as defined by the storage
administrator at your site. Your storage administrator controls attributes of SMS
managed datasets such as migration, back up, compression, retention period, and
space reclamation. This optional parameter 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.
TCP/APPC/MQ
The record-type selection parameter. This utility supports Hiperstation for Mainframe
Servers and Hiperstation for WebSphere MQ, so you must specify the type of record
to select from the input repository. If you are merging capture repositories
containing TCP, HTTP, HTTPS, ECI, CTG, DB2C, or IMSC activity, specify TCP.
Otherwise, the utility uses the default value of MQ.
6-26
Hiperstation for Mainframe Servers User Guide
7-1
Chapter 7.
TCP/IP Scripts and Subset Repositories
Chap 7
Creating Scripts and Subset Repositories
Capture repositories contain recorded activity in a compressed format. Scripts contain
formatted, human-readable data generated from a capture repository. Play back scripts to
test TCP/IP applications or browse them to review TCP/IP data flows.
After you have recorded activity (see Chapter 6, “TCP/IP Global Recording”), use the
Create TCP/IP Scripts option to:
• Build testing scripts from the capture repository.
• Generate subset repositories containing specified activity.
• Generate a Connection Log that lists the all of the scripts created. Use the
Connection Log as the SYSIN for an unattended playback job.
Hiperstation for Mainframe Servers 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, you can save time and spare system resources by
identifying the repository segments of interest. Script only the segments you need, as
opposed to the entire capture repository. The Capture Segment Summary, discussed on
page 2-50, 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.
Create TCP/IP Scripts and Establish Filtering Criteria
The capture repository may contain more activity than is required to perform a given
test. You can supply filtering criteria to create only the scripts or subset repositories
containing the activity you need. Activity that matches any of the filters is written into
the scripts or subset repositories.
You can filter by one or more of the following criteria: Time Frame, Client IP Address,
Client Port, Server IP Address. and Server Port.
Additional protocol-specific filtering options are also available:
•
•
•
•
“DB2 Connect Filters” on page 7-4.
“IMS Connect Filters” on page 7-5.
“CTG Filters” on page 7-7.
“ECI Filters” on page 7-8.
Hiperstation for Mainframe Servers requires at least one filter to create scripts or subset
repositories. Each line in the lower portion of the screen represents a separate filter for
creating scripts or subset repositories.
7-2
Hiperstation for Mainframe Servers User Guide
Filtering Line Commands
The “TCP/IP Create Scripts - Filtering Screen” (Figure 7-2) as well as the DB2, IMS, CTG,
and ECI filter screens all use the following line commands to view additional filter details
and to add or remove filters:
• (S)elect displays a protocol-specific filtering screen when additional filtering is
available.
• (R)epeat repeats the selected filter.
• (D)elete deletes the selected filter as long as it is not currently in use by an active
Global Recording request.
• (I)nsert inserts a blank filter after the selected filter.
• (A)ddress displays the TCP/IP Create Scripts - Filtering IP Addresses screen. This
allows you to specify whether you want to use IPv6 or IPv4 as your IP address format.
From the Hiperstation for Mainframe Servers Main Menu (Figure 7-1), type 7 on the
Option line to select Create TCP/IP Scripts and press Enter.
Figure 7-1. Hiperstation for Mainframe Servers Main Menu
--------------- Hiperstation for Mainframe Servers - Main Menu --------------Option ===>
Product Release: 08.00.01
SNA (3270, LU0, APPC)
1 Monitor Requests
2 Review Repository
3 Global Record Manager
4 Unattended Processing
Add/Review your Global Record requests
Create scripts from a repository
Manage Include/Exclude filter lists
Setup Unattended Playback and Compare JCL
TCP/IP
5 Archive Requests
6 Monitor TCP/IP Requests
7 Create TCP/IP Scripts
8 Playback TCP/IP Scripts
9 TCP/IP Playback Reporting
10 Archive Web Reporting
Add, Review or Terminate archive requests
Add/Review your Global Record requests
Create scripts from a repository
Execute playbacks of TCP/IP scripts
Report on database created from playback
Manage TCP/IP archive web reports
The “TCP/IP Create Scripts - Filtering Screen” appears (Figure 7-2).
Figure 7-2. TCP/IP Create Scripts - Filtering Screen
Hiperstation -------- TCP/IP Create Scripts - Filtering ------ Row 1 to 2 of 8
Command ===>
Scroll ===> PAGE
Make changes to the filtering criteria below (use * for wildcards) and
press ENTER or select a filter to edit protocol-specific fields. Use OK
command when complete. Use DEFAULT to see a sample list of possible
filters or use RESET to restore the list to the basic HTTP filter only.
Only use data that is within certain times (optional):
HH : MM : SS
MM / DD / YYYY
Start Time . . 00 : 00 : 00
Start Date . . 00 / 00 / 0000
End Time . . . 00 : 00 : 00
End Date . . . 00 / 00 / 0000
Line commands are: (A)ddress, (S)elect, (R)epeat, (D)elete, or (I)nsert
S Ftr F
IP Address
***** *
**********
001
Client: *.*.*.*_______________________________________
Protocol: HTTP__ Server: *.*.*.*_______________________________________
Port
*****
*____
80___
002
Client: *.*.*.*_______________________________________
Protocol: HTTPS_ Server: *.*.*.*_______________________________________
*____
443__
TCP/IP Scripts and Subset Repositories
7-3
This screen is the starting point for creating Hiperstation TCP/IP scripts. The scripts that
you create with these panels can then be used for performing playbacks or simply for
browsing TCP/IP data flows (for example, to help with application debugging).
Before creating scripts, you must have a repository that contains the raw TCP/IP data
captured with the Hiperstation Global Recording component. A repository is an MVS
sequential dataset that was named on a Global Recording request to contain captured
TCP/IP data.
Use this Filtering panel to limit the data used to create scripts. You can also name the
protocols associated with particular TCP port numbers. This is important if your system
uses nonstandard port numbers for the HTTP or HTTPS servers.
Hiperstation can play back HTTP, HTTPS, DB2, IMS, ECI and CTG scripts, but you can
capture (for browsing, not for playback) any TCP data streams, regardless of application
protocol. Currently, UDP data streams cannot be captured or played back.
1. Supply start and end times and dates to generate scripts that contain only data from
a specific period. Note that the start and end times form a single range, not multiple
ranges across several dates. For example, START TIME = 08:00:00, END TIME =
10:00:00, START DATE = 5/20/2010, END DATE = 5/21/2010 is a total of 26 hours, not
2 hours.
Valid date ranges are from January 1, 1900 through December 31, 2041. Hiperstation
for Mainframe Servers populates these fields with the last specified values. Leave all
values zeros if you do not want to filter activity based on time and date.
Note: The Ftr column contains an arbitrary value assigned as a unique ID for each filter.
This field cannot be modified.
2. Supply IP addresses and port numbers to limit scripts to the specified values. The
wildcard character, an asterisk (*), can be supplied to indicate that any value is a
match. In addition, any or all of the four segments of an IP address can be wildcarded. In a field or an IP address segment, a wildcard must appear by itself, not
mixed with other values.
3. Valid line commands are ‘D’elete, ‘I’nsert, ‘R’epeat, ‘S’elect and ‘A’ddress. Selecting a
row moves to a protocol-specific CONTENT filtering panel (not available for HTTP,
HTTPS, or TCP). Addressing a row formats the Client and Server IP addresses into
structured fields, depending on format (IPv6, IPv4 or mixed) for easy modification.
Use one of the line commands to perform an action on the designated filter. See
“Filtering Line Commands” on page 7-2 for more information.
4. Enter a Protocol Name to apply to the activity that matches the given filter. Valid
values are HTTP, HTTPS, TCP, ECI, CTG, DB2C, and IMSC. Hiperstation for
Mainframe Servers uses the protocol names assigned to the activity in the scripts to
initiate the appropriate message handlers during playback.
5. Enter the Client IP Address associated with the activity you wish to include in the
scripts or subset repositories. Enter an asterisk (*) wildcard for any IP address segment
to include all possible values for the given segment. A wildcard character can be used
on any or all segments. You can enter an IPv6 or IPv4 address.
6. Specify the Client Port. Enter an asterisk (*) wildcard to indicate all ports. If you
enter an asterisk, all activity on all ports for the specified IP address is labeled with
the protocol specified in the Protocol Name field.
7. Specify the Server IP Address. Enter an asterisk (*) wildcard for any IP address
segment to include all possible values for the given segment. A wildcard character
can be used on any or all segments. You can enter an IPv6 or IPv4 address.
8. Specify the Server Port. Enter an asterisk (*) wildcard to indicate all ports. If youenter
an asterisk, all activity on all ports for the specified IP address is labeled with the
protocol specified in the Protocol Name field.
7-4
Hiperstation for Mainframe Servers User Guide
9. Type OK on the command line and press Enter to validate the information you have
entered and move to the next Create Scripts panel. Use Exit to return to the previous
panel.
Note:
As a guide to the available protocols, type DEFAULT to propagate the filters list
with a default filter for every supported protocol. When doing this, you must
type a Server Port number for those ports that are set to asterisk (*) in the default
samples because duplicates (including duplicate asterisks) are not allowed. To
reset the filters list (losing all changes), type RESET to restore the filters list to to
the initial HTTP filter.
The screen that appears next depends on what you select on this panel. If you typed OK,
see “Define Activity Grouping” on page 7-11 to continue. If you selected one of the
protocols (other than HTTP, HTTPS, or TCP, which do not accept filters), you will
navigate to the filter screen for that protocol. A description of these filters follows. If you
used the ‘A’ddress line command, you will proceed to the “TCP/IP Create Scripts Filtering IP Addresses Screen” screen (Figure 7-11 on page 7-11).
DB2 Connect Filters
1. On the “TCP/IP Create Scripts - Filtering Screen”(Figure 7-2 on page 7-2), select a DB2
Connect filter from the list of filters. The “TCP/IP Create Scripts - DB2 Connect
Filters” appears (Figure 7-3).
Figure 7-3. TCP/IP Create Scripts - DB2 Connect Filters
Hiperstation ------- TCP/IP Create Scripts - DB2 Connect Filte Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to the DB2 Connect filtering criteria below or select a filter to
edit the expanded fields. Use END when complete.
Client IP Address: *.*.*.*
Server IP Address: *.*.*.*
Client Port: *
Server Port: 3115
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
SQL
SQL
S Ftr Act SQL Statement
RDB Name
UserId
Code
State
***** **** ************************** ****************** ******** ****** *****
_ 001 ____ __________________________ __________________ ________ ______ _____
_ 002 ____ __________________________ __________________ ________ ______ _____
_ 003 ____ __________________________ __________________ ________ ______ _____
_ 004 ____ __________________________ __________________ ________ ______ _____
_ 005 ____ __________________________ __________________ ________ ______ _____
_ 006 ____ __________________________ __________________ ________ ______ _____
_ 007 ____ __________________________ __________________ ________ ______ _____
_ 008 ____ __________________________ __________________ ________ ______ _____
******************************* Bottom of data ********************************
Note: The Ftr column contains an arbitrary value assigned as a unique ID for each filter.
This field cannot be modified.
You can use one of the line commands, (S)elect, (R)epeat, (D)elete, or (I)nsert, to
perform an action on the designated filter. See “Filtering Line Commands” on page
7-2 for more information.
2. Specify the filter action (Act) to be performed. Valid values are INCL (include) or
EXCL (exclude). Data from the repository must match at least one Include filter and
none of the Exclude filters to be included in the output.
3. Enter an SQL statement to be monitored (alphanumeric). Enter an asterisk (*)
wildcard to specify all SQL statements.
4. Enter an RDB Name (alphanumeric Relational Database Name). Enter an asterisk (*)
wildcard to specify all databases.
TCP/IP Scripts and Subset Repositories
7-5
5. Enter the UserId to filter connections on. Enter an asterisk (*) wildcard to indicate all
user IDs.
6. Enter a five-digit SQL code. Valid values include numbers from -30106 to 30100.
7. Enter a five-digit, alphanumeric SQL state, xxyyy, where xx represents the class code
and yyy the subclass code.
8. Issue the S (select) line command to view detail data for the desired filter. The
“TCP/IP Create Scripts - DB2 Connect Filter Detail Screen” appears (Figure 7-4).
The SQL Statement, RDB Name, UserId, SQLcode, and SQLstate fields are prefilled
from the previous screen but can be changed.
Figure 7-4. TCP/IP Create Scripts - DB2 Connect Filter Detail Screen
Hiperstation - TCP/IP Create Scripts - DB2 Connect Filter Detail -----------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number
Filter action
Field Name
**************
SQL Statement
SQL Answer Set
RDB Name
UserId
SQLCode
SQLstate
001 of 008
Include
RO
**
__
__
__
__
__
__
(Include or Exclude)
Filtering Criteria
************************************************************
____________________________________________________________
____________________________________________________________
__________________
________
____
_____
9. Enter an SQL Answer Set and its relational operator. This alphanumeric field
specifies data returned in response to an SQL statement. Enter an asterisk (*) wildcard
to indicate all responses.
The relational operators (RO) for each field with filtering criteria are prefilled from
the previous screen but can be changed. This column specifies how the filtering
criteria are compared to the actual content data. Valid values can be entered as either
alphabetic- or character-based codes as shown below.
Description
Equal
Not Equal
Less Than
Greater Than
Less Than or Equal To
Greater Than or Equal To
Contains
Not Contains
Alphabetic
Code
EQ
NE
LT
GT
LE
GE
CO
NC
Character
Code
== or =
^= or !=
<
>
<=
>=
(no equivalent)
(no equivalent)
IMS Connect Filters
1. On the “TCP/IP Create Scripts - Filtering Screen”(Figure 7-2 on page 7-2), select an
IMS Connect filter. The “TCP/IP Create Scripts - IMS Connect Filters Screen” appears
(Figure 7-5).
7-6
Hiperstation for Mainframe Servers User Guide
Figure 7-5. TCP/IP Create Scripts - IMS Connect Filters Screen
Hiperstation -------- TCP/IP Create Scripts - IMS Connect Filt Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to the IMS Connect filtering criteria below or select a filter to
edit the expanded fields. Use END when complete.
Client IP Address: *.*.*.*
Server IP Address: *.*.*.*
Client Port: *
Server Port: 3150
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
S Ftr Act Transcode Datastore User Id Client Id Client USERDATA
***** **** ********* ********* ******** ********* **************************
_ 001 ____ ________ ________ ________ ________ __________________________
_ 002 ____ ________ ________ ________ ________ __________________________
_ 003 ____ ________ ________ ________ ________ __________________________
_ 004 ____ ________ ________ ________ ________ __________________________
_ 005 ____ ________ ________ ________ ________ __________________________
_ 006 ____ ________ ________ ________ ________ __________________________
_ 007 ____ ________ ________ ________ ________ __________________________
_ 008 ____ ________ ________ ________ ________ __________________________
******************************* Bottom of data *****************************
Note: The Ftr column contains an arbitrary value assigned as a unique ID for each filter.
This field cannot be modified.
You can use one of the line commands, (S)elect, (R)epeat, (D)elete, or (I)nsert, to
perform an action on the designated filter. See “Filtering Line Commands” on page
7-2 for more information.
2. Specify the filter action (Act) to be performed. Valid values are INCL (include) or
EXCL (exclude). Data from the repository must match at least one Include filter and
none of the Exclude filters to be included in the output.
3. Specify the alphanumeric Transcode to filter connections by IMS transaction code
(the target application program). Enter an asterisk (*) wildcard to indicate all
transaction codes.
4. Enter an alphanumeric Datastore to filter connections by IMS datastore (as defined
in the IMS Connect configuration file on the server). Enter an asterisk (*) wildcard to
indicate all datastores.
5. Enter an alphanumeric User ID to filter connections based on the RACF userID
associated with them. Enter an asterisk (*) wildcard to indicate all user IDs.
6. Enter an alphanumeric Client ID to filter connections based on the unique client
identifier associated with them. Enter an asterisk (*) wildcard to indicate all client
IDs.
7. Enter alphanumeric Client USERDATA to filter client data not found in IMS Connect
headers. Enter an asterisk (*) wildcard to indicate all client data.
8. Enter the S (select) line command. The “TCP/IP Create Scripts - IMS Connect Filter
Detail Screen” appears (Figure 7-6).
The Transcode, Datastore, User Id, Client Id, and Client USERDATA fields and their
relational operators are prefilled from the previous screen but can be changed.
TCP/IP Scripts and Subset Repositories
7-7
Figure 7-6. TCP/IP Create Scripts - IMS Connect Filter Detail Screen
Hiperstation ---- TCP/IP Create Scripts - IMS Connect Filter Detail --------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number
Filter action
Field Name
****************
Transcode
Datastore
User Id
Client Id
Client USERDATA
Server USERDATA
001 of 008
Include
RO
**
__
__
__
__
__
__
(Included or Exclude)
Filtering Criteria
**********************************************************
________
________
________
________
__________________________________________________________
__________________________________________________________
9. Enter alphanumeric Server USERDATA to filter server data not found in IMS Connect
headers. Enter an asterisk (*) wildcard to indicate all server data.
The relational operator (RO) column specifies how the filtering criteria are compared
to the actual content data. Valid values can be entered as either alphabetic- or
character-based codes as shown on page 7-5.
CTG Filters
1. On the “TCP/IP Create Scripts - Filtering Screen”(Figure 7-2 on page 7-2), select a
CTG filter. The TCP/IP Create Scripts - CTG Filters screen appears (Figure 7-7).
Figure 7-7. TCP/IP Create Scripts - CTG Filters
Hiperstation ----------- TCP/IP Create Scripts - CTG Filters - Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to the CTG filtering criteria below or select a filter to edit
the expanded fields. Use END when complete.
Client IP Address: *.*.*.*
Server IP Address: *.*.*.*
Client Port: *
Server Port: 2006
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
S Ftr Act Program Applid
Client COMMAREA
***** **** ******** ******** **************************************************
_ 001 ____ ________ ________ __________________________________________________
_ 002 ____ ________ ________ __________________________________________________
_ 003 ____ ________ ________ __________________________________________________
_ 004 ____ ________ ________ __________________________________________________
_ 005 ____ ________ ________ __________________________________________________
_ 006 ____ ________ ________ __________________________________________________
_ 007 ____ ________ ________ __________________________________________________
_ 008 ____ ________ ________ __________________________________________________
******************************* Bottom of data ********************************
Note: The Ftr column contains an arbitrary value assigned as a unique ID for each filter.
This field cannot be modified.
2. Use one of the line commands, (S)elect, (R)epeat, (D)elete, or (I)nsert, to perform an
action on the designated filter. See “Filtering Line Commands” on page 7-2 for more
information.
3. Specify the Filter Action (Act) to be performed. Valid values are INCL (include) or
EXCL (exclude). Data from the repository must match at least one Include filter and
none of the Exclude filters to be included in the output.
7-8
Hiperstation for Mainframe Servers User Guide
4. Enter an alphanumeric Program Name to filter connections by program name. Enter
an asterisk (*) wildcard to indicate all program names.
5. Enter an alphanumeric Applid to filter connections by VTAM application ID. Enter
an asterisk (*) wildcard to indicate all connections.
6. Enter an alphanumeric Client COMMAREA to filter the user data portion passed by
the client to the CICS application.
7. Enter the S (select) line command. The TCP/IP Create Scripts - CTG Connect Filter
Detail screen appears (Figure 7-8).
Figure 7-8. TCP/IP Create Scripts - CTG Filter Detail
Hiperstation -------- TCP/IP Create Scripts - CTG Filter Detail ------------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number
Filter action
Field Name
****************
Program Name
Applid
Client COMMAREA
001 of 008
Include
RO
**
__
__
__
(Include or Exclude)
Filtering Criteria
**********************************************************
________
________
__________________________________________________________
8. The Program Name, Applid, and Client COMMAREA fields are prefilled from the
previous screen
The relational operator (RO) column specifies how the filtering criteria are compared
to the actual content data. Valid values can be entered as either alphabetic- or
character-based codes as shown on page 7-5.
ECI Filters
1. On the “TCP/IP Create Scripts - Filtering Screen”(Figure 7-2 on page 7-2), select an
ECI filter. The TCP/IP Create Scripts - ECI Filters screen appears (Figure 7-9).
Figure 7-9. TCP/IP Create Scripts - ECI Filters
Hiperstation ----------- TCP/IP Create Scripts - ECI Filters - Row 1 to 8 of 8
Command ===>
Scroll ===> PAGE
Make changes to the ECI filtering criteria below or select a filter to edit
the expanded fields. Use END when complete.
Client IP Address: *.*.*.*
Server IP Address: *.*.*.*
Client Port: *
Server Port: 1435
Line commands are: (S)elect, (R)epeat, (D)elete, or (I)nsert
S Ftr Act Program Userid
Client COMMAREA
***** **** ******** ******** **************************************************
_ 001 ____ ________ ________ __________________________________________________
_ 002 ____ ________ ________ __________________________________________________
_ 003 ____ ________ ________ __________________________________________________
_ 004 ____ ________ ________ __________________________________________________
_ 005 ____ ________ ________ __________________________________________________
_ 006 ____ ________ ________ __________________________________________________
_ 007 ____ ________ ________ __________________________________________________
_ 008 ____ ________ ________ __________________________________________________
******************************* Bottom of data ********************************
TCP/IP Scripts and Subset Repositories
7-9
Note: The Ftr column contains an arbitrary value assigned as a unique ID for each filter.
This field cannot be modified.
2. Use one of the line commands, (S)elect, (R)epeat, (D)elete, or (I)nsert, to perform an
action on the designated filter. See “Filtering Line Commands” on page 7-2 for more
information.
3. Enter the filter action (Act) to be performed. Valid values are INCL (include) or EXCL
(exclude). Data from the repository must match at least one Include filter and none
of the Exclude filters to be included in the output.
4. Enter an alphanumeric Program Name to filter connections by program ID being
invoked by CICS. Enter an asterisk (*) wildcard to indicate all program names.
5. Enter an alphanumeric Userid to filter connections by the user ID associated with
them. Enter an asterisk (*) wildcard to indicate all user IDs.
6. Enter an alphanumeric Client COMMAREA to filter the user data portion of
COMMAREA being passed into CICS.
7. Enter the S (select) line command. The TCP/IP Create Scripts - ECI Connect Filter
Detail screen appears (Figure 7-10).
The Program Name, Userid, and Client COMMAREA fields are prefilled from the
previous screen but can be changed.
Figure 7-10. TCP/IP Create Scripts - ECI Filter Detail
Hiperstation -------- TCP/IP Create Scripts - ECI Filter Detail ------------Command ===>
Review and/or Edit this filter. Use END when complete.
Filter number
Filter action
Field Name
****************
Program Name
Userid
Client COMMAREA
001 of 008
Include
RO
**
__
__
__
(Include or Exclude)
Filtering Criteria
**********************************************************
________
________
__________________________________________________________
The relational operator (RO) column specifies how the filtering criteria are compared
to the actual content data. Valid values can be entered as either alphabetic- or
character-based codes as shown on page 7-5.
Filtering IP Addresses
The “TCP/IP Create Scripts - Filtering Screen” (Figure 7-2 on page 7-2) is a starting point
for creating IP address and port filters for TCP/IP Script Create. With the introduction of
IPv6 support, there are now three formats in which IP addresses can be expressed in
Hiperstation. The “TCP/IP Create Scripts - Filtering IP Addresses Screen” (Figure 7-11 on
page 7-11) provides an illustrative structure for entering these formats for users who are
new to IPv6.
You can access the “TCP/IP Create Scripts - Filtering IP Addresses Screen” by using the
“A” line command for any of the filters on the “TCP/IP Create Scripts - Filtering Screen”.
IP address values in the selected filter list entry are expanded into the Client or Server IP
address fields on this screen, as appropriate. The format chosen is determined by the
format of the entered IP addresses. IP addresses on this screen are validated for
correctness when you press Enter. Addresses where all segments are zeroed out are
ignored.
7-10
Hiperstation for Mainframe Servers User Guide
When you exit the “TCP/IP Create Scripts - Filtering IP Addresses Screen”, the IP address
segments are recombined into a single text string and used to update the Client and
Server fields of the originally selected filter list entry. Which exit format is selected is
determined by the validity of the IP addresses. If all formats contain valid IP addresses
the precedence order is IPv6, followed by IPv4, and then mixed IPv6 and IPv4. Client IP
addresses are evaluated first, then the corresponding Server IP address selected format is
validated.
IPv6 IP Address Filters
The first format on the screen is IPv6. An IPv6 IP address is 16 bytes long and, in textual
form, consists of eight two-byte segments. Each two-byte segment is defined as a fourdigit hexadecimal XXXX (0..9,A..F) value and segments are separated by colons.
Therefore, as shown in Figure 7-11, an IPv6 IP address contains seven colons.
Given that many of these segments could have a zero value, IPv6 defines a shorthand
representation to prevent the repetitive entering of :0. Use double colon (::), to represent
one or more consecutive zero segments. Thus, an Ipv6 address of FE80:0:0:0:0:0:0:A0A
could be written as FE80::A0A. The double colon notation can be entered in the IP
address free-form area on the previous panel. Such a double colon IP address is expanded
into its full form on the “TCP/IP Create Scripts - Filtering IP Addresses Screen”. ::XXXX
and XXXX:: are supported for 0:0:0:0:0:0:0:XXXX and XXXX:0:0:0:0:0:0:0 respectively.
Other valid IPv6 IP address formats include:
The IP address filter (::10.10.27.200) captures IPv6 compatible addresses. Since this
format is valid but depricated, it is allowed with a pop-up warning. It only captures IPv6
address 0000:0000:0000:0000:0000:0000:0A0A:1BCA. It will not capture a mapped IPv4
address.
The IP address filter (FE80::C0C:10.10.200.0) is valid and will only capture
FE80:0000:0000:0000:0000:C0C:A0A:CA00.
The IP address filter (FE80::C0C:675) specifies that nodes 1, 7, and 8 must be as specified.
Nodes 206 are zeros.
The IP address filter (::1) specifies all zeros ending with an eighth node of 1.
IPv4 IP Address Filters
The second format on the screen is IPv4. IPv4 IP addresses are four bytes long and are
usually expressed as four decimal numbers in the form “ddd.ddd.ddd.ddd” where “ddd”
is a decimal number in the range 0-255. An example might look like: 10.10.27.200,
which will only capture native IPv4 address 10.10.27.200 or
0000:0000:0000:0000:0000:FFFF:0A0A:1BCA.
Other valid IPv4 IP address formats include:
The IP address filter (10.*.27.*) is similar to the previous example except that the second
and fourth nodes can be anything.This example will only capture native IPv5 address
10.nn.27.nn or 0000:0000:0000:0000:0000:FFFF:0Ann:1Bnn where nn can be anything.
The IP address filter (::FFFF:10.*.27.*) or (0:0:0:0:0:FFFF:10.*.27.*) captures native IPv4
addresses or mapped IPv4 addresses only.
Mixed IPv6 and IPv4 Address Filters
The third format on the screen is a mixed IPv6 and IPv4 notation, designed for mapping
existing IPv4 addresses into the IPv6 environment. As an IPv6 address, mixed IP
addresses are 16 bytes long. They are defined as six two-byte IPv6 segments plus a fourbyte IPv4 address (i.e., XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:ddd.ddd.ddd.ddd). Note
that an extra colon is added to the end of the IPv6 portion to connect the IPv6 and IPv4
components together.
TCP/IP Scripts and Subset Repositories
7-11
It is likely that many users will want to format groups of TCP/IP sessions. This can be
achieved by using the wildcard asterisk (*) character. Any IP address segment, IPv6 or
IPv4, can be replaced with a wildcard.
To wildcard the entire address, there are three possibilities: a single asterisk (*) entered in
the filter list entry on the previous panel, a full IPv4 wildcarded address (*.*.*.*), and a
full IPv6 wildcarded address (*:*:*:*:*:*:*:*), which will also capture IPv4 addresses. A
single asterisk (*) is expanded to a full IPv6 wildcarded address on the “TCP/IP Create
Scripts - Filtering IP Addresses Screen”. Except when using a single asterisk (*) or valid
IPv6 shorthand notations (FE80::FA49), all filter nodes must be specified.
No line commands are available on the “TCP/IP Create Scripts - Filtering IP Addresses
Screen”. Press Enter to validate input. Use EXIT to return to the previous screen.
Warning Message
A warning, specified as a “W” will appear if you omit the FFFF and enter an IP address in
the format:
::10.10.0.32
Type an S over the W to select that IP address and you will navigate to the “TCP/IP
Collect Data Filters Screen” where you will get a message stating “Deprecated IPV4
mapped IPV6 will capture only IPV6 address. On this screen, you can modify your IP
address if desired.
Invalid IP Address Filter Examples
Following are examples of invalid IP address filters:
The IP address filter (10.**.58) is not valid for either IPv6 or IPv4.
The IP address filter (::C0C::A0A) is invalid because you cannot use more than one set of
colons (::) in a single IP address filter.
The IP address filter (*:A0A:*:B00:*) is invalid because not enough nodes are specified.
Figure 7-11. TCP/IP Create Scripts - Filtering IP Addresses Screen
+-------------- Create IP Address Filters for Client and Server --------------+
| Hiperstation --------- TCP/IP Create Scripts - Filtering IP Addresses ----- |
| Command ===>
Scroll ===> PAGE |
|
|
| Using the most appropriate of the three provided IP address formats, enter |
| client and server IP address filters (use * for wildcards). Press ENTER to |
| validate the addresses. Press PF3/END to validate the addresses and return. |
|
|
| IPv6
|
| *************************************************************
|
| Client 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000
|
| Server 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000
|
|
|
| IPv4
|
| *****************************
|
| Client *__ . *__ . *__ . *__
|
| Server *__ . *__ . *__ . *__
|
|
|
| Mixed IPv4 IPv6
|
| ***********************************************************************
|
| Client 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : ___ . ___ . ___ . ___
|
| Server 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : ___ . ___ . ___ . ___
|
|
|
+-----------------------------------------------------------------------------+
Define Activity Grouping
To define activity grouping, you will need to generate one of the following:
7-12
Hiperstation for Mainframe Servers User Guide
• One script containing filtered activity ordered as it was captured.
• Separate scripts containing filtered activity grouped by connection.
• Separate scripts containing filtered activity grouped by client IP address, client port,
server IP address, server port, and/or protocol. 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:
• To replicate an issue that a specific user encountered, and each user has a unique IP
address, group by client IP address to create a separate script containing each user’s
activity.
• To test a specific application within the system, group by server IP address and port
to create a separate script containing each application’s activity.
• To test Secure Socket connections, group by protocol to isolate HTTPS activity.
• To test the application’s responses to user action, group by connection to create a
separate script for each transfer of information from client to server.
• To test client activity, group by connection to create a separate script containing each
client’s activity.
Although you can use activity 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
log to use as the SYSIN for a playback job. The log contains one SOCKETS and one
SCRIPT statement for each script created. All SOCKETS play back simultaneously. Be
mindful of transaction interdependence. For example, while recording, you request a
record and 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 or may not be an issue.
1. On the “TCP/IP Create Scripts - Filtering Screen” (Figure 7-2 on page 7-2), specify the
desired filter criteria and enter OK on the command line. The “TCP/IP Create Scripts
- Grouping Screen” appears (Figure 7-12).
Note:
Selections on this screen do not impact subset repositories.
Figure 7-12. TCP/IP Create Scripts - Grouping Screen
Hiperstation --------- TCP/IP Create Scripts - Grouping ---------------------Command ===>
Choose how to group data among scripts, then press Enter to continue.
Create a new script for each:
_ 1. One script for everything
2. Connection
3. New combination of (one or more)
_ Client IP address
_ Client port
_ Server IP address
_ Server port
_ Protocol
Select item 1 if you want to play back all TCP/IP activity in the exact
sequence that it was originally created.
Synthesized Connection Special Processing:
Reverse Synthesized Connections: _
Server Port DSN:________________________________________________
TCP/IP Scripts and Subset Repositories
7-13
2. On the line next to option 1, enter the number of the desired grouping selection.
Choices include:
– 1 (One script for everything) — Puts all activity in one script in the exact order
that it was recorded (optimum for playback)
– 2 (Connection) — Creates a separate script for each connection captured.
Connection is the desired setting if testing client activity (for example,
PLAY(SERVER)).
– 3 (New combination of one or more) — Creates separate scripts for each unique
combination of selected grouping criteria. Type a slash (/) next to the desired
grouping criteria. Combinations include:
•
•
•
•
•
Client IP address
Client port
Server IP address
Server port
Protocol
3. (Reverse Synthesized Connections:) This optional selection applies to Synthesized
Connections only. To create a TCP/IP Connection in a Script when one was not
recorded, Script Create uses a heuristic algorithm to determine the Client and Server
Assignments from the existing data. If the determination made by Script Create is
incorrect, select this field to reverse the determination made using the algorithm.
4. (Server Port DSN:) Specify a fully qualified dataset name, without quotes, in the
Server Port DSN field if you wish to supply a list of Ports that will always be
considered the Server side by Script Create in a Client-Server pair. This option applies
to Synthesized Connections only and is optional. This option takes precedence over
Reverse Synthesized Connections option, but they are not mutually exclusive.
5. Press Enter to continue.
Specify the Source Repository
After you select a grouping option from the previous section, the “TCP/IP Create Scripts Input Screen” appears (Figure 7-13).
Figure 7-13. TCP/IP Create Scripts - Input Screen
Hiperstation ---------- TCP/IP Create Scripts - Input ------------------------Command ===>
Choose the repository to use as input, then press Enter to continue.
Repository dataset:
Dataset name . . . . . ______________________________________________
First and last number . _______ _______ (Needed if wildcard in dataset name)
Amount of data to use:
Data from client . . . ALL_____ (ALL or number of bytes)
Data from server . . . ALL_____ (ALL or number of bytes)
1. Specify the capture repository or repository segments to use for generating the scripts
or subset repositories.
You can save time and system resources by scripting the repository segments of
interest as opposed to the entire repository. To identify the information contained in
each segment of the repository, generate a Capture Segment Summary, described on
page 2-50. It indicates when recording began and ended for each repository segment.
2. Enter the repository Dataset name to use for generating your scripts/subset
repositories. To select a range of source repositories, use either of the following
7-14
Hiperstation for Mainframe Servers User Guide
wildcard characters in the dataset name designation and define a range with the First
to last number fields:
– Asterisk (*): Insert the asterisk in place of the dataset name qualifier characters
that should be substituted with incremental values during repository selection.
This wildcard pads to eight 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 dataset name 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
3. Specify the Amount of data to use to minimize the size of your scripts by truncating
the client and/or server transmission data detail, that is, data tagged <CONTENT> in
TCP/IP scripts. This option supports tasks such as debugging and stress testing.
For example, if you are manually inspecting scripts for debugging purposes and only
need to see the first 200 bytes, truncate to 200. If you are stress testing and are only
interested in the transaction speed, rather than data comparison, truncate client data
to reduce the size of your scripts and demand on DASD storage. Enter ALL to include
all transaction data or indicate the number of bytes, between 0-9999999, to include.
If you intend to play back and compare actual with expected values, select ALL. If
you truncate client data, your scripts may not play back properly. If you truncate
server data, your scripts may play back, but comparing actual to expected values may
not be possible.
4. Press Enter to continue.
Define Detail Data Storage and Output Requirements
After selecting a source repository or set of repositories from the previous section, the
“TCP/IP Create Scripts - Create Options Screen” appears (Figure 7-14). Use this screen to
specify how to store transmission data, what to create, and whether the new items should
replace existing items with the same names.
TCP/IP Scripts and Subset Repositories
7-15
Figure 7-14. TCP/IP Create Scripts - Create Options Screen
Hiperstation ------ TCP/IP Create Scripts - Create Options ------------------Command ===>
Press Enter to continue.
Where should Details be stored:
_ 1. Merged into the script
2. Separate from the script, client and server together
3. Separate from the script, client and server split
What should be created:
Enter "/" to select options
/ Log
/ Script
/ Details
_ Subset Repository
_
_
_
Replace existing log members
Replace existing script members
Replace existing detail members
1. On the line next to option 1, specify where details should be stored. Detail data is the
information actually sent by TCP socket applications. This data is either written to
one or more detail files, or is written within the script on <CONTENT> tags. In both
cases, the data is prefixed with a twelve-byte header carrying information about the
detail data.
Detail data can be mapped into File-AID/MVS to view or edit in a formatted context.
You can map all detail data at once if it is stored in an external file. If it is merged
into the script, each message must be mapped independently. See “Editing TCP/IP
Detail Data with File-AID/MVS” on page 7-38, for more information.
Choices include:
– Merged into the script — Merges the detail data into the script where it can be
found on <CONTENT> tags.
– Separate from the script, client and server together — Stores the script and
detail data in separate PDSE members. The script contains links to the detail data
and the activity reflects the data flow at the time of capture.
– Separate from the script, client and server split — Stores the script, client
activity, and server activity in separate PDSE members. The script contains links
to the detail data, and the activity is separated by client and server. Therefore, all
client activity is written into one member and the server activity into another.
2. Type a slash next to the items to be generated. To overwrite existing files for any of
the selected items, type a slash next to the corresponding replace option.
– Log — Generates a Connection Log that lists every script Hiperstation for
Mainframe Servers created. Each entry consists of a SOCKETS and SCRIPT
statement. The log not only reports the results of script creation, but may also be
used as the SYSIN for an Unattended Playback job. Depending on your testing
requirements, you may need to modify it before playing back your scripts. For
more playback information, see Chapter 9, “TCP/IP Unattended Playback”.
– Script — Generates scripts that consist of header information and data for one or
more TCP connections. For more information on the contents of script tags, see
“Browsing and Editing Scripts” on page 7-20.
– Details — Generates detail data, which is the information actually sent by TCP
socket applications. This data is either written to one or more detail files, or is
written within the script on <CONTENT> tags, depending on your previous
selections. In both cases, the data is prefixed with a twelve-byte header carrying
information about the detail data.
7-16
Hiperstation for Mainframe Servers User Guide
To generate scripts you intend to play back, be sure to select this option.
Otherwise, the scripts will contain unresolved <DETAIL> tags, <DETAIL
COMBINED ???>. Either regenerate the scripts, or generate the details and replace
the question marks with the DD names associated with the Detail Datasets.
– Subset Repository — Generate one or more subset repositories depending on
your selections on the previous and remaining screens.
– Replace existing log members — Replaces any log member that has the same
name as the log being generated.
– Replace existing script members — Replaces any script members that have the
same name as the scripts being generated.
– Replace existing detail members — Replaces any detail members that have the
same name as the detail members being generated.
3. Press Enter to go to the next screen.
Specify Output Datasets
If you selected Log, Script, or Details on the “TCP/IP Create Scripts - Create Options
Screen” (Figure 7-14), the “TCP/IP Create Scripts - Output Screen” appears (Figure 7-15).
Otherwise, the “TCP/IP Create Scripts - Subset Output Screen” appears (Figure 7-17 on
page 7-19). Go to “Specify Subset Repository Output Datasets” on page 7-18 to continue.
Figure 7-15. TCP/IP Create Scripts - Output Screen
Hiperstation ---------- TCP/IP 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: . . . . . . ______________________________________________ *
Prefix ______ Suffix: 0000000
Script: . . . . ______________________________________________ *
Prefix ______ Suffix: 0000000
Combined detail: ______________________________________________
Prefix ______ Suffix: 0000000 DDname: ________
Client detail: . ______________________________________________
Prefix ______ Suffix: 0000000 DDname: ________
Server detail: . ______________________________________________
Prefix ______ Suffix: 0000000 DDname: ________
1. Complete the fields that are marked with an asterisk (*)
– Dataset Name — Supply 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 Mainframe Servers prefixes it with your TSO prefix,
typically your user ID, at processing time.
– Prefix — Enter a one- to six-character member name prefix for each row marked
with an asterisk (*). Provide a prefix that makes it easy to identify the type of
data stored in the members of the given dataset. Hiperstation for Mainframe
Servers 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.
– Suffix — Enter a one- to seven-numeral member name suffix for each row
marked with an asterisk (*). Hiperstation for Mainframe Servers uses the prefix
TCP/IP Scripts and Subset Repositories
7-17
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 Mainframe Servers generates members PRTEST01, PRTEST02,
PRTEST03.
– DDname — Enter a one- to eight-character DD name for detail datasets marked
with an asterisk (*). Hiperstation for Mainframe Servers creates a <DETAIL> tag in
the script that points 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.
2. After filling in all of the desired dataset names, press Enter to continue.
3. If you enter a dataset name that does not exist, the Allocate Dataset screen appears.
The fields on the allocation screen default 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 TCP 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 7-38, will not allow you to map the entire detail dataset
into File-AID/MVS for editing, only individual messages.
– 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.
4. After filling in the fields, press Enter to allocate the dataset or press End to exit the
screen without allocating the dataset.
Note:
If more datasets require allocation, the allocation screen for the next dataset
appears. Otherwise, continue with the next section “Select Script Options”.
Select Script Options
After you specify Log, Script, or Detail Output datasets, the “TCP/IP Create Scripts Options Screen” appears (Figure 7-16). If you are generating a subset repository only, you
will not see the Options screen. Go to “TCP/IP Create Scripts - Subset Output Screen” on
page 7-19.
Use the “TCP/IP Create Scripts - Options Screen” to select script formatting options.
7-18
Hiperstation for Mainframe Servers User Guide
Figure 7-16. TCP/IP Create Scripts - Options Screen
Hiperstation --------- TCP/IP Create Scripts - Options ----------------------Command ===>
Press Enter to continue.
Options:
Enter "/" to select options
_ Suppress time stamps in script
_ Translate detail data from ASCII to EBCDIC
_ Translate sample data from ASCII to EBCDIC
_ Split lines at linefeed characters (for readability)
_ Suppress CONTENT data formatting (DB2C, IMSC, CTG, or ECI)
Description
. . . _______________________________________________________
1. Enter a slash to select any or all of the following options:
– Suppress time stamps in script — This option omits time stamps, making the
script easier to browse for auditing purposes. However, Hiperstation uses time
stamps to synchronize playback when think option 2, THOPT(2), is specified on
the playback CONTROL statement. Do not use this option if you intend to play
back your scripts at the same pace as they were recorded.
– Translate detail data from ASCII to EBCDIC — Converts detail data, normally
written in ASCII, to EBCDIC. This makes it easier to display and edit detail data
in ISPF. Hiperstation adds the TRANSLATE=A2E keyword to the script tag to
indicate that translation has occurred. During playback, Hiperstation translates
the data back to ASCII.
– Translate sample data from ASCII to EBCDIC — When you store script and
detail data separately, Hiperstation includes a single line, or sample, of the detail
data in the script for reference purposes. This option converts ASCII sample data
to EBCDIC. Select this option if you plan to view your scripts in ISPF.
– Split lines at linefeed characters (for readability) — Select Split lines at
linefeed characters to show the detail data in a more readable format. Much of
the data transferred between Web browsers and servers consists of readable lines
that end with the ASCII linefeed character (x'0A'). Splitting detail data lines at
each linefeed character can help you understand script contents. Playback is not
affected by this option.
– Suppress CONTENT data formatting (DB2C, IMSC, CTG, or ECI) — Select this
option to indicate that key protocol fields (DB2C, IMSC, CTG, or ECI) should not
be separated from the CONTENT data and formatted into a readable format
within the script.
2. Enter up to 53 characters that describe the scripts or subset repositories you are
creating. This description appears at the top of the Log and at the top of each script.
3. Press Enter to continue.
Specify Subset Repository Output Datasets
If you are creating a subset repository, the “TCP/IP Create Scripts - Subset Output Screen”
appears (Figure 7-17). Otherwise, the “TCP/IP Create Scripts - Process Screen” appears
(Figure 7-18 on page 7-20). See “Select a Processing Option” on page 7-19.
TCP/IP Scripts and Subset Repositories
7-19
Figure 7-17. TCP/IP Create Scripts - Subset Output Screen
Hiperstation ----------- TCP/IP Create Scripts - Subset Output --------------Command ===>
Specify the subset repository to create, then press ENTER to continue.
Subset repository dataset:
Dataset name . . . . ._____________________________________________________
First and last number ._______ _______ (Needed if wildcard in dataset name)
Specify a single dataset to contain the entire subset repository or a range of datasets to
segment the repository. Hiperstation 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 reports progress with
messages indicating the opening and closing of datasets.
Note:
To overwrite an existing repository dataset, first delete the dataset.
1. In the Dataset name field, enter the name of the sequential dataset to contain the
new subset repository. To create a segmented repository, use either of the following
wildcards and specify a wildcard range with the First and last number fields:
– Asterisk (*): Insert the asterisk in place of the dataset name qualifier characters
to substitute with incremental values during repository creation. This wildcard
pads to eight characters. For example, enter USER.REP*.DATABASE with first=1
and last=3 to create the following subset repositories:
USER.REP00001.DATABASE
USER.REP00002.DATABASE
USER.REP00003.DATABASE
– Question mark (?): Insert a question mark for each dataset name qualifier
character to substitute with incremental values during repository creation. For
example, enter USER. REP??.DATABASE with first=9 and last=11 to create the
following subset repositories:
USER.REP09.DATABASE
USER.REP10.DATABASE
USER.REP11.DATABASE
2. Press Enter to continue.
If the first specified dataset does not exist, the Allocate Dataset screen appears. It
populates the Space units, Primary quantity, and Secondary quantity fields with
allocation values from the originating (input) repository and Block size with the
default value of 9004.
3. Make changes, if necessary, and press Enter to continue or press End to exit the
screen without allocating the file.
Note:
For segmented repositories, Hiperstation automatically allocates subsequent
datasets, if they do not exist, with the allocation parameters of the first dataset.
Select a Processing Option
After selecting all of your script/subset repository creation options, the “TCP/IP Create
Scripts - Process Screen” appears (Figure 7-18).
7-20
Hiperstation for Mainframe Servers User Guide
Figure 7-18. TCP/IP Create Scripts - Process Screen
Hiperstation --------- TCP/IP Create Scripts - Process ----------------------Command ===>
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'
===> //*
===> //*
===> //*
Enter the desired processing option on the line next to the list and press Enter to begin
processing. Press End to exit the screen without processing the job.
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 TCPCSMSG 'value' into the list of SYSIN
parameters.
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
Mainframe Servers returns to the TCP/IP Create Scripts - Process screen (Figure 7-18).
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. To exit the edit
session without submitting the job, type EXIT on the Command line and press Enter.
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 are displayed on your TSO terminal.
Exit
Use this option to exit this screen without submitting the job.
Job statement information for batch job
Enter batch JOB card information into this area. If you use option 2, you can edit this
information again before job submission.
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.
TCP/IP Scripts and Subset Repositories
7-21
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 TCP/IP script tags. Each definition includes a
syntax diagram that shows all of the parameters for the given script tag.
<VERSION> Tag
The <VERSION> tag identifies the version of the Hiperstation for Mainframe Servers
script creation program that created the script and 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:
<VERSION> 07.01.00
Note:
The version number is not the same as the product release number, and should
not be modified. Modifying it can cause unpredictable results during playback.
<DETAIL> Tag
The <DETAIL> tag specifies the location of the detail data (the bytes that flow between
clients and servers). For example, this could be an HTTP request and response. The
<DETAIL> tag appears after the <VERSION> tag at the beginning of the script.
COMBINED
Specifies that client and server data are stored together in a single PDSE member,
either within the script or in an external file. If the details are contained in the script,
the value of this parameter is an asterisk (*). If they are 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 CLIENT nor SERVER
appear on this tag and cannot be added.
CLIENT
Identifies where client data is located. The value is the DD name provided during
script creation.
SERVER
Identifies where server data is located. The value is the DD name provided during
script creation.
Note: If, on the “TCP/IP Create Scripts - Create Options Screen” described on page 7-15,
you do not select the Details 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.
7-22
Hiperstation for Mainframe Servers User Guide
<TIME> Tag
The <TIME> tag specifies the date and time an event was seen during data capture, for the
immediately following tag. The <TIME> tag is used during some types of playback to
provide script synchronization and “timed release” of data flows. The <TIME> tag appears
immediately before each <CONNECT>, <CLIENT>, and <SERVER> tag.
The time value is relative to the system the scripts were created on; it is not GMT (not
Coordinated Universal Time, UTC). The content of this tag is a time stamp with the
format: YYYY/MM/DD_HH:MM:SS.XXXXXX. For example:
<TIME>2006/07/28_13:02:42.246413
<CONNECT> Tag
The <CONNECT> tag shows the start of a TCP connection. The keywords and values on
the <CONNECT> tag indicate the identities of the two partners (the client and server)
and the application protocol used by the connection. At playback time, the <CONNECT>
tag starts a TCP connection between Hiperstation for Mainframe Servers and a partner
application.
ID
Identifies all of the data flows for a single TCP connection. The value of the ID
attribute changes for each different TCP connection in a single script. The same ID
value is present on all data flows for a single TCP connection. The value of ID is a
decimal number, starting at 1 for the first connection in the script.
TCP/IP Scripts and Subset Repositories
7-23
PROTOCOL
Lists the application protocol used by the TCP connection. This is the protocol that
you assigned to the activity during script creation. Supported protocols include:
HTTP, HTTPS, TCP, ECI, CTG, IMSC, and DB2C.
Note:
This value must be accurate for successful playback. Hiperstation uses this
value to initiate the appropriate message handlers.
CLIENT_ADDRESS
The IP address of the partner that started the TCP connection (the partner that issued
the TCP connection request). At playback time, Hiperstation usually overrides this IP
address with the IP address of the local machine (the OS/390 system) that the
playback is running on. The value of CLIENT_ADDRESS can be specified in IPv6 or
IPv4 format. See “Filtering IP Addresses” on page 7-9 for more information on how to
specify IPv6 or IPv4 addresses.
CLIENT_PORT
The port number of the partner that started the TCP connection (the partner that
issued the TCP connection request). At playback time, Hiperstation usually overrides
this port number with a temporary port number, which is dynamically assigned by
the local host machine that the playback is running on. The value of CLIENT_PORT
is a decimal number from 0 through 65535.
SERVER_ADDRESS
The IP address of the partner that accepted the TCP connection (the partner that
issued a LISTEN and ACCEPT). At playback time, Hiperstation usually uses this IP
address with no modification. The value of SERVER_ADDRESS can be specified in
IPv6 or IPv4 format. See “Filtering IP Addresses” on page 7-9 for more information on
how to specify IPv6 or IPv4 addresses.
SERVER_PORT
The port number of the partner that accepted the TCP connection. At playback time,
Hiperstation usually uses this port number with no modification. The value of
SERVER_PORT is a decimal number from 0 through 65535. Port number 80 is often
used by the HTTP protocol (Web browsing) and port number 443 is often used by the
HTTPS protocol (secure Web browsing).
STIME
Indicates the local date and time when the TCP connection started. The STIME value
is relative to the system that the scripts were created on; it is not GMT (i.e., not
Coordinated Universal Time, UTC). The value is a time stamp with the format:
YYYY/MM/DD_HH:MM:SS.XXXXXX. For example:
<TIME>2007/01/31_13:02:42.246413
TRANSLATE
Lists the character translation that was applied to the TCP data flows at script
creation time for this connection. In this release, the only value allowed is A2E,
which is short for ASCII-to-EBCDIC. A value of A2E indicates that all detail data for
this connection, whether in the script or in an external file, has been translated from
ASCII to EBCDIC.
This translation does not use a specific IBM or ISO character set and code page.
Instead, Hiperstation does a product-specific translation that changes a minimum
number of characters when going from ASCII to EBCDIC. An attempt is made to
translate only the typical “human readable” characters, (a-z, A-Z, 0-9, and
punctuation), while leaving control characters in their original ASCII format. In this
way, you can read the translated characters and still see the ASCII control codes that
were transmitted (for example, carriage return (CR) and linefeed (LF)).
7-24
Hiperstation for Mainframe Servers User Guide
Here is the translation table used by Hiperstation during script creation and script
playback:
ASCII to EBCDIC
0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -0. 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E
1. 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
2. 40 5A 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B
3. F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E
4. 7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5
5. D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 AD E0 BD 5F
6. 79 81 82 83 84 85 86 87 88 89 91 92 93 94 95
7. 97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 A1
8. 80 21 22 23 24 25 26 27 28 29 8A 8B 8C 8D 8E
9. 90 2A 2B 2C 2D 2E 2F 30 31 32 9A 9B 9C 9D 9E
A. A0 33 34 35 36 37 38 39 3A 3B AA AB AC 3C AE
B. B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC 3D BE
C. 3E 3F 41 42 43 44 45 46 47 48 CA CB CC CD CE
D. 49 4A 51 52 53 54 55 56 57 58 DA DB DC DD DE
E. 59 E1 62 63 64 65 66 67 68 69 EA EB EC ED EE
F. 6A 70 71 72 73 74 75 76 77 78 FA FB FC FD FE
Note:
Changed chars?
---------------0F
................
1F
................
61
yyyyyyyyyyyyyyyy
6F
yyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyy
D6
6D
yyyyyyyyyyyyyyyy
96
yyyyyyyyyyyyyyyy
20
yyyyyyyyyyyyyyyy
8F
.yyyyyyyyy......
9F
.yyyyyyyyy......
AF
.yyyyyyyyy...y..
.............y..
BF
CF
yyyyyyyyyy......
DF
yyyyyyyyyy......
EF
y.yyyyyyyy......
FF
yyyyyyyyyy
If a connection event was never seen for a particular TCP connection at
capture time, a <CONNECT> tag is “synthesized” for that connection and
written to the script. (A connection event may not have been seen at capture
time because the Hiperstation recording request was activated after the
connection was already “in-flight”.) These synthesized <CONNECT> tags are
preceded by a comment line like this:
* SYNTHESIZED CONNECT TAG
The appearance of a synthesized <CONNECT> tag may lead to incorrect playback
results since some of the data that originally flowed on the TCP connection may be
missing from the script. Be careful when interpreting the playback results from a
script that contains a synthesized <CONNECT> tag.
<DISCONNECT> Tag
The <DISCONNECT> tag specifies the end of a TCP connection. It immediately follows
either a <CLIENT> tag or a <SERVER> tag, depending on which partner ended the
connection.
Note:
If a disconnection event was never seen for a particular TCP connection at
capture time, a <DISCONNECT> tag is synthesized for that connection and
written at the end of the script. These synthesized <DISCONNECT> tags are
always placed under a <CLIENT> tag and are preceded by a comment line like
this:
* SYNTHESIZED DISCONNECT TAG
The appearance of a synthesized <DISCONNECT> tag may lead to incorrect
playback results since some of the data that originally flowed on the TCP
connection may be missing from the script. Be careful when interpreting the
playback results from a script that contains a synthesized <DISCONNECT> tag.
TCP/IP Scripts and Subset Repositories
7-25
<CLIENT> Tag
The <CLIENT> tag specifies that either data or a disconnect event flowed from the client
to the server. The value after the <CLIENT> tag is a decimal number indicating how many
events (CONNECT, CLIENT data, or SERVER data) have been seen so far in this script.
ID
Identifies all of the data flows for a single TCP connection. The value of the ID
attribute changes for each different TCP connection in a single script. The same ID
value will be present on all data flows for a single TCP connection. The value of ID is
a decimal number, starting at 1 for the first connection in the script.
CRNTLEN
Indicates the number of bytes of detail data recorded for this client data flow event.
This is the number of bytes actually written into the script or an external file, which
may be different than the number of bytes sent by the client at capture time. The
CRNTLEN value may be less than the TRUELEN value if data truncation was
requested by the user either at data capture time or at script creation time.
TRUELEN
Indicates the number of bytes of detail data actually sent by the client, as seen during
data capture. This may not be the same as the number of bytes actually written into
the script or an external file. The TRUELEN value may be greater than the CRNTLEN
value (see above) if data truncation was requested by the user either at data capture
time or at script creation time.
<SERVER> Tag
The <SERVER> tag specifies that either data or a disconnect event flowed from the server
to the client. The value after the <SERVER> tag is a decimal number indicating how many
events (CONNECT, SERVER data, or CLIENT data) have been seen so far in this script.
ID
Identifies all of the data flows for a single TCP connection. The value of the ID
attribute changes for each different TCP connection in a single script. The same ID
value will be present on all data flows for a single TCP connection. The value of ID is
a decimal number, starting at 1 for the first connection in the script.
CRNTLEN
Specifies the number of bytes of detail data recorded for this server data flow event.
This is the number of bytes actually written into the script or an external file, which
may be different than the number of bytes sent by the server at capture time. The
CRNTLEN value may be less than the TRUELEN value if data truncation was
requested by the user either at data capture time or at script creation time.
TRUELEN
Specifies the number of bytes of detail data actually sent by the server, as seen during
data capture. This may not be the same as the number of bytes actually written into
the script or an external file. The TRUELEN value may be greater than the CRNTLEN
7-26
Hiperstation for Mainframe Servers User Guide
value (see above) if data truncation was requested by the user either at data capture
time or at script creation time.
<CTG> Tag
<CTG> tags present information that may appear in a script for formatted CTG content.
Note:
When using the <REPLACE> tag in conjunction with the <CTG> tag, be aware
that either tag will replace the information specified by the other tag depending
on which tag is set last.
APPLID
The VTAM application ID associated with the session.
PROGID
The CICS program associated with the session.
<DB2> Tag
<DB2> tags present information that may appear in a script for formatted DB2 Connect
content.
Note: When using the <REPLACE> tag in conjunction with the <DB2> tag, be aware that
either tag will replace the information specified by the other tag depending on
which tag is set last.
SQLSTMT
The SQL statement in editable form.
USERID
The userID associated with the session.
PASS
The password for the session.
NPASS
The password for the session in an encrypted format.
RDBNAM
The server name for DB2 Connect (the name of the relational database).
SQLCODE
A non-editable field returned by the server.
TCP/IP Scripts and Subset Repositories
7-27
SQLSTATE
A non-editable field returned by the server.
<ECI> Tag
<ECI> tags present information that may appear in a script for formatted ECI content.
Note: When using the <REPLACE> tag in conjunction with the <ECI> tag, be aware that
either tag will replace the information specified by the other tag depending on
which tag is set last.
USERID
The user ID associated with the session.
PASS
The password for the session.
NPASS
The password for the session in an encrypted format, which is ‘xx...xx’X where
xx...xx indicates 2 to 16 hexadecimal characters.
PROGID
The CICS program associated with the session.
<IMS> Tag
<IMS> tags present information that may appear in a script for formatted IMS Connect
content.
Note: When using the <REPLACE> tag in conjunction with the <IMS> tag, be aware that
either tag will replace the information specified by the other tag depending on
which tag is set last.
USERID
The userID associated with the session.
PASS
The password for the session.
NPASS
The password for the session in an encrypted format, which is ‘xx...xx’X where
xx...xx indicates 2 to 16 hexadecimal characters.
7-28
Hiperstation for Mainframe Servers User Guide
CLIENT
The unique client identifier for the session.
DSTORE
The target IMS Datastore for the session.
TRANS
The transaction code (application program) the message belongs to.
<CONTENT> Tag for Inline Data
<CONTENT> tags present the data that flowed between the client and the server. One or
more <CONTENT> tags appear immediately after a <CLIENT> or <SERVER> tag. If the
length of the client or server 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 begins immediately
after “7”.
<CONTENT>....00000007.......XPPJOBM400...wæìÎUR÷...ö«.\.m÷G
4444CDDECDE60310FFFFFFFF0002000EDDDDCDFFF000A957EDE000C83E49EC
000C3653553E0241000000070A0210A77716244002076C86491308CA00B417
Note:
On the Command line in ISPF Edit, type HEX ON 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').
• 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'10'
X'08'
X'04'
X'02'
X'01'
indicates
indicates
indicates
indicates
indicates
TCP/IP data
the beginning of the CONTENT chain
the end of the CONTENT chain
truncated data
SERVER data
For example, if the TCP/IP message is comprised of three <CONTENT> tags, this
byte’s value on the:
– First tag is X'18', which indicates TCP/IP data and beginning of CONTENT chain.
– Second tag is X'10', which indicates TCP/IP data
– Third tag is X'14', which indicates TCP/IP data and end of CONTENT chain.
If the <CONTENT> tag follows a <SERVER> tag, this byte’s values on each
<CONTENT> tag is: X'19', X'11', and X'15'.
TCP/IP Scripts and Subset Repositories
7-29
• The fourth byte indicates the protocol of the detail data.
–
–
–
–
–
–
–
X'01'
X'03'
X'04'
X'05'
X'06'
X'07'
X'08'
indicates
indicates
indicates
indicates
indicates
indicates
indicates
generic TCP/IP
HTTP
HTTPS
DB2 Connect
ECI
CTG
IMS Connect
• 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 (page 7-32) 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 Mainframe Servers provides (page
7-33).
<CONTENT> Tag for External Data
Identifies the detail data records that are associated with the preceding <CLIENT> or
<SERVER> tag. The <CONTENT> tag only includes 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 of
detail data and is provided to support script browsing when the detail data is stored
separately. The sample bytes are translated from ASCII to EBCDIC if you requested that
option at script creation time.
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 provided in the “<CONTENT> Tag for Inline Data” discussion on page
7-28.
Edit a Script
You may want to 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 and then play back several concurrent
instances repeatedly.
7-30
Hiperstation for Mainframe Servers User Guide
• 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 TCP/IP 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
<CLIENT> and <SERVER> tag content.
Use ISPF Edit to edit your scripts. To perform dynamic data replacement during playback,
insert the <REPLACE> tag. For example, the script contains a series of transactions
performed against a specific account. If the account number resides in the same location
in the TCP/IP data streams, you can replace that account number in all of the
transactions by inserting one <REPLACE> tag in the appropriate location. You can replace
data in a single client or server data stream or in a specified range of data streams.
You can add REXX logic to the script to:
• Create dynamic scripts that facilitate data-driven testing or create smart scripts that
modify application flow based on message content.
• Define custom MVS job step return codes for more definitive playback results.
Hiperstation for Mainframe Servers provides customized REXX variables that return
playback information. You can incorporate these 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 describes the elements necessary for basic script editing and a
short description of the Hiperstation REXX variables:
•
•
•
•
“Script Syntax Rules” on page 7-30
“<REPLACE> Tag” on page 7-32
“Offset and Length Determination Macros” on page 7-33
“Hiperstation for Mainframe Servers REXX Variables” on page 7-35
For more advanced scripting concepts or a better understanding of REXX applications,
refer to the Hiperstation Scripting Reference. Additionally, consider reviewing “APPC DataDriven Testing Example Using REXX” on page 4-44. Although it applies to APPC testing,
it provides a comprehensive example that includes the use of Hiperstation REXX
variables and the <REPLACE> tag. The concepts and mechanics are the same regardless of
the type of application you are testing.
Notes:
1. Hiperstation for Mainframe Servers supports editing application data in the script or
detail file with File-AID/MVS. For more information, see “Editing TCP/IP Detail Data
with File-AID/MVS” on page 7-38.
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 server address accessed by
each connection. Edit the script if you need to modify the server address on a
connection-by-connection basis. However, if you need to modify the server address
for all of the connections in the script, supply the SERVER_ADDRESS keyword on the
SCRIPT playback statement instead. Prior to editing your scripts, review the
information in Chapter 9, “TCP/IP Unattended Playback”.
Script Syntax Rules
Editing a script requires an understanding of script tags and syntax rules. If you are
unfamiliar with TCP/IP script tags, see “Browse a Script” on page 7-21.
TCP/IP Scripts and Subset Repositories
7-31
TCP/IP Script Syntax Rules:
Note:
The examples below that show an IP address are shown in IPv4 format. IPv6
format is also valid.
• A script tag must be enclosed in angle brackets ‘<>’ and the tag name must be
adjacent to 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.
<CLIENT ID=6>
• A tag can have multiple parameters. Parameters on the same line must be separated
by one or more spaces. For example:
<CONNECT ID=6 PROTOCOL=TCP...
Parameters can appear on separate lines for easy reading. Each line must end with a
comma, which is the standard ISPF record continuation character. For example:
<CONNECT,
ID=6,
PROTOCL=TCP,
• 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 CLIENT_ADDRESS
parameter value contains periods so it is enclosed in single quotation marks. IPv6
and IPv4 IP address formats are both valid CLIENT_ADDRESS values.
<CONNECT,
ID=2,
PROTOCOL=TCP,
CLIENT_ADDRESS='10.10.0.200',
• The script tag’s value follows the tag’s closing bracket ‘>’. For example, 4 is this
<CONNECT> tag’s value.
<CONNECT,
ID=2,
PROTOCOL=TCP,
CLIENT_ADDRESS='10.10.0.200',
CLIENT_PORT=3621,
SERVER_ADDRESS='10.10.0.200',
SERVER_PORT=2241,
STIME='2007/01/23_13:31:02.411122'>4
• The script tag’s entire value must be on the same line as the closing bracket ‘>’.
• Comment lines, used to provide details 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 connection information and a description of
the next connection in the script
<CONTENT>....00000073.d
*
* CONNECTION NUMBER(6)
*
* WARNING: MISSING DATA, SYNTHESIZED CONNECT TAG
<TIME>2007/01/23_13:31:08.946828
<CONNECT>
• REXX clauses added to the script must precede the activity the logic applies to. They
can be inserted between scripts tags, but not within a tag or its value.
7-32
Hiperstation for Mainframe Servers User Guide
do id# 1 to 100
say ‘Starting connection # ‘id#
<CONNECT ID=id# SERVER_PORT=80>123
<CLIENT ID=id#>124
<CONTENT>....00000001GET / HTTP/1.0....
<CLIENT ID=id#>125
<DISCONNECT>
end
• A single REXX variable can be supplied as the value of a script tag parameter. For
example:
port#=80; ipaddress ,
‘24.25.190.224’
<CONNECT ID-1,
SERVER_ADDRESS=ipaddress = ,
SERVER_PORT=port#>123,
However, REXX variables cannot be supplied within the script tag’s value. Therefore,
they cannot be the value or within the value following the tag’s closing angle bracket
‘>’.
<REPLACE> Tag
The <REPLACE> tag replaces the information within the TCP/IP data streams during
playback. Use the <REPLACE> tag to supply new data, such as account numbers, user
names, etc. 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 “Edit a Script” on page 7-29.
The <REPLACE> tag can be applied to the CONTENT of a single <CLIENT> or <SERVER>
tag or to a range of tags. If applied to a range, the <REPLACE> tag acts on the CONTENT
of both <CLIENT> and <SERVER> tags within the range.
Insert the <REPLACE> tag before the <CLIENT> or <SERVER> tag or group of tags it
applies to. 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.
Note:
When using the <REPLACE> tag in conjunction with the <CTG> tag, be aware
that either tag will replace the information specified by the other tag depending
on which tag is set last. This is also true for the <DB2>, <ECI>, and <IMS> tags.
FIELD
Identifies where to begin replacing data within the subsequent CONTENT records
(offset) and what value to insert. Data replacement occurs 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.
TCP/IP Scripts and Subset Repositories
7-33
<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 provides macros for easily determining offset values. See the
next section “Offset and Length Determination Macros” for details.
TYPE
Indicates how to apply data replacement.
– TYPE=ONE applies data replacement to the next CLIENT or SERVER message.
This is the default.
– TYPE=ALL applies data replacement to all subsequent CLIENT and SERVER
messages. This is a global data replacement.
– TYPE=DELETE disables global data replacement established by a previous
<REPLACE> tag with the TYPE=ALL parameter.
LENGTH
Sets the length for the entire message content to be used during playback,
LENGTH=n, where n indicates the number of bytes. If part of a message is replaced
and it changes the data length from the original, then the LENGTH parameter would
be needed. This applies whether the length change shortens or lengthens the data.
For example, if the original message was 50 bytes in length and a replaced piece of
data was being substituted that changed the length to 60 bytes, the Replace tag
would read <REPLACE FIELD(offset,value) LENGTH=60>. Conversely, if a replaced
piece of data was being substituted that changed the length to 30 bytes, the Replace
tag would read <REPLACE FIELD(offset,value) LENGTH=30>.
Note:
Hiperstation for Mainframe Servers provides macros for easily determining
length values. See the next section “Offset and Length Determination
Macros”.
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
multiple content records each beginning with the <CONTENT> tag and a 12-byte header.
For example:
000484 <CLIENT ID=9>39
000485
<CONTENT>
00000295GET /BonusPak2/db2/telco.htmls HTTP/1.1 Accept
000486
<CONTENT>
00000296image/gif, image/x-xbitmap,image/jpeg, image/p
000487
<CONTENT>
00000297jpeg, application/vnd.ms-excel,application/vnd.
000488
<CONTENT>
00000298ms-powerpoint,application/msword, application/x
000489
<CONTENT>
00000299-%hockwave-flash, */* Referer: http://cw01.comp
000490
<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.
7-34
Hiperstation for Mainframe Servers User Guide
To ease offset and length determination, Hiperstation 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 have to type the macro name on the
Command line, position the cursor, and press Enter. You can avoid repeatedly
typing the macro name, by assigning 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, enter 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 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 near the bottom of the screen (Figure 7-19).
Figure 7-19. LOCPOS Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER2312.TCPIP.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
000476
PROTOCOL=HTTP,
000477
CLIENT_ADDRESS='10.15.80.190',
000478
CLIENT_PORT=1477,
000479
SERVER_ADDRESS='10.10.0.200',
000480
SERVER_PORT=80,
000481
STIME='2007/01/24_14:31:13.674379',
000482
TRANSLATE=A2E>38
000483 <TIME>2007/01/24_14:31:13.674478
000484 <CLIENT ID=9>39
000485
<CONTENT>
00000295GET /BonusPak2/db2/telco.htmls HTTP/1.1 Accept:
000486
<CONTENT>
00000296 image/gif, image/x-xbitmap, image/jpeg, image/p
000487
<CONTENT>
00000297jpeg, application/vnd.ms-excel, application/vnd.
000488
<CONTENT>
00000298ms-powerpoint, application/msword, application/x
000489
<CONTENT>
00000299-%hockwave-flash, */* Referer: http://cw01.comp
000490
<CONTENT>
00000300uware.com/bp2atoc.html Accept-Language: en-us
000491
<CONTENT>
00000301Accept-Encoding: gzip, deflate If-Modified-Sinc
000492
<CONTENT>
000003 +--------------+ 997 05:07:23 GMT User-Agent: Mo
000493
<CONTENT>
000003 | OFFSET = 264 | tible; MSIE 6.0; Windows NT 5.1;
000494
<CONTENT>
000003 +--------------+ 01.compuware.com Connection: Ke
000495
<CONTENT>
00000305ep-Alive
The BRULE macro displays a byte ruler above the selected <CONTENT> record (Figure
7-20). In the illustration, the offset of ‘m’ is 144, ‘s’ is 145, ‘-’ is 146, etc. Every fifth
and tenth 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
‘we’ in the word ‘powerpoint’. The offset value of ‘w’ is 149 and ‘e’ is 150.
TCP/IP Scripts and Subset Repositories
7-35
Figure 7-20. BRULE Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER2312.TCPIP.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
00483 <TIME>2007/01/26_14:31:13.674478
000484 <CLIENT ID=9>39
000485
<CONTENT>
00000295GET /BonusPak2/db2/telco.htmls HTTP/1.1 Accept:
000486
<CONTENT>
00000296 image/gif, image/x-xbitmap, image/jpeg, image/p
000487
<CONTENT>
00000297jpeg, application/vnd.ms-excel, application/vnd.
======
DATA BELOW
144==>-5---50----5---60----5---70----5---80----5---90000488
<CONTENT>
00000298ms-powerpoint, application/msword, application/x
000489
<CONTENT>
00000299-%hockwave-flash, */* Referer: http://cw01.comp
000490
<CONTENT>
00000300uware.com/bp2atoc.html Accept-Language: en-us
000491
<CONTENT>
00000301Accept-Encoding: gzip, deflate If-Modified-Sinc
000492
<CONTENT>
00000302e: Fri, 23 Feb 2007 05:07:23 GMT User-Agent: Mo
000493
<CONTENT>
00000303zilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
000494
<CONTENT>
00000304 CPWR) Host: cw01.compuware.com Connection: Ke
The BRULES macro displays a byte ruler above each record (line) of the selected
<CONTENT> tag (Figure 7-21).
Figure 7-21. BRULES Results
File Edit Edit_Settings Menu Utilities Compilers Test Help
------------------------------------------------------------------------------EDIT
USER2312.TCPIP.SCRIPTS.NEW(SCRPT001) - 00.01
Columns 00001 00072
Command ===>
Scroll ===> PAGE
000481
STIME='2007/01/26_14:31:13.674379',
000482
TRANSLATE=A2E>38
000483 <TIME>2007/01/26_14:31:13.674478
000484 <CLIENT ID=9>39
======
DATA BELOW
0==>0----5---10----5---20----5---30----5---40----5-000485
<CONTENT>
00000295GET /BonusPak2/db2/telco.htmls HTTP/1.1 Accept:
======
DATA BELOW
48==>-50----5---60----5---70----5---80----5---90----5
000486
<CONTENT>
00000296 image/gif, image/x-xbitmap, image/jpeg, image/p
======
DATA BELOW
96==>--100----5---10----5---20----5---30----5---40--000487
<CONTENT>
00000297jpeg, application/vnd.ms-excel, application/vnd.
======
DATA BELOW
144==>-5---50----5---60----5---70----5---80----5---90000488
<CONTENT>
00000298ms-powerpoint, application/msword, application/x
======
DATA BELOW
192==>---5--200----5---10----5---20----5---30----5---4
000489
<CONTENT>
00000299-%hockwave-flash, */* Referer: http://cw01.comp
Hiperstation for Mainframe Servers REXX Variables
Add REXX logic to your TCP/IP scripts to control the way scripts play back. For example,
dynamically replace script data with unique data from an external file on each iteration
of playback. Incorporate the following Hiperstation predefined REXX variables. They
return playback information used to drive data-replacement logic. Refer to the
Hiperstation Scripting Reference for more information.
Note:
Understanding playback, especially the SOCKETS and SCRIPT statements is
integral to determining how to apply these variables. Additionally, do not forget
to set the SET_REXX_STREAM_VARIABLES playback control parameter to YES to
enable the use of these variables during playback. See “CONTROL Statement” on
page 9-3.
TCPIP_ACTUAL
Returns the content of the most recent message processed by Hiperstation. This variable’s
value is similar to the RequestBody or ResponseBody reporting fields, depending on
whether the data came from the client or server.
7-36
Hiperstation for Mainframe Servers User Guide
TCPIP_EXPECTED
Returns the content of an inbound message that Hiperstation expects to receive. This is
the server content from your script. This variable is similar to the ExpResponseBody
reporting field.
TCPIP_ACTUAL_LENGTH
Returns the length of the most recent message processed by Hiperstation.
TCPIP_EXPECTED_LENGTH
Returns the length of an inbound message that Hiperstation expects to receive.
CONNECTION_NBR
Returns the current ID of the connection that is playing back. This variable’s value may
be the same across multiple sockets, as it is pulled from the script.
REPLAY_ID
Returns a sequential value for each instance of a SOCKETS replay. For example, a
SOCKETS 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
*/
<CLIENT...
3. Set the count value in the SOCKETS statement to 1000:
SOCKETS 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.
SOCKETS_COUNT_NBR
Returns the COUNT value of the current SOCKETS replay. For example, if the SOCKETS
statement specifies COUNT(3), the first instance returns COUNT = 1; the second, COUNT
= 2; the third, COUNT = 3. This value is set when the SOCKETS replay begins.
Use this variable and SOCKETS_REPEAT_NBR to extend testing capability.
SOCKETS_REPEAT_NBR
Returns the REPEAT value of the given SOCKETS. This value is set when a socket begins
execution. Use SOCKETS_COUNT_NBR and SOCKETS_REPEAT_NBR to replace script data
TCP/IP Scripts and Subset Repositories
7-37
on specific COUNTS and REPEATS. For example, to test three products (A, B, C) with two
accounts (1, 2).
All COUNTS execute simultaneously
COUNT 1
Repeat 1
COUNT 2
COUNT 3
Product A, Account 1 Product B, Account 1 Product C, Account 1
Repeat 2
Product A, Account 2 Product B, Account 2 Product C, Account 2
(begins after Repeat 1 finishes)
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
*/
<CLIENT...
3. Set the count and repeat values in the SOCKETS statement as follows:
SOCKETS COUNT(3),REPEAT(2)
This generates six unique customer requests, each with a unique combination of
product and account parameter values.
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.
ACTUAL_DB2_USERID
Returns the ID of the user associated with the DB2 transaction being played back. This
value comes from the script and is sent to the server by playback.
ACTUAL_DB2_RDBNAM
Returns the name of the relational database associated with the DB2 transaction being
played back. This value comes from the script and is sent to the server by playback.
ACTUAL_DB2_SQLSTMT
Returns the SQL Statement associated with the DB2 transaction being played back. This
value comes from the script and is sent to the server by playback.
ACTUAL_DB2_SQLSTATE
Returns the value of the last SQL State returned by the application during playback. This
is a live value that is received by playback from the server being tested.
ACTUAL_DB2_SQLCODE
Returns the value of the last SQL code returned by the application during playback. This
is a live value that is received by playback from the server being tested.
7-38
Hiperstation for Mainframe Servers User Guide
ACTUAL_DB2_ANSWER_SET
Returns the server’s response to an SQL Query/Statement being played back. This is a live
value that is received by playback from the server being tested.
ACTUAL_IMS_CLIENT
Returns the unique client identifier associated with the IMS transaction being played
back. This value comes from the script and is sent to the server by playback.
ACTUAL_IMS_TRANS
Returns the IMS transaction code (target application) associated with the IMS transaction
being played back. This value comes from the script and is sent to the server by playback.
ACTUAL_IMS_DSTORE
Returns the IMS Datastore associated with the IMS transaction being played back. This
value comes from the script and is sent to the server by playback
ACTUAL_IMS_USERID
Returns the ID of the user associated with the IMS transaction being played back. This
value comes from the script and is sent to the server by playback.
ACTUAL_CTG_APPLID
Returns the APPLID of the VTAM application being accessed by the CTG transaction
being played back. This value comes from the script and is sent to the server by playback.
ACTUAL_CTG_PROGID
Returns the name of the program being accessed by the CTG transaction being played
back. This value comes from the script and is sent to the server by playback.
ACTUAL_ECI_USERID
Returns the ID of the user associated with the ECI call being played back. This value
comes from the script and is sent to the server by playback.
ACTUAL_ECI_PROGID
Returns the name of the program invoked in CICS by the ECI call being played back. This
value comes from the script and is sent to the server by playback.
Editing TCP/IP Detail Data with File-AID/MVS
Review and edit TCP/IP detail data (transmission or message data) with:
• ISPF Edit or View.
• File-AID/MVS version 08.00 (if you are licensed).
Invoke File-AID/MVS from an ISPF Edit or View session to review and edit TCP/IP
message data in a formatted context. For example, if the message data contains a numeric
string representing a customer ID and account number, identifying the account number
portion of the string may be difficult in ISPF Edit and therefore editing may be 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
TCP/IP Scripts and Subset Repositories
7-39
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 record length of 32K.
If TCP/IP message data is stored in the script, map one message at a time. If it is stored in
a separate dataset, map an individual message or all messages in the dataset at once. Refer
to page 7-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
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 used
by your terminal. 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. 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 you wish 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 only required 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 used by your terminal. 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 7-39 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 your File-AID/MVS documentation for help
with the screens that appear. 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 you need 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
7-40
Hiperstation for Mainframe Servers User Guide
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 File-AID screen that
appears 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 return to ISPF or End to exit
File-AID/MVS and transfer your changes to ISPF.
6. 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.
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 for the MAPD command, type
exclamation point (!) MAPD on the Command line and press Enter.
Note:
The command prefix (!) is only required 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 used by your terminal. 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 7-39 discussion for more
information.
3. MAPD invokes File-AID/MVS. Refer to your File-AID/MVS documentation for help
with the screens that appear. 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 you need to review or edit.
Note:
MAPD creates a temporary dataset, with a four-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.
TCP/IP Scripts and Subset Repositories
7-41
Additionally, you can use the temporary dataset as input to an XML
generation job. After you submit the job, exit the File-AID screen to ensure
that 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 your changes to ISPF.
CAUTION:
Deleting and inserting messages may cause unsynchronized playback.
The script contains a link to each message in the detail file that supports playing
back the script. If the detail file contains more or fewer messages than the script
calls, playback will become unsynchronized. When you exit File-AID/MVS,
Hiperstation for Mainframe Servers 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
To access MAPD help panels, type MAPD space HELP or MAPD space question mark (?) on
the Command line in the ISPF Edit or View session. Then press 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 messages 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'S GUIDE'
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.
7-42
Hiperstation for Mainframe Servers User Guide
User Response: Press Enter to clear the message. If editing occurred in the current ISPF
session, use Cancel to exit the session without saving changes and retry.
'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 7-14.
User Response: Press Cancel to exit the ISPF session. Locate the corresponding detail dataset
and map messages from there.
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 you inadvertently altered 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, 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 will
cause 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
will cause 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 TCP/IP message data is longer
that the detail dataset’s logical record length (LRECL), the message will span 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 32K. 32K is
the maximum record length supported by MAPD.
'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.
TCP/IP Scripts and Subset Repositories
7-43
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.
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; therefore, File-AID/MVS had no data
to return.
System Action:
No changes are made to the TCP/IP message data.
User Response:
Press Enter to clear the message and return to ISPF.
7-44
Hiperstation for Mainframe Servers User Guide
8-1
Chapter 8.
TCP/IP Interactive Playback
Chap 8
Introducing TCP/IP Interactive Playback
Use interactive playback to:
• Play back scripts — execute the commands found in the script.
• Analyze scripts — process the script without executing the commands to report
information on the script’s contents.
In order to play back a Hiperstation for Mainframe Servers script, you must have created
a script using the Create Scripts panels, (See Chapter 7, “TCP/IP 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 Mainframe Servers Main Menu, select option 8 Playback
TCP/IP Scripts. The “TCP/IP Playback - Selection Screen” appears (Figure 8-1).
Figure 8-1. TCP/IP Playback - Selection Screen
------------------------ TCP/IP Playback - Selection
Command ===>
Primary commands:
Playback DSN
:
Line commands...:
S
-
-----------------------
C)reate Playback, G)enerate Playback from Script Log
S)elect, P)lay or D)elete
Name
Playback Description
Date
-------- ------------------------------------------------------ ---------USER2312 test playback
05/07/2010
2. Select what you want to do:
– Create a new Playback by filling in the relevant information on the screens that
follow (see “Creating a New Interactive Playback” on page 8-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 8-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 8-12).
– Delete a a previously saved Playback (see “Deleting a Playback” on page 8-14).
– Select a previously saved Playback to review (see “Selecting a Previously Saved
Playback to Review” on page 8-14).
8-2
Hiperstation for Mainframe Servers User Guide
CAUTION:
When you perform a Global Recording capture of DB2 Connect and make a script,
you must use the same version of DB2 connect when you play back the script. If you
use different versions of DB2 Connect for capture and playback, an error will occur.
Creating a New Interactive Playback
1. On the “TCP/IP Playback - Selection Screen”, type C (create) on the command line
and press Enter. The “TCP/IP Playback - Datasets Screen” appears (Figure 8-2).
Figure 8-2. TCP/IP Playback - Datasets Screen
------------------------- TCP/IP Playback - Datasets -----------------------Command ===> __________________________________________________________________
Script Dataset:
Project . . . USER2312
Group . . . . TCPIP
Type . . . . SCRIPT
Other Partitioned Dataset:
Dataset Name. . . . _______________________________________________________
Define more than one Script Dataset(/)
Specify locations of playback outputs
Reporting Database(optional)
Generate Reporting Job ==>
Dataset Name. . . . ________________________________________________________
Playback Error Log(if not SYSOUT=*):
Dataset Name. . . . ________________________________________________________
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 required.
a. To play back multiple script datasets, type a slash in the Define More than one
Script Dataset field and press Enter. The “TCP/IP Script Dataset List Screen” will
appear (Figure 8-3).
Figure 8-3. TCP/IP Script Dataset List Screen
-------------------------- TCP/IP 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
TCP/IP Interactive Playback
8-3
enter all of the desired dataset names, press Enter to return to the “TCP/IP
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 “TCP/IP Playback - Script Member List Screen” will
appear (Figure 8-4).
Figure 8-4. TCP/IP Playback - Script Member List Screen
MEMBER LIST -- USER2312.TCPIP.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
B Browse member
Size
23
1508
Created
2007/07/27
2007/07/27
Changed
2007/07/27 16:10:00
2007/07/27 16:10:00
ID
USER2312
USER2312
6. Select a member from the list and use END to process your selection. The “TCP/IP
Playback - Setup Screen” appears (Figure 8-5).
Figure 8-5. TCP/IP Playback - Setup Screen
------------------- TCP/IP Playback - Setup
Command ===>
---------------- Row 1 to 1 of 1
Scroll ===> PAGE
Enter script, and modify desired options using /.
Type OK and press ENTER when ready.
Note: Use multiple Sockets to test parallel connections to your application.
Scripts under each Socket will run sequentially.
Environment Options(apply to all Sockets except when overridden)
Socket and script line commands are: (D)elete,(R)epeat,(A)dd,(/)Options
S Socket
** *******
1
S Script
** ********
SCR00000
7. The name of the member you selected on the previous screen is prefilled in the Script
field. To add another script to play back, use the Add line command, and select
another member from the list. All scripts for this playback must be contained within
the dataset that you named on the “TCP/IP Playback - Datasets Screen”.
8. If you do not need to change any options, type OK on the Command line. The
“TCP/IP Playback - Submit Screen” appears. See “Submitting Your Playback for
Execution” on page 8-12 to submit your playback for processing.
If you need to change Environment, Socket, and/or Script options, see “Changing
Playback Options” on page 8-5 for complete information. Then continue with
8-4
Hiperstation for Mainframe Servers User Guide
“Submitting Your Playback for Execution” on page 8-12 to submit your playback for
processing.
Notes:
1. To explain the relationship between Sockets and Scripts, a Socket represents a
single connection to your application. When there are multiple sockets in a
playback, they run in parallel to each other, unless the socket start time is
modified in the environment options. Within a socket, there are one or more
scripts that run sequentially in the order they appear.
2. Lines commands can be applied to either the Socket or the Script. The Add,
Repeat, and Delete line commands will add, repeat, or delete a socket. When
applied to a script, they will add, repeat, or delete a script from that socket.
When deleting, keep in mind that at least one script and socket 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 “TCP/IP Playback - Selection Screen”, type G (generate) on the command line
and press Enter. The “TCP/IP Playback - Log File Screen” appears (Figure 8-6).
Figure 8-6. TCP/IP Playback - Log File Screen
---------------------Generate TCP/IP Playback - Log File --------------------Command ===>
Enter log file member to generate playback:
Log Dataset:
Project . . .
Group . . . .
Type . . . .
Member . . .
Other Partitioned
Dataset Name.
________
________
________
________
(Blank or pattern for member selection list)
Dataset:
. . . ____________________________________________________
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 “TCP/IP 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” on page 8-2. Continue with step 2 on page 8-2.
TCP/IP Interactive Playback
8-5
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 SOCKET 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 8-7), by typing a slash next
to the Environment Options field on the “TCP/IP Playback - Setup Screen” (Figure 85 on page 8-3).
Figure 8-7. Environment Options Screen
----------------------------- Environment Options ----------------------------Command ===>
Select the type of options to view/modify using
/ .
_
Processing Options:
Rexx Disabled, No live transactions executed
Internal Hiperstation REXX variables OFF
_
Timing Options:
Play at Full Speed,Groups start simultaneously,
Wait 15 seconds for I/O to complete
_
Connection Options:
Use Protocol From Script
Use Server Port From Script
Use Server Address From Script
_
Data Replacement Options:
Use Userid From Script
Enter END command to return to the previous panel
This screen allows you to view or modify processing, timing, connection, and data
replacement options.
2. Type a slash (/) next to the Processing Options field and press Enter. The
“Environment - Processing Options Screen” appears (Figure 8-8).
Figure 8-8. Environment - Processing Options Screen
----------------------- Environment - Processing Options ---------------------Command ===>
Review current option settings and modify if required:
Enable REXX to be used in TCP scripts?
==>
_
Use internal Rexx Stream Variables?
==>
_
==>
/
Do live I/O during playback?
==>
_
Error Handling:
Suppress Error Messages?
When error occurs:
Continue playback
Stop connection
Stop script
Stop socket
Stop playback
==>
==>
==>
==>
==>
==>
_
_
_
_
_
_
Rexx Log Dataset name
TCP Playback play as:
Press ENTER
Client
to continue, END to exit
Server
==>
_
8-6
Hiperstation for Mainframe Servers User Guide
The options on this panel correspond to keywords that are placed in control cards for
the playback JCL.
– Enable REXX to be used in TCP scripts? enables REXX to be used in scripts. The
keyword is REXXON.
– Use Internal REXX stream variables? enables the use of the Enterprise Servers’
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.
– Rexx Log Dataset name specifies the dataset name to be used for your log file.
– TCP Playback play as Client or Server tells the playback program to function as
a client or server. The default is to function as a client, testing the server
application.
– Do Live I/O during playback? permits Hiperstation to play back scripts without
performing any I/O allowing you to generate reports for analyzing script content.
The keyword is OFFLINE.
– Suppress Error Messages? suppresses warning and socket I/O error messages.
– When error occurs stops the playback at the level specified when an error occurs.
The default is Continue playback. Choices include:
•
•
•
•
•
Continue playback
Stop connection
Stop script
Stop Socket
Stop playback
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 8-9).
Figure 8-9. Environment - Timing Options Screen
------------------------- Environment - Timing Options -----------------------Command ===>
Review current option settings and modify if required:
Use start times to control dispatching of each Socket?
==>
_
Number of seconds to wait for I/O to complete before timing out ==>
15
Number of seconds to listen for connection attempt(server only) ==>
__
Select an
1 1 Play
2 Play
3 Play
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 to control dispatching of each Socket? controls the playback
initiation time for each socket statement supplied in the job. If USESTIME is
specified, Hiperstation initiates playback of each socket relative to the start time
values supplied in the socket statement. When this option is selected, Start Time for
TCP/IP Interactive Playback
8-7
each socket 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. Enter a Number of seconds to listen for connection attempt (server only).
7. Select an option for playback think time:
– 1 Play at full speed — no think time.
– 2 Play at think time recorded in the script.
– 3 Play at user-specified think time.
8. 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.
9. Press Enter to continue and return to the “Environment Options Screen”.
10. Type a slash (/) next to the Connection Options field and press Enter. The
“Environment - Connection Options Screen” appears (Figure 8-10).
Figure 8-10. Environment - Connection Options Screen
----------------------- Environment - Connection Options ---------------------Command ===>
Review current option settings and modify if required:
Protocol
==>
_____
Server Port
==>
____
Server Address
==>
_______________
Number of Connection Attempts before error ==>
__
Pipelining - Send multiple client messages before receiving response ==>
Press ENTER
_
to continue, END to exit
11. Protocol — enter the desired protocol in this field.
12. Change the Server Port and Server Address if desired. These fields override the
default server port and address for the playback.
13. Enter the number of times you want playback to try to connect to a server before
giving an error message.
14. Select Pipelining if you want playback to send multiple client messages to the server
before waiting for a response.
15. Press Enter to continue and return to the “Environment Options Screen”.
16. Type a slash (/) next to the Data Replacement Options field and press Enter. The
“Environment - Data Replacement Options Screen” appears (Figure 8-11).
8-8
Hiperstation for Mainframe Servers User Guide
Figure 8-11. Environment - Data Replacement Options Screen
-------------------- Environment - Data Replacement Options ------------------Command ===>
Values entered on this screen will replace corresponding content data in the
script. To encrypt password type it in the "password" field and press Enter.
DB2C
IMSC
ECI
Userid
Password
==> ________
==>
Confirm Password:
Userid
Password
==> ________
==>
Confirm Password:
Userid
Password
==> __________
==>
Confirm Password:
Press ENTER
to continue, END to exit
On this screen you can replace data in the script during playback for the DB2C,
IMSC, and ECI protocols.
17. Enter information you want to override the User ID and password in the DB2
Connect CONTENT. You must enter the password a second time for confirmation.
18. Enter information you want to override the User ID and password in the IMS
Connect CONTENT. You must enter the password a second time for confirmation.
19. Enter information you want to override the User ID and password in the ECI Connect
CONTENT. You must enter the password a second time for confirmation.
20. Press Enter to continue and return to the “Environment Options Screen”.
Socket Options
1. Type a slash (/) next to the desired Socket on the “TCP/IP Playback - Setup Screen”
and press Enter. The “Socket Options Screen” appears (Figure 8-12).
Figure 8-12. Socket Options Screen
------------------------------ Socket
Command ===>
1
Options -----------------------------
Select the type of options to view/modify using / . To copy options to
all Sockets in playback, type save all from any Socket options panel .
_
Processing Options:
Repeat(1),Count(1)
_
Timing Options:
No start delay
_
Connection Options:
Use Protocol From Script
Use Server Port From Script
Use Server Address From Script
_
Data Replacement Options:
Use Userid From Script
Enter END command to return to the previous panel
From this screen, you can choose to change Processing, Timing, Connection, and
Data Replacement options for the selected socket.
2. Type a slash (/) next to the Processing Options field and press Enter. The “Socket Processing Options Screen” appears (Figure 8-13).
TCP/IP Interactive Playback
8-9
Figure 8-13. Socket - Processing Options Screen
----------------------- Socket
Command ===>
1
- Processing Options -----------------------
Review current option settings and modify if required:
Number of Repeats
==>
1__
Number of instances of this Socket
==>
1__
==>
==>
==>
==>
==>
==>
_
_
_
_
_
_
Error Handling:
Suppress Error Messages
When error occurs:
Continue playback
Stop connection
Stop script
Stop socket
Stop playback
Press ENTER
to continue, END to exit
3. Enter the number of times to repeat playback of scripts in the Socket and the number
of instances of this Socket to play back concurrently.
4. Suppress Error Messages suppresses warning and socket I/O error messages.
5. When error occurs stops the playback at the level specified when an error occurs.
The default is Continue playback. Choices include:
•
•
•
•
•
Continue playback
Stop connection
Stop script
Stop Socket
Stop playback
6. After making your changes, enter END to return to the “Socket Options Screen”.
7. Type a slash (/) next to the Timing Options field and press Enter. The “Socket Timing
Options Screen” appears (Figure 8-14).
Figure 8-14. Socket Timing Options Screen
------------------------- Socket 001 - Timing Options ------------------------Command ===>
Review current option settings and modify if required:
Number of seconds to delay start of this Socket
Press ENTER
==>
0__
to continue, END to exit
8. Enter a number of seconds to delay the start of this Socket. This tells playback how
long to wait between the start of a socket and commencement of playback.
9. Type a slash (/) next to the Connection Options field and press Enter. The “Socket Connection Options Screen” appears (Figure 8-15).
8-10
Hiperstation for Mainframe Servers User Guide
Figure 8-15. Socket - Connection Options Screen
TCPGRPC --------------- Socket 1 - Connection Options ----------------------Command ===> _____________________________________________
Review current option settings and modify if required:
Protocol
==>
_____
New Server Port
==>
_____
New Server Address
==>
Number of Connection Attempts before error
==>
__
Send multiple client messages(pipelining)
==>
_
Press ENTER
to continue, END to exit
10. Protocol — enter the desired protocol in this field.
11. Change the Server Port and Server Address if desired. These fields override the
default server port and address for the playback.
12. Enter the number of times you want playback to try to connect to a server before
giving an error message.
13. Select Pipelining if you want playback to send multiple client messages to the server
before waiting for a response.
14. Press Enter to continue and return to the “Socket Options Screen”.
15. Type a slash (/) next to the Data Replacement Options field and press Enter. The
“Socket - Data Replacement Options Screen” appears (Figure 8-16).
Figure 8-16. Socket - Data Replacement Options Screen
-------------------- Socket 1 - Data Replacement Options -------------------Command ===> _____________________________________________
Values entered on this screen will replace corresponding content data in the
script. To encrypt password type it in the "password" field and press Enter.
DB2C
Userid
Password
Rdbname
==> ________
==>
Confirm Password:
==> ________________
IMSC
Userid
Password
Datastore
TranCode
==> ________
==>
==> ________
==> __________
Userid
Password
==> __________
==>
Applid
Progid
==> __________
==> __________
ECI
CTG
Press ENTER
Confirm Password:
Confirm Password:
to continue, END to exit
16. Enter information you want to override the User ID, password, and Rdbname in the
DB2 Connect CONTENT.
17. Enter information you want to override the User ID, password, Datastore, and
TranCode in the IMS Connect CONTENT.
TCP/IP Interactive Playback
8-11
18. Enter information you want to override the User ID and password in the ECI Connect
CONTENT.
19. Enter information you want to override the application ID and program ID in the
CTG CONTENT.
20. Press Enter to continue and return to the “Socket Options Screen”.
Script Options
1. Type a slash (/) next to the desired Script on the “TCP/IP Playback - Setup Screen”
and press Enter. The “Script Socket Options Screen” appears (Figure 8-17).
Figure 8-17. Script Socket Options Screen
-------------------- Script
Command ===>
SCR00000
Socket
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)
_
Connection Options:
Use Protocol From Script
Use Server Port From Script
Use Server Address From Script
Enter END command to return to the previous panel
On this screen, you can choose to modify Processing and Connection 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 8-18).
Figure 8-18. Script Processing Options Screen
--------------------- Script
Command ===>
SCR00000 Processing Options
--------------------
Review current option settings and modify if required:
Number of Repeats ==>
Press ENTER
1___
to continue, END to exit
3. Specify the number of times to repeat playback of the selected scrip.
4. Press Enter to continue and return to the “Script Socket Options Screen”.
5. Type a slash (/) next to the Connection Options field and press Enter. The “Script
Connection Options Screen” appears (Figure 8-19).
8-12
Hiperstation for Mainframe Servers User Guide
Figure 8-19. Script Connection Options Screen
TCPSCRC ------------- Script
Command ===>
Connection Options ---------------------
Review current option settings and modify if required:
Protocol
==>
_____
New Server Port
==>
____
New Server Address ==>
Press ENTER
_______________
to continue, END to exit
6. To override the protocol, server port and/or address, enter your changes in the
appropriate field.
7. Press Enter to continue and return to the “Script Socket Options Screen”.
8. After you have completed your modifications to the options, enter END to return to
the “TCP/IP Playback - Setup Screen”.
9. Type OK on the command line and press Enter. The “TCP/IP Playback - Submit
Screen” appears. Continue with the next section, “Submitting Your Playback for
Execution”.
Submitting Your Playback for Execution
After creating your playback script, the “TCP/IP Playback - Submit Screen” appears
(Figure 8-20).
Figure 8-20. TCP/IP Playback - Submit Screen
--------------------- TCP/IP 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:
===> //JOBNAME JOB (ACCOUNT),'NAME'
===> //*
===> //*
===> //*
On this screen, you can submit, edit, or save a batch job, save your playback, and exit
playback submission.
1. To save your playback JCL to a dataset, type SAVE on the command line. The “TCP/IP
Playback - Save JCL File Screen” appears (Figure 8-21).
TCP/IP Interactive Playback
8-13
Figure 8-21. TCP/IP Playback - Save JCL File Screen
Hiperstation ---------- TCP/IP 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 on the previous screens to your
Hiperstation 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 “TCP/IP 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 “TCP/IP 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 “TCP/IP Playback - Submit Screen”.
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 “TCP/IP Playback - Save Screen”
appears (Figure 8-22).
8-14
Hiperstation for Mainframe Servers User Guide
Figure 8-22. TCP/IP Playback - Save Screen
-------------------------- TCP/IP Playback - Save --------------------------Command ===> __________________________________________________________________
Playback Name . PBTCPIP_
Description . . TCP/IP playback___________________________________________
Save Playback Dataset:
Dataset Name. . USER2312.TCPIP.PLAYBACK’_____________________________________
Press ENTER to continue,
END to cancel save.
5. Enter a name and optional description for the Playback and a playback dataset name.
Then press Enter to save your Playback and press END to return to the “TCP/IP
Playback - Submit Screen”.
6. Press Enter to execute the option you selected on the “TCP/IP Playback - Submit
Screen”. A message appears stating that your job was submitted.
Selecting a Previously Saved Playback to Review
1. On the “TCP/IP Playback - Selection Screen”, type S (select) next to the playback you
want to select and press Enter. The “TCP/IP 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 Mainframe Servers main menu.
Deleting a Playback
1. On the “TCP/IP 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.
Generating Playback Reports
1. On the Hiperstation for Mainframe Servers Main Menu, select option 9 TCP/IP
Playback Reporting. The “TCP/IP Playback - Selection Screen” appears (Figure 8-23).
TCP/IP Interactive Playback
8-15
Figure 8-23. TCP/IP Reporting - Selection Screen
----------------------- TCP/IP Reporting - Selection ----------------------Command ===> __________________________________________________________________
Enter a database name , or select a database from the playback list below.
Dataset Name. . . . ‘USER2312.PLAYBACK.REPORT_________________________________
Playback DSN
:
Line commands...:
S
-
‘USER2312.TCPIP.PLAYBACK’
S)elect or D)elete
Name
Database Name
-------- -----------------------------------------------------TEST1
USER2312.REPORT.DATABASE
2. On this screen, select the desired report from the list, or type a dataset name within
single quotes in the Dataset Name field and press Enter. The “TCP/IP Reporting
Screen” appears (Figure 8-24).
Figure 8-24. TCP/IP Reporting Screen
------------------------------- TCP/IP 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. Specify whether to generate basic or custom reports and press Enter.
– 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. When you make this selection, you must
enter a dataset name in the Other Partitioned Dataset field. Use a member from a
dataset that contains report statements to be used in the report job.
4. Continue with the next section, “TCP/IP - Basic Reports” or “TCP/IP - Custom
Reports” on page 8-16.
TCP/IP - Basic Reports
1. You will have accessed this screen by typing a slash (/) next to the Basic Reports field
on the “TCP/IP Reporting Screen” (Figure 8-24) and pressing Enter. The “TCP/IP Basic Reports Screen” appears (Figure 8-25).
8-16
Hiperstation for Mainframe Servers User Guide
Figure 8-25. TCP/IP - Basic Reports Screen
---------------------------- TCP/IP - Basic Reports --------------------------Command ===> _______________________________________________________________
Select a report(s) to generate using / and enter location.
_ HTML Exception Report (hfs path required):
__________________________________________________________________________
__________________________________________________________________________
Optional Parameters:
Number of mismatches to display before stopping ==> ___
Masking DSN
__________________________________________________________
Compare to baseline database ==> _
Baseline DSN __________________________________________________________
_ Script Timing Summary (hfs path, DSN, or leave blank for SYSOUT=*):
__________________________________________________________________________
__________________________________________________________________________
_ Response Time Summary (hfs path, DSN, or leave blank for SYSOUT=*):
__________________________________________________________________________
__________________________________________________________________________
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.)
TCP/IP - 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 “TCP/IP Reporting Screen” (Figure 8-24 on page 8-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 8-26).
TCP/IP Interactive Playback
8-17
Figure 8-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. Report Layout
3. Select the desired Report Layout. Table is the default.
– Select Table to produce a row/column-oriented report. Figure 8-27 shows a Table
report layout.
Figure 8-27. Table Report Layout
Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 1
--------------------------------------------------------------------------------------MessageID
SocketsNumber
MessageStartTime
MessageFinishTime
--------------------------------------------------------------------------------------4
1
2006/07/21_15:10:37.290
2006/07/21_15:10:38.052
6
1
2006/07/21_15:10:39.409
2006/07/21_15:10:39.938
9
1
2006/07/21_15:10:40.913
2006/07/21_15:10:42.170
******************************** BOTTOM OF DATA ***************************************
– Select Form to produce a line-based report. Figure 8-28 shows a Form report
layout.
8-18
Hiperstation for Mainframe Servers User Guide
Figure 8-28. Form Report Layout
Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 1
--------------------------------------------------------------------------------------MessageID
4
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2010/07/21_15:10:37.290
--------------------------------------------------------------------------------------MessageFinishTime
2010/07/21_15:10:38.052
--------------------------------------------------------------------------------------Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 2
--------------------------------------------------------------------------------------MessageID
6
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2010/07/21_15:10:39.409
--------------------------------------------------------------------------------------MessageFinishTime
2010/07/21_15:10:39.938
--------------------------------------------------------------------------------------Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 3
--------------------------------------------------------------------------------------MessageID
9
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2010/07/21_15:10:40.913
--------------------------------------------------------------------------------------MessageFinishTime
2010/07/21_15:10:42.170
---------------------------------------------------------------------------------------
4. Select the type of report you want to produce. Choices include: Text (default), HTML,
and CSV.
5. 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.
6. 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.
7. 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.
8. Press Enter to continue. The “Custom Report Locations Screen” appears (Figure 8-29).
Figure 8-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
Sockets
Script
Connection
Message
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
Type END command to return to the previous panel, ENTER to
continue
TCP/IP Interactive Playback
8-19
9. 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.
10. Press Enter to continue. “TCP/IP Playback - Submit Screen” appears (Figure 8-20 on
page 8-12).
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 8-12 for information on submitting and saving your
playback report.
8-20
Hiperstation for Mainframe Servers User Guide
9-1
Chapter 9.
TCP/IP Unattended Playback
Chap 9
Play back your scripts to test your TCP/IP applications. During playback, Hiperstation for
Mainframe Servers executes the activity that is identified as CLIENT in the script. If you
collect the appropriate playback information, you can generate reports that compare the
server activity resulting from playback (actual) to the server activity recorded in the
script (expected).
Unattended Playback is a batch-driven function that requires control statements. Write
the statements from scratch, or save time by editing the Connection Log that is
optionally generated during script creation. After the statements are prepared, customize
the provided JCL sample and submit the job. Unattended Playback automatically
generates a text-based Error Summary report to help you troubleshoot playback issues.
You can also generate an interactive HTML version of the report if your installer enabled
web reporting.
Creating Playback Control Statements
Each playback control statement you write can be used for client testing or server testing.
TCP/IP Unattended Playback control statements include:
• CONTROL — Provides playback control information for all scripts in the job.
• SOCKETS — Provides playback control information for a group of scripts.
• SCRIPT — Provides playback control information for a specific script.
• COLLECT — Defines the playback information to collect for reporting for server
testing only.
Playback requires one SCRIPT statement for each script and at least one SOCKETS
statement. By default, all SOCKETS play back simultaneously and the SCRIPTS listed
under a SOCKETS statement play back consecutively. This supports playing back groups
of related scripts in parallel. For example, to simulate two users performing different
activity at the same time, construct the statements as follows:
CONTROL
SOCKETS
SCRIPT(SCRPT1)
SCRIPT(SCRPT2)
SOCKETS
SCRIPT(SCRPT4)
COLLECT (*) FROM (PLAYBACK)
COLLECT (*) FROM (MESSAGE)
Be mindful of transaction interdependence when building multiple SOCKETS statements.
For example, two scripts contain transactions that access the same customer record. If
each script appears under a different SOCKETS statement, one of the transactions may
fail during playback because the customer record is in use by the other transaction.
Playback control statements provide parameters for controlling all aspects of playback
including overriding the connection information in the scripts. Specify a server IP
address or port on one of the playback control statements to play back scripts in an
environment other than the one they were captured in. For example, regression testing
may require playing back activity in a test environment that was captured in a
production environment. If you do not specify connection parameters on any of the
9-2
Hiperstation for Mainframe Servers User Guide
playback statements, Hiperstation uses the information found on the <CONNECT> tag in
the script.
Consider statement hierarchy when defining your playback control statements. The
CONTROL, SOCKETS, and SCRIPT statements offer many of the same parameters. If a
parameter is defined on more than one statement, the parameter on the lowest-level
statement takes precedence. For example, the following statements result in SCRPT1 and
SCRPT2 using server address 10.10.0.200, while SCRPT3 uses 0.0.0.0.
CONTROL
SOCKETS SERVER_ADDRESS(10.10.0.200)
SCRIPT(SCRPT1)
SCRIPT(SCRPT2)
SCRIPT(SCRPT3) SERVER_ADDRESS (0.0.0.0)
Although you can write Unattended Playback statements from scratch, it is typically
faster and easier to modify the Connection Log (Figure 9-1) that is optionally generated
during script creation. The log contains one SOCKETS and one SCRIPT statement for each
script created. Each SOCKETS statement always includes an:
• ID parameter that provides a value for correlating entries on performance and
comparison reports with the associated SOCKETS statements.
• STIME parameter that states the start time and date of the first connection in the
script.
The rest of the SOCKETS statement parameters vary depending on the contents of the
script. If a connection attribute is the same for all connections in the script, the attribute
is written into the SOCKETS statement as a parameter. For example, if all connections use
the same protocol, the SOCKETS statement includes the PROTOCOL parameter. The
parameters are written into the statements as comments so you can review and easily
override their values. Remove the comment indicator — the asterisk (*) at the beginning
of the line — for all modified parameters that you require for playback.
Figure 9-1. Sample TCP/IP Connection Log
************************************************************************
*
*
* HIPERSTATION TCP/IP LOG STARTED ON 2008/01/15 AT 20:16:57
*
*
*
* DESC:
*
* GROUP: (2) Connection
*
*
*
* FILTERS: PROTOCOL CLIENT ADDRESS
PORT
SERVER ADDRESS
PORT
*
*
-------- --------------- ----- --------------- ----*
*
HTTP
*.*.*.*
*
*.*.*.*
80
*
*
HTTPS
*.*.*.*
*
*.*.*.*
443
*
*
TCP
*.*.*.*
*
*.*.*.*
*
*
*
*
* REPOSITORY NAME: VP.AT.TCPSC.S70156B.INPUT.REPOS.P???
*
* REPOSITORY NUMS: 1:8
*
* LOG . . . . . : VP.AT.TCPSC.S72036E.OUTPUT.LOG
*
* SCRIPT . . . . : VP.AT.TCPSC.S72036E.OUTPUT.SCRIPT
*
* CLIENT DETAIL : VP.AT.TCPSC.S72036E.OUTPUT.DETAIL
*
* SERVER DETAIL : VP.AT.TCPSC.S72036E.OUTPUT.DETAIL
*
*
*
************************************************************************
*
* SCRIPT NUMBER(1)
*
SOCKETSID(1)* PROTOCOL(HTTP)* CLIENT_ADDRESS('10.15.16.120')* CLIENT_PORT(4791)* SERVER_ADDRESS('10.10.0.200')* SERVER_PORT(80)STIME('2006/07/10_16:05:34.541335')
SCRIPT(SCR00000)
*
TCP/IP Unattended Playback
Note:
9-3
The Create TCP/IP Script option allows you to generate a log independent of
script creation. However, the script names appear as question marks (???).
Replace the question marks with the correct script member names.
• Add a CONTROL statement before the first SOCKETS statement to define job-level
attributes. For example, insert a CONTROL statement with the REXXON attribute to
enable the use of REXX in all of the scripts in the job.
• Add or remove SOCKETS statements to achieve the script grouping required for your
testing needs.
• Add, remove, or modify the parameters on the generated statements to meet your
testing needs.
• Add COLLECT statements to define the reporting information to collect during
playback for server testing.
Define Statements for Server Testing
This section provides a syntax diagram for each playback control statement written for
server testing. If you are unfamiliar with syntax diagrams, see “Reading Syntax Diagrams”
on page xxi. Parameter definitions follow the diagrams.
CONTROL Statement
You can use the CONTROL statement to provide job-level playback parameters and
connection attribute overrides. If you include a CONTROL statement, place it before the
first SOCKETS statement.
The following syntax diagram shows all of the available CONTROL statement parameters.
9-4
Hiperstation for Mainframe Servers User Guide
CACHE|CACHEOFF
CACHE instructs Hiperstation to store scripts in memory during playback to improve
performance. CACHEOFF disables script caching and is the default.
Note:
Script caching is required if you specify REPEAT on the SOCKETS or SCRIPT
statements. If you specify CACHEOFF and provide a REPEAT value,
Hiperstation produces an error and terminates playback with return code 8.
CONNECTION_ATTEMPTS(1|count)
The number of times Hiperstation tries to connect to a partner. If the connection is
not made after the specified number of attempts, Hiperstation will perform the
action specified on the ERROR_ACTION parameter.
TCP/IP Unattended Playback
9-5
DB2_USERID(‘user_ID’)
Overrides the user ID in the DB2 Connect CONTENT. The quotes are required.
DB2_PASS(‘password’)|DB2_NPASS(‘encrypted_password’)
Overrides the password in the DB2 Connect CONTENT. The password must be a plain
text password or a password using Hiperstation encryption. The quotes are required.
ECI_USERID(‘user_ID’)
Overrides the user ID in the ECI CONTENT. The quotes are required.
ECI_PASS(‘password’)|ECI_NPASS(‘encrypted_password’)
Overrides the password in the ECI CONTENT. The password must be a plain text
password or a password using Hiperstation encryption. The quotes are required.
ERROR_ACTION(MESSAGE|NOMESSAGE,STOP_CONNECTION|STOP_SCRIPT|
STOP_SOCKETS|STOP_PLAYBACK|RETRY)
Specifies which messages Hiperstation produces and the action it takes when a socket
I/O error occurs (including connection failures, lost connections, and read/write
failures). Options are:
MESSAGE
Print warning and socket I/O error messages.
NOMESSAGE
Suppress warning and socket I/O error messages.
STOP_CONNECTION
Stop the playback on the connection that the error occurred on. Continue the
playback on the other connections in the script.
STOP_SCRIPT
Stop the playback of the script.
STOP_SOCKETS
Stop the playback under the SOCKETS statement. When COUNT(x) is included
on the SOCKETS statement, all x of the playbacks are stopped when a socket I/O
occurs.
STOP_PLAYBACK
Stop the playback.
RETRY
Retry playing back the script.
IMS_USERID(‘user_ID’)
Overrides the user ID in the IMS Connect CONTENT. The quotes are required.
IMS_PASS(‘password’)|IMS_NPASS(‘encrypted_password’)
Overrides the password in the IMS Connect CONTENT. The password must be a plain
text password or a password using VTAM Dark Field encryption. The quotes are
required.
OFFLINE
Plays back scripts without connecting to the partner or performing any I/O. This
allows you to generate reports for analyzing script content. Be sure to include
COLLECT statements in the JCL.
9-6
Hiperstation for Mainframe Servers User Guide
OWNERNAME(owner_name)
Provides reporting information. The OWNERNAME (OWNA) field on the playback
reports displays the information specified on this keyword. Enter up to 256
characters.
PLAY(CLIENT)
Tells the playback program to function as a client.
PLAYBACKNAME(playback_name)
Provides reporting information. The PLAYBACKNAME (PLNA) field on the playback
reports displays the information specified on this keyword. Enter up to 256
characters.
PROTOCOL(CTG|DB2C|ECI|HTTP|HTTPS|IMSC|TCP)
Identifies the protocol used to play back the scripts in the given job. Use this
parameter to override the protocol identified on the <CONNECT> tag in the script.
Valid values are CTG, DB2C, ECI, HTTP, HTTPS, IMSC, and TCP.
Note:
Protocol overrides are typically unnecessary. This value initiates the
appropriate message handler. If it is inaccurate, playback may fail.
REXXOFF|REXXON
Enables or disables support for REXX logic in the scripts. If your scripts contain
REXX logic, specify REXXON.
RLOG(*|destination)
Specifies where to write the output from REXX SAY statements added to your scripts.
Supply a single-character sysout class, a PDSE and member, or a sequential dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
RLOG(MRRLOG.RPLY*) generates MYRLOG.RPLY0001, MYRLOG.RPLY0002, etc.
Playback allows one asterisk per dataset name qualifier or member name, in any
position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, RLOG(MYRLOG.RPLY??) generates
MYRLOG.RPLY01, MYRLOG.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add an RLOG DD statement
to the playback JCL. For example:
//RLOGDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
TCP/IP Unattended Playback
9-7
SET_REXX_STREAM_VARIABLES(NO|YES)
Enables the use of the Hiperstation 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
Mainframe Servers REXX Variables” on page 7-35. 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 waits for I/O completion. If no I/O finishes in the
STDWAIT interval, all outstanding I/O is canceled for that specific script.
Hiperstation retries the connections up to the number of attempts set in the
CONNECTION_ATTEMPTS parameter and retries any other I/O twice. If still
unsuccessful after all attempts are made to complete the I/O, Hiperstation takes the
action set on the ERROR_ACTION parameter.
If you do not include the STDWAIT parameter, Hiperstation uses the default value of
15 seconds.
THINK(0|hh:mm:ss.nnn)
Sets the amount of think time to wait after receiving a server message before sending
the next client message. This keyword accepts hours, minutes, and seconds separated
by colons (:) — HH:MM:SS. However, seconds is the only required value and you can
specify fractions of a second by providing a decimal value. For example, THINK(1) is
one second of think time. THINK(10:14.5) is ten minutes, fourteen and a half
seconds of think time.
This keyword is only available if THOPT3 is specified. If you do not supply this
keyword when using think option three, playback does not wait.
THOPT(1|2|3)
Specifies which option to use for simulating think time. Specify a value of:
– 1 to play back at full speed.
– 2 to play back using the think time recorded in the script. Think time is
simulated based on the differences between the values of the <TIME> tags in the
script. Include the THPCT keyword to stipulate a percentage of recorded think
time. For example, THOPT(2) THPCT(50) causes playback to use half of the
difference between the <TIME> tags in the script.
– 3 to play back using an arbitrary value that is specified with the THINK and
THPCT keywords. For example, THOPT(3) THINK(5) causes playback to wait five
seconds after receiving a server response before sending the next client message.
THPCT(100|percent)
Specifies the percentage of think time to use for playback. This parameter applies to
think time options THOPT(2) and THOPT(3). It works differently depending on the
selected option. If you specify:
– THOPT(2), THPCT is the percentage of the think time recorded in the script.
– THOPT(3), THPCT is the percentage of the value specified on the THINK
keyword. For example, THOPT(3) THINK(10:3) THPCT(50) results in five
minutes, one and a half seconds of think time.
If you do not supply the THPCT keyword, playback uses the default value of 100%.
TRACE(sysout_class|dataset)
Produces diagnostic information regarding Hiperstation internal behavior. Contact
Compuware Customer Support prior to using this option.
Use TRACE to specify the location for the output. Supply a single-character sysout
class, a PDSE and member, or a sequential dataset.
9-8
Hiperstation for Mainframe Servers User Guide
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
TRACE(MYTRACE.RPLY*) generates MYTRACE.RPLY0001, MYTRACE.RPLY0002,
etc. Playback allows one asterisk per dataset name qualifier or member name in
any position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, TRACE(MYTRACE.RPLY??) generates
MYTRACE.RPLY01, MYTRACE.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add a TRACE DD statement
to the playback JCL. For example:
//TRACEDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
USE_PIPELINING(NO|YES)
Enables support of message pipelining for playback of DB2C, ECI, and IMSC scripts.
USE_PIPELINING(YES) causes playback to send multiple messages to the server before
receiving responses. NO is the default value.
USE_HTTP_PIPELINING(NO|YES)
Enables support of message pipelining for playback of HTTP and HTTPS scripts.
USE_HTTP_PIPELINING(YES) causes playback to send multiple messages to the server
before receiving responses. NO is the default value.
USESTIME
Provides control of playback initiation time for each SOCKETS statement supplied in
the job. If USESTIME is specified, Hiperstation initiates playback of each SOCKETS
relative to the STIME values supplied on the SOCKETS statements. For example, the
following STIME values result in the second SOCKETS playing back five minutes after
the first.
SOCKETS STIME (‘2006/07/10=10:10:10.000000’)
SOCKETS STIME (‘2006/07/10=10:15:10.000000’)
Note:
If the STIME keyword is not defined on the SOCKETS statement, playback
uses the first STIME in the script.
If USESTIME is not specified, Hiperstation initiates playback of all SOCKETS
simultaneously.
SOCKETS Statement
You can use the SOCKETS statement to define a group of scripts to play back and to
provide playback parameters for that group. Place the applicable SCRIPT statements
under each SOCKETS statement in the order that they should be played back. Place the
TCP/IP Unattended Playback
9-9
SOCKETS statements after the CONTROL statement. For more information regarding
statement hierarchy, see “Creating Playback Control Statements” on page 9-1.
The following syntax diagram shows all of the available SOCKETS statement parameters.
Parameter definitions follow the diagram.
9-10
Hiperstation for Mainframe Servers User Guide
COUNT(1|n)
Specifies the number instances to play back concurrently. For example, COUNT(5)
plays the SOCKETS back five time concurrently. If COUNT is not specified,
Hiperstation plays back one instance of the SOCKETS.
Use COUNT and REPEAT together to create the volume of traffic necessary for your
testing. For example, to simulate two users executing the same activity at the same
time, repeated five times in a row, specify COUNT(2) REPEAT(5).
CONNECTION_ATTEMPTS(1|count)
The number of time Hiperstation tries to connect to a partner. If the connection is
not made after the specified number of attempts, Hiperstation will perform the
action specified on the ERROR_ACTION parameter.
CTG_APPLID(application_ID)
Overrides the application ID in the CTG CONTENT.
CTG_PROGID(program_ID)
Overrides the program ID in the CTG CONTENT.
DB2_RDBNAM(‘database_name’)
Overrides the relational database name in the DB2 Connect CONTENT.
DB2_USERID(‘user_ID’)
Overrides the user ID in the DB2 Connect CONTENT. The quotes are required.
TCP/IP Unattended Playback
9-11
DB2_PASS(‘password’)|DB2_NPASS(‘encrypted_password’)
Overrides the password in the DB2 Connect CONTENT. The password must be a plain
text password or a password using Hiperstation encryption. The quotes are required.
ECI_PROGID(program_ID)
Overrides the program ID in the ECI CONTENT.
ECI_USERID(‘user_ID’)
Overrides the user ID in the ECI CONTENT. The quotes are required.
ECI_PASS(‘password’)|ECI_NPASS(‘encrypted_password’)
Overrides the password in the ECI CONTENT. The password must be a plain text
password or a password using Hiperstation encryption. The quotes are required.
ERROR_ACTION(MESSAGE|NOMESSAGE,STOP_CONNECTION|STOP_SCRIPT|
STOP_SOCKETS|STOP_PLAYBACK|RETRY)
This parameter specifies the message that Hiperstation produces and the action it
takes when a socket I/O error occurs (including connection failures, lost connections,
and read/write failures). Options are:
MESSAGE
Print warning and socket I/O error messages.
NOMESSAGE
Suppress warning and socket I/O error messages.
STOP_CONNECTION
Stop the playback on the connection where the error occurred. Continue the
playback on the other connections in the script.
STOP_SCRIPT
Stop the playback of the script.
STOP_SOCKETS
Stop the playback under the SOCKETS statement. When COUNT(x) is included
on the SOCKETS statement, all x of the playbacks are stopped when a socket I/O
occurs.
STOP_PLAYBACK
Stop the playback.
RETRY
Retry playing back the script.
ID(id_number)
The ID value provides a way to correlate entries on performance and comparison
reports with the associated SOCKETS statement. This value can be added, deleted, or
changed by the user. If this parameter is not specified on the SOCKETS statement, the
field does not appear on the report.
PROTOCOL(CTG|DB2C|ECI|HTTP|HTTPS|IMSC|TCP)
Identifies the protocol used to play back the scripts in the given SOCKETS. This
keyword overrides a PROTOCOL defined on the CONTROL statement, if specified.
Otherwise, it overrides the value on the <CONNECT> tags in the script. Valid values
are CTG, DB2C, ECI, HTTP, HTTPS, IMSC, and TCP.
Note:
Protocol overrides are typically unnecessary. This value initiates the
appropriate message handler. If it is incorrect, playback may fail.
9-12
Hiperstation for Mainframe Servers User Guide
IMS_DSTORE(datastore)
Overrides the datastore in the IMS Connect CONTENT.
IMS_TRANS(transaction_code)
Overrides the transaction code in the IMS Connect CONTENT.
IMS_USERID(‘user_ID’)
Overrides the user ID in the IMS Connect CONTENT. The quotes are required.
IMS_PASS(‘password’)|IMS_NPASS(‘encrypted_password’)
Overrides the password in the IMS Connect CONTENT. The password must be a plain
text password or a password using VTAM Dark Field encryption. The quotes are
required.
REPEAT(1|n)
Defines the number of times to repeat playback of the given SOCKETS. For example,
REPEAT(6) causes the SOCKETS to play back six times in a row. If you do not specify
REPEAT, Hiperstation plays back the SOCKETS one time.
Use COUNT and REPEAT to create the volume of traffic necessary for your testing.
For example, to simulate two users executing the same activity at the same time,
repeated five times in a row, specify COUNT(2) REPEAT(5).
Note:
REPEAT requires script caching. If you supply a REPEAT value, make sure the
CONTROL statement does not include the CACHEOFF keyword. Otherwise,
Hiperstation produces an error and terminates playback with return code 8.
RLOG(*|destination)
Specifies where to write the output from REXX SAY statements added to your scripts.
Supply a single-character sysout class, a PDSE and member, or a sequential dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters are:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
RLOG(MRRLOG.RPLY*) generates MYRLOG.RPLY0001, MYRLOG.RPLY0002, etc.
Playback allows one asterisk per dataset name qualifier or member name, in any
position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, RLOG(MYRLOG.RPLY??) generates
MYRLOG.RPLY01, MYRLOG.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add an RLOG DD statement
to the playback JCL. For example:
//RLOGDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
TCP/IP Unattended Playback
9-13
SERVER_ADDRESS(ASIS|IP Address)
Specifies a server address for all of the scripts within the SOCKETS to access. Supply
an IPv6 or IPv4 IP address. This keyword overrides the server addresses shown on the
<CONNECT> tags in the scripts.
SERVER_PORT(ASIS|Port Number)
Specifies a server port for all of the scripts within the SOCKETS to access. Supply a
port number value between 0 and 65535. This keyword overrides the server ports
shown on the <CONNECT> tags in the scripts.
SET_REXX_STREAM_VARIABLES(NO|YES)
Specifies whether the TCPIP_ACTUAL, TCPIP_EXPECTED, TCPIP_ACTUAL_LENGTH,
TCPIP_EXPECTED_LENGTH and CONNECTION_NBR should be set during the
playback. Hiperstation sets REXX variables when the reporting data is gathered for
message completion. Copying data to these variables is unnecessary if you never
reference these variables within a script. The default value is NO.
STARTDLY(0|hh:mm:ss.nnn)
Tells Hiperstation how long to wait between the start of SOCKETS and the
commencement of playback. You can use STARTDLY to stagger the start of playbacks
using multiple SOCKETS statements. For example, to wait five seconds, enter
STARTDLY(5).
STDWAIT(15|hh:mm:ss.nnn)
The longest time that Hiperstation waits for I/O completion. If no I/O finishes in the
STDWAIT interval, all outstanding I/O is canceled for that specific script.
Hiperstation retries the connections up to the number of attempts set in the
CONNECTION_ATTEMPTS parameter. Hiperstation retries any other I/O twice. After
all attempts are made to complete the I/O, and if still unsuccessful, Hiperstation
takes the action set on the ERROR_ACTION parameter.
If you do not include the STDWAIT parameter, Hiperstation uses the default value of
15 seconds.
STIME(time_stamp)
Defines a value that Hiperstation uses to determine when to start playing back the
SOCKETS relative to the other SOCKETS in the job. If the USESTIME keyword is
specified on the CONTROL statement, Hiperstation staggers playback initiation of
each SOCKETS based on the difference in the STIME values.
Supply a date-time stamp inside single quotation marks in the following format:
YYYY/MM/DD_HH:MM:SS.NNNNNN. To ensure proper formatting, copy and paste
an STIME value from the script and modify it as necessary.
This is an optional keyword. If USESTIME is specified on the CONTROL statement,
but the STIME keyword is not defined on the SOCKETS statement, playback uses the
first STIME in the script.
If USESTIME is not specified on the CONTROL statement, Hiperstation ignores this
keyword.
THINK(0|hh:mm:ss.nnn)
Sets the amount of think time (for example, the amount of time to wait after
receiving a server message before sending the next client message). This keywords
accepts hours, minutes, and seconds separated by colons (:) — HH:MM:SS. However,
seconds is the only required value and you can specify fractions of a second by
providing a decimal value. For example, THINK(1) is one second of think time.
THINK(10:14.5) is ten minutes, fourteen and a half seconds of think time.
This keyword is only available if THOPT3 is specified. If you do not supply this
keyword when using think option three, playback does not wait.
9-14
Hiperstation for Mainframe Servers User Guide
THOPT(1|2|3)
Specifies which option to use for simulating think time. Enter a value of:
– 1 to play back at full speed.
– 2 to play back using the think time recorded in the script. Think time is
simulated based on the differences between the values of the <TIME> tags in the
script. Include the THPCT keyword to stipulate a percentage of recorded think
time. For example, THOPT(2) THPCT(50) causes playback to use half of the
difference between the <TIME> tags in the script.
– 3 to play back using an arbitrary value that is specified with the THINK and
THPCT keywords. For example, THOPT(3) THINK(5) causes playback to wait five
seconds after receiving a server response before sending the next client message.
THPCT(100|percent)
Specifies the percentage of think time to use for playback. This parameter applies to
think time options: THOPT(2) and THOPT(3). It works differently depending on the
selected option. If you specify:
– THOPT(2), THPCT is the percentage of the think time recorded in the script.
– THOPT(3), THPCT is the percentage of the value specified on the THINK
keyword. For example, THOPT(3) THINK(10:3) THPCT(50) results in five
minutes, one and a half seconds of think time.
If you do not supply the THPCT keyword, playback uses the default value of 100%.
TRACE(sysout_class|dataset)
Produces diagnostic information regarding Hiperstation internal behavior. Contact
Compuware Customer Support prior to using this option.
Indicate the location for the output. Specify a single-character sysout class, a PDSE
and member, or a sequential dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
TRACE(MYTRACE.RPLY*) generates MYTRACE.RPLY0001, MYTRACE.RPLY0002,
etc. Playback allows one asterisk per dataset name qualifier or member name, in
any position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, TRACE(MYTRACE.RPLY??) generates
MYTRACE.RPLY01, MYTRACE.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add a TRACE DD statement
to the playback JCL. For example:
//TRACEDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
TCP/IP Unattended Playback
9-15
USE_PIPELINING(NO|YES)
Enables support of message pipelining for playback of DB2C, ECI, and IMSC scripts.
USE_PIPELINING(YES) causes playback to send multiple messages to the server before
receiving responses. NO is the default value.
USE_HTTP_PIPELINING(NO|YES)
Enables support of message pipelining for playback of HTTP and HTTPS scripts.
USE_PIPELINING(YES) causes playback to send multiple messages to the server before
receiving responses. NO is the default value.
SCRIPT Statement
You can use SCRIPT statements to specify which scripts to play back and to provide
playback parameters for each script. Place SCRIPT statements, in the order that they
should be played back, under a SOCKETS statement. For information on statement
hierarchy and to learn how to group SCRIPT statements, see “Creating Playback Control
Statements” on page 9-1.
The following syntax diagram shows all of the available SCRIPT statement parameters.
Parameter definitions follow the diagram.
scriptname
Identifies the SCRIPT (member name of the script in the script dataset) to be played
back.
PROTOCOL(CTG|DB2C|ECI|HTTP|HTTPS|IMSC|TCP)
Identifies the protocol used to play back the script. This keyword overrides a
PROTOCOL defined on the SOCKETS and CONTROL statements, if specified.
Otherwise, it overrides the value on the <CONNECT> tags in the script. Valid values
are CTG, DB2C, ECI, HTTP, HTTPS, IMSC, and TCP.
Note:
Protocol overrides are typically unnecessary. This value initiates the
appropriate message handler. If it is incorrect, playback may fail.
9-16
Hiperstation for Mainframe Servers User Guide
REPEAT(1|n)
Defines the number of times to repeat playback of the given SCRIPT. For example,
REPEAT(6) causes the SCRIPT to play back six times in a row. REPEAT can be specified
on both SOCKETS and SCRIPT statements. For example, the following statements
result in script2 playing back six times, twice within each repeat of the SOCKETS.
SOCKETS REPEAT(3)
SCRIPT(script1)
SCRIPT(script2) REPEAT(2)
SCRIPT(script3)
If you do not specify REPEAT on the SOCKETS or SCRIPT statements, Hiperstation
plays back the SCRIPT one time.
Note:
REPEAT requires script caching. If you supply a REPEAT value, make sure the
CONTROL statement does not include the CACHEOFF keyword. Otherwise,
Hiperstation produces an error and terminates playback with return code 8.
SERVER_ADDRESS(ASIS|IP Address)
Specifies a server address to access for the given script. Supply an IPv6 or IPv4
address. This keyword overrides the SERVER_ADDRESS defined on the SOCKETS
statement, if specified. Otherwise, it overrides the server addresses shown on the
<CONNECT> tags in the scripts.
SERVER_PORT(ASIS|Port Number)
Specifies a server port to access for the given script. Supply a port number value
between 0 and 65535. This keyword overrides the SERVER_PORT defined on the
SOCKETS statement, if specified. Otherwise, it overrides the server ports shown on
the <CONNECT> tags in the scripts.
COLLECT Statement
You can specify the information to collect during the playback job and generate reports
from the collected information by including one or more COLLECT statements in the
playback job.
Note:
Collect all fields from all tables to ensure the necessary data is available to run
any type of report. Reporting is not supported for client testing.
TCP/IP Unattended Playback
9-17
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.
9-18
Hiperstation for Mainframe Servers User Guide
– 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. Incorporate the SUBSTR keyword to collect a
specified number of bytes from a specific field. The following example collects
the first 20 bytes of the Expected Response Header field (EXHS) and all of the
Message ID field (MSID).
COLLECT FIELDS(SUBSTR(EXHS,20),MSID) FROM(MESSAGE)
Refer to Appendix A, “TCP/IP 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 always 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 specified on the FIELDS keyword. For a list of available tables, see
Appendix A, “TCP/IP Data Collection and Reporting Tables”.
WHERE
Use the WHERE clause to provide criteria for collecting only required data. For
example, to collect all fields from the SOCKETS table for the second of five sockets in
the playback job, construct the COLLECT statement as follows:
COLLECT FIELDS (*) FROM (SOCKETS) WHERE (SOCKETSNUMBER 2)
Define Statements for Client Testing
This section provides a syntax diagram for each playback control statement for client
testing. If you are unfamiliar with syntax diagrams, see “Reading Syntax Diagrams” on
page xxi. Parameter definitions follow the diagrams.
CONTROL Statement
Use the CONTROL statement to provide job-level playback parameters and connection
attribute overrides. If you include a CONTROL statement, place it before the first
SOCKETS statement.
The following syntax diagram shows all of the available parameters for the CONTROL
statement. Parameter definitions follow the diagram.
TCP/IP Unattended Playback
9-19
CACHE|CACHEOFF
CACHE instructs Hiperstation to store scripts in memory during playback to improve
performance. CACHE is the default. To disable script caching, specify CACHEOFF.
Note:
Script caching is required if you specify REPEAT on the SOCKETS or SCRIPT
statements. If you specify CACHEOFF and provide a REPEAT value,
Hiperstation produces an error and terminates playback with return code 8.
ERROR_ACTION(MESSAGE|NOMESSAGE,STOP_CONNECTION|STOP_SCRIPT|
STOP_SOCKETS|STOP_PLAYBACK|RETRY)
ERROR_ACTION specifies which messages Hiperstation produces and the action it
takes when a socket I/O error occurs (including connection failures, lost connections,
and read/write failures). MESSAGE prints and NOMESSAGE suppresses warning and
socket I/O error messages. STOP_CONNECTION stops playback on the connection
where the error occurred but continues playback on the other connections in the
script. STOP_SCRIPT stops script playback. STOP_SOCKETS stops playback under
the SOCKETS statement. When COUNT(x) is included on the SOCKETS statement, all
x playbacks are stopped when a socket I/O occurs. STOP_PLAYBACK stops playback.
RETRY retries playing back the script.
PLAY(SERVER|SERVER_IPV6)
PLAY(SERVER) tells the playback program to function as an IPv4 server.
PLAY(SERVER_IPV6) tells the playback program to function as an IPv6 server.
PROTOCOL(TCP|EB2C)
PROTOCOL identifies the protocol used to play back the scripts in the given job.
Valid values are TCP (default) and DB2C.
9-20
Hiperstation for Mainframe Servers User Guide
Note:
Protocol overrides are required.
REXXOFF|REXXON
REXXOFF disables and REXXON enables support for REXX logic in scripts. If your
scripts contain REXX logic, specify REXXON.
RLOG(*|destination)
RLOG specifies where to write the output from REXX SAY statements added to your
scripts. Supply a single-character sysout class, a PDSE and member, or a sequential
dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
RLOG(MRRLOG.RPLY*) generates MYRLOG.RPLY0001, MYRLOG.RPLY0002, etc.
Playback allows one asterisk per dataset name qualifier or member name, in any
position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, RLOG(MYRLOG.RPLY??) generates
MYRLOG.RPLY01, MYRLOG.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member name that does not exist, Hiperstation
allocates it with default values. To override default allocation values, add an RLOG
DD statement to the playback JCL. For example:
//RLOGDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
SERVER_PORT(n)
SERVER_PORT specifies which port the playback server will be listening on.
LISTENWAIT(120|hh:mm:ss:nnn)
LISTENWAIT specifies in seconds or in hh:mm:ss:nnn format, the longest that the
listener will wait for connects sent by clients. The default value is 120 seconds. When
you enter hours, minutes, or fractions along with seconds (separated by a colon), the
individual numbers cannot be longer than two digits each (excluding fractions).
SET_REXX_STREAM_VARIABLES(NO|YES)
SET_REXX_STREAM_VARIABLES enables the use of Hiperstation predefined REXX
variables during playback. The variables return information about the playback. You
can incorporate them into REXX logic that you add to your scripts to control the way
the scripts play back. For example, you can use them to dynamically replace data in
the script during playback (see “Hiperstation for Mainframe Servers REXX Variables”
on page 7-35). Since this is not required for replay, the default value for this
parameter is NO.
TCP/IP Unattended Playback
9-21
STDWAIT(15|hh:mm:ss.nnn)
STDWAIT is the longest time that Hiperstation waits for I/O completion. If no I/O
finishes in the STDWAIT interval, all outstanding I/O is canceled for that specific
script. Hiperstation retries the connections up to the number of attempts set in the
CONNECTION_ATTEMPTS parameter. Hiperstation retries any other I/O twice. After
all attempts are made to complete the I/O, and if still unsuccessful, Hiperstation
takes the action set on the ERROR_ACTION parameter.
If you do not include the STDWAIT parameter, Hiperstation uses the default value of
15 seconds.
TRACE(sysout_class|dataset)
TRACE produces diagnostic information regarding Hiperstation’s internal behavior.
Contact Compuware Customer Support prior to using this option.
Specify the location for the output as a single-character sysout class, a PDSE and
member, or a sequential dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
TRACE(MYTRACE.RPLY*) generates MYTRACE.RPLY0001, MYTRACE.RPLY0002,
etc. Playback allows one asterisk per dataset name qualifier or member name, in
any position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, TRACE(MYTRACE.RPLY??) generates
MYTRACE.RPLY01, MYTRACE.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add a TRACE DD statement
to the playback JCL. For example:
//TRACEDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
USE_PIPELINING(NO|YES)
USE_PIPELINING enables support of message pipelining for playback of DB2C scripts.
USE_PIPELINING(YES) causes playback to send multiple messages to the client before
receiving responses. NO is the default value.
USESTIME
USESTIME provides control of playback initiation time for each SOCKETS statement
supplied in the job. If USESTIME is specified, Hiperstation initiates SOCKETS
playback relative to the STIME values supplied on each SOCKETS statement. For
example, the following STIME values result in the second SOCKETS playing back five
minutes after the first.
SOCKETS STIME (‘2006/07/10=10:10:10.000000’)
SOCKETS STIME (‘2006/07/10=10:15:10.000000’)
9-22
Hiperstation for Mainframe Servers User Guide
Note:
STIME is used only to determine the order that SOCKETS statements are
served.
SOCKETS Statement
You can use the SOCKETS statement to define the script to play back and to provide
playback parameters for that script. Place the applicable SCRIPT statements under each
SOCKETS statement, in the order that they should be played back. Place SOCKETS
statements after the CONTROL statement. For more information regarding statement
hierarchy, see “Creating Playback Control Statements” on page 9-1.
The following syntax diagram shows all of the available SOCKETS statement parameters.
Parameter definitions follow the diagram.
CLIENT_ADDRESS(n.n.n.n|n:n:n:n:n:n:n:n)
This parameter specifies the IP address that this SOCKET will accept connections
from. IPv6 or IPv4 IP address formats are both valid.
COUNT(1|n)
Specifies the number of instances to serve. For example, COUNT(5) will serve five
client requests. If COUNT is not specified, Hiperstation serves one instance of the
SOCKETS.
ERROR_ACTION(MESSAGE|NOMESSAGE,STOP_CONNECTION|STOP_SCRIPT|
STOP_SOCKETS|STOP_PLAYBACK|RETRY)
ERROR_ACTION specifies which messages Hiperstation produces and the action it
takes when a socket I/O error occurs (including connection failures, lost connections,
and read/write failures). MESSAGE prints and NOMESSAGE suppresses warning and
socket I/O error messages. STOP_CONNECTION stops playback on the connection
where the error occurred but continues playback on the other connections in the
script. STOP_SCRIPT stops script playback. STOP_SOCKETS stops playback under
the SOCKETS statement. When COUNT(x) is included on the SOCKETS statement, all
TCP/IP Unattended Playback
9-23
x playbacks are stopped when a socket I/O occurs. STOP_PLAYBACK stops playback.
RETRY retries playing back the script.
ID(id_number)
The ID value provides a way to specify which connection in a script should be used
based on the ID parameter of the <CONNECT> tag in the script. Otherwise, the first
connection found in the script will be used.
RLOG(*|destination)
RLOG specifies where to write the output from REXX SAY statements added to your
scripts. Supply a single-character sysout class, a PDSE and member, or a sequential
dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
RLOG(MRRLOG.RPLY*) generates MYRLOG.RPLY0001, MYRLOG.RPLY0002, etc.
Playback allows one asterisk per dataset name qualifier or member name, in any
position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, RLOG(MYRLOG.RPLY??) generates
MYRLOG.RPLY01, MYRLOG.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add an RLOG DD statement
to the playback JCL. For example:
//RLOGDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
SET_REXX_STREAM_VARIABLES(NO|YES)
SET_REXX_STREAM_VARIABLES specifies whether TCPIP_ACTUAL,
TCPIP_EXPECTED, TCPIP_ACTUAL_LENGTH, TCPIP_EXPECTED_LENGTH, and
CONNECTION_NBR should be set during playback. Hiperstation sets REXX variables
when the reporting data is gathered for message completion. Copying data to these
variables is unnecessary if these variables are never referenced within a script. The
default value is NO.
STDWAIT(15|hh:mm:ss.nnn)
STDWAIT is the longest time that Hiperstation waits for I/O completion. If no I/O
finishes in the STDWAIT interval, all outstanding I/O is canceled for that specific
script. Hiperstation retries the connections up to the number of attempts set in the
CONNECTION_ATTEMPTS parameter. Hiperstation retries any other I/O twice. After
all attempts are made to complete the I/O, and if still unsuccessful, Hiperstation
takes the action set on the ERROR_ACTION parameter.
If you do not include the STDWAIT parameter, Hiperstation uses the default value of
15 seconds.
9-24
Hiperstation for Mainframe Servers User Guide
STIME(time_stamp)
STIME defines a value that Hiperstation uses to determine the order that SOCKETS
statements are served. If the USESTIME keyword is specified on the CONTROL
statement, Hiperstation staggers connection of each SOCKETS based on the order of
the STIME values.
Supply a date-timestamp inside single quotation marks in the following format:
YYYY/MM/DD_HH:MM:SS.NNNNNN. To ensure proper formatting, copy and paste
an STIME value from the script and modify it as necessary.
STIME is an optional keyword. If USESTIME is specified on the CONTROL statement,
but the STIME keyword is not defined on the SOCKETS statement, playback uses the
first STIME in the script.
If USESTIME is not specified on the CONTROL statement, Hiperstation ignores this
keyword.
Note:
Specifying CLIENT_ADDRESS may cause out of STIME order connections if a
connection coming from a client address matches a SOCKETS statement with
CLIENT_ADDRESS specified that is not the next SOCKETS statement to be
server-based in STIME order.
TRACE(sysout_class|dataset)
TRACE produces diagnostic information regarding Hiperstation internal behavior.
Contact Compuware Customer Support prior to using this option.
Specify the location for the output as a single-character sysout class, a PDSE and
member, or a sequential dataset.
Generate a separate dataset or PDSE member for each thread of replay by including
wildcard characters in the dataset or member name. Valid wildcard characters
include:
– Asterisk (*) — Playback replaces the asterisk with a four-digit value representing
the current replay value padded with leading zeros. For example,
TRACE(MYTRACE.RPLY*) generates MYTRACE.RPLY0001, MYTRACE.RPLY0002,
etc. Playback allows one asterisk per dataset name qualifier or member name, in
any position except the first character.
– Question mark (?) — Playback replaces a string of one or more question marks
with the current replay value. For example, TRACE(MYTRACE.RPLY??) generates
MYTRACE.RPLY01, MYTRACE.RPLY02, etc. Include at least one question mark for
each digit of the maximum replay value. For example, if the replay value will
reach 20, insert at least two consecutive question marks. Playback truncates the
replay value or pads it with leading zeros if there are more or fewer question
marks than the number of digits in the replay value. Playback allows up to seven
consecutive question marks per dataset name qualifier or member name, in any
position except the first character.
Note:
Replay values are based on the number of SOCKETS statements and their
COUNT values. For example, two SOCKETS statements, each bearing a
COUNT(3), results in six replay values.
If you specify a dataset or PDSE member that does not exist, Hiperstation allocates it
with default values. To override default allocation values, add a TRACE DD statement
to the playback JCL. For example:
//TRACEDD DD DUMMY,SPACE=(TRK,(15,15,15)),DSNTYPE=LIBRARY,
//
DCB=(LRECL=121,BLKSIZE=12100,RECFM=FB)
TCP/IP Unattended Playback
9-25
USE_PIPELINING(NO|YES)
UE_PIPELINING enables support of message pipelining for playback of DB2C scripts.
USE_PIPELINING(YES) causes playback to send multiple messages to the client before
receiving responses. NO is the default value.
USE_HTTP_PIPELINING(NO|YES)
USE_HTTP_PIPELINING enables support of message pipelining for playback of HTTP
and HTTPS scripts. USE_HTTP_PIPELINING(YES) causes playback to send multiple
messages to the server before receiving responses. NO is the default value.
SCRIPT Statement
You can use SCRIPT statements to specify which scripts to play back and to provide
playback parameters for each script. Place SCRIPT statements under a SOCKETS statement
in the order that they should be played back. For information on statement hierarchy
and to learn how to group SCRIPT statements, see “Creating Playback Control
Statements” on page 9-1.
For client testing, there is only one SCRIPT statement under a SOCKETS statement.
scriptname
Identifies the SCRIPT (member name of the script in the script dataset) to be played
back.
Preparing the Playback Job
Hiperstation provides sample JCL to:
• Execute an unattended playback job (SQQFSAMP member TCPRUN).
• Sort the information collected during playback. Sorting collected information is
required for reporting (SQQFSAMP member TCPPBSRT).
Separate samples are provided for flexibility. You can sort and save the collected
information as soon as playback finishes or later when you are ready to generate reports.
To prepare a playback and sorting job:
1. Copy SQQFSAMP members TCPRUN (Figure 9-2) and TCPPBSRT (Figure 9-3 on page
9-27) into your personal JCL libraries.
2. Open TCPRUN in a file editing tool such as ISPF Edit.
9-26
Hiperstation for Mainframe Servers User Guide
Figure 9-2. TCPRUN-Sample TCP/IP Playback JCL
********************************* Top of Data **********************************
//* JOB CARD INFORMATION GOES HERE
//* HOWEVER BE SURE TO RUN WITH REGION=0M
//UPROCS JCLLIB ORDER=('COMPWARE.QQF800.SQQFSAMP')
//********************************************************************
//* TCPPLAY PROC IS SHIPPED WITH THE SAMPLES
//********************************************************************
//GO
EXEC PROC=TCPPLAY,MEM=TCPPBMN,GPARM='POSIX(ON)/'
//*
//*
INPUT STATEMENTS, INCLUDING THE RECORDED LOG
//*
//GO.SYSIN
DD DSN=HPER.TEST.SCRIPTS(LOG00001),DISP=SHR
//*
//*
INPUT SCRIPTS, RECORDED INTO HPER.TEST.SCRIPTS.
//*
//GO.SYSLIB
DD DSN=HPER.TEST.SCRIPTS,DISP=SHR
//*
//*
IF INPUT DETAIL IS SPLIT, THEN UPDATE THE SERVER,
//*
CLIENT AND COMBINED DD STATEMENTS APPROPRIATELY.
//*
//GO.SERVER
DD DSN=HPER.TEST.SCRIPTS,DISP=SHR
//GO.CLIENT
DD DSN=HPER.TEST.SCRIPTS,DISP=SHR
//GO.COMBINED DD DSN=HPER.TEST.SCRIPTS,DISP=SHR
//*
//*
USED FOR REPORTING DATA COLLECTION.
//*
ONLY REQUIRED IF 'COLLECT' STATEMENTS ARE IN SYSIN.
//*
DDNAME MAY BE ALTERED BY 'CONTROL DATABASE' STATEMENT.
//*
//GO.DATABASE DD DISP=(,CATLG),
//*
DSN=VP.USER1.TCP.UNSORTED.DATA,
//*
UNIT=SYSDA,SPACE=(CYL,(5,1)),
//*
DCB=(RECFM=VB,BLKSIZE=9004,LRECL=9000)
//*
//GO.HTMLLOG DD PATHOPTS=(ORDWR,OCREAT),
//
PATHMODE=(SIRWXU,SIRWXG,SIRWXO),
//
PATH='/u/p9/compuware/summary.htm'
//GO.SYSABEND DD SYSOUT=*
3. Insert job statement information at the top of the sample.
4. Ensure UPROCS points to the procedures library that contains the TCPPLAY
procedure. See your Systems Administrator for this information.
5. Modify the following DD statements:
– On the SYSIN DD statement, either supply the dataset name containing the
customized Connection Log or replace the dataset name statement with inline
playback control statements.
– On the SYSLIB DD statement, supply the dataset name containing the script
members.
– If the scripts contain the server and client detail data, insert an asterisk (*) before
GO on the SERVER, CLIENT, and COMBINED DD statements to turn the lines
into script comments.
If the server and client detail data is stored externally, in the same dataset,
modify the COMBINED DD statement and comment the SERVER and CLIENT
DD statements.
If the server and client detail data is stored in separate datasets, modify the
respective DD statements and comment the COMBINED DD statement.
Note:
On the COMBINED, or CLIENT and SERVER DD statements, supply the
PSDE name only. Do not specify a member name. The member name is
provided on the <DETAIL> tag within the scripts.
– If the SYSIN DD statement does not include COLLECT statements, insert an
asterisk before GO on the DATABASE DD statement. Otherwise, supply a dataset
name to store the information collected during playback and remove the asterisk
TCP/IP Unattended Playback
9-27
comment indicator at the beginning of the line. If the dataset name does not
exist, remove the asterisks from allocation parameter lines and modify as
necessary.
– To generate an interactive HTML version of the Playback Error Summary report
(page 9-30), supply an HFS path on the HTMLLOG DD statement. Otherwise,
insert an asterisk at the beginning of each line of the statement.
6. The job is ready to execute playback. If you do not want to sort the collected data,
submit the job. See “Submitting the Job” on page 9-27. Otherwise, complete the
remaining instructions.
7. Copy TCPPBSRT (Figure 9-3) and insert it at the end of the playback JCL.
Figure 9-3. TCPPBSRT-Sample JCL to Sort Data Collected During Playback
********************************* Top of Data **********************************
//*PLACE YOUR JOBCARD BEFORE THIS STATEMENT
//*
//*
//*
HIPERSTATION TCPIP PLAYBACK REPORT DATA SORT
//*
//*
//JOBLIB
DD DISP=SHR,DSN=COMPWARE.QQF800.SQQFLOAD
//TCPSORT EXEC PGM=TCPPBSRT,REGION=4M
//*
//SYSOUT
DD DUMMY
//*
//UNSORTED DD DISP=SHR,
//
DSN=VP.USER1.TCP.UNSORTED.DATA
//*
//SORTED
DD DISP=(,CATLG),
//
UNIT=SYSDA,SPACE=(CYL,(5,1)),
//
DSN=VP.USER1.TCP.SORTED.DATA
//*
//WORK
DD UNIT=VIO,SPACE=(CYL,(5,1))
//*
//SORTWK01 DD UNIT=VIO,SPACE=(CYL,(5,1))
//SORTWK02 DD UNIT=VIO,SPACE=(CYL,(5,1))
//SORTWK03 DD UNIT=VIO,SPACE=(CYL,(5,1))
//*
8. The sample is set up to run as a separate job. To make it a step in the playback job,
change JOBLIB to STEPLIB, cut the line and insert it below the TCPSORT line, and
point it to the Hiperstation load library at your installation. See your Systems
Administrator for this information.
9. On the SORTED DD statement, supply the name of the dataset for storing the sorted
data.
10. Submit the job. See the next section, “Submitting the Job”, for submission options
and job step return code information.
Submitting the Job
After the job is prepared, you can 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.
9-28
Hiperstation for Mainframe Servers User Guide
Review Playback Return Codes
Hiperstation reports an MVS return code for each step of a playback job. The return code
is a numeric value specifying whether the job step completed successfully and to what
degree. See the next section, “Playback Return Code Descriptions”, for a complete list of
TCP/IP return codes.
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 depends on your system configuration. On some
systems, with the correct job statement parameter, return codes display in the user’s TSO
session. On others, they are written to a job log. For help locating your return codes, see
your systems administrator.
Hiperstation 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 specified playback session
(Replay). Hiperstation 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 9-1) and therefore, six TCPSRPL-0051I messages:
SOCKETS COUNT(2) REPEAT(3)
SCRIPT(TEST)
Table 9-1. Playback Sessions for a SOCKETS 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 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 SOCKETS statement contains multiple scripts, Hiperstation returns the value set by
the last script processed. Incidentally, playback terminates SOCKETS processing if it
encounters a non-zero return code. For example, Hiperstation reports the return code
from the LOGOFF script in the following SOCKETS, unless LOGON or TEST produce a
non-zero return code.
SOCKETS
SCRIPT(LOGON)
SCRIPT(TEST)
SCRIPT(LOGOFF)
Playback Return Code Descriptions
Hiperstation writes the following information to SYSPRINT:
• A return code message for each playback session in the job step.
TCP/IP Unattended Playback
9-29
• A message indicating the maximum return code for the job step.
• Playback status, warning, and error messages.
Note:
It also writes a Playback Error Summary report to the location specified on the
ERRORLOG DD statement 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 9-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 9-2. Hiperstation for Mainframe Servers 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. Make 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 dataset name provided on the SYSLIB DD
parameter is accurate.
•
Hiperstation for Mainframe Servers was unable to access or read the internal cache.
This could happen for a variety of reasons (for example, if memory was corrupted).
Contact your systems administrator. Note: Removing the CACHON parameter from the
CONTROL statement may resolve the error, but it will not correct any systems issues.
•
Hiperstation for Mainframe Servers was unable to write to the internal cache. This
could happen for a variety of reasons (for example, the cache is full). Contact your
systems administrator. Note: Reducing the size of the job may resolve the issue, but it will
not correct any systems issues.
•
An invalid control card was encountered. Correct the job SYSIN.
•
An invalid IP Address was encountered. Review the playback errors to determine which
address is invalid. Either edit the address in the script or supply an override on the
SOCKETS or SCRIPT statement.
9-30
Hiperstation for Mainframe Servers User Guide
Table 9-2. Hiperstation for Mainframe Servers Internal Return Codes
Code
Description
12
Playback terminated due to a system failure. Some causes for this return code include:
•
You are not licensed to use Hiperstation for Mainframe Servers.
•
Errors occurred during socket dispatch.
•
Signal errors occurred while replaying.
•
Major system failure such as TCP is not running.
•
No OMVS segment is available.
Contact your systems administrator.
100
Playback 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.
Troubleshooting with the Playback Error Summary
Hiperstation’s 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 in the playback JCL. Position the
ERRORLOG DD statement ahead of the Playback Log SYSOUT DD to ensure that the
summary appears at the top of the report.
Note:
The ERRORLOG DD statement is required for successful playback. If you do not
include it, playback halts and the job returns an error code of 100. If you use the
sample playback JCL, TCPRUN, you do not have to add this statement. TCPRUN
calls a procedure that supplies it.
Generate an interactive HTML version of the report by including an HTMLLOG DD
statement that specifies an HFS path in the playback JCL.
Note:
The sample playback JCL, TCPRUN, supplies this DD statement. However, you
may need to override the default path. Note that HFS paths are case sensitive, so
ensure that Caps Lock is not turned on when you edit the JCL. Additionally,
optimum screen resolution for viewing this report is 800 x 600 pixels or higher.
You can view the report with a supported Web browser.
TCP/IP Unattended Playback
9-31
Figure 9-4. Playback Error Summary Report (HTML Format)
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
message 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.
9-32
Hiperstation for Mainframe Servers User Guide
10-1
Chapter 10.
TCP/IP Reporting
Chap 10
With Hiperstation for Mainframe Servers, you can generate basic, predefined reports and
build custom reports that contain information you specify.
Both custom and basic report generation require the same steps. However, assets
necessary to generate basic reports are much easier to build. In fact, Hiperstation
provides sample reporting assets for each basic report. This chapter describes how to
generate both types of report.
Reporting Overview
Generating reports requires collecting data from an unattended playback job, sorting the
collected data, and submitting a report generation job. After you have a sorted data
collection, you can generate as many reports as needed at any time. You can even
generate reports that compare data from different playback jobs. See Chapter 9, “TCP/IP
Unattended Playback” to learn about collecting, sorting, and saving unattended playback
data.
A reporting job is controlled by the following input statements:
• CONTROL statements (optional), which provide general processing information for a
group of reports.
• REPORT statements, which define the information to report and potentially the
layout of the report.
Store these statements in members of the system-level reporting library or your personal
reporting library. Plug the library and member names into any of the sample reporting
jobs that Hiperstation provides, modify or insert necessary DD statements, and submit
the job. The rest of this section provides general instructions for creating reports. Each
step includes a cross-reference to the section detailing the given task.
To set up and run a reporting job using any of the sample reporting jobs:
1. Verify that the assets in the system-level reporting control library suit your needs. 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
10-2.
2. Select the appropriate sample reporting job and customize as necessary. See
“Preparing the Reporting Job” on page 10-13.
– Add a job card.
– Edit the values of the SET statements at the top.
– Supply a DD statement for each REPORT statement in the REPORT member that
is to be written to a dataset or HFS file.
Note:
Do not add a DD statement for reports written to SYSOUT. The ESREPT1
reporting procedure supplies a SYSOUT DD statement.
– To run a baseline report (a report that compares two databases), supply a DD
statement for the baseline database.
10-2
Hiperstation for Mainframe Servers User Guide
– To mask information for an HTML Exception Report, supply a DD statement for
each masking statement dataset to be used during the reporting job.
Note:
Each sample reporting job provides DD statements corresponding to the
parameters on the REPORT statements in the specified report member.
Modify if necessary.
3. Submit the Job. See “Submitting the Job” on page 10-16.
Creating and Managing Reporting Control Assets
Hiperstation provides a system-level report control library complete with several types of
reporting assets:
• Sample JCL to generate basic reports
• REPORT statements
• CONTROL statements
Table 10-1 lists the contents of the system-level reporting library.
Table 10-1. Contents of System-Level Reporting Library
Samples
Description
ESREPT1
JCL Procedure to Run Sample TCP/IP Reports
ESRJCL1
JCL to Produce TCP/IP Exception Report
ESRJCL2
JCL to Produce TCP/IP Exception Report with Baseline
ESRJCL3
JCL to Produce TCP/IP Exception Report with Masking
ESRJCL4
JCL to Produce TCP/IP Response Time Report
ESRJCL5
JCL to Produce TCP/IP Script Time Report
ESRCTH
CONTROL Statement to Produce TCP/IP Basic Reports in HTML Format
ESRREXCB
REPORT STATEMENT for TCP/IP Exception Report w/Baseline
ESRREXCM
REPORT STATEMENT for TCP/IP Exception Report w/Masking
ESRREXCP
REPORT Statement for TCP/IP Exception Report
ESRRRESP
REPORT Statement for TCP/IP Response Time Report
ESRRSCRT
REPORT Statement for TCP/IP Script Time Report
NONE
Report CONTROL member to Specify No CONTROL Statement
Each sample reporting job (ESRJCL*) contains a series of SET statements that identify the
assets to use for the job. Use these sample jobs to generate basic reports with the
parameters defined in the specified sample assets or to modify the SET statements to use
the assets you create. For example, use ESRJCL1 to generate a standard HTML exception
report or modify the SET statements to generate any report you need.
Organize your personal report control library as follows.
• One member for each report or set of reports to generate in a given job.
• One member for each report CONTROL statement.
Note: You can also store CONTROL statements directly in the reporting members, if
necessary. See the “CONTROL Statement” discussion for details.
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.
TCP/IP Reporting
10-3
This section provides syntax diagrams accompanied by parameter descriptions for each
reporting control statement.
CONTROL Statement
Reporting CONTROL statements are optional. They provide processing information for a
group of REPORT statements. For example, 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 the same parameter is defined on both the CONTROL and REPORT
statements, the REPORT statements take precedence. For example, if CONTROL specifies
table and REPORT specifies form, then form is used instead of table.
Store each CONTROL statement in a separate member to apply the statement to an entire
reporting job. When you use one of the sample jobs to generate your reports,
Hiperstation assembles the statements from specified CONTROL and REPORT members
in the appropriate order. For example, if your REPORT member contains two REPORT
statements, Hiperstation assembles the input statements as:
CONTROL
REPORT
REPORT
However, if you are generating several reports in a given job, you may need multiple
CONTROL statements — one for each group of reports. In this case, store the CONTROL
statements in the reporting member itself. Be sure to position the CONTROL statement
before the applicable REPORT statements.
For example, to run three reports with one set of processing options and two with
another, you can:
• Create two REPORT members, A and B, each containing the applicable REPORT
statements. Create two CONTROL members, 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 cannot use the CONTROL statements
and REPORT member as independent assets for future reporting jobs.
10-4
Hiperstation for Mainframe Servers User Guide
• 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 only works if you do not
require any of those options.
If you specify a CONTROL member and a REPORT member containing CONTROL
statements, Hiperstation uses the statements in the REPORT member.
Note: If two or more consecutive CONTROL statements precede the REPORT statements,
Hiperstation uses the last statement listed.
The following syntax diagram shows all of the parameters available on the CONTROL
statement. Each is optional. LAYOUT and TYPE are also available on REPORT statements.
DATABASE(DATABASE|ddname)
Follow the DATABASE parameter with the DD name for the collected, sorted data to
use for report generation. DATABASE is the default value. The ESREPT1 procedure,
used by the sample jobs, supplies a DD statement that defines the SET SORTED
dataset as “DATABASE”. Thus, the default should suffice if 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 10-6 or “REPORT Statement for
Custom Reports” on page 10-9.
LAYOUT(TABLE|FORM)
LAYOUT specifies whether the report type will be TABLE or FORM.
TABLE produces a row, column oriented report (Figure 10-1). If you do not specify a
layout, TABLE is used.
Note:
TEXT reports with a table layout will print a maximum of six fields. HTML
reports with a table layout will print a maximum of 32 fields.
FORM produces a line based report (Figure 10-2).
Figure 10-1. Sample Message Report in Table Layout
Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 1
--------------------------------------------------------------------------------------MessageID
SocketsNumber
MessageStartTime
MessageFinishTime
--------------------------------------------------------------------------------------4
1
2006/07/21_15:10:37.290
2006/07/21_15:10:38.052
6
1
2006/07/21_15:10:39.409
2006/07/21_15:10:39.938
9
1
2006/07/21_15:10:40.913
2006/07/21_15:10:42.170
******************************** BOTTOM OF DATA ***************************************
TCP/IP Reporting
10-5
Figure 10-2. Sample Message Report in Form Layout
Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 1
--------------------------------------------------------------------------------------MessageID
4
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2006/07/21_15:10:37.290
--------------------------------------------------------------------------------------MessageFinishTime
2006/07/21_15:10:38.052
--------------------------------------------------------------------------------------Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 2
--------------------------------------------------------------------------------------MessageID
6
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2006/07/21_15:10:39.409
--------------------------------------------------------------------------------------MessageFinishTime
2006/07/21_15:10:39.938
--------------------------------------------------------------------------------------Hiperstation for Mainframe Servers - Message Report
Date: 07/28/06 07:48
Page: 3
--------------------------------------------------------------------------------------MessageID
9
--------------------------------------------------------------------------------------SocketsNumber
1
--------------------------------------------------------------------------------------MessageStartTime
2006/07/21_15:10:40.913
--------------------------------------------------------------------------------------MessageFinishTime
2006/07/21_15:10:42.170
---------------------------------------------------------------------------------------
TYPE(TEXT|CSV|HTML)
Follow TYPE with either TEXT, HTML, or CSV (comma separated value). You can
generate custom reports in any of these formats. Some basic reports support only
HTML, others support TEXT and HTML. Basic reports do not support CSV format.
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 truncates or wraps messages exceeding the dataset’s LRECL.
BREAK(EJECT|NEXT)
BREAK only applies 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(60|n)
MAXLINES only applies 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.
10-6
Hiperstation for Mainframe Servers User Guide
FIELDDEPTH(99|n)
FIELDDEPTH only applies to TEXT and CSV reports. Use it to truncate the printing of
large fields, some of which may contain up to two 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 offers the following basic reports:
• HTML Exception Report: Compares the response messages and reports differences.
– A standard exception report compares “actual” response messages to “expected”
response messages from a single data collection.
– A baseline exception report compares “actual” response 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 time that elapsed from the first byte of the
request to the last byte of the response).
• Script Time Summary: Reports the 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 10-17
for a report sample and detailed information including field definitions. Also, refer to
your system-level reporting control library, members: ESRREXCP (standard exception
report statement sample), ESRREXCB (baseline exception report statement sample),
ESRREXCM (exception report with masking sample).
COMPARE
The COMPARE parameter is required to generate an HTML Exception Report.
BASELINE(ddname)
Use the optional BASELINE parameter to identify the DD name of the baseline
database to use for comparison. If you do not specify a baseline, the report compares
the “actual” responses to “expected” responses from the data collection specified on
the SET SORTED statement in the reporting job. That is, it reports the differences
between the responses resulting from playback to the responses recorded in the
script.
Note:
Sample job ESRJCL2 provides a corresponding DD statement that you
complete with the dataset name of the baseline database.
MASK(ddname)
Use the optional MASK parameter to identify the DD name of the masking statement
or the sequential dataset or PDS member containing the masking statements.
Masking statements prevent specified information from being compared. See
“Masking Statements” on page 10-7.
TCP/IP Reporting
Note:
10-7
Sample job ESRJCL3 generates five reports, each with different masking. It
provides DD statements corresponding to the MASK(ddname) parameters
specified on the REPORT statements. Each DD statement is followed by an
in-line masking statement. If you store your masking statements in a dataset,
modify the first DD statement to point to that dataset and optionally delete
the additional DD statements.
STOPON(n)
Use the optional STOPON parameter to automatically end report generation after the
specified number of mismatches have occurred. For example, if you specify
STOPON(5), Hiperstation stops reporting after the fifth mismatch. Valid values are 1
to 9999.
TITLE(‘title’)
Use the optional TITLE parameter to specify a title to 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 is
titled “Hiperstation for Mainframe Servers - Exception Report”.
INTO(ddname)
Use the INTO parameter to specify the DD name of the HFS file to write the HTML
report to. This parameter is required.
Note:
Each of the sample jobs supplies DD statements corresponding to the
INTO(ddname) parameters specified on the REPORT statements. Customize
these statements with your pathnames.
Masking Statements
Use data masking to prevent comparison of specified TCP/IP message data. For example,
mask date and time fields to prevent generating mismatches for data that 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 of the masking statements 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
reporting job, supply a corresponding DD statement that points to the dataset.
Note: If you only need to apply a single masking statement to the report, you can write
it directly into the reporting job as shown in sample job ESRJCL3. However,
storing it in a dataset allows you to reuse it for subsequent reporting jobs.
If a given dataset contains multiple statements, Hiperstation 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 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. After a statement is applied, Hiperstation 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.
10-8
Hiperstation for Mainframe Servers User Guide
RO
Specify the relational operator (RO) to use for qualifying data for masking. You may
use either the RO code or symbol. Valid operators for:
– 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
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
– Binary data are:
VALUE
Specify the data value that completes the comparison argument. If the argument is
true, Hiperstation 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 (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 (hexadecimal), for example, X'0CDF'
Hexadecimal masking values must consist of an even number of hexadecimal
digits (0-9, A-F).
– P (packed decimal), for example, P'0001'
Packed decimal mask values must consist of decimal digits and may be preceded
by an optional sign (+-). Additionally, they must be fewer than 32 bytes.
– M (binary masks), for example, M'11000000'
Binary mask values 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 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.
TCP/IP Reporting
10-9
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.
The following syntax diagram shows all of the parameters available on the basic REPORT
statement.
For basic reports, follow REPORT with RESPONSETIME to generate a Response Time
Summary report or SCRIPTTIME to generate a Script Timing Summary report. See “Script
Timing Summary” on page 10-20 and “Response Time Summary” on page 10-22 for a
sample of each report and detailed information including field definitions. Also, refer to
your system-level reporting control library, members: ESRRRESP (response time report
statement sample) and ESRRSCRT (script time report statement sample).
TYPE(TEXT|HTML)
Use the optional TYPE parameter to specify the format (TEXT or HTML) of the report
file. If you do not specify a type, Hiperstation uses the type specified on the
CONTROL statement if 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.
Note:
If you generate a Text version of the report, be sure the logical record length
(LRECL) of the reporting dataset is at least 133.
TITLE(‘title’)
Use the optional TITLE parameter to specify a title that will appear at the top of the
report. The title will appear in the title bar of the browser window if you are
generating an HTML report. If you do not specify a title, the report will be called
“Hiperstation for Mainframe Servers - Response Time Summary” or “Hiperstation for
Mainframe Servers - Script Timing Summary” depending on the basic report keyword
you select.
INTO(ddname)
Use the INTO parameter to specify the DD name for the dataset or HFS file that the
report will be written to. This parameter is required.
Be sure there is a corresponding DD statement in the reporting job. If your
destination is SYSOUT, do not add a DD statement. The reporting procedure supplies
a DD statement for SYSOUT.
REPORT Statement for Custom Reports
Just as there are five collection and reporting tables, there are five types of custom
reports:
•
•
•
•
•
PLAYBACK reports
SOCKETS reports
SCRIPT reports
CONNECTION reports
MESSAGE reports
10-10
Hiperstation for Mainframe Servers User Guide
Your report can contain any combination of the fields from a given collection and
reporting table if 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, “TCP/IP Data Collection and Reporting Tables” for a list of the fields
available for each report type.
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 a PLAYBACK field on a SOCKETS report, but you can
generate a PLAYBACK report and a SOCKETS report from the same data collection at the
same time. Create a REPORT statement for each report and save them in the same
reporting member. Then use one of the sample reporting jobs to generate the reports.
You can build custom comparison reports by including the same reporting fields from
multiple unattended playback data collections. Qualify comparison fields with the DD
names of the applicable data collection. For example, to compare the message counts
from three playback data collections with DD names PLAY1, PLAY2, and PLAY3, create a
report member containing the following statement and store it in your reporting control
library:
REPORT FIELDS(MESSAGESETCOUNT,PLAY1.MESSAGESETCOUNT,PLAY2.MESSAGESETCOUNT)FROM(CONNECTION) INTO(SYSOUT)
Use this reporting member in a reporting job that uses the third data collection. That is,
the SET SORTED statement at the top of the job is set to PLAY3. See “Preparing the
Reporting Job” on page 10-13.
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
smaller reports to support printing or viewing them with standard paper or
terminal size.
TCP/IP Reporting
10-11
10-12
Hiperstation for Mainframe Servers User Guide
LAYOUT(value from CONTROL LAYOUT|TABLE|FORM)
LAYOUT specifies whether the report will be in table (row, column) or form (one line
per record) format. Figure 10-1 and Figure 10-2 on page 10-5 show the same report in
both TABLE and FORM layout.
TYPE(value from CONTROL TYPE|TEXT|HTML|CSV)
TYPE specifies the 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 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(‘title’)
Use the optional TITLE parameter to specify a title for the report. If you do not
specify a title, then the report is titled “Hiperstation for Mainframe Servers - Table
Report”, where Table is the collection and reporting table specified on the FROM
clause.
FIELDS
See Appendix A, “TCP/IP 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.
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. For example, 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, SUM, etc.) are not automatically included
by using FIELDS(*). These fields must be explicitly requested in the format
FIELDS(*,AVG(xxxx)).
TCP/IP Reporting
10-13
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
FROM specifies the type of report to produce. The table name specified in the FROM
keyword is used to resolve field names specified by FIELDS(*) and to validate the field
names specified in the FIELDS keyword. The optional database qualifier can be used
as explained in 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:
REPORT FIELDS(*) FROM(SOCKETS) WHERE(SocketNumber 2)
SUBSTR
Produces a substring of the first argument. The second argument is the starting
position of the substring, and may 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 only valid 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 may contain any values, including non-printable characters.
Two strings that are identical result in a value of zero (0). The SUBSTR and
DIFFERENCE functions may be nested as “DIFFERENCE(SUBSTR(...))”.
LINK
Indicates that a field’s value should be shown as an HTML link in a report rather than
shown directly in the report. There is an exception for a non-HTTP protocol report.
The LINK field with message headers and bodies (RQHS-RequestHeaders, RSHSResponseHeaders, EXHS-ExpResponseHeaders, RQBD-RequestBody, RSBDResponseBody and EXBD-ExpResponseBody) for non-HTTP protocol will be displayed
in four-line hexadecimal format. If LAYOUT(FORM) is specified, it will be displayed
with IFORM so that it will be shown in the message report itself. The SUBSTR and
LINK functions may be nested as “LINK(SUBSTR(...))”.
Note:
Use of LINK in the WHERE clause is invalid. It is only valid as described.
Preparing the Reporting Job
Hiperstation provides the following sample reporting jobs:
• ESRJCL1 — Generates a standard HTML Exception Report.
• ESRJCL2 — Generates a baseline HTML Exception Report.
• ESRJCL3 — Generates a standard HTML Exception Report with masking.
• ESRJCL4 — Generates a Response Time Summary Report.
10-14
Hiperstation for Mainframe Servers User Guide
• ESRJCL5 — Generates a Script Timing Summary Report.
Each of these samples contains a series of SET statements that identify the reporting
assets to use for the job. They also supply DD statements corresponding to the applicable
REPORT statement parameters. Although these samples support generating specific basic
reports, you can use any sample to generate any type of report. This section explains how
to prepare a reporting job.
To prepare a reporting job:
1. Open one of the sample reporting jobs in an ISPF Edit session. Figure 10-3 on page
10-15 shows sample job ESRJCL4.
2. Insert a job card at the top of the sample.
3. Edit the values of the SET statements. See the SET statement definitions following the
reporting job sample illustration.
4. Each sample job provides DD statements that correspond to the applicable
parameters on the REPORT statement from the specified reporting member. Modify
these statements to point to your datasets or HTML files.
If you plug your own reporting assets into the SET statements, insert DD statements
for each:
– REPORT statement in the specified REPORT member that is to be written to a
dataset for HFS file. Do not add DD statements for reports written to SYSOUT.
The reporting procedure ESREPT1 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.
Refer to the “flower box” showing a sample DD statement defining an HFS path and
a sample statement defining a dataset.
5. When finished preparing the JCL, submit the job. See “Submitting the Job” on page
10-16.
TCP/IP Reporting
10-15
Figure 10-3. Sample Reporting Job ESRJCL4
********************************* Top of Data **********************************
//* INSERT JOB CARD HERE....................
//*
//UPROCS JCLLIB ORDER=('COMPWARE.QQF800.SQQFSAMP')
//*
//**********************************************************************
//*
*
//* JCL TO CREATE A TCP/IP RESPONSE TIME REPORT TO A HFS FILE.
*
//* THIS WILL ALLOW USERS TO VIEW THE REPORT WITH A WEB BROWSER
*
//*
*
//* TCP/IP RESPONSE TIME REPORT PRODUCED FROM THE DATABASE DATASET
*
//* IDENTIFIED BY THE SET STATEMENT //SET SORTED=
*
//*
*
//**********************************************************************
//*
//**********************************************************************
//*
//* INSTRUCTIONS:
//*
//*
1) ADD JOBCARD
//*
2) UPDATE THE UPROCS STATEMENT TO THE DATASET CONTAINING ESREPT1
//*
3) PROVIDE DSN FOR REPTDS - REPORT CONTROL CARD DATASET
//*
4) PROVIDE DSN FOR SORTED - SORTED DATABASE PRODUCED BY PLAYBACK
//*
5) REVIEW REPORT.OUTHTML DDCARD - SUPPLY HFS PATH NAME
//*
6) SUBMIT JOB
//*
//* NOTE: SET STATEMENTS REQUIRE UPPER CASE
//*
//**********************************************************************
//* EXEC PROC TO PROCESS LOG/SORT/REPORT
*
//**********************************************************************
//*
//
SET EXEC=ESREPT1
//
SET REPTDS=COMPWARE.QQF800.ES.REPORT
//
SET SORTED=customer.sorted.database
//
SET REPTCNTL=ESRCTH
//
SET REPTMEM=ESRRRESP
//*
//ANALYZE EXEC PROC=&EXEC
//*
//**********************************************************************
//*
*
//*
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
*
//*
*
//**********************************************************************
//*
//**********************************************************************
//*
*
//* REPORT DD'S FOLLOW. REPORT DDNAMES ARE SPECIFIED IN REPORT
*
//* CONTROL MEMBER ESRRRESP SPECIFIED ON THE REPTMEM SET STATEMENT
*
//*
*
//**********************************************************************
//*
//REPORT.OUTHTML DD PATHMODE=(SIRWXU,SIRGRP,SIROTH),
//
PATHOPTS=(ORDWR,OCREAT),
//
PATH='/hfs/path/resptime.htm'
SET Statement Definitions
SET EXEC
Identifies the JCL procedure to use for the reporting job. All samples specify
ESREPT1. If necessary, override with your own procedures.
10-16
Hiperstation for Mainframe Servers User Guide
SET REPTDS
Identifies the report control library containing the assets you are using for the job.
This statement must point to the library where the REPORT and report CONTROL
members specified on the SET REPTCNTL and SET REPTMEM statements reside.
SET SORTED
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
ESREPT1 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
Identifies the report CONTROL member to use for the job. Each sample job specifies
sample member ESRCTH, which produces an HTML report in table format. Override
it with:
– Any report CONTROL member stored in the library specified on the SET REPTDS
statement.
– NONE if a reporting CONTROL member is not required. If the specified REPORT
member provides all of the necessary control information, a report CONTROL
member is not necessary.
SET REPTMEM
Identifies the REPORT member to use for the job. Each sample job supplies a sample
member from the system-level reporting library. “Creating and Managing Reporting
Control Assets” on page 10-2, provides a list and description of each sample asset.
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 Browse or Edit session, type
SUBMIT on the Command line, and press Enter.
In the message report for the protocol ECI and TCP, the contents of RQBD, RSBD, and
EXBD can contain either EBCDIC or ASCII data. By providing a PARM '-O1', the message
report can be generated with the opposite encoding.
When the executed JCL is still available in SDSF after submit, edit the JCL and add
PARM '-O1' as follows:
change
//REPORT
EXEC PGM=TCPPBRPT,REGION=4M
to
//REPORT
EXEC PGM=TCPPBRPT,REGION=4M,PARM='-O1'.
This JCL line is located in the ESREPT1 member.
For an ECI message report, LINK(RQBD), LINK(RSBD) and LINK(EXBD) retain their
original codepage if the content is ASCII, and as a result, the HTML report on the Web
will display with the Windows codepage. The link file is defined with an .eci extension.
By setting the file type for .eci to notepad in folder options, the link will automatically
open notepad with .eci files.
TCP/IP Reporting
10-17
Reading and Navigating Basic Reports
This section provides report samples and detailed information including field definitions
for each of the basic reports.
HTML Exception Report
A standard HTML Exception Report compares the TCP/IP response messages that
occurred during playback (“actual”) to the response messages recorded in the script
(“expected”).
A baseline HTML Exception Report compares “actual” response messages from two
unattended playback data collections. The “actuals” from the baseline database are used
as “expected” values for comparison.
Note: In an offline playback, the response messages in the script are the “actuals”. In an
online playback job, the response messages that resulted from the playback are
the “actuals”.
An HTML Exception Report provides a summary of mismatches at the top of the 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 request message related to the reported response messages.
Note:
The report requires collecting several fields from several reporting and collection
tables. Collect all fields from all tables to ensure the necessary data is available
for this or any other report. See Chapter 9, “TCP/IP 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 10-4 shows a mismatch summary and Figure 10-5 on page 10-19 shows the
corresponding mismatch detail.
Figure 10-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
Mainframe Servers - Exception Report) appears across the top of the window and in the
title bar. The following fields provide information about the playback job. In a baseline
report, they come from the database entered on the SET SORTED statement in the log
file.
10-18
Hiperstation for Mainframe Servers User Guide
Run Date
The date and time that the unattended playback job was executed.
SYSID
The LPAR where the playback job was executed.
Jobname
The playback job name.
Jobnumber
The playback job number.
Socket Number
The number of the socket the message was played back in. Sockets are numbered
sequentially.
Script Number
The number of the script containing the reported message. Scripts are numbered
sequentially within the SOCKET.
Script Name
The name of the script containing the reported message.
Connection ID
The connection number where the reported message occurred. Connection IDs are
numbered sequentially in the script.
Message Number
The reported message’s number. Messages are numbered sequentially within a
Connection ID.
Server IP Address and Port
Server address and port where the reported message was played back. For offline
playback jobs, this is the address and port where the reported message occurred
during recording. IPv6 and IPv4 IP address formats are both valid.
Client IP Address and Port
Client address and port where the reported message was played back. For offline
playback jobs, this is the address and port where the reported message occurred
during recording. IPv6 and IPv4 IP address formats are both valid.
Bypassed Fields Message
If any messages were not compared, an error message appears after the summary with
a bypassed message count. Hiperstation bypasses a message if no corresponding
message to compare it against exists. For example:
– If a connection fails during playback, there is no “actual” response to collect.
Since there is no “actual” response, the message is bypassed.
– If one data collection, in a baseline report, contains more messages than the
other, the additional messages are bypassed.
TCP/IP Reporting
10-19
Figure 10-5. HTML Exception Report Mismatch Detail
Field Definitions
Each group of “expected” and “actual” messages is preceded by the associated Sockets
Number, Script Number, Script Name, Connection ID, Message Number, Server IP Address
and Port, and Client IP Address and Port. These are the same fields presented in the
summary at the top of the report. See “Field Definitions” on page 10-17. Additionally, all
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.
Expected Response Message
The “expected” TCP/IP response 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 response message that resulted from the playback.
– Offline playback, this is the response message from the script.
Mismatches are highlighted. Masked information displays in green text.
Response Body Byte Count
The number of bytes in the “expected” response message.
Response Status Code
The “expected” message’s TCP/IP Status Code.
Response Reason Phrase
The “expected” message’s TCP/IP Reason Phrase.
Response Headers
The “expected” message’s HTTP response header information.
10-20
Hiperstation for Mainframe Servers User Guide
Actual Response Message
The “actual” TCP/IP response message. In a standard exception report, this is the
response 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 response message that resulted from the playback.
– Offline playback, this is the response 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 Request Message
The TCP/IP request message related to the preceding response messages. This section
only appears if there is a correlating request message.
Note:
Figure 10-5 on page 10-19 does not show an “Actual Request Message”.
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 10-6 shows an HTML Script Timing Summary followed by field definitions.
Figure 10-6. HTML Script Timing Summary Report
Field Definitions
The title you specified on the REPORT statement or the default report title, Hiperstation
for Mainframe Servers - 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 only appears on the
HTML version of the report.
Note:
The Text version of the report includes the date and time the report was
generated.
TCP/IP Reporting
10-21
SYSID
The LPAR where the playback job was executed. This field only appears on the HTML
version of the report.
Jobname
The playback job name. This field only appears on the HTML version of the report.
Jobnumber
The playback job number. This field only appears on the HTML version of the report.
Socket Number
The number of the SOCKET that the reported script was played back in. Sockets are
numbered sequentially.
Script Name
The name of the script.
Number
The number of the script being reported. Scripts are numbered sequentially within
SOCKETS.
Start Time
The date and time playback began for the given script.
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.
Socket Total
A row of statistics for each SOCKET played back.
Number
The total number of scripts within the SOCKET.
Minimum Duration
The shortest playback duration in the SOCKET.
Maximum Duration
The longest playback duration in the SOCKET.
Average Duration
The average of all playback durations in the SOCKET.
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.
10-22
Hiperstation for Mainframe Servers User Guide
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
response from the time the correlating request was sent.
You can generate an HTML or TEXT version of the report. View the HTML version with a
supported Web browser.
Figure 10-7 shows an HTML Response Time Summary. Field definitions follow the
illustration.
Figure 10-7. HTML Response Time Summary Report
Field Definitions
The title you specified on the REPORT statement or the default report title (Hiperstation
for Mainframe Servers - Response Time Summary Report) appears 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 only appears 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 where the playback job was executed. This field only appears on the HTML
version of the report.
Jobname
The playback job name. This field only appears on the HTML version of the report.
Jobnumber
The playback job number. This field only appears on the HTML version of the report.
TCP/IP Reporting
10-23
Socket Number
The number of the SOCKET that the reported script was played back in. Sockets are
numbered sequentially.
Script Name
The name of the script.
Connection ID
The number of the connection that the reported message was played back on.
Connections are numbered sequentially within the script.
Number
The number of the message being reported. Messages are numbered sequentially
within the script.
Start Time
The date and time the reported message began playing back.
Finish Time
The date and time the reply to the message 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 messages 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.
Socket Total
A row of statistics for each SOCKET played back.
Number
The total number of request/response message sets within the SOCKET.
Minimum Duration
The shortest response duration in the SOCKET.
Maximum Duration
The longest response duration in the SOCKET.
Average Duration
The average of all response durations in the SOCKET.
Report Total
A row of statistics for the entire playback job.
Number
The total number of request/response message sets played back.
10-24
Hiperstation for Mainframe Servers User Guide
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.
11-1
Chapter 11.
Archive Functions
Chap 11
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 Mainframe Servers 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
11-2
Hiperstation for Mainframe Servers 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 11-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)
Archive Functions
11-3
Figure 11-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
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.
11-4
Hiperstation for Mainframe Servers User Guide
12-1
Chapter 12.
Hiperstation for Mainframe Servers Profile Defaults
Chap 12
APPC Profile Defaults
The APPC Record and Script Create Defaults settings allow you to specify only the APPC
conversations you want to record by supplying field values that identify those
conversations. Only the APPC conversations that match all of your field values will be
recorded. The fields are logically linked together using 'AND'.
1. Select option 2 APPC from the Hiperstation Profile screen (Figure 12-1).
Figure 12-1. Hiperstation 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 APPC Record and Script Create Defaults screen appears (Figure 12-2).
Note: For easier display, the initial Profile screens have been combined. Figure 12-1
shows the profile selection screen. The APPC screens in this section have
been combined. Figure 12-2 on page 12-2 shows the Record settings and
Figure 12-3 on page 12-4 shows the Script Create settings. On your actual
screen, press FORWARD (PF8) or BACKWARD (PF7) to view all of the fields.
12-2
Hiperstation for Mainframe Servers User Guide
Figure 12-2. APPC Record and Script Create Defaults - Record Settings
Hiperstation
----- APPC Record and Script Create Defaults ------------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===>
More:
+
--------------------------------Record settings-------------------------------Capture Criteria:
Side A LU
===> *_______ (Logical unit name or *)
Side A Netid
===> ________
Side B LU
===> *_______ (Logical unit name or *)
Side B Netid
===> ________
Logmode
===> *_______ (VTAM logmode name or *)
User ID
===> *_______ (userid or *)
TP Name
===> ____________________________________________________
Start and End times:
Date and Time
HH : MM : SS
Start Time
===> 00 : 00 : 00
End Time
===> 00 : 00 : 00
Repository Dataset:
Dataset Name
First Number
Last Number
Start Date
End Date
MM / DD / YY
01 / 01 / 07
12 / 31 / 07
===> 'USER2312.HIPER.REPOSIT'
===> ________ (if wildcard in dataset)
===> ________ (if wildcard in dataset)
Recording options:
/ Suspend Script Creation
/ FORCE Request at 'End Time'
/ Normal Event Notification
/ Error Event Notification
(Enter "/" to select)
2. Fill in or change the Record Settings fields. The fields in this group are all optional.
– Side A LU and Side B LU (optional) contain the VTAM LU name for one of the
partners that make up the APPC conversation you want to capture. Wild cards
are allowed. If you leave both of these fields blank, you will capture all APPC
activity on this MVS system. If you enter a value in either the Side A LU or Side B
LU field and leave the other blank, then conversations involving the particular
LU name will be captured.
– Side A Netid and Side B Netid (optional) contain the VTAM Network ID for the
Side A and Side B LU partner. Only supply values for these fields if you want to
restrict data capture to APPC conversations between logical units on specific
VTAM networks. One of those networks must be the one on which the VTAM on
this MVS system is running.
– Logmode (optional) contains the VTAM logon mode name and specifies some of
the characteristics of the session.
– User ID (optional) contains the user ID passed between APPC partners when a
conversation begins. The user ID is used by one partner to validate the other
partner. Since not all APPC conversations pass a user ID, if you enter a user ID
value, only those APPC conversations that pass the value will be recorded.
– TP Name (optional) contains the transaction program name. It identifies the
program located at the partner's logical unit that is to be run. TP names can be
from 1 to 64 characters and can contain non-printable values. If the TP name
contains only printable values and no blanks, you can supply the TP name with
no quotation marks. If the TP name contains blanks, enclose the TP name in
single quotation marks. Letters will not be converted to uppercase since TP
names may contain lowercase letters. If the TP name contains non- printable
values, type the TP name in hexadecimal, enclose it in single quotation marks
and either prefix the first quote or suffix the last quote with the letter X. For
example, the CNOS transaction is entered as X'06F1' or '06F1'X.
3. Start and End Date and Time are optional fields that specify the date and time of
day that you want the capture request to be started or stopped. If you enter a Start
Time you must enter a Start Date. If you enter an End Time you must enter an End
Date.
Hiperstation for Mainframe Servers Profile Defaults
12-3
4. 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
specified 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.
5. Specify your Recording options.
Recording options defines the way your capture request will generate scripts, process
the repository, stop your requests, and send normal and/or error messages.
Enter a slash (/) to select the following options:
– Suspend Script Creation controls automatic script creation. Enter a slash (/) to
defer script creation when your capture request stops. It also defers the entry of
script creation criteria to a later time. If you leave this field blank, you will be
guided through the script creation criteria screens prior to your capture request
being activated, and your scripts will be created automatically when your capture
request is stopped.
– FORCE Request at 'End Time' controls whether your capture request is forced
rather then stopped when it reaches the End Time specified in your request. A
forced request is stopped immediately regardless of whether the sessions you are
capturing have ended. A stopped request is deactivated so no new sessions will be
captured. In-flight sessions continue to be captured until a session logoff occurs.
If you leave this field blank, your capture request will be stopped rather then
forced when it reaches the End Time in your request. This field can only be
selected if you entered an End Time in your request.
– Normal Event Notification and Error Event Notification control whether
normal and error event messages are generated and sent to your TSO session.
Enter a slash (/) to receive these messages at your terminal, or leave blank for no
messages to be sent.
– Error Event Notification controls whether error event messages are generated
and sent to your TSO session. If you enter a slash (/) in this field, you will receive
these messages at your terminal. If you leave it blank then no messages will be
sent.
12-4
Hiperstation for Mainframe Servers User Guide
Figure 12-3. APPC Record and Script Create Defaults - Script Create Settings
Hiperstation
----- APPC Record and Script Create Defaults ------------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===>
More:
- +
-----------------------------Script Create Settings---------------------------Script Dataset
Dataset Name
Prefix
Suffix
Replace?
Script
Where
_ 1.
2.
3.
===>
===>
===>
===>
____________________________________________________
______
(1 - 6 character prefix)
_______
(2 - 7 numeric suffix)
Y
(Y = Yes, N = No)
Content:
Should Details be Stored:
(Enter number to select)
Merged into the script
Separate from the script, input and output together
Separate from the script, input and output split
What Should be Recorded:
_ Conversation Log
_ Script
_ Details
(Enter "/" to select)
Script Create Options:
(Enter "/" to select)
_ Suppress time stamps in script
_ Write script tags in short CPIC format
_ Write all PIU traffic as script comments
_ Include SNA service transactions (logmodes: SNASVCMG,
CPSVCMG, CPSVRMGR)
Script Create Execution Options:
Select processing option: (Enter number to select)
_ 1. Submit batch job
2. TSO
Other Datasets:
Conversation Log
Dataset Name
Prefix
Suffix
Replace?
===>
===>
===>
===>
____________________________________________________
______
(1 - 6 character prefix)
_______
(2 - 7 numeric suffix)
_
(Y = Yes, N = No)
Combined Detail
Prefix
Suffix
DDname
===>
===>
===>
===>
____________________________________________________
______
(1 - 6 character prefix)
_______
(2 - 7 numeric suffix)
________
Outbound Detail
Prefix
Suffix
DDname
Replace?
===>
===>
===>
===>
===>
____________________________________________________
______
(1 - 6 character prefix)
_______
(2 - 7 numeric suffix)
________
_
(Y = Yes, N = No)
Inbound Detail
Prefix
Suffix
DDname
===>
===>
===>
===>
____________________________________________________
______
(1 - 6 character prefix)
_______
(2 - 7 numeric suffix)
________
6. Specify the Script Create Settings.
– Script Dataset, Dataset Name, Prefix, and Suffix specify the fully qualified
dataset and member names where you want to store your scripts.
– Replace? specifies whether the script dataset will replace a dataset of the same
name. Enter Y or N.
7. Specify your Script Content options.
Script Content fields specify where to store the detail data for your scripts, what to
record, and how to process your script datasets.
– Where should detail be stored is a required field that specifies where on DASD
to store the APPC message details in relationship to your scripts. You must
choose one of the following options. Enter a number to make your selection.
Hiperstation for Mainframe Servers Profile Defaults
12-5
1. Merged into the script places the detail data into the same PDS member as
the script. APPC verbs contained in the script will be merged with the data
sent by the verbs. This option allows you to view all data for a conversation
in a single PDS member.
2. Separate from the script, inbound and outbound together places the detail
data into a PDS member that is separate from the script PDS member. This
option keeps the script member uncluttered with (possibly) non-printable
data. In addition, a file-formatting tool can be used to display the detail data
since it is now separate from the APPC verbs.
3. Separate from the script, inbound and outbound split places the detail
data into two PDS members, both of which are separate from the script
member. One member contains outbound data; the other member contains
inbound data. Outbound refers to all data sent by the logical unit that
started the APPC conversation (issued the ALLOCATE verb). Inbound refers
to all data sent by the other logical unit.
8. Specify What should be recorded options.
These options define what you will create from your captured data when requesting
script creation processing. Enter a slash (/) to make your selection. You can select one
or more of the following options:
– Conversation log creates a single conversation log for each of your capture
requests. The log contains a list of every APPC conversation (ALLOCATE
statement) that has been captured by your request. After each ALLOCATE
statement is a SCRIPT statement naming the PDS member containing the entire
APPC conversation. The conversation log is written when you issue the Stop or
Force line command from the Global Record Monitor Requests screen. The
conversation log, after some modifications, is typically used as the SYSIN dataset
for your play backs.
– Script creates a new script for every APPC conversation that was captured by
your request. Each script is placed in a different member of a PDS. The name of
each member is also entered in the conversation log on the SCRIPT statement. In
this way, the conversation log points to every script that was created. A script
contains all of the APPC verbs (ALLOCATE, SEND, RECEIVE, etc.) issued by the
two partners in the APPC conversation.
– Details writes the details for every APPC conversation that was captured by your
request. 'Details' is the term used for the data sent by the APPC partners to each
other. It might be human readable data, or it might consist of only binary data.
9. Fill in or change the Script create options.
– Suppress time stamps in script omits time stamps making the script easier to
browse. If you are reviewing the scripts for debugging purposes, select this option
to make the scripts easier to read. Hiperstation uses time stamps to synchronize
playback. If you intend to play back scripts at the same pace as they were
recorded, do not select this option.
– Write script tags in short CPIC format writes APPC verbs in Common
Programming Interface for Communications (CPIC) format, rather than
Hiperstation proprietary format. For example, a send verb appears in the script as
CMSEND rather than SEND_DATA. This option is for readability and has no
impact on playback.
– Write all PIU traffic as script comments writes VTAM Path Information Units
(PIUs) into the script (the 26-byte Transmission Headers (TH), the 3-byte Request
Headers (RH), and the variable length Request Units (RU) that are sent between
VTAM logical units). In the scripts, this information appears in CONTENT tags
under a PIU tag. Although the information does not appear with the traditional
comment indicator (*) in column one, playback ignores the PIU block of tags.
This option supports debugging VTAM applications.
12-6
Hiperstation for Mainframe Servers User Guide
– Include SNA service transactions writes special APPC conversations used by
subsystems such as VTAM and CICS into the scripts. For example, the Change
Number of Session (CNOS) and Exchange Log Name (XLN) transactions appear in
the script if you select this option. These conversations use the following
logmodes: SNASVCMG, CPSVCMG, or CPSVRMGR. This option supports
application debugging and does not impact playback.
10. Script Create Execution Options specifies whether you want background (batch) or
foreground processing to be your default. Select 1 (background) or 2 (foreground).
Sample JCL is provided for a batch job, which you can change if desired.
11. Several Other Datasets will be created. You can change the dataset name, prefix,
suffix, DDname, etc. if desired.
– The Conversation log dataset specifies where you want the conversation log to
reside on DASD. If you allocate this dataset as a PDS or PDSE, you must enter a
member name prefix value and a numeric suffix value unless you want the
default value of zero.
– The Combined detail dataset specifies where you want the combined inbound
and outbound message data to reside on DASD. This dataset must be allocated as
a PDS or PDSE, and you must enter a member name prefix value, a numeric suffix
value unless you want the default value of zero, and a unique 8-character
DDname value. The DDname you supply is written into the script member along
with the APPC verbs. This enables Hiperstation to find your detail data when you
play back the script. You must place the same DDname in the JCL used to play
back your scripts.
– The Outbound detail dataset specifies where you want the outbound detail
message data to reside on DASD. This dataset must be allocated as a PDS or PDSE,
and you must enter a member name prefix value in the PREFIX column, a
numeric suffix value in the SUFFIX column unless you want the default value of
zero, and a unique 8-character DDname value. The DDname you supply is
written into the script member along with the APPC verbs. This enables
Hiperstation to find your detail data when you play back the script. You must
place the same DDname in the JCL used to play back your scripts.
– The Inbound detail dataset specifies where you want the inbound detail message
to reside on DASD. This dataset must be allocated as a PDS or PDSE, and you
must enter a member name prefix value in the PREFIX column, a numeric suffix
value in the SUFFIX column unless you want the default value of zero, and a
unique 8-character DDname value. The DDname you supply is written into the
script member along with the APPC verbs. This enables Hiperstation to find your
detail data when you play back the script. You must place the same DDname in
the JCL used to play back your scripts.
TCP/IP Profile Defaults
This section specifies the TCP/IP Global Recording and Script Create defaults.
1. Select option 5 TCP/IP from the Hiperstation Profile screen (Figure 12-4).
Note: For easier display, the initial Profile screens have been combined. Figure 12-4
shows the profile selection screen. The TCP/IP screens in this section have
been combined into logical groups. Figure 12-5 shows the Record Settings,
Figure 12-6 on page 12-9 shows the Script Create Settings, and Figure 12-7 on
page 12-12 shows the Dataset Settings. On your actual screen, press
FORWARD (PF8) or BACKWARD (PF7) to view all of the fields.
Hiperstation for Mainframe Servers Profile Defaults
12-7
Figure 12-4. Hiperstation 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 TCP/IP Global Record/Script Create Defaults screen appears.
Figure 12-5. TCP/IP Global Record/Script Create Defaults - Record Settings
Hiperstation ---- TCP/IP Global Record/Script Create Defaults ----------------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:
Data from client ===> ________ (ALL/number)
Data from server ===> ________ (ALL/number)
2. In the Create Recording Filters field, enter a slash (/) to display the TCP/IP Data
Collect screen where you can create recording filters. See the Hiperstation for
Mainframe Servers User Guide or the online help for information about creating filters.
3. Specify your Repository Dataset options.
12-8
Hiperstation for Mainframe Servers User Guide
– 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 is full, 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.
4. Reuse repository options specifies the way your capture request will process the
repository. Enter a slash (/) to select.
– 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 selection 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.
5. Amount of data to record can record any TCP/IP data that passes through this MVS
system and matches your filtering criteria. To record all of that data, enter ALL in
Data from client and Data from server. Otherwise, any non-zero numeric value will
limit the amount of data recorded from a single message to a number of bytes.
Hiperstation for Mainframe Servers Profile Defaults
12-9
Figure 12-6. TCP/IP Global Record/Script Create Defaults - Script Create Settings
Hiperstation ---- TCP/IP Global Record/Script Create Defaults ----------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===> ________________________________________________
More:
+
-----------------------------Script Create Settings---------------------------_ Create Script Filters
(/ for Filter Create panel)
Amount of Data to Use:
Data from Client ===> ________ (ALL/number)
Data from Server ===> ________ (ALL/number)
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
What Should be Created:
_ Create Log entries
_ Create Script entries
_ Create Detail entries
_ Create Subset repository
Grouping:
Create a New Script for Each:
_ 1. One script for everything
2. Connection
3. New combination of (one or more)
_ Client IP address
_ Client port
_ Server IP address
_ Server port
_ Protocol
Script Options:
(Enter "/" to select)
_ Suppress timestamps
_ Translate detail data from ASCII to EBCDIC
_ Translate sample data from ASCII to EBCDIC
_ Split lines at linefeed characters (for readability)
_ Suppress CONTENT data formatting (DB2C, IMSC, CTG, or ECI)
Script
Select
_ 1.
2.
Create Execution Options:
Processing Option: (Enter number to select)
Submit batch job
TSO
6. Enter a slash (/) to select Create Script Filters and display the TCP/IP Script Create
screen. See the Hiperstation for Mainframe Servers User Guide or the online help for
information about creating filters.
7. Specify the Amount of Data to Use. Hiperstation can record any TCP/IP data that
passes through and matches your filtering criteria. To record all data, enter ALL in
both the Data from Client and Data from Server fields. Otherwise, a non-zero
numeric value will limit the amount of data used for Script Creation.
8. Specify your Script Content options. Script Content fields specify where to store the
detail data for your scripts, what to record, and how to process your script datasets.
– Where Should Details be Stored is a required field that specifies where on DASD
to store the message details in relationship to your scripts.
You must choose one of the options. Enter a number to make your selection.
1. Merged into the script places the detail data into the same PDSE member as
the script. TCP/IP verbs contained in the script will be merged with the data
sent by the verbs. This option allows you to view all data for a connection in
a single PDSE member.
2. Separate from the script, input and output together places the detail data
into a PDSE member that is separate from the script PDSE member. This
option keeps the script member uncluttered with (possibly) non-printable
12-10
Hiperstation for Mainframe Servers User Guide
data. In addition, a file-formatting tool can be used to display the detail data
since it is now separate from the TCP/IP verbs.
3. Separate from the 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 client data; the other member contains server data. Client
refers to all data sent by the partner that started the TCP/IP connection.
Server refers to all data sent by the other partner.
9. Specify the What Should be Created options. These options specify what to create
from your captured data when requesting script creation processing.
Enter a slash (/) to select one or more options.
– Create Log entries generates a Connection Log that lists every script
Hiperstation for Mainframe Servers created. Each entry consists of a SOCKETS
and SCRIPT statement. The SCRIPT statement names the PDSE member
containing the TCP/IP connections. The log is written when you issue the Stop or
Force line command from the Global Recording Monitor TCP/IP Requests screen.
The log, after some modifications, is typically used as the SYSIN dataset for your
TCP/IP playbacks.
– Create Script entries generates a new script for each TCP/IP connection or for a
group of connections. Each script is placed into a different member of a PDSE.
The name of each member is also entered into the TCP/IP log on the SCRIPT
statement. In this way, the log points to every script that was recorded. A script
contains all the TCP/IP verbs (CONNECT, CLIENT, SERVER, etc.) issued by the
two partners in each TCP/IP connection.
– Create Detail entries. Details is the term used for the data sent by TCP/IP
partners to each other. It might be human readable or might consist only of
binary data. You have a choice of where to store the details:
• Option 1 Recorded with the script member places the details into the same
PDSE member as the script; TCP/IP verbs contained in the script will be
merged with the data sent by the verbs. This option allows all of the data for
a connection to be viewed in a single location: one PDSE member.
• Option 2 Recorded in a separate member places the detail data into a PDSE
member that is separate from the script PDSE member. This option keeps the
script member uncluttered with (possibly) non-printable data. Also a file
formatting tool can be used to display the detail data since it is now separate
from the TCP/IP verbs.
• Option 3 Split and recorded in separate members places the detail data
into two PDSE members, both of which are different from the script member.
One member contains the client data, the other member contains the server
data. Client refers to all data sent by the partner that started the TCP/IP
connection. Server refers to all data sent by the other partner.
– Create Subset repository generates one or more subset repositories depending
on the other selections you make. A subset repository is a filtered copy of the
input repository (for example, it contains raw TCP/IP data captured via Global
Recording). The filtering is the selection criteria applied by the TCP/IP script
creation process.
10. Accept or change the Grouping fields. Grouping fields control which TCP/IP
connections are included in any one script. Your choice of grouping options depends
on how you intend to play back the scripts.
– To reproduce, at playback time, the timing and sequence of all the TCP/IP
connections and messages as seen at capture time, you could choose Option 1
(One script for everything). A script created with this option contains multiple
TCP/IP connections, and they are played back in the order recorded in the script.
Hiperstation for Mainframe Servers Profile Defaults
12-11
– To have all of your TCP/IP connections played back at once, you could choose
Option 2 (Connection). A script created with this option contains a single
TCP/IP connection, which can be played back independently of other scripts and
connections.
– The other options enable you to create scripts that contain just the subset of
TCP/IP connections that you need. Select Option 3 (New combination of (one
or more)) and select one or more of the following:
•
•
•
•
•
Client IP address
Client port
Server IP address
Server port
Protocol
Note:
IPv6 and IPv4 IP address formats are valid for both the Client IP address
or Server IP address.
11. Enter a slash (/) to select one or more of the desired Script Options:
– Select Suppress timestamps only if you have no plans to play back the scripts.
Time stamps appear with every TCP/IP 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.
– Select Translate detail data from ASCII to EBCDIC to make the data within the
script more readable. Almost all data flowing between Web browsers and servers
is in ASCII; translating it to EBCDIC makes most of the data readable on the
mainframe. The data is translated back into ASCII (internally) during playback.
– Select Translate sample data from ASCII to EBCDIC to make the data within
the script more readable when you have chosen to store detail data in external
files (not within the script). Sample data refers to the single line of detail data
written on the CLIENT and SERVER tags within the script. This sample data is not
used during playback. It is only present to help you understand what is
contained in a script.
– Select Split lines at linefeed characters to show the detail data in a more
readable format. Much of the data transferred between Web browsers and servers
consists of readable lines that end with the ASCII linefeed character (x'0A').
Splitting detail data lines at each linefeed character can help you understand
what is contained in the script. Playback is not affected by this option.
– Select Suppress CONTENT data formatting if you do not require tags for
specific CONTENT data (associated with DB2C, IMSC, CTG, or ECI) to be created
in the script. Suppressing these tags may increase the speed of Playback and will
decrease the size of the scripts. These tags allow for substitution of CONTENT
data during Playback and aid in readability but are not required.
12. Script Create Execution Options specify whether you want background (batch) or
foreground processing to be your default. Select 1 (background) or 2 (foreground).
– 1. Submit batch job submits a job for background execution.
– 2. TSO executes script creation as a foreground task under your TSO session. Your
session will remain locked until script creation processing completes.
12-12
Hiperstation for Mainframe Servers User Guide
Figure 12-7. TCP/IP Global Record/Script Create Defaults - Dataset Settings
Hiperstation ---- TCP/IP Global Record/Script Create Defaults ----------------Profile: HIPER
Profile Dataset: 'USER2312.HIPER.PROFILE'
OPTION ===>
More:
- +
Output Datasets:
Log:
Dataset Name
===> 'USER2312.HIPER.CONVLOG'
Member Prefix
===> ______
(1 - 6 character prefix)
Member Suffix
===> _______ (2 - 7 numeric suffix)
Replace?
===> _
(Y = Yes, N = No)
Script:
Dataset Name
Member Prefix
Member Suffix
Replace?
===>
===>
===>
===>
'USER2312.HIPER.SCRIPT'
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
_
(Y = Yes, N = No)
Combined Detail:
Dataset Name
Member Prefix
Member Suffix
DDname
Replace?
===>
===>
===>
===>
===>
'USER2312.HIPER.COMBINED'
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
_
(Y = Yes, N = No)
Client Detail:
Dataset Name
Member Prefix
Member Suffix
DDname
===>
===>
===>
===>
'USER2312.CLIENT.DETAIL'
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
Server Detail:
Dataset Name
Member Prefix
Member Suffix
DDname
===>
===>
===>
===>
'USER2312.SERVER.DETAIL’
______
(1 - 6 character prefix)
_______ (2 - 7 numeric suffix)
________
13. Several Output Datasets will be created. You can add or change the dataset name,
member prefix, member suffix, or DDname, if desired.
– 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 user ID) 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 subdirectory.
– 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
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 scripts.
Hiperstation for Mainframe Servers Profile Defaults
12-13
– Replace?: Specifies whether the script dataset will replace a dataset of the same
name.
Auditing TCP/IP Profile Defaults
This section specifies the TCP/IP auditing defaults.
1. Select option 8 Auditing TCP/IP from the Hiperstation Profile screen.
Note: For easier display, the initial Profile screens have been combined. Figure 12-8
shows the profile selection screen. On your actual screen, press FORWARD
(PF8) or BACKWARD (PF7) to view all of the fields.
Figure 12-8. Hiperstation 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 TCP/IP Screen” appears (Figure 12-9).
12-14
Hiperstation for Mainframe Servers User Guide
Figure 12-9. Auditing Defaults for TCP/IP Screen
Hiperstation
---------- Auditing Defaults for TCP/IP -----------------------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:
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 “TCP/IP Collect
Data - Filtering Screen”. This screen specifies the IP addresses and ports for filtering
traffic.
3. Specify your Datasets information.
– 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 traffic. Enter a slash
(/) to exclude SYSTEM traffic.
5. Specify a Recording Start and End Date and Time if desired. These 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 TCP/IP Profile Defaults
This section specifies the TCP playback profile defaults.
Hiperstation for Mainframe Servers Profile Defaults
12-15
1. Select option 10 Playback TCP from the Hiperstation Profile screen (Figure 12-10).
Note: For easier display, the initial Profile screens have been combined. Figure 12-10
shows the profile selection screen. The Playback TCP screens in this section
have been combined. Figure 12-11 shows all of the Playback TCP profile
settings. On your actual screen, press FORWARD (PF8) or BACKWARD (PF7)
to view all of the fields.
Figure 12-10. Hiperstation 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 “TCP Interactive Playback Defaults Screen” appears.
12-16
Hiperstation for Mainframe Servers User Guide
Figure 12-11. TCP Interactive Playback Defaults Screen
Hiperstation --------- TCP Interactive Playback Defaults ---------------------Profile: HIPER
Profile Dataset: 'USER2312.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)
(30-9999)
(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 TCP 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 Mainframe Servers
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 on 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.
– In the Stop On field, enter a number to end 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.
Hiperstation for Mainframe Servers Profile Defaults
12-17
– Select one of the following Think Time Options:
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. 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.
12-18
Hiperstation for Mainframe Servers User Guide
A-1
Appendix A.
TCP/IP Data Collection and Reporting Tables
App A
This appendix provides information to help you define the parameters of your COLLECT
and custom REPORT statements. See “COLLECT Statement” on page 9-16 and “REPORT
Statement for Custom Reports” on page 10-9 for information.
Hiperstation for Mainframe Servers provides the following tables of data collection and
reporting criteria:
• “PLAYBACK Table” on page A-1
• “SOCKETS Table” on page A-3
• “SCRIPT Table” on page A-5
• “CONNECTION Table” on page A-7
• “MESSAGE Table” on page A-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 counts, minimum and maximum values, averages,
and sums of specified report fields. You do not collect statistic fields, but do collect
the field the statistic is based on. For example, collect SocketsDuration from the
SOCKETS table to report the SUM of SocketsDuration on a PLAYBACK report.
While sorting the collected data, Hiperstation for Mainframe Servers 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(ConnectionDuration)) FROM(PLAYBACK)
reports the longest connection duration that occurred during the playback.
REPORT FIELDS(MAX(ConnectionDuration)) FROM(SOCKETS)
reports the longest connection duration from each sockets 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.
A-2
Hiperstation for Mainframe Servers User Guide
PLAYBACK Report Fields
COLLECT any or all of the following fields and REPORT them on customized PLAYBACK
reports.
Long Field Names
Short Field Names
JobName
JBNA
JobNumber
JBNU
OwnerName
OWNA
PlaybackDuration
PLDR
PlaybackFinishTime
PLFT
PlaybackName
PLNA
PlaybackNumber
PLNU
PlaybackReturnCode
PLRC
PlaybackStartTime
PLST
SocketsStatementCount
SOSC
SystemName
SYNA
Note: Hiperstation for Mainframe Servers and Hiperstation for WebSphere MQ share the
same PLAYBACK report fields table. As such, a report containing all of the fields
from the table 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 ConnectionCount from the PLAYBACK table, you need to collect the
ConnectionCount field from the SCRIPT 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
SocketsReturnCode
SORC
SOCKETS
MIN or MAX
ScriptReturnCode
SCRC
SCRIPT
AVG, MIN, MAX, or SUM SocketsDuration
SODR
SOCKETS
AVG, MIN, MAX, or SUM ScriptDuration
SCDR
SCRIPT
AVG, MIN, MAX, or SUM ConnectionDuration
CNDR
CONNECTION
AVG, MIN, MAX, or SUM MessageDuration
MSDR
MESSAGE
AVG, MIN, MAX, or SUM InitialResponseTime
RTIN
MESSAGE
AVG, MIN, MAX, or SUM FinalResponseTime
RTFN
MESSAGE
AVG, MIN, or MAX
BytesSentRate
BYSR
MESSAGE
AVG, MIN, or MAX
BytesReceivedRate
BYRR
MESSAGE
SUM
ScriptStatementCount
SCSC
SOCKETS
AVG, MIN, MAX, or SUM ConnectionCount
CNCT
SCRIPT
AVG, MIN, MAX, or SUM MessageCount
MSCT
CONNECTION
AVG, MIN, MAX, or SUM ConnectionsAttempted
CNAT
CONNECTION
TCP/IP Data Collection and Reporting Tables
Statistics
For Field (long names)
Field Short Names Collect from Table
AVG, MIN, MAX, or SUM ConnectionsRefused
CNRF
CONNECTION
AVG, MIN, MAX, or SUM ConnectionsTimedOut
CNTO
CONNECTION
AVG, MIN, MAX, or SUM TimeToConnect
TMTC
CONNECTION
AVG, MIN, MAX, or SUM TimeForConnectionRefusal
TMCR
CONNECTION
AVG, MIN, MAX, or SUM TimeForConnectionTimedOut
TMCT
CONNECTION
MIN or MAX
ConnectionStatus
CNSC
CONNECTION
AVG, MIN, or MAX
ConnectionRate
CNRT
SCRIPT
AVG, MIN, or MAX
MessageRate
MSRT
CONNECTION
AVG, MIN, MAX, or SUM RequestByteCount
RQCT
MESSAGE
MIN or MAX
RQVN
MESSAGE
RQHC
MESSAGE
RQHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM RequestBodyLineCount
RQBL
MESSAGE
AVG, MIN, MAX, or SUM RequestBodyByteCount
RQBB
MESSAGE
AVG, MIN, MAX, or SUM ResponseByteCount
RSCT
MESSAGE
MIN or MAX
ResponseVersionNumber
RSVN
MESSAGE
MIN or MAX
ResponseStatusCode
RSSC
MESSAGE
RSHC
MESSAGE
RSHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM ResponseBodyByteCount
RSBB
MESSAGE
AVG, MIN, MAX, or SUM ResponseBodyLineCount
RSBL
MESSAGE
AVG, MIN, MAX, or SUM ExpResponseByteCount
EXCT
MESSAGE
MIN or MAX
ExpResponseVersionNumber
EXVN
MESSAGE
MIN or MAX
ExpResponseStatusCode
EXSC
MESSAGE
EXHC
MESSAGE
EXHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM ExpResponseBodyByteCount
EXBB
MESSAGE
AVG, MIN, MAX, or SUM ExpResponseBodyLineCount
EXBL
MESSAGE
RequestVersionNumber
AVG, MIN, MAX, or SUM RequestHeaderCount
CNT
RequestHeadersnnnn
1
AVG, MIN, MAX, or SUM ResponseHeaderCount
CNT
1
ResponseHeadernnnn
AVG, MIN, MAX, or SUM ExpResponseHeaderCount
CNT
ExpResponseHeadernnnn1
A-3
1. Where nnnn is the Header Field Identifier. See Table B-2 on page B-5, for a list of identifiers.
SOCKETS Table
The SOCKETS table includes both report and statistic fields.
A-4
Hiperstation for Mainframe Servers User Guide
SOCKETS Report Fields
COLLECT any or all of the following fields and REPORT them on customized SOCKETS
reports.
Long Field Names
Short Field Names
PlaybackNumber
PLNU
ScriptStatementCount
SCSC
SocketsDuration
SODR
SocketsFinishTime
SOFT
SocketsID
SOID
SocketsNumber
SONU
SocketsReturnCode
SORC
SocketsStartTime
SOST
SOCKETS Statistic Fields
REPORT any of the following statistics on customized SOCKETS 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 ScriptDuration from the SOCKETS table, you need to collect the
ScriptDuration field from the SCRIPT 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
ScriptReturnCode
SCRC
SCRIPT
AVG, MIN, MAX, or SUM
ScriptDuration
SCDR
SCRIPT
AVG, MIN, MAX, or SUM
ConnectionDuration
CNDR
CONNECTION
AVG, MIN, MAX, or SUM
MessageDuration
MSDR
MESSAGE
AVG, MIN, MAX, or SUM
InitialResponseTime
RTIN
MESSAGE
AVG, MIN, MAX, or SUM
FinalResponseTime
RTFN
MESSAGE
AVG, MIN, or MAX
BytesSentRate
BYSR
MESSAGE
AVG, MIN, or MAX
BytesReceivedRate
BYRR
MESSAGE
AVG, MIN, MAX, or SUM
ConnectionCount
CNCT
SCRIPT
AVG, MIN, MAX, or SUM
MessageCount
MSCT
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsAttempted
CNAT
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsRefused
CNRF
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsTimedOut
CNTO
CONNECTION
AVG, MIN, MAX, or SUM
TimeToConnect
TMTC
CONNECTION
AVG, MIN, MAX, or SUM
TimeForConnectionRefusal
TMCR
CONNECTION
AVG, MIN, MAX, or SUM
TimeForConnectionTimedOut
TMCT
CONNECTION
MIN or MAX
ConnectionStatus
CNSC
CONNECTION
AVG, MIN, or MAX
ConnectionRate
CNRT
SCRIPT
AVG, MIN, or MAX
MessageRate
MSRT
CONNECTION
TCP/IP Data Collection and Reporting Tables
A-5
Statistics
For Field (long names)
Field Short Names Collect from Table
AVG, MIN, MAX, or SUM
RequestByteCount
RQCT
MESSAGE
MIN or MAX
RequestVersionNumber
RQVN
MESSAGE
AVG, MIN, MAX, or SUM
RequestHeaderCount
RQHC
MESSAGE
1
CNT
RequestHeadersnnnn
RQHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM
RequestBodyLineCount
RQBL
MESSAGE
AVG, MIN, MAX, or SUM
RequestBodyByteCount
RQBB
MESSAGE
AVG, MIN, MAX, or SUM
ResponseByteCount
RSCT
MESSAGE
MIN or MAX
ResponseVersionNumber
RSVN
MESSAGE
MIN or MAX
ResponseStatusCode
RSSC
MESSAGE
AVG, MIN, MAX, or SUM
ResponseHeaderCount
RSHC
MESSAGE
RSHDnnnn
MESSAGE
1
CNT
ResponseHeadernnnn
AVG, MIN, MAX, or SUM
ResponseBodyByteCount
RSBB
MESSAGE
AVG, MIN, MAX, or SUM
ResponseBodyLineCount
RSBL
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseByteCount
EXCT
MESSAGE
MIN or MAX
ExpResponseVersionNumber
EXVN
MESSAGE
MIN or MAX
ExpResponseStatusCode
EXSC
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseHeaderCount
EXHC
MESSAGE
EXHDnnnn
MESSAGE
1
CNT
ExpResponseHeadernnnn
AVG, MIN, MAX, or SUM
ExpResponseBodyByteCount
EXBB
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseBodyLineCount
EXBL
MESSAGE
1. Where nnnn is the Header Field Identifier. See Table B-2 on page B-5, for a list of identifiers.
SCRIPT Table
The SCRIPT table includes both report and statistic fields.
SCRIPT Report Fields
COLLECT any or all of the following fields and REPORT them on customized SCRIPT
reports.
Long Field Names
Short Field Names
ConnectionCount
CNCT
ConnectionRate
CNRT
PlaybackNumber
PLNU
ScriptDuration
SCDR
ScriptFinishTime
SCFT
ScriptName
SCNA
A-6
Hiperstation for Mainframe Servers User Guide
Long Field Names
Short Field Names
ScriptNumber
SCNU
ScriptReturnCode
SCRC
ScriptStartTime
SCST
SocketsNumber
SONU
SCRIPT Statistic Fields
REPORT any of the following statistics on customized SCRIPT 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 MessageRate from the SCRIPT table, you need to collect the
MessageRate field from the CONNECTION 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
AVG, MIN, MAX, or SUM
ConnectionDuration
CNDR
CONNECTION
AVG, MIN, MAX, or SUM
MessageDuration
MSDR
MESSAGE
AVG, MIN, MAX, or SUM
InitialResponseTime
RTIN
MESSAGE
AVG, MIN, MAX, or SUM
FinalResponseTime
RTFN
MESSAGE
AVG, MIN, or MAX
BytesSentRate
BYSR
MESSAGE
AVG, MIN, or MAX
BytesReceivedRate
BYRR
MESSAGE
AVG, MIN, MAX, or SUM
MessageCount
MSCT
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsAttempted
CNAT
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsRefused
CNRF
CONNECTION
AVG, MIN, MAX, or SUM
ConnectionsTimedOut
CNTO
CONNECTION
AVG, MIN, MAX, or SUM
TimeToConnect
TMTC
CONNECTION
AVG, MIN, MAX, or SUM
TimeForConnectionRefusal
TMCR
CONNECTION
AVG, MIN, MAX, or SUM
TimeForConnectionTimedOut
TMCT
CONNECTION
MIN or MAX
ConnectionStatus
CNSC
CONNECTION
AVG, MIN, or MAX
MessageRate
MSRT
CONNECTION
AVG, MIN, MAX, or SUM
RequestByteCount
RQCT
MESSAGE
MIN or MAX
RequestVersionNumber
RQVN
MESSAGE
AVG, MIN, MAX, or SUM
RequestHeaderCount
RQHC
MESSAGE
RQHDnnnn
MESSAGE
1
CNT
RequestHeadersnnnn
AVG, MIN, MAX, or SUM
RequestBodyLineCount
RQBL
MESSAGE
AVG, MIN, MAX, or SUM
RequestBodyByteCount
RQBB
MESSAGE
AVG, MIN, MAX, or SUM
ResponseByteCount
RSCT
MESSAGE
MIN or MAX
ResponseVersionNumber
RSVN
MESSAGE
MIN or MAX
ResponseStatusCode
RSSC
MESSAGE
AVG, MIN, MAX, or SUM
ResponseHeaderCount
RSHC
MESSAGE
1
CNT
ResponseHeadernnnn
RSHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM
ResponseBodyByteCount
RSBB
MESSAGE
TCP/IP Data Collection and Reporting Tables
A-7
Statistics
For Field (long names)
Field Short Names Collect from Table
AVG, MIN, MAX, or SUM
ResponseBodyLineCount
RSBL
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseByteCount
EXCT
MESSAGE
MIN or MAX
ExpResponseVersionNumber
EXVN
MESSAGE
MIN or MAX
ExpResponseStatusCode
EXSC
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseHeaderCount
EXHC
MESSAGE
CNT
ExpResponseHeadernnnn1
EXHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseBodyByteCount
EXBB
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseBodyLineCount
EXBL
MESSAGE
1. Where nnnn is the Header Field Identifier. See Table B-2 on page B-5, for a list of identifiers.
CONNECTION Table
The CONNECTION table includes both report and statistic fields.
CONNECTION Report Fields
COLLECT any or all of the following fields and REPORT them on customized
CONNECTION reports.
Long Field Names
Short Field Names
ClientAddress
CLAD
ClientPort
CLPT
ConnectionDuration
CNDR
ConnectionFinishTime
CNFT
ConnectionID
CNID
ConnectionNumber
CNNU
ConnectionsAttempted
CNAT
ConnectionsRefused
CNRF
ConnectionStartTime
CNST
ConnectionStatus
CNSC
ConnectionsTimedOut
CNTO
MessageCount
MSCT
MessageRate
MSRT
PlaybackNumber
PLNU
Protocol
PROT
ScriptNumber
SCNU
ServerAddress
SVAD
ServerPort
SVPT
A-8
Hiperstation for Mainframe Servers User Guide
Long Field Names
Short Field Names
SocketsNumber
SONU
TimeForConnectionRefusal
TMCR
TimeForConnectionTimedOut
TMCT
TimeToConnect
TMTC
CONNECTION Statistic Fields
REPORT any of the following statistics on customized CONNECTION 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 MessageDuration from the CONNECTION table, collect the
MessageDuration field from the MESSAGE 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
AVG, MIN, MAX, or SUM
MessageDuration
MSDR
MESSAGE
AVG, MIN, MAX, or SUM
InitialResponseTime
RTIN
MESSAGE
AVG, MIN, MAX, or SUM
FinalResponseTime
RTFN
MESSAGE
AVG, MIN, or MAX
BytesSentRate
BYSR
MESSAGE
AVG, MIN, or MAX
BytesReceivedRate
BYRR
MESSAGE
AVG, MIN, MAX, or SUM
RequestByteCount
RQCT
MESSAGE
MIN or MAX
RequestVersionNumber
RQVN
MESSAGE
AVG, MIN, MAX, or SUM
RequestHeaderCount
RQHC
MESSAGE
RQHDnnnn
MESSAGE
1
CNT
RequestHeadersnnnn
AVG, MIN, MAX, or SUM
RequestBodyLineCount
RQBL
MESSAGE
AVG, MIN, MAX, or SUM
RequestBodyByteCount
RQBB
MESSAGE
AVG, MIN, MAX, or SUM
ResponseByteCount
RSCT
MESSAGE
MIN or MAX
ResponseVersionNumber
RSVN
MESSAGE
MIN or MAX
ResponseStatusCode
RSSC
MESSAGE
AVG, MIN, MAX, or SUM
ResponseHeaderCount
RSHC
MESSAGE
CNT
ResponseHeadernnnn1
RSHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM
ResponseBodyByteCount
RSBB
MESSAGE
AVG, MIN, MAX, or SUM
ResponseBodyLineCount
RSBL
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseByteCount
EXCT
MESSAGE
MIN or MAX
ExpResponseVersionNumber
EXVN
MESSAGE
MIN or MAX
ExpResponseStatusCode
EXSC
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseHeaderCount
EXHC
MESSAGE
CNT
ExpResponseHeadernnnn1
EXHDnnnn
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseBodyByteCount
EXBB
MESSAGE
AVG, MIN, MAX, or SUM
ExpResponseBodyLineCount
EXBL
MESSAGE
1. Where nnnn is the Header Field Identifier. See Table B-2 on page B-5, for a list of identifiers.
TCP/IP Data Collection and Reporting Tables
A-9
MESSAGE Table
The MESSAGE table includes only report fields; not statistics fields.
MESSAGE Report Fields
COLLECT any or all of the following fields and REPORT them on customized MESSAGE
reports.
Note:
Some fields do not apply to all protocols. The columns on the right side of the
table indicate the protocol the field applies to.
Short Field
Names
Long Field Names
HTTP,
HTTPS
TCP, DB2C,
IMSC
ECI
CTG
AF_family
AFIN
X
X
X
X
BytesReceivedRate
BYRR
X
X
X
X
BytesSentRate
BYSR
X
X
X
X
ClientAddress6
CLA6
X
X
X
X
CNNU
X
X
X
X
ExpResponseBody
EXBD
X
X
X
X
ExpResponseBodyByteCount
EXBB
X
X
X
X
ExpResponseBodyLineCount
EXBL
X
ExpResponseByteCount
EXCT
X
X
X
X
EXHC
X
X
X
EXHDnnnn
X
ExpResponseHeaders
EXHS
X
X
X
ExpResponseReasonPhrase
EXRP
X
ExpResponseStatusCode
EXSC
X
ExpResponseVersionNumber
EXVN
X
FinalResponseTime
RTFN
X
X
X
X
InitialResponseTime
RTIN
X
X
X
X
MessageDuration
MSDR
X
X
X
X
MessageFinishTime
MSFT
X
X
X
X
MessageID
MSID
X
X
X
X
MessageNumber
MSNU
X
X
X
X
MessageStartTime
MSST
X
X
X
X
PlaybackNumber
PLNU
X
X
X
X
RequestBody1
RQBD
X
X
X
X
RequestBodyByteCount
RQBB
X
X
X
X
RequestBodyLineCount
RQBL
X
RequestByteCount
RQCT
X
X
X
X
RequestHeaderCount
RQHC
X
X
X
RequestHeadernnnn2
RQHDnnnn
X
RequestHeaders
RQHS
X
X
X
ConnectionNumber
1
ExpResponseHeaderCount
ExpResponseHeadernnnn
2
A-10
Hiperstation for Mainframe Servers User Guide
Long Field Names
Short Field
Names
HTTP,
HTTPS
TCP, DB2C,
IMSC
ECI
CTG
RequestMethod
RQME
X
RequestURI
RQUR
X
RequestVersionNumber
RQVN
X
ResponseBody1
RSBD
X
X
X
X
ResponseBodyByteCount
RSBB
X
X
X
X
ResponseBodyLineCount
RSBL
X
ResponseByteCount
RSCT
X
X
X
X
ResponseHeaderCount
RSHC
X
X
X
ResponseHeadernnnn2
RSHDnnnn
X
ResponseHeaders
RSHS
X
X
X
ResponseReasonPhrase
RSRP
X
ResponseStatusCode
RSSC
X
ResponseVersionNumber
RSVN
X
ScriptNumber
SCNU
X
X
X
X
ServerAddress6
SVA6
X
X
X
X
SocketsNumber
SONU
X
X
X
X
1. For ECI and CTG playback, this field reports ECI COMMAREA data.
2. Where nnnn is the Header Field Identifier. See Table B-2 on page B-5, for a list of identifiers.
B-1
Appendix B.
TCP/IP Report Field Definitions
During playback, you can set Hiperstation for Mainframe Servers to collect information
on many separate fields. These fields are collected in five separate tables. The
information in the final reports then comes from this data. The fields are:
Table B-1. Field Names and Descriptions
Field Name
Description
AF_family (AFIN)
The IP address format for the client and server. It can be either IPV4 or
IPV6 format.
BytesReceivedRate (BYRR)
Number of bytes received per unit time.
BytesSentRate (BYSR)
Number of bytes sent per unit time.
ClientAddress (CLAD)
The IP address of the client.
ClientAddress6 (CLA6)
The IP address of the client in IPV6 format.
ClientPort (CLPT)
The port number of the client.
ConnectionCount (CNCT)
Number of CONNECTION instances, whether successful or only
attempted, within a SCRIPT instance. This is not the number of
attempts, but rather the number of <CONNECT> tags executed. For
example, five attempts with the last attempt being successful counts as
one CONNECTION. Five attempts with no success is also one
CONNECTION.
ConnectionDuration (CNDR)
Length in time of a CONNECTION instance (ConnectionFinishTimeConnectionStartTime). If a connection is never established, equals 0.
ConnectionFinishTime (CNFT)
Date and time when a CONNECTION instance finished, whether
normally or not. This is when we issue the CLOSE verb during the
playback or when we are notified that the partner has closed the
connection.
ConnectionID (CNID)
From the ID keyword on the <CONNECT> tag within a script.
ConnectionNumber (CNNU)
Generated by Hiperstation for Mainframe Servers during
playback, this uniquely identifies a CONNECTION instance within the
scope of a SCRIPT instance. This value is NOT unique within the scope
of the entire playback. Range: 4 byte unsigned integer.
ConnectionRate (CNRT)
The number of CONNECTION instances created per unit time.
ConnectionsAttempted (CNAT)
Number of times we tried to connect to a partner for a single
<CONNECT> tag execution. If the user has a <CONNECT> and other
tags within a REXX loop, each time the <CONNECT> tag is
encountered is a new CONNECTION instance.
ConnectionsRefused (CNRF)
Number of times a CONNECTION instance was refused by the partner.
ConnectionStartTime (CNST)
If the connection is established, the TOD when we issued the successful
CONNECT verb. If a connection is never established, the TOD when we
issued the last attempted CONNECT verb.
App B
B-2
Hiperstation for Mainframe Servers User Guide
Table B-1. Field Names and Descriptions
Field Name
Description
ConnectionStatus (CNSC)
The final status of the connection:
Normal: You established a connection, were able to send data on the
connection, and received complete HTTP responses to all of the HTTP
requests you transmitted.
TimedOut: You established a connection, have sent one or more HTTP
requests on the connection, and might have received one or more
HTTP responses on the connection, but did not receive a complete
HTTP response for one of your HTTP requests (within the STDWAIT
amount of time).
PrematureClose: You established a connection, might have sent one or
more HTTP requests on the connection, might have received one or
more HTTP responses on the connection, and then either ran out of
CLIENT data in the script before you had a complete HTTP request to
send or the partner (the server) closed the connection before it sent
back a complete HTTP response. It is also a PrematureClose if the
partner closes the connection at any point “in-flight”, e.g., while you
are in the process of sending a request.
Reset: You established a connection, might have sent one or more
HTTP requests on the connection, might have received one or more
HTTP responses on the connection, and then received a TCP 'RESET'
indicator.
CouldNotConnect: You could not establish a TCP connection with the
partner, either because you timed out (STDWAIT) or because the
partner refused the connection.
ConnectionsTimedOut (CNTO) Number of times a CONNECTION instance timed out rather than being
established.
ExpResponseBody (EXBD)
The (EXPECTED) entire response body. For ECI and CTG playback,
this field reports ECI COMMAREA data.
ExpResponseBodyByteCount
(EXBB)
(EXPECTED) Number of bytes in the response body.
ExpResponseBodyLineCount
(EXBL)
(EXPECTED) Number of LINEFEED characters (x'0A') in the response
body.
ExpResponseByteCount (EXCT) The (EXPECTED) number of bytes in a complete HTTP response.
ExpResponseHeadernnnn
(EXHDnnnn)
The (EXPECTED) value of a particular HTTP response header, one of the
values in Table B-2.
ExpResponseHeaderCount
(EXHC)
The (EXPECTED) number of headers present in the HTTP response.
ExpResponseHeaders (EXHS)
The (EXPECTED) value of all of the HTTP response headers present in
the HTTP response.
ExpResponseReasonPhrase
(EXRP)
The (EXPECTED) reason phrase present in the HTTP response.
ExpResponseStatusCode
(EXSC)
The (EXPECTED) status code present in the HTTP response.
ExpResponseVersionNumber
(EXVN)
The (EXPECTED) version number of the HTTP response, one of the
following: HTTP/1.0, HTTP/1.1, or other version number.
FinalResponseTime (RTFN)
The time elapsed from when the last byte of the HTTP request was sent
until we see the last byte of the HTTP response.
InitialResponseTime (RTIN)
The time elapsed from when the last byte of the HTTP request was sent
until we see the first byte of the HTTP response.
JobName (JBNA)
The MVS job name.
JobNumber (JBNU)
The JES job number.
TCP/IP Report Field Definitions
B-3
Table B-1. Field Names and Descriptions
Field Name
Description
MessageCount (MSCT)
Number of messages within a CONNECTION instance. This could be
zero if the CONNECTION was never successful.
MessageDuration (MSDR)
Length in time of a MESSAGE instance.
MessageFinishTime (MSFT)
Date and time when a MESSAGE instance finished. This is when we
received the last byte of data that makes up a complete HTTP response.
MessageID (MSID)
The sequence number that is part of the <CLIENT> tag within a script
for the first byte of the HTTP request.
MessageNumber (MSNU)
Generated by Hiperstation for Mainframe Servers during playback, this
uniquely identifies a MESSAGE instance within the scope of a
CONNECTION instance. This value is NOT unique within the scope of
the entire playback.
MessageRate (MSRT)
The number of messages created per unit time.
MessageStartTime (MSST)
Date and time when a MESSAGE instance started. This is when we first
issue the SEND verb for the beginning of an HTTP request.
OwnerName (OWNA)
Entered by the user on the CONTROL statement to provide the user
with some indication of who did this playback (or other notes).
PlaybackDuration (PLDR)
Length in time of the entire playback.
PlaybackFinishTime (PLFT)
Date and time when the playback program finished.
PlaybackName (PLNA)
Entered by the user on the CONTROL statement to provide the user
with some indication of what this playback is about (or other notes).
PlaybackNumber (PLNU)
Always set to 1 in this release of the product.
PlaybackReturnCode (PLRC)
The return code of the entire playback jobstep. This will be the
maximum of the internal return code (set by Hiperstation for
Mainframe Servers when errors are detected) and the maximum script
return code set by REXX code added by a user with a REXX EXIT or
RETURNstatement.
PlaybackStartTime (PLST)
Date and time when the playback program started.
Protocol (PROT)
The application or network protocol used for a connection - either
HTTP, HTTPS, or TCP.
RequestBody (RQBD)
The entire request body, if present. For ECI and CTG playback, this field
reports ECI COMMAREA data.
RequestBodyByteCount (RQBB) Number of bytes in the request body.
RequestBodyLineCount (RQBL)
Number of LINEFEED characters (x'0A') in the request body.
RequestByteCount (RQCT)
The number of bytes in a complete HTTP request.
RequestHeadernnnn
(RQHDnnnn)
The value of a particular HTTP request header, where nnnn is one of the
values in Table B-2 on page B-5.
RequestHeaderCount (RQHC)
The number of headers present in the HTTP request.
RequestHeaders (RQHS)
The value of all of the HTTP headers present in the HTTP request.
RequestMethod (RQME)
The method sent in the HTTP request, one of the following: OPTIONS,
GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, or other.
RequestURI (RQUR)
The URI contained in the HTTP request.
RequestVersionNumber (RQVN) The version number of the HTTP request, one of the following:
HTTP/1.0, HTTP/1.1, or -other-.
ResponseBody (RSBD)
The (ACTUAL) entire response body. For ECI and CTG playback, this
field reports ECI COMMAREA data.
ResponseBodyByteCount
(RSBB)
(ACTUAL) Number of bytes in the response body.
B-4
Hiperstation for Mainframe Servers User Guide
Table B-1. Field Names and Descriptions
Field Name
Description
ResponseBodyLineCount (RSBL) (ACTUAL) Number of LINEFEED characters (x'0A') in the response body.
ResponseByteCount (RSCT)
The (ACTUAL) number of bytes in a complete HTTP response.
ResponseHeadernnnn
(RSHDnnnn)
The (ACTUAL) value of a particular HTTP response header, one of the
values in Table 8-2.
ResponseHeaderCount (RSHC)
The (ACTUAL) number of headers present in the HTTP response.
ResponseHeaders (RSHS)
The (ACTUAL) value of all of the HTTP response headers present in the
HTTP response.
ResponseReasonPhrase (RSRP)
The (ACTUAL) reason phrase present in the HTTP response.
ResponseStatusCode (RSSC)
The (ACTUAL) status code present in the HTTP response.
ResponseVersionNumber
(RSVN)
The (ACTUAL) version number of the HTTP response, one of the
following: HTTP/1.0, HTTP/1.1, -other-.
ScriptDuration (SCDR)
Length in time of a SCRIPT instance.
ScriptFinishTime (SCFT)
Date and time when a SCRIPT instance finished.
ScriptName (SCNA)
From the SCRIPT statement.
ScriptNumber (SCNU)
Generated by Hiperstation for Mainframe Servers during playback, this
uniquely identifies a SCRIPT instance within the scope of a SOCKETS
instance. This value is NOT unique within the scope of the entire
playback.
ScriptReturnCode (SCRC)
The return code of a SCRIPT instance. This will be the maximum of the
internal return code (set by Hiperstation for Mainframe Servers when
errors are detected) and the maximum script return code set by REXX
code added by a user with a REXX EXIT or RETURN statement.
ScriptStartTime (SCST)
Date and time when a SCRIPT instance started.
ScriptStatementCount (SCSC)
Number of SCRIPT instances under a specific SOCKETS instance.
ServerAddress (SVAD)
The IP address of the server.
ServerAddress6 (SVA6)
The IP address of the server in IPV6 format.
ServerPort (SVPT)
The port number of the server.
SocketsDuration (SODR)
Length in time of a SOCKETS instance.
SocketsFinishTime (SOFT)
Date and time when a SOCKETS instance finished.
SocketsID (SOID)
From the ID keyword on a SOCKETS statement.
SocketsNumber (SONU)
Generated by Hiperstation for Mainframe Servers during playback, this
uniquely identifies a SOCKETS instance within the scope of the
playback. Analogous to PORT number in the VTAM version of
Hiperstation for Mainframe Servers.
SocketsReturnCode (SORC)
The return code of a SOCKETS instance. This will be the maximum of
the internal return code (set by Hiperstation for Mainframe Servers
when errors are detected) and the maximum script return code set by
REXX code added by a user with a REXX EXIT or RETURN statement.
SocketsStartTime (SOST)
Date and time when a SOCKETS instance started.
SocketsStatementCount
(SOSC)
Number of SOCKETS instances in the playback.
SystemName (SYNA)
The MVS system id, e.g., CW01.
TimeForConnectionRefusal
(TMCR)
The amount of time between issuing the CONNECT verb and when the
connection was refused by the partner.
TimeForConnectionTimedOut
(TMCT)
The amount of time between issuing the CONNECT verb and when the
connection request timed out.
TCP/IP Report Field Definitions
B-5
Table B-1. Field Names and Descriptions
Field Name
Description
TimeToConnect (TMTC)
The amount of time between issuing the CONNECT verb and when the
connection was actually established.
The values in Table B-2 are valid values for the variable nnnn listed on several of the field
names shown in Table B-1 on page B-1. Each of these valid values can be used on any
field name that shows the variable nnnn.
Table B-2. Valid Values for RequestHeadernnnn, ResponseHeadernnnn, ExpResponseHeadernnnn
Value
(ACPT) Accept
(ACCH) Accept-Charset
(ACEN) Accept-Encoding
(ACLA) Accept-Language
(ACRA) Accept-Ranges
(AGE) Age
(ALOW) Allow
(AUTH) Authorization
(CACO) Cache-Control
(CONN) Connection
(COEN) Content-Encoding
(COLA) Content-Language
(COLN) Content-Length
(COLO) Content-Location
(COMD) Content-MD5
(COOK) Cookie
(CORA) Content-Range
(COTY) Content-Type
(DATE) Date
(EXPC) Expect
(EXPR) Expires
(ETAG) ETag
(FROM) From
(HOST) Host
(IFMA) If-Match
(IFMS) If-Modified-Since
(IFNM) If-None-Match
(IFRA) If-Range
(IFUS) If-Unmodified-Since
(LAMD) Last-Modified
(LOCA) Location
(MXFW) Max-Forwards
B-6
Hiperstation for Mainframe Servers User Guide
Table B-2. Valid Values for RequestHeadernnnn, ResponseHeadernnnn, ExpResponseHeadernnnn
Value
(PRAG) Pragma
(PAUC) Proxy-Authenticate
(PAUZ) Proxy-Authorization
(RANG) Range
(REFR) Referer
(RTAF) Retry-After
(SRVR) Server
(TRLR) Trailer
(TREN) Transfer-Encoding
(TE) TE
(UPGD) Upgrade
(USAG) User-Agent
(VARY) Vary
(VIA) Via
(WARN) Warning
(WWWA) WWW-Authenticate
(OTHR) -concatenation of all others we see-
C-1
Appendix C.
TCP Script Create Parameters
Table C-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 C-1. TCP/IP Script Create Parameters
Parameter
Description
FILTERS._ACTION.n
Action for filter n (INCL/EXCL)
FILTERS._CONTENT.0.n
Number of <CONTENT> filters for filter n
FILTERS._CTG_APPLID.x.n
CTG application ID for <CONTENT> filter x within filter n
FILTERS._CTG_APPLID_OP.x.n
CTG application ID operator for <CONTENT> filter x within filter n
FILTERS._CTG_CAREA.x.n
CTG COMMAREA (on CPMI records) for <CONTENT> filter x within
filter n
FILTERS._CTG_CAREA_OP.x.n
CTG COMMAREA (on CPMI records) for <CONTENT> filter x within
filter n
FILTERS._CTG_PROGID.x.n
CTG program ID for <CONTENT> filter x within filter n
FILTERS._CTG_PROGID_OP.x.n
CTG program ID operator for <CONTENT> filter x within filter n
FILTERS._DB2_USRID.x.n
DB2 user ID for <CONTENT> filter x within filter n
FILTERS._DB2_USRID_OP.x.n
DB2 ushered operator for <CONTENT> filter x within filter n
FILTERS._ECI_CAREA.x.n
ECI COMMAREA for <CONTENT> filter x within filter n
FILTERS._ECI_CAREA_OP.x.n
ECI COMMAREA operator for <CONTENT> filter x within filter n
FILTERS._ECI_PROGID.x.n
ECI program ID for <CONTENT> filter x within filter n
FILTERS._ECI_PROGID_OP.x.n
ECI program ID operator for <CONTENT> filter x within filter n
FILTERS._ECI_USERID.x.n
ECI user ID for <CONTENT> filter x within filter n
FILTERS._ECI_USERID_OP.x.n
ECI user ID operator for <CONTENT> filter x within filter n
FILTERS._IMS_CDATA.x.n
IMS client USERDATA for <CONTENT> filter x within filter n
FILTERS._IMS_CDATA_OP.x.n
IMS client USERDATA operator for <CONTENT> filter x within filter n
FILTERS._IMS_CLIENT.x.n
IMS client ID for <CONTENT> filter x within filter n
FILTERS._IMS_CLIENT_OP.x.n
IMS client ID operator for <CONTENT> filter x within filter n
FILTERS._IMS_DSTORE.x.n
IMS datastore ID for <CONTENT> filter x within filter n
FILTERS._IMS_DSTORE_OP.x.n
IMS datastore ID operator for <CONTENT> filter x within filter n
FILTERS._IMS_SDATA.x.n
IMS server USERDATA for <CONTENT> filter x within filter n
FILTERS._IMS_SDATA_OP.x.n
IMS server USERDATA operator for <CONTENT> filter x within filter n
FILTERS._IMS_TRANS.x.n
IMS transaction code for <CONTENT> filter x within filter n
FILTERS._IMS_TRANS_OP.x.n
IMS transaction code operator for <CONTENT> filter x within filter n
FILTERS._IMS_USERID.x.n
IMS user ID for <CONTENT> filter x within filter n
FILTERS._IMS_USERID_OP.x.n
IMS user ID operator for <CONTENT> filter x within filter n
FILTERS._RDB_NAME.x.n
Relational database name for <CONTENT> filter x within filter n
App C
C-2
Hiperstation for Mainframe Servers User Guide
Table C-1. TCP/IP Script Create Parameters
Parameter
Description
FILTERS._RDB_NAME_OP.x.n
Relational database name operator for <CONTENT> filter x within
filter n
FILTERS._SQL_ANSWER.x.n
SQL answer set for <CONTENT> filter x within filter n
FILTERS._SQL_ANSWER_OP.x.n
SQL answer set operator for <CONTENT> filter x within filter n
FILTERS._SQL_CODE.x.n
SQLcode for <CONTENT> filter x within filter n
FILTERS._SQL_CODE_OP.x.n
SQLcode operator for <CONTENT> filter x within filter n
FILTERS._SQL_STATE.x.n
SQLstate for <CONTENT> filter x within filter n
FILTERS._SQL_STATE_OP.x.n
SQLstate operator for <CONTENT> filter x within filter n
FILTERS._SQL_STMT.x.n
SQL statement for <CONTENT> filter x within filter n
FILTERS._SQL_STMT_OP.x.n
SQL statement operator for <CONTENT> filter x within filter n
FILTERS.0
Number of filters
TCPCSMSG
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 7-19 to
find out how to access the JCL for edit.
TCPCRBLK
New repository BLKSIZE
TCPCRPRM
New repository Primary space
TCPCRSDC
New repository DATACLASS
TCPCRSEC
New repository Secondary space
TCPCRSMC
New repository MGMTCLASS
TCPCRSPC
New repository SPACE unit
TCPCRSSC
New repository STORCLASS
TCPCRUNT
New repository UNIT
TCPCRVOL
New repository Volume name
TCPCSBRK
Split line at LineFeed flag
TCPCSCIP
Create scripts with connections grouped by Client IP address.
TCPCSCPT
Create scripts with connections grouped by Client IP port.
TCPCSDBG
Debug Flags “00000000”
TCPCSDD1
EXECSRC dataset name
TCPCSDD2
LOADLIB dataset name
TCPCSDS
Store details together with client and/or server tags or separately
(1...3).
TCPCSEDA
End Time End day (1...31)
TCPCSEHR
End Time End hour (0...23)
TCPCSEMI
End Time End minute (0...59)
TCPCSEMO
End Time End month (1...12)
TCPCSESE
End Time End seconds (0...59)
TCPCSEYR
End Time End year YYYY
TCPCSFMT
Suppress protocol formatting
TCP Script Create Parameters
Table C-1. TCP/IP Script Create Parameters
Parameter
Description
TCPCSGRP
Script Grouping 1/2/3
TCPCSI1
Input repository FIRST number
TCPCSI2
Input repository LAST number
TCPCSICL
Data from client ALL/number
TCPCSIDN
Input Repository specification
TCPCSISL
Data from server ALL/number
TCPCSO1
Output repository FIRST number
TCPCSO2
Output repository LAST number
TCPCSOBD
Combined detail dataset name
TCPCSOBN
Combined detail DDname
TCPCSOBP
Combined detail member prefix
TCPCSOBQ
Combined detail required flag
TCPCSOBS
Combined detail member suffix
TCPCSOCD
Client detail dataset name
TCPCSOCN
Client detail DDname
TCPCSOCP
Client detail member prefix
TCPCSOCQ
Client detail required flag
TCPCSOCS
Client detail member suffix
TCPCSODN
Output Repository specification
TCPCSOLD
Log dataset name
TCPCSOLP
Log member prefix
TCPCSOLQ
Log required flag
TCPCSOLS
Log member suffix
TCPCSOPD
Output script PDSE name
TCPCSOPP
Output script member prefix
TCPCSOPQ
Output script required flag
TCPCSOPS
Output script member suffix
TCPCSOSD
Server detail dataset name
TCPCSOSN
Server detail DDname
TCPCSOSP
Server detail member prefix
TCPCSOSQ
Server detail required flag
TCPCSOSS
Server detail member suffix
TCPCSPRO
Create Script by Protocol
TCPCSQDS
Created Script Description
TCPCSQER
Error event notification ‘/’
TCPCSQNR
Normal event notification ‘/’
TCPCSQTD
Trans detail data A2E flag
TCPCSQTM
Suppress timestamps flag
TCPCSQTS
Trans sample data A2E flag
C-3
C-4
Hiperstation for Mainframe Servers User Guide
Table C-1. TCP/IP Script Create Parameters
Parameter
Description
TCPCSRD
Create Details flag
TCPCSRL
Create Log flag
TCPCSRS
Create Script flag
TCPCSSDA
Start Time day (1...31)
TCPCSSHR
Start Time hour (0...23)
TCPCSSIP
Create scripts with connections grouped by Server IP address
TCPCSSMI
Start Time minute (0...59)
TCPCSSMO
Start Time month (1...12)
TCPCSSPT
Create scripts with connections grouped by Server IP port
TCPCSSRP
Subset Repository wanted flag
TCPCSSSE
Start Time seconds (0...59)
TCPCSSUB
Processing option 1/2/3/X/x
TCPCSSYR
Start Time year YYYY
TCPCSUPR
Force messages uppercase flag
TCPCSWD
Replace Details flag
TCPCSWL
Replace Log flag
TCPCSWS
Replace Script flag
TCPUSER
Invoking user ID
D-1
Appendix D.
Customer Support Diagnostics
App D
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 D-1).
Figure D-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 D-2 shows a sample
report.
D-2
Hiperstation for Mainframe Servers User Guide
Figure D-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 ********************************
G-1
Glossary
This glossary gives a brief description of
Hiperstation for Mainframe Servers 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.
APPC script. Formatted human-readable data
generated from a capture repository. You can generate scripts from selected sessions or from entire
capture repositories.
APPC summary report. A report that provides
performance statistics and comparison results.
APPC unattended playback statements. Statements that provide processing rules and define
what conversations (scripts) to play back.
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.
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.
CNOS. Change Number of Sessions.
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.
CPIC. Common Programming Interface for Communications.
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.
data stream. A sequence of digitally encoded datapacket signals that send or receive information in
transmission. Global recording does not support
VTAM compressed data streams.
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.
G-2
Hiperstation for Mainframe Servers User Guide
DBCS. Double Byte Character Set. Used primarily
to display Japanese Kanji characters during 3270
testing.
line command. Command that is typed directly
on the line to be processed.
LUW. Logical Unit of Work.
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
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.
GMT. Greenwich Mean Time.
IMS. Information Management System. IBM’s
hierarchical database information management
system and transaction processor capable of managing complex databases and networks.
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.
masking. A function that prevents comparison of
specified TCP/IP 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.
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.
PIU. Path Information Units.
PDS. Partitioned Dataset.
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.
G-3
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.
playback. A function that can be run in unattended mode for batch testing of applications that
use APPC or TCP/IP.
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.
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.
STIME. Start time. STIME indicates the date and
time value that controls the activation of the
ALLOCATE statement. STIME is used on the CONTROL statement.
storage. A functional unit into which data can be
placed and from which it can be retrieved.
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.
TCP/IP script. Formatted human-readable data
generated from a capture repository. You can script
only the repository segments needed rather than
the entire capture repository.
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 SOCKET statement.
THPCT. A parameter that sets a think time percentage. This parameter is only valid in conjunction with THOPT(2|3). For example, the statement:
ALLOCATE … THOPT(2) THPCT(25) plays back
the script at 25 percent of the original think time
recorded in the script. The APPC data sent to the
partner by Hiperstation for Mainframe Servers is
sent after waiting for 25 percent of the amount of
time recorded in the script. THPCT values of less
than 100 cause the script to be played back with a
think time less than originally recorded. THPCT
values greater than 100 cause the script to be
played back with a think time greater than originally recorded. THPCT in APPC is on the ALLOCATE/ACCEPT statements. THPCT in TCP/IP is on
the CONTROL statement and/or the SOCKET
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).
unattended mode processing. An option for
APPC testing that will build JCL used for unattended playback. This option is not in or available
for TCP/IP options.
unattended playback. A function that allows
you to play back scripts to test TCP/IP 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 indicates that ALLOCATE statements start at the time interval set on
their respective STIME keywords, rather than at
the beginning of the playback job. USESTIME provides control over the start of conversations and
the timing of the data sent from each conversation. USESTIME is used 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.
XLN. Exchange Log Name.
XML. Extensible Markup Language. A language
that is capable of describing many different kinds
G-4
Hiperstation for Mainframe Servers User Guide
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
Numerics
3270
add Global Recording request, 2-11
A
ACCEPT statement, APPC, 4-2, 4-22, 4-54
connection parameters, 3-4
documentation parameters, 3-5
LUW parameters, 3-6
parameters, 3-4
security parameters, 3-6
timing parameters, 3-6
accessibility
font and font size, xxiii
keyboard shortcuts, xxiv
windows accessibility features, xxiii
activity grouping, 7-11
ADD function, 2-42
add Global Recording request
3270, 2-11
APPC, 2-11
TCP/IP, 6-9
administrator access
Global Recording, APPC, 2-13, 2-16
monitor requests, TCP/IP, 6-10
Adobe Reader, xvii
allocate datasets
for logs, scripts, details, 7-17
for repositories, 7-19
ALLOCATE statement, APPC, 4-2, 4-22, 4-44, 4-54
connection parameters, 3-4
documentation parameters, 3-5
LUW parameters, 3-6
parameters, 3-4
security parameters, 3-6
timing parameters, 3-6
<ALLOCATE> tag, APPC, 4-12
allocation parameters, TCP/IP, 6-16
<APPC> protocol parameter, 2-19
APPC statements
ACCEPT, 4-22
ALLOCATE, 4-22
APPCGRP, 4-29
CACHEXCL, 4-20
CACHINCL, 4-20
COMPANY, 4-21
CONTROL, 4-18
SCRIPT, 4-32
unattended playback statement descriptions, 4-16
unattended processing statements, 3-2
APPC testing
playback, 4-2
REXX variables, application data, 4-36
REXX variables, environment data, 4-36
REXX variables, error determination, 4-35
APPCGRP statement, APPC, 4-29, 4-54
ASCII
from EBCDIC translation, 2-20
to EBCDIC translation, 7-18
B
background processing, 2-14
batch
edit job for script/subset repository creation, 7-20
batch interface, APPC, 2-17
BookManager
documentation output, xviii
known issues, xix
browse scripts, 7-21
BRULE macro, 7-34
BRULES macro, 7-34
C
CACHE EXCLUDE statement, APPC
parameters, 3-8
CACHE INCLUDE statement, APPC
parameters, 3-8
CACHEXCL statement, APPC, 4-20
CACHINCL statement, APPC, 4-20
cancel
Global Recording request, APPC, 2-10, 2-41
Global Recording request, TCP/IP, 6-8, 6-20
CANCEL function, 2-42
cancel requests, 2-10
capture criteria
APPC, 2-3
output options, 2-6
capture file
allocation parameters, 2-27
APPC
See also repository datasets
specification tags, APPC, 2-49
capture file parameter tags, 2-26, 6-16
capture files
segmented, 2-28
capture parameter tags, scheduled, 2-26
capture repository, TCP/IP, 6-1, 7-1
Capture Segment Summary, 2-50, 7-1
client IP addresses, 7-10
<CLIENT> tag, TCP/IP, 7-25
CMCFM, 4-11
CMCFMD, 4-12
CMCRTS, 4-13
CMDEAL, 4-12
CMFLUS, 4-12
CMPTR, 4-13
CMSEND, 4-13
CMSERR, 4-14
CMSNDX, 4-14
COLLECT statement, TCP/IP, 9-16, A-1
combined detail dataset, 12-6
combined detail tags, APPC
I-2
Hiperstation for Mainframe Servers User Guide
allocation parameters, 2-35
COMPANY statement, APPC, 4-21
parameters, 3-8
Compuware
mailing address, xxvi
<CONFIRM> tag, APPC, 4-11
<CONFIRMED> tag, APPC, 4-12
connect filters
DB2, 7-4
IMS, 7-5
<CONNECT> tag, TCP/IP, 7-22
connection log, 7-1, 7-15, 9-2, 12-10
CONNECTION STATUS, B-2
CONNECTION table, A-7
<CONTENT> tag
APPC, 4-5
TCP/IP
detail data, 7-15
for external data, 7-29
for inline data, 7-28
control script tags, 4-4
control script tags, APPC
ALLOCATE, 4-12
CONFIRM, 4-11
CONFIRMED, 4-12
CONTENT, 4-5
DEALLOCATE, 4-12
DETAIL, 4-5
ERROR, 4-6
EXTDATA, 4-6
EXTRACT, 4-10
FLUSH, 4-12
INBOUND, 4-6
OUTBOUND, 4-7
PIU, 4-7
PREPARE_TO_RECEIVE, 4-13
REPLACE, 4-7
REQUEST_TO_SEND, 4-13
SEND_DATA, 4-13
SEND_ERROR, 4-14
SEND_EXPEDITED_DATA, 4-14
TIME, 4-11
UNKNOWN, 4-11
VERSION, 4-5
CONTROL statement, APPC, 4-18
parameters, 3-3
CONTROL statement, TCP/IP, 9-3, 9-18
reporting, 10-3
conversation log, 12-5
conversation log dataset, 12-6
conversation log, APPC, 2-7, 2-31–2-32, 4-2, 4-22, 4-55
allocation parameters, 2-33
subparameters, 2-32
create JCL, 4-56
create scripts, 2-12, 7-1, 9-3
filter criteria, 7-1
create TCP/IP scripts option
access, 7-1
CTG
filters, 7-7
suppress CONTENT data formatting, 7-18
<CTG> tag, TCP/IP, 7-26
custom reports
TCP/IP, A-1
custom reports, TCP/IP, 10-9
customer support, xxv
Customer Support Diagnostic Report, G-1
diagnostic report, D-1
D
datasets
output, 7-16
datastreams
playback, APPC, 4-2
DB2
connect filters, 7-4
message pipelining, 9-21
SQL statement, 7-26
suppress CONTENT data formatting, 7-18
<DB2> tag, TCP/IP, 7-26
DCIADXL6 sample, 2-20
DCIJCL, APPC
check status of requests, 2-39
create Global Recording request, 2-18
generate a parameters skeleton, 2-43
manage Global Recording requests, 2-40
retrieve parameters from a request, 2-42
DCIJCL, TCP/IP
check status of requests, 6-19
create Global Recording request, 6-10
generate a parameters skeleton, 6-22
manage Global Recording requests, 6-20
retrieve parameters from a request, 6-21
DCIPROC, 2-40
<DEALLOCATE> tag, APPC, 4-12
detail data, APPC
script tags, 4-14
script tags syntax, 4-15
detail data, TCP/IP
access MAPD help panels, 7-41
DDname, 7-17
edit with File-AID/MVS, 7-38
number of bytes recorded, 7-25
storage, 7-14
translate ASCII to EBCDIC, 7-18
troubleshoot message mapping, 7-41
detail datasets
LRECL, 7-17
<DETAIL> tag
APPC, 4-5
TCP/IP, 7-17, 7-21
disable
Global Recording request, APPC, 2-11, 2-41
Global Recording request, TCP/IP, 6-9, 6-20
<DISCONNECT> tag, TCP/IP, 7-24
documentation
master index, xvii
E
EBCDIC
from ASCII translation, 7-18
to ASCII translation, 2-20
ECI
filters, 7-8
suppress CONTENT data formatting, 7-18
<ECI> tag, TCP/IP, 7-27
edit scripts, 4-4
EHSBATCH program, 4-1
end date and time
Global Recording (APPC), 2-4
environment data REXX variables, 4-36
I-3
environment options
playback, 8-5
error determination
REXX variables, APPC, 4-35
error event notification
Global Recording, 2-5
error messages
suppress, 8-9
<ERROR> tag, APPC, 4-6
event notification, 2-5
event notification tags
recording options, 2-49
example
data-driven testing, APPC, 4-44
example jobs
unattended playback, APPC, 4-40
<EXTDATA> tag, APPC, 4-6
<EXTRACT> tag
APPC, 4-10
F
FEEDBACK DD, 2-18
APPC request keys, 2-40
TCP/IP request keys, 6-19
VIEW, 2-42–2-43, 6-22
File-AID/MVS
edit TCP/IP detail data, 7-38
filter IP addresses, 7-9
filters
criteria, 7-1
CTG, 7-7
ECI, 7-8
IPv4, 7-10
IPv6, 7-10
first number
APPC, 12-3
TCP/IP, 12-8
<FLUSH> tag, APPC, 4-12
font and font size, accessibility, xxiii
force
Global Recording request, 2-4–2-5
Global Recording request, APPC, 2-10, 2-41
Global Recording request, TCP/IP, 6-9, 6-20
FORCE command, 2-28
FORCE function, 2-42
foreground processing, 2-14
FrontLine, xviii
support Web site, xxv
G
general request parameters, 2-25, 6-15
general script criteria tags, 2-29
generate APPC unattended processing statements, 3-2
getting help, xxv
global CSI dataset, D-1
Global Recording
accessing administration, 2-16
error event notification, 2-5
Global Recording (APPC), 2-1, 2-10
add requests, 2-2, 2-11
administrator access, 2-16
allocate dataset, 2-6
batch interface, 2-17
cancel requests, 2-41
capture file parameter tags, 2-26
Capture Segment Summary, 2-50
combined detail tags, 2-34
conversation log tags, 2-32
create include/exclude lists, 2-16
create request, 2-2, 2-17
create scripts, 2-43
define manager lists, 2-16
disable request, 2-41
disable requests, 2-11
end date and time, 2-4
force request, 2-41
force requests, 2-10
general request parameters, 2-25
general script criteria tags, 2-29
inbound detail tags, 2-36
KEYS function, 2-39
manage requests, 2-40
merge capture repositories, 2-52
monitor requests, 2-3, 2-10
outbound detail tags, 2-38
parameter syntax, 2-18
protocol parameter, 2-24
record all sessions, 2-14
recording option parameter tags, 2-28
recording script tags, 2-29
request activation, 2-2
request parameters, 2-20
request status, 2-39
restart request, 2-41
restart requests, 2-11
retrieve parameters from an existing request, 2-42
review captured activity, 2-42
scheduled capture parameter tags, 2-26
script create parameters, 2-44
script creation option tags, 2-31
start date and time, 2-4
stop request, 2-41
stop requests, 2-11
summary report, 4-39, 5-1
TN3270, 2-3
trace conversation, 4-29
troubleshoot failed requests, 2-50
unattended processing, 3-1
update a request, 2-41
update requests, 2-11
VIEW, 2-42
view active sessions, 2-11
Global Recording (TCP/IP)
add and manage recording requests, 6-1
add request, 6-1, 6-9
administrator access, 6-10
allocation parameters, 6-16
batch interface, 6-10
cancel a request, 6-20
cancel request, 6-8
capture file parameter tags, 6-16
check status of requests, 6-19
collect data, 6-4
collect data filtering, 6-3
create request, 6-10
create scripts, 7-1
create scripts option, 7-1
data collection, A-1
data to keep tags, 6-17
disable a request, 6-20
I-4
Hiperstation for Mainframe Servers User Guide
disable request, 6-9
force a request, 6-20
force request, 6-9
general request parameter tags, 6-15
KEYS, 6-19
manage existing requests, 6-20
masking statements, 10-7
merge capture repositories, 6-23
monitor requests, 6-3, 6-8
parameter syntax, 6-11
protocol parameter, 6-15
recording option parameter tags, 6-17
reporting, 10-1
reporting tables, A-1
request parameter syntax, 6-11
request parameters, 6-13
restart a request, 6-20
restart request, 6-9
retrieve parameters from existing request, 6-21
scheduled capture parameter tags, 6-15
segment capture repositories, 6-5
start date and time, 6-3
stop a request, 6-20
stop request, 6-9
subset repositories, 7-1
suppress CONTENT data formatting, 7-18
switch repository segments, 6-9, 6-21
SYSPLEX job input parameters, 6-24
TCP capture filter tags, 6-18
TN3270, 6-2
troubleshoot failed requests, 6-23
unattended playback, 9-1
update a request, 6-21
update request, 6-9
VIEW, 6-21
view request, 6-9
Global Recording Manager, 2-1
lists, 2-16
GMT (Greenwich Mean Time), 2-51
grouping
activity, 7-11
H
help, Hiperstation customer support, xxv
hierarchy, APPC playback statements, 4-22
HTML
reports, TCP/IP, 10-13
HTML documentation files, xviii
HTML Exception Report, 10-6, 10-17
HTTP
message pipelining, 9-8, 9-15
I
IBM
BookManager documentation output, xviii
IEBGENER utility, 2-20, 2-45
Softcopy Reader, xviii
IEBGENER utility, 2-20, 2-45
IMS
connect filters, 7-5
datastore, 7-28
suppress CONTENT data formatting, 7-18
<IMS> tag, TCP/IP, 7-27
inbound detail dataset, 12-6
inbound detail tags, APPC
allocation parameters, 2-37
parameters, 2-36
<INBOUND> tag, APPC, 4-6
include/exclude lists
Global Recording, APPC, 2-16
index, master, xvii
informational messages
unattended playback, 4-33
introduction to this guide
notation conventions, xx
IP address
client, 7-3, 7-23
server, 7-3, 7-23
IP address filters, 7-9
IPv4 filters, 7-10
IPv4 IP address filter, 7-10
IPv6 filters, 7-9
IPv6 IP address filter, 7-10
ISPF
EDIT screen, 3-11
keylist utility, 7-39
view, 7-39
J
JCL
generate for unattended statements, 3-10
JCL for unattended playback, 4-1
PERSONAL LIBRARIES, 9-25
run sample reports, 10-2
SYSPLEX sample, 2-52
SYSPLEX samples, 6-23
K
key sharing logic, APPC, 4-49
keyboard shortcuts, accessibility, xxiv
KEYS command, 6-19, 7-39
KEYS function, 2-39
parameters, 2-40
L
last number
APPC, 12-3
TCP/IP, 12-8
length determination macros, 7-33
LOCPOS macro, 7-34
log datasets
LRECL, 7-17
LRECL
for detail datasets, 7-17
log datasets, 7-17
script datasets, 7-17
I-5
M
macros
data replacement offset and length determination,
7-33
mailing address, xxvi
manager lists
Global Recording, 2-16
MAPD
access help panels, 7-41
assign a PF key, 7-39
detail dataset messages, 7-42
general information and error messages, 7-42
map entire data file, 7-40
map individual message, 7-39
script dataset messages, 7-41
troubleshoot message mapping, 7-41
masking, TCP/IP, 10-6
statements, 10-7
merge repositories, 2-52
merge TCP/IP repositories, 6-23
message
pipelining, 9-8, 9-15
troubleshoot message mapping, 7-41
MESSAGE table, A-9
messages
event notification, APPC, 2-29
expected and actual, 10-19
unattended playback, informational, 4-33
monitor requests, APPC, 2-1, 2-6, 2-10
monitor requests, TCP/IP, 6-8
administrator access, 6-10
N
notation conventions, screens and commands, xx
O
offset macros, 7-33
options
playback, interactive, 8-5
outbound detail dataset, 12-6
outbound detail tags, APPC
allocation parameters, 2-38
parameters, 2-38
<OUTBOUND> tag, APPC, 4-7
output datasets, 7-16
output requirements, 7-14
overview, Mainframe Servers, 1-1
P
parameters
TCP script create, C-1
parameters, APPC
general request, 2-25
generate Global Recording request skeleton, 2-43
Global Recording request syntax, 2-18
retrieve parameters from Global Recording requests, 2-42
script creation, 2-44
parameters, TCP/IP
generate Global Recording request skeleton, 6-22
retrieve parameters from Global Recording requests, 6-21
pipelining, 8-10
<PIU> tag, APPC, 4-7
PLAYBACK
submit a job, 9-27
playback
return codes, 9-28
Playback Error Summary, 9-30
TCPRUN JCL sample, 9-30
PLAYBACK table, A-1
playback, APPC, 4-56
control parameters, 4-3
control script tags, 4-4
create control statements, 4-55
datastreams, 4-2
edit scripts, 4-4
ignore traffic, 4-7
review job logs, 4-57
REXX variables, 4-36
think-time parameters, 4-3
timing, 4-3
timing parameters, 4-3
Playback, interactive, 8-1
basic reports, 8-15
change options, 8-5
create new, 8-2
custom reports, 8-16
delete, 8-14
environment options, 8-5
generate from script log, 8-4
generate reports, 8-14
script options, 8-11
select previously saved, 8-14
socket options, 8-8
submit for execution, 8-12
suppress error messages, 8-9
playback, TCP/IP, 9-1
diagnostic parameters, 9-7, 9-21
script caching performance, 9-4, 9-19
timing parameters, 9-7, 9-13
unattended, 9-1
unsynchronized, 7-41
wait time, 9-21, 9-23
port
client, 7-3, 7-23
server, 7-3, 7-23
prefix
for output datasets, 7-16
<PREPARE_TO_RECEIVE> tag, APPC, 4-13
PRGLOG DD, 6-23
processing
background, 2-14
foreground, 2-14, 7-20
TCP/IP script options, 7-19
protocol parameter
APPC, 2-24, 2-49
TCP/IP, 7-23, 9-15
protocol parameter, TCP/IP, 6-15
PTFS, D-1
I-6
Hiperstation for Mainframe Servers User Guide
R
recording filters
create, 12-7
recording options, 12-3
recording, APPC
allocation parameters, 2-30
errors, 2-50
option parameter tags, 2-28
record all sessions, 2-14
script tags, 2-29
XML parameters, 2-19
recording, TCP/IP
add and manage recording requests, 6-1
option parameter tags, 6-17
switch repository segments, 6-9
relational operators
binary, 10-8
character, hex, packed decimal, 10-8
DB2, 7-5, 7-7–7-9
<REPLACE> tag, 7-27
APPC, 4-7
TCP/IP, 7-26, 7-32
offset and length determination macros, 7-33
report control library, 10-2, 10-16
REPORT statement
TCP/IP, A-1
reporting, APPC, 5-1
elapsed time, 5-3
inbound performance, 5-2
outbound performance, 5-2
report generation parameters, 2-51
REXX log, 5-3
summary report, 5-1
reporting, TCP/IP, 10-1
basic reports, 10-17
CONTROL statement, 10-3
create and manage control assets, 10-2
field definitions, B-1
HTML Exception Report, 10-6, 10-17
input statements, 10-1
Playback Error Summary, 9-30
prepare reporting job, 10-13
REPORT statements for basic reports, 10-6, 10-9
REPORT statements for custom reports, 10-9
sample jobs, 10-1, 10-13
SET statements, 10-15
statistic fields, A-1
submit job, 10-16
reports
Capture Segment Summary, 2-50
Customer Support Diagnostic Report, D-1
generate playback reports, 8-14
HTML Exception Report, 10-6, 10-17
Response Time Report, 10-9
Response Time Summary, 10-13, 10-22
Script Timing Report, 10-9
Script Timing Summary, 10-14, 10-20
repositories
merge APPC capture repositories, 2-52
merge TCP/IP repositories, 6-23
review option, 2-6
review processing options, 2-13
review sessions list, 2-1
segmenting, 6-5
storing captured information, 2-4
switch segments, 6-9
repository datasets
delete, 2-10, 2-41, 6-8, 6-20
segment the repository, 2-5
switch segments, 2-41, 6-21
view session list, 2-12
wildcard characters, 2-5
repository set, 12-3
request key
APPC, 2-39
TCP/IP, 6-19
Request Parameter List (RPL), 4-35
request status, 2-39
<REQUEST_TO_SEND> tag, APPC, 4-13
Response Time Report, 10-9
Response Time Summary, 10-13, 10-22
restart
Global Recording request, APPC, 2-11, 2-41
Global Recording request, TCP/IP, 6-9, 6-20
return codes, APPC
custom, 4-33
unattended playback, 4-32
return codes, TCP/IP
playback, 9-28
review
captured activity, APPC, 2-12, 2-42
repository, APPC, 2-12
script create criteria, APPC, 2-15
review repository
processing options, APPC, 2-13
session list, APPC, 2-14
REXX log, APPC, 5-3
REXX variables, APPC, 4-35, 4-39
application data variables, 4-36
environment data variables, 4-36
error determination, 4-35
REXX variables, TCP/IP, 7-35–7-38
S
sample data
translate ASCII to EBCDIC, 7-18
sample message report, 10-4
samples, APPC
MCSREPT, 2-51
SCAPPC, 2-45
samples, TCP/IP
reports, 10-2, 10-13
SYSPLEX, 6-23
scheduled capture, APPC
parameter tags, 2-26
scheduled capture, TCP/IP
parameter tags, 6-15
script
content, 12-4
script create
options, 12-5
settings, 12-4
script creation option tags, 2-31
script language, REXX variables, 4-35–4-36
script log
generate playback, 8-4
SCRIPT statement, 9-1
SCRIPT statement, APPC, 4-32
parameters, 3-7
SCRIPT statement, TCP/IP, 9-15, 9-25
I-7
SCRIPT table, A-5
script tags, APPC
CONFIRM, 4-11
CONFIRMED, 4-12
CONTENT, 4-5
control script tags, 4-4
DETAIL, 4-5
ERROR, 4-6
EXTDATA, 4-6
FLUSH, 4-12
INBOUND, 4-6
OUTBOUND, 4-7
PIU, 4-7
PREPARE_TO_RECEIVE, 4-13
REPLACE, 4-7
REQUEST_TO_SEND, 4-13
script creation options, 2-31
SEND_DATA, 4-13
SEND_ERROR, 4-14
SEND_EXPEDITED_DATA, 4-14
TIME, 4-11
UNKNOWN, 4-11
verb script tags, 4-11
script tags, TCP/IP
CLIENT, 7-25
CONNECT, 7-22
CONTENT for external data, 7-29
CONTENT for inline data, 7-28
CTG, 7-26
DB2, 7-26
DETAIL, 7-21
DISCONNECT, 7-24
ECI, 7-27
IMS, 7-27
REPLACE, 7-32
SERVER, 7-25
TIME, 7-22
VERSION, 7-21
Script Timing Report, 10-9
Script Timing Summary, 10-14, 10-20
scripts
generate APPC, 2-14
scripts, APPC
create criteria, 2-15
criteria tags, 2-50
define script criteria, 2-6
edit, 4-4
errors, 2-50
generate from selected sessions, 2-14
not found messages, 4-32
PIU traffic, 2-9, 12-5
play concurrently, 4-54
play serially, 4-54
prevent automatic creation, 2-5
restrict datasets, 3-11
script creation parameters, 2-44
select processing option, 2-15
short CPIC format, 2-9, 12-5
SNA service transactions, 2-9, 12-6
suppress time stamps, 2-9, 12-5
suspend creation, 2-6
verb script tags, 4-11
scripts, TCP/IP
allocate datasets for logs, scripts, details, 7-17
browse, 7-21
create, 7-1
edit, 7-29
manipulate playback, 7-29
message pipelining, 9-25
minimize script size, 7-14
options, 7-17
processing options, 7-19
source repositories, 7-13
stress test, 7-29
security monitoring, 11-1
audit trail, 11-2
<SEND_DATA> tag, APPC, 4-13
<SEND_ERROR> tag, APPC, 4-14
<SEND_EXPEDITED_DATA> tag, APPC, 4-14
server IP address, 7-10
<SERVER> tag, TCP/IP, 7-25
SET statements in TCP/IP reporting jobs, 10-15
side A LU, 12-2
side A Netid, 12-2
side B LU, 12-2
side B Netid, 12-2
skeleton
APPC Global Recording request parameters, 2-43
TCP/IP Global Recording request parameters, 6-22
SMP/E
global CSI dataset, D-1
target zone, D-1
socket options
Playback, interactive, 8-8
socket timing options, 8-9
SOCKETS statement, TCP/IP, 9-1, 9-8, 9-22
SOCKETS table, A-3
SQL statement, 7-26
SQQFSAMP, 2-18, 2-39–2-40, 2-42–2-43
start and end date and time, 12-2
start date and time
Global Recording (APPC), 2-4
Global Recording, TCP/IP, 6-3
script creation, TCP/IP, 7-23
statement descriptions, unattended mode
ACCEPT, 4-22
ALLOCATE, 4-22
APPCGRP, 4-29
CACHEXCL, 4-20
CACHINCL, 4-20
COMPANY, 4-21
CONTROL, 4-18
SCRIPT, 4-32
statements, TCP/IP
define for server testing, 9-3
stop
Global Recording request, APPC, 2-11, 2-41
Global Recording request, TCP/IP, 6-9, 6-20
STOP command, 2-6
STOP function, 2-42
storage requirements, APPC
unattended playback, 4-1
stress test
unattended playback, APPC, 4-41
subset repositories, 7-1
allocate datasets, 7-19
datasets, 7-19
suffix
for output datasets, 7-16
summary report, APPC, 4-39, 5-1
elapsed time, 4-40, 5-3
inbound performance, 4-40, 5-2
outbound performance, 4-40, 5-2
suppress CONTENT data formatting, TCP/IP, 7-18
switch TCP/IP repository segments, 6-9, 6-21
syntax
I-8
Hiperstation for Mainframe Servers User Guide
conventions, xxi
diagrams, xxi
SYSIN DD statement, 2-18, 2-44
SYSPLEX
job input parameters, 2-54
SYSPLEX job input parameters, 6-24
SYSTSIN DD statement, 2-18, 2-40, 2-44
T
tables
CONNECTION, A-7
MESSAGE, A-9
PLAYBACK, A-1
SCRIPT, A-5
SOCKETS, A-3
TCP/IP
basic reports, 8-15
custom reports, 8-16
TCP/IP script tags
syntax rules, 7-30
TCP/IP unattended playback, 9-1
COLLECT statement, 9-16
CONTROL statement, 9-3, 9-18
define statements for client testing, 9-18
SCRIPT statement, 9-15, 9-25
SOCKETS statement, 9-8, 9-22
TCPIP
playback return codes, 9-28
testing, APPC
data-driven example, 4-44
extract the key, 4-47
play back testing scripts, 4-47
replace the key, 4-51
share the key, 4-48
think time
APPC playback parameters, 4-3
TCP/IP, 9-7, 9-13
unattended mode options, 4-28
time stamp
suppress, APPC, 2-32
suppress, TCP/IP, 7-18
<TIME> tag
APPC, 4-11
TCP/IP, 7-22
TN3270
record activity, 2-3
recording, 6-2
trace
APPC conversation, 4-29
TCP/IP, 9-7, 9-14, 9-21, 9-24
translate
from ASCII to EBCDIC, 7-18, 7-23
from EBCDIC to ASCII, 2-20
troubleshoot
Global Recording batch jobs, 2-50, 6-23
playback error summary, 9-30
U
unattended playback, APPC
ACCEPT statement, 4-22
ALLOCATE statement, 4-22
APPCGRP statement, 4-29
CACHEXCL statement, 4-20
CACHINCL statement, 4-20
COMPANY statement, 4-21
CONTROL statement, 4-18
conversations started at intervals, 4-41
conversations started in various ways, 4-43
example jobs, 4-40
lengthened conversation, 4-42
multiple jobs, 4-41
procedures for playback, 4-1
return codes, 4-32
statement sequencing, 4-16
statement summary, 4-17
stress test, 4-41
submit batch job, 4-1
two related conversations, 4-42
unattended playback, TCP/IP, 9-1
create control statements, 9-1
define statements for client testing, 9-18
diagnostic parameters, 9-7
message pipelining, 9-8, 9-15
Playback Error Summary, 9-30
repeat playback, 9-12
script caching performance, 9-4, 9-19
SCRIPT statement, 9-25
SOCKETS statement, 9-8, 9-22
statement hierarchy, 9-2
timing parameters, 9-7, 9-13
unattended processing, APPC, 3-1
build statements and JCL, 3-8
generate statements, 3-2
generation restrictions, 3-11
restrict specified script datasets, 3-11
SCRIPT statement, 4-32
set unattended statement parameters, 3-2
start, 3-1
storage requirements, 4-1
<UNKNOWN> tag, APPC, 4-11
update
Global Recording request, APPC, 2-11
Global Recording request, TCP/IP, 6-9, 6-21
UPROCS statement, 2-40, 2-42, 2-44
V
verb script tags, 4-11
<VERSION> tag
APPC, 4-5
TCP/IP, 7-21
view
Global Recording active session, APPC, 2-11
Global Recording request, TCP/IP, 6-9
VIEW function, 2-42–2-43, 6-21–6-22
VTAM
compressed data streams, 2-17
logical unit name, 2-3
logon mode name, 2-4
network ID, 2-4
PIU, 2-32
W
wildcards
for creating repositories, 7-19
I-9
segment a repository, 2-5, 6-5
select source repositories, 7-14
X
XML
KEYS, 2-40
parser, 2-19
I-10
Hiperstation for Mainframe Servers User Guide