If you have enabled the collection and writing of HSF records to disk, details of individual transaction runs are written
to comma-separated-values files, one HSF record per line.
These files are named
cashsf-a.csv and
cashsf-b.csv, and are located in the system directory. One of these file is the active file at any one time, and once the active file
is full, or when you click the
Switch button in the
HSF Data section of the ESMAC Control page, records are written to the alternate file, until the maximum file size is reached or the
Switch button is clicked again.
The
.csv files produced in this version of the product have the following header, and contain the following fields:
#HSFVer=05;Custom=xx;CicsFiles=xx;TSQ=xx;TDQ=xx;SUBTASK_ID=yy
Type,PID,Task,Date,Time,Tran/Job,User/DDName/CC,LU/Step,Prog/DSName,Latent/ReadCount,Resp/WriteCount,
API/RewriteCount,SQL/DeleteCount,IMS/DSDeleteCount,DSType,DSAccessType,Custom01,File01,Count01,Time01,TS01,Count01,Time01,TD01,Count1,Time1
The number of Custom, File, TS and TD fields correspond to the
xx values in the header, which are set according to the ES_HSF_CFG environment variable.
When setting the variable, values must be set within a permissible range, otherwise the default value is used for that field.
Also, if the field name is not explicitly set within the variable, its default value is used. The ranges and defaults are:
Field name
|
Range
|
Default
|
CUSTOM
|
0-5
|
0
|
CICSF
|
0-20
|
5
|
TSQ
|
0-20
|
5
|
TDQ
|
0-20
|
5
|
SUBTASK
|
00-FF
|
00
|
For example:
ES_HSF_CFG=CUSTOM=2;CICSF=10;TSQ=32;SUBTASK=F1 generates 2 custom fields,
10 CICS file fields, 5 TSQ fields, and 5 TDQ fields and trace id x’F1’ is used to generate SUBT records.
Field types
- Type
- The type of record. One of:
- CICS - for CICS transactions
- IMS - for IMS transactions
- JCL - JCL job start, step completion and job end events
- JCLF - for mainframe file events
- SUBT - for custom sub tasks
- WEB - for Web services
- PID
- Process ID of the SEP which ran the task.
- Task
- A unique task number.
- Date
- The date the task started to run, in the format
yyyymmdd.
- Time
- The time the task started to run, in the format
hhmmssttt (where
ttt denotes thousandths of a second).
- Tran/Job
- The name of task:
- For CICS and IMS tasks, the transaction ID.
- For JCL and JCLF, the job name.
- For Web services, the service name.
- User/DDName/CC
-
- For all records except JCL and JCLF, the ID of the user that initiated the task.
- For JCL STEP and JCL JOBEND records, the related condition code.
- For JCL JOBSTART records, the user that submitted the job.
- For JCLF records, the DDName of a file associated with the job step.
- LU/Step
-
- For CICS tasks, the logical unit or net name (the identifier of the terminal used to initiate the task).
- For JCL JOBSTART records, the JOBSTART(CLASS=jobclass) indicator.
- For JCL STEP records, the step name.
- For JCL JOBEND records, the JOBEND indicator.
- For JCLF, the step name.
- Prog/DSName
-
- For CICS and IMS tasks, the program name.
- For JCL JOBSTART and JOBEND records, the job number.
- For JCL STEP records, the program name.
- For JCLF records, the name of the dataset.
- Latent/ReadCount
-
- The time, in milliseconds (ms), between Enterprise Server receiving the request and the task beginning to run.
This applies to all records except JCLF records.
- For JCLF records, the number of reads performed against the file during the related step.
- Resp/WriteCount
-
- The time, in milliseconds (ms), that the task ran for (not including latency time).
This applies to all records except JCLF records.
- For JCLF records, the number of write operations performed against the file during the related step.
- API/RewriteCount
-
- The time, in milliseconds (ms), spent in CICS API (EXEC CICS statements) for this task.
This applies to all records except JCLF records.
- For JCLF records, the number of rewrites performed against the file during the related step.
- SQL/DeleteCount
-
- The time spent, in milliseconds (ms), in SQL API (EXEC SQL statements) for this task.
This applies to all records except JCLF records.
- For JCLF records, the number of record deletes performed against the file during the related step.
- IMS/DSDeleteCount
-
- The time spent, in milliseconds (ms), in IMS DL/I API for this task.
This applies to all records except JCLF records.
- For JCLF records, the number of times the related dataset was deleted during the current step.
- CPU Time
- Amount of CPU time, in milliseconds (ms), the task used1.
- Mem Usage
- Amount of memory usage, in kilobytes (kB)1.
- IO Read Size
- Amount of data read, in kilobytes (kB)1.
- IO Write Size
- Amount of data written, in kilobytes (kB)1.
- IO Read Count
- Number of read system calls1.
- IO Write Count
- Number of write system calls1.
- MQ Time
- Time spent, in milliseconds (ms), making MQ API calls1.
- EZASOKET Time
- Time spent, in milliseconds (ms), making EZASOKET API calls1.
- DSType
- This field is blank for all records except for JCLF records, in which case it is one of:
- Permanent
- PC
- Terminal
- Sysout
- Dummy
- Temp
- DSAccessType
- This field is blank for all records except for JCLF records, in which case it is one of:
1 These fields will only contain values if the region is configured to output them. This can be controlled by setting the environment
variable ES_HSF_RTS_MONITOR to ON or OFF.
On Windows, support for these fields is not enabled by default. To enable them, set ES_HSF_RTS_MONITOR=ON
|
Configurable Field Types
The following additional fields may be repeated based on the value of the ES_HSF_CFG environment variable:
- Customxx
- Custom data written to the record via a call to ES_WRITE_CUSTOM_HSF from the user application.
- Filexx
- The name of a file that the transaction accessed.
-
- Countxx
- The number of times the transaction accessed this filexx.
- Timexx
- The time, in milliseconds (ms), the transaction spent accessing filexx.
- TSxx
- The name of a temporary storage queue (TSQ) that the transaction accessed.
-
- Countxx
- The number of times the transaction accessed
TSxx.
- Timexx
- The time, in milliseconds (ms), the transaction spent accessing
TSxx.
- TDxx
- For CICS records, the name of a transient data queue (TDQ), blank for non-CICS records.
-
- Countxx
- The number of times the transaction accessed
TDxx.
- Timexx
- The time, in milliseconds (ms), the transaction spent accessing
TDxx.
Sample content viewed in Microsoft Excel
SUBT Type
The format for SUBT types is as follows:
"SUBT",PID,Task.Seq,Trans-id/job step,Custom data
For example:
SUBT,1234,12.1,HSF1,My data
"Custom data" is written in the same way as for custom fields, that is, by calling ES_WRITE_CUSTOM_HSF or ESCSTHSF with a
1 byte trace ID.
Note: For custom fields, multiple calls to ES_WRITE_CUSTOM_HSF/ESCSTHSF with the same ID, within the same transaction will result
in data being appended to the same field up to a maximum of 255 bytes. There can be up to 5 custom fields within each record.
For sub task records, only a single ID can be used. Every call to ES_WRITE_CUSTOM_HSF/ESCSTHSF with that ID will result in
a new SUBT record being generated. Custom data for these records can be up to 1024 bytes in length.
To configure this feature, the value for the ES_HSF_CFG environment variable needs to contain SUBTASK=ID where ID is the unpacked
hex ID that will identify traces that will be used to generate the SUBT records. Valid values are 01 - FF. If ES_HSF_CFG does
not contain a SUBTASK or if SUBTASK=00 then the feature is switched off.
For example, setting the following:
ES_HSF_CFG=SUBTASK=1A
would require a call to ES_WRITE_CUSTOM_HSF/ESCSTHSF using an ID of H"1A" in order to generate a SUBT record.
Note: If custom data contains a null character then the data will be truncated.