Al Prosser's Winning Entry in Diversified Software Y2K Testing Contest

This is a copy of the entry I submitted to Diversified Software's Y2K testing using Job/Scan contest. The winners were announced at their web site http://www.diversifiedsoftware.com/. I would have won admission to their conference in Las Vegas, but could not afford to go and just entered for fun, anyway.

From: Prosser, Alan
To: 'Kim Gross at Diversified'
Subject: Job/Scan Y2K Contest
Date: Wednesday, March 31, 1999 2:32PM

My name is Al Prosser, I used to work at Centrobe, an EDS company, in Des Moines Iowa. This is my entry for the Job/Scan Y2K Production Testing Contest. My email address will change when we get new servers in a couple weeks, so I can be contacted at (515)237-4762.

Job/Scan use for Y2K Testing

We used Job/Scan exits to audit control cards for information needed to set up the test environment.

We used a Job/Scan exit to calculate reduced space parameters for many jobs, then used the Change facility to make mass JCL changes to reduce the resources needed for testing. The changes included renaming some Volumes used by IDCAMS for VSAM datasets, reducing space and specifying in tracks, reducing the number of copies of prinouts, and reducing the number of tapes. A sample of the result of a change is in Attachment 1.

We used a Job/Scan exit to audit parameters used with a particular proc that does AFP printing. The proc pointed to a non-Y2k compliant program, and was replaced with another proc that used a newer version. We used the audit to create a list of JCL members that would need to be changed, as well as the parameters used. The list was used by the person responsible for determining changes. An excerpt of the exit used for auditing parms used by a proc is Attachment 2.

After setting up our test environment on a separate computer, we used Job/Scan to run batch scans of the job streams to help find resources and datasets that needed to be created or copied from production.

Attachment 1

Sample change commands created by Job/Scan exit to reduce space needed for Y2K test environment.

Given the following DD statement

//SORTOUT  DD DSN=MTP.SORT030.SORTOUT,
//            DISP=(,CATLG,DELETE),     
//            SPACE=(CYL,(35,2),RLSE),  
//            UNIT=SYSDA,DCB=BUFNO=15   

The exit will create the following

...
ON DD IF JOB=NXYZ            
AND STEP=SORT030                 
AND DD=SORTOUT                   
CHG SPACE FROM (CYL,(35,2),RLSE) 
TO "(TRK,(15,30),RLSE)"          
END                              
...

When run through the Change option, results in

//SORTOUT  DD DSN=MTP.SORT030.SORTOUT,
//            DISP=(,CATLG,DELETE),     
//            SPACE=(TRK,(15,30),RLSE),  
//            UNIT=SYSDA,DCB=BUFNO=15   

Attachment 2

Excerpt from PROCESS_PROC subroutine of REXX Job/Scan exit.

...
PROCESS_PROC:..

J = 0;                                                    
SYM_COUNT  = JSGET("EPLP_SYM_COUNT");                     
J = J + 1;                                                
OUTMSG.J = "  JOB "JOB_NAME" STEP "STEP_NAME" USES PROC ",
  PROC_NAME" WITH "SYM_COUNT" PARMS" ;                    
DO I = 1 TO SYM_COUNT;                                
  SYM_NAME.I = JSGET("EPLP_SYM_NAME."I);              
  SYM_VALUE.I = JSGET("EPLP_SYM_VALUE."I);            
  SYM_SOURCE.I = JSGET("EPLP_SYM_SOURCE."I);          
  IF SYM_SOURCE.I = "X" THEN ;                        
    DO;                                               
      SPACER = "      ";                              
      J = J + 1;                                      
      OUTMSG.J = SPACER||SYM_SOURCE.I" "SYM_NAME.I"=",
        SYM_VALUE.I;
    END; 
  ELSE DO;                                            
    FOUND = "NO";                                     
    DO K = 1 TO (I - 1);                              
      IF SYM_NAME.K = SYM_NAME.I THEN;                
        DO;                                           
          FOUND = "YES";                              
        END;                                          
    END;                                              
    IF FOUND = "NO" THEN;                               
      DO;                                               
        SPACER = "          ";                          
        J = J + 1;                                      
        OUTMSG.J = SPACER||SYM_SOURCE.I" "SYM_NAME.I"=",
          SYM_VALUE.I;
      END;                                              
  END;                                                  
END;                                                    
"EXECIO "J" DISKW EXECRPT (STEM OUTMSG." ;
...
RETURN;

end attachments

Al Prosser
Systems Engineer
Centrobe an EDS Company
111 Tenth St.
Des Moines, Iowa
Alan.Prosser@EDS.com
(515)237-4762

Note that the EDS email address and phone are currently obsolete.

Last update May 1, 1999 except for ISP change November 10, 2001 and minor link adjustments September 3, 2002

E-mail

Comments to alprosser19@yahoo.com