February 1998
Newsletter

IOFTech    Maintenance   Release8G       Newsletters    Doc    FAQ    Contact    Home

Increase Productivity with IOF/TSO Indexing

Topics


Shooting SYSUDUMPS Online
Indexing CICS Transaction Dumps
Indexing Production Reports
Indexing a Report in Batch TSO


Shooting SYSUDUMPS Online

The IOF/TSO Build Index command simplifies shooting a SYSUDUMP online. This command automatically constructs an index to the most frequently used dump elements. The index increases your overall productivity by providing you with an easy and quick problem-solving tool.

First, SELECT a job for review that has a SYSUDUMP data set on SYSOUT. Then, from the Job Summary Panel, enter the BI line command for the SYSUDUMP data set as shown below.


------------------------------- IOF Job Summary -------------------------------
COMMAND ===>                                                 SCROLL ===> CURSOR
--JOBNAME---JOBID--STATUS---RAN/RECEIVED------DAY--------DEST------------------
  TESTRUN  J09588  OUTPUT    9:40   2/09/1998 TODAY      LOCAL                 
--RC--PGM--------STEP-----PRSTEP---PROC-----COMMENTS---------------------------
ABND  CMPRAX99   STEP01   GO       TESTCMPR ABEND SYSTEM=0C4 USER=0000         
--------DDNAME---STEP-----PRSTEP---STAT-ACT-C-GRP-D-SIZE-U--DEST---------------
_    1  LOG      *                          A   1 W   35 L  LOCAL              
_    2  JCL      *                          A   1 W   15 L  LOCAL              
_    3  MESSAGES *                          A   1 W   42 L  LOCAL              
_    4  SYSTSPRT STEP01   GO                A   1 W   38 L  LOCAL              
bi   5  SYSUDUMP STEP01   GO       HELD     H   2 H 278K L  LOCAL      

BI scans and analyzes each of the 278k lines of the SYSUDUMP data set to build and display an IOF Data Index such as the one shown below.

 ------------------------------- IOF DATA INDEX -------------------------------
 COMMAND ===>                                                SCROLL ===> CURSOR
 ------------------------------------------------------------------------------
 _    1   DUMP1   SYSTEM = 0C4      REASON CODE = 00000001              
 s    2   TCB at 008B0698 had CMP 940C4000       
 _    3   PRB Chain                                                     
 _    4   CDE Chain                                                     
 _    5   TCB Summary                                                   
 _    6   MVS RTM2 work area summary                                    
 _    7   PSW Pointer, PSW address is 05047E12                          
 _    8   Save Area Trace                                               
 _    9   Registers at entry to abend                                   
 _   10   LPA/JPA Module CMPRAX99                                       
 _   11   LPA/JPA Module CMPRFA17                                       
 _   12   Abend PSW area                                                
 _   13   LPA/JPA Module CMPRHA01                                       
 _   14   LPA/JPA Module CMPRHA02                                       
 _   15   User Subpool Storage                                          
 _   16   Start of system trace table                                   
 _   17   Dump Index                                                    
                                                                        

The second line of the IOF Data Index in the example above is the index entry for the TCB that abended with code 0C4. To browse this TCB, enter the S line command to the left of this item as shown. This will be substantially quicker than searching for the TCB in error.

Press END to return to the IOF Data Index so that you can select other dump elements to browse.

Adding Your Own Comments

When shooting a paper copy of a dump, bookmarks and margin notes often are useful. The IOF Define Entry command provides these pen-and-paper functions electronically. The command name is DEFENTRY, abbreviated as "." (period).

Assume you scroll to the location pointed to by Register 1. From the command line, enter:

/DUMP1 Region Table Control Block pointed to by R1
DUMP1 is the name of the index to which you want your comment added. You determine this name from the top line of the index panel above.

Region Table Control Block pointed to by R1 is your comment. It can be a maximum of 68 characters long.

When you redisplay the IOF Data Index by entering the INDEX command, your comment will be shown along with the previous entries. This becomes your online margin note. You can select your note from the IOF Data Index to redisplay the area pointed to by R1. This is your online bookmark.

Saving the Index and Comments for Later Use

It sometimes is necessary to interrupt shooting a dump temporarily. The Save Index command allows you to save the data index including any comments you may have added for later use. Enter SI on the Browse command line to save the index in data set name:

prefix.jobname.jobid.IOFINDEX

prefix is your session DSN prefix

jobname is the name of the job you are browsing

jobid is the job number of the job you are browsing

To restart the dump shooting session using the saved index, select the job so that the Job Summary Panel is displayed. Enter VIEW (or V) on the command line to restore the original browse session using the saved index. Then, enter INDEX to redisplay the IOF Data Index, including your comments.

See the Indexing Tutorial in Chapter 9 of the IOF User Guide for a general discussion of indexing in IOF and for the full syntax of the indexing commands.

Deleting Old Index Data Sets

The IOFCLNDX REXX exec will clean up old index data sets. From ISPF Option 6, or from TSO READY enter:
IOFCLNDX

The REXX exec will detect all data set names having your data set name prefix and ending IOFINDEX. It will determine if a job with matching jobname and job exists on the JES2 queue. If the job does not exist, the index data set is deleted.

If you use the SI command, it is a good idea to enter the IOFCLNDX command occasionally to clean up obsolete index data sets.


Indexing CICS Transaction Dumps

The IOF/TSO BI command also increases the productivity for CICS programmers by building useful indices to CICS Transaction Dumps. First, select a CICS Transaction Dump Utility job that has a transaction dump queued to SYSOUT. Next, enter the BI line command on the IOF Job Summary for the DFHPRINT data set as shown below. IOF will analyze and build indices to important elements of the transaction dumps.

------------------------------- IOF Job Summary -------------------------------
COMMAND ===>                                                 SCROLL ===> CURSOR
--JOBNAME---JOBID--STATUS---RAN/RECEIVED------DAY--------DEST------------------
  CICSDMPA J09793  OUTPUT   15:17   2/09/1998 TODAY      LOCAL      
--RC--PGM--------STEP-----PRSTEP---PROC-----COMMENTS---------------------------
   0  DFHDU410   DMPA                                                  
--------DDNAME---STEP-----PRSTEP---STAT-ACT-C-GRP-D-SIZE-U--DEST---------------
_    1  LOG      *                 HELD     J   1 H   17 L  LOCAL   
_    2  JCL      *                 HELD     J   1 H    7 L  LOCAL   
_    3  MESSAGES *                 HELD     J   1 H   18 L  LOCAL   
_    4  DFHTINDX DMPA              HELD     J   1 H    3 L  LOCAL   
s    5  DFHPRINT DMPA              HELD     J   1 H 8257 L  LOCAL   

Normally, there are multiple transaction dumps included in the sysout data set. When there is more than one transaction dump, each dump is indexed into a separate high-level index. The indices will be displayed for selection on the IOF Data Indices Menu. In the example below, the DUMP001 index has 21 entries and was written at 11:14 on 02/09/98.

 --------------------------IOF-DATA-INDICES-MENU-------------------------------
 COMMAND ===>                                                SCROLL ===> SCREEN
 ------- NAME --- COUNT ------- DESCRIPTION -----------------------------------
 s   1   DUMP001     21         CICSPROD 02/09/98 11:14:02 CODE=I0C1
 _   2   DUMP002     27         CICSPROD 02/09/98 13:24:57 CODE=I804

The S line command is used to select the DUMP001 index as shown above. This displays the IOF Data Index for DUMP001.

-------------------------------- IOF DATA INDEX -------------------------------
 COMMAND ===>                                                SCROLL ===> CURSOR
-------------------------------------------------------------------------------
_    1   CICSPROD 02/09/98 11:14:02 CODE=I0C1
_    2   SYMPTOMS= AB/UI0C1 PIDS/565501800 FLDS/DFHABAB RIDS/IOFCIC
_    3   REGISTERS AT LAST EXEC COMMAND
_    4   TASK CONTROL AREA (SYSTEM AREA)
_    5   TRANSACTION WORK AREA
_    6   SYSTEM EXEC INTERFACE BLOCK
_    7   EXEC INTERFACE USER STRUCTURE
_    8   EXEC INTERFACE BLOCK
_    9   COMMON SYSTEM AREA              ADDR  00045570 : 00045773  (000204)
_   10   CSA OPTIONAL FEATURE LIST       ADDR  00045980 : 00045E57  (0004D8)
_   11   COMMON WORK AREA
_   12   TRANSACTION STORAGE-CICS31      ADDR  0554A000 : 0554A12F  (000130)
_   13   TRANSACTION STORAGE-USER24      ADDR  00200000 : 002001FF  (000200)
_   14   TRANSACTION STORAGE-USER31      ADDR  05608AF0 : 0560B5CF  (002AE0)
_   15   TERMINAL CONTROL TABLE          ADDR  0551D228 : 0551D41F  (0001F8)
_   16   PROGRAM INFORMATION FOR THE CURRENT TRANSACTION
_   17   PROGRAM STORAGE                 ADDR  05744000 : 05747DEF  (003DF0)
_   18   PROGRAM TRANSACTION AREA
_   19   PPT ENTRIES FOR ACTIVE PROGRAMS
_   20   TASK LOAD LIST ELEMENTS
_   21   LOAD MODULE INDEX

Select an indexed item to jump to the indexed transaction dump element. You may have to scroll the data index down to see all the indexed items. Pressing END returns you to the IOF Data Index .

You can add your own comments to the index, and save it for future use as described above.


Indexing Production Reports

IOF/TSO explicitly knows how to build indices for common output such as system dumps, CICS transaction dumps and assembler output. By responding to a few simple prompts, you also can build indices to many other types of output, including production reports.

Many reports have a title line that includes control break information in fixed columns. For example, a sales report might include the city on line 2 of the report in columns 25 through 40. The Build Index command can generate a useful index to this type of report. BI displays the prompt panel below when it can not determine the output type. The user tells BI how to build the index by answering the prompts.

To build an index of the sales report described above, overtype the LINE field on the panel with "2" to specify line 2 of the report, and overtype the COLUMNS fields with "25" and "40" as shown below.

 ------------------- IOF Index Build Interface Menu ---------------------------
 COMMAND ===>                                                         
                                                                     
   Select a type of index from the list below, or specify the line    
   and column numbers to control indexing in the parm fields below.   
                                                                     
   blank -  Use LINE and COLUMNS fields below to define indexing      
       A -  Assembler listing                                         
       C -  CICS transaction dump                                     
       D -  SYSUDUMP dump                                             
       P -  General page mode data                                    
       L -  Local data                    TYPE ===> 1   Local indexing type   
                                                                     
   Generate an index entry whenever data on line and cols below changes       
                                                                     
          LINE ===> 2                      Line number on the page    
       COLUMNS ===> 25   through ===> 40   Columns on the above line nbr     

                                                                     
   Select an option and/or parms and ENTER to continue or END to quit.

Whenever the value in columns 25 through 40 changes or line 2 of a page changes, the data from columns 25-40 is used to build an index entry. An IOF Data Index panel similar to the one shown below will be displayed.

 ------------------------------- IOF DATA INDEX -------------------------------
 COMMAND ===>                                                SCROLL ===> CURSOR
 ------------------------------------------------------------------------------
 _     1    Albany
 _     2    Binghamton
 _     3    Bronx
 _     4    Brooklyn
 _     5    Buffalo
 _     6    Long Island
 _     7    Manhattan
 N     8    Poughkeepsie
 _     9    Queens
 _    10    Rochester
 _    11    Staten Island
 _    12    Syracuse
 _    13    Utica
 _    14    White Plains 

The index can be used to directly access the data for each of the listed cities. For many reports, this is exactly the type of index that is needed to provide quick access to imbedded sub-reports.

Printing a copy of an Indexed Report

You can SNAP a copy of the Poughkeepsie report by entering the SNAP (abbreviated N) line command on the "Poughkeepsie" line as shown in the example above. The data from the start of the Poughkeepsie report through the next indexed item (the Queens report) will be copied to your target snap data set.

Tailored Indices

Tailored indices of production reports can be developed quite simply using a REXX exec or a clist. The IOF$BIA1, IOF$BIB1, IOF$BIC1 and IOF$BID1 clists from the IOF Release 7D CLIST library can be used as guides if you decide to build your own index application. The Release 7C clist names are INDEXASM, INDEXCIC, INDEXDMP AND INDEXBRK. Call IOF Technical support for help in adding your application to the BI command dialog.


Indexing a Report in Batch TSO

It may be useful to automatically build indices to very large production reports as the jobs run during off-peak time. This technique will provide immediate access to indexed reports. Indices can be built utilizing an IOF clist or REXX exec running batch TSO. An additional step to build and save the index can be added to the end of batch jobs that produce large reports. A sample of the required JCL to run such a job is shown below.

//REPORT    JOB    1,'MARKETING',MSGLEVEL=0,CLASS=S                           
//*
//*         Build the sales report
//*
//NYCITIES  EXEC  SALESRPT
//SALESDTA  DD    DISP=SHR,DSN=MARKETNG.MONTHLY.SALES.FILE
//SALES     DD    SYSOUT=A,HOLD=YES
//*
//*         Build an index to the SALES report from the NYCITIES step
//*
//BLDINDEX  EXEC  PGM=IKJEFT01                    Batch TSO
//SYSTSPRT  DD    SYSOUT=A,HOLD=YES               TSO output
//SYSPROC   DD    DISP=SHR,DSN=MARKETNG.CLIST     Marketing Clist lib
//          DD    DISP=SHR,DSN=IOF.IOFT7D0.CLIST  IOF Clist library
//SYSTSIN   DD    *                               TSO input
%SALESNDX   
/*

The SALESNDX clist in the MARKETNG.CLIST library does the required processing. It invokes the IOF$BIB1 clist which is part of the distributed IOF Release 7D CLIST library to build the index. (If you are running Release 7C, you should change this name to INDEXBRK). The index is then saved with the SAVEINDX command. The SALESNDX clist is shown below.


/*----- Sales Report Indexing Clist ------------------------------*/ 
 
PROC 0
CONTROL END(ENDO) ASIS NOFLUSH
 
/*  This clist builds an index to the SALES report data set which */
/*  must be part of the current job. Get the current job on the   */
/*  Job List Menu, then SELECT it.                                */
 
IOF * CURRENT CLIST
1 SELECT
 
/*  Exclude all output data sets except the SALES report from the */
/*  NYCITIES step from the menu.  Then select that report for IOF */
/*  Browse.                                                       */
 
EXCL STEP NE NYCITIES
EXCL DDNAME NE SALES

/*  There should only be one data set left on the menu. Select it.*/
 
1 SELECT
 
/*  Invoke the IOF$BIB1 clist to build the index.  Specify the ROW*/
/*  and COLUMNS as parms.  See IOF$BIB1 for a description of parms*/
 
%IOF$BIB1 LINE(2) BEGCOL(25)  ENDCOL(40)
 
/*  Save the index.  To use this index, use the VIEW line command */
/*  (or just "V") on the IOF Job List Menu.  The IOF index for the*/
/*  SALES report will be automatically displayed.                 */
 
SAVEINDX  CMD('INDEX')
 
/*  Exit from IOF and then from the Clist                         */
 
JUMP X
EXIT

Executing this clist as the last step of the REPORT job builds exactly the same IOF data index as the BI command example shown above. The index is saved under the REPORT job's high level prefix. From the IOF Job List Menu, enter the V line command to browse the sales report using the saved index.


There are many other ways to use the IOF Browse indexing facilities. See the IOF User Guide Chapter 9 for detailed information on using the IOF Browse facilities and Chapter 18 for a discussion of the REXX and Clist interface. Sophisticated applications can be easily developed by combining indexing with the powerful SCAN command of IOF Browse.


Triangle Systems, Inc. PO Box 12752, Research Triangle Park, NC 27709
Email IOFTech@Triangle-Systems.Com