How are you able to execute that JCL at all? On my V2.1 system I get a JCL error with these messages and no execution at all:
6 IEFC001I PROCEDURE P WAS EXPANDED USING INSTREAM PROCEDURE DEFINITION 6 IEFC657I THE SYMBOL S WAS NOT USED 14 IEFC001I PROCEDURE P WAS EXPANDED USING INSTREAM PROCEDURE DEFINITION 14 IEFC657I THE SYMBOL S WAS NOT USED Inquiring minds wish to know how you managed this. Peter -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Paul Gilmartin Sent: Friday, August 15, 2014 10:33 AM To: [email protected] Subject: Dynamic system symbols -- when are they hardened From the JCL: //P PROC S='no sub' //PSTEP EXEC PGM=BPXBATCH,PARMDD=PARMDD //PARMDD DD *,SYMBOLS=CNVTSYS SH set -x; sleep 11; echo "Hello, world! from PARMDD. &&S &S"; echo "Time is &HR:&MIN:&SEC Date is &YR4-&MON-&DAY.." //STDOUT DD SYSOUT=(,) //STDERR DD SYSOUT=(,) //STDIN DD PATH='/dev/null' // PEND //* //D1 EXEC PGM=IEFBR14 (Timestamp in job log.) //STEP1 EXEC P,S='Substituted in step 1' //D2 EXEC PGM=IEFBR14 (Timestamp in job log.) //STEP2 EXEC P,S='Substituted in step 2' ... the job long shows: 08.17.51 JOB04792 - -----TIMINGS (MINS.)------ 08.17.51 JOB04792 -STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK 08.17.51 JOB04792 -D1 00 8 2 .00 .00 .0 08.18.02 JOB04792 -STEP1 PSTEP 00 60 9 .00 .00 .1 08.18.02 JOB04792 -D2 00 10 2 .00 .00 .0 08.18.13 JOB04792 -STEP2 PSTEP 00 62 9 .00 .00 .1 08.18.13 JOB04792 IEF404I PARMDD - ENDED - TIME=08.18.13 ... and in the respective STDOUTs: ********************************* TOP OF DATA ***************** Hello, world! from PARMDD. &S Substituted in step 1 Time is 14:17:51 Date is 2014-08-15. ********************************* TOP OF DATA ***************** Hello, world! from PARMDD. &S Substituted in step 2 Time is 14:18:02 Date is 2014-08-15. ******************************** BOTTOM OF DATA *************** The substituted times match the step start times. I coded "SYMBOLS=CNVTSYS". Does the converting system somehow know when the steps will run on the executing system? I doubt it. Does the executing system somehow reach back to the converting system to extract the instantaneous values of its system symbols? In this case, the executing system is the same as the converting system. Would the results be different if two different systems were involved? What happens if the job runs very close to midnight? Might the time be extracted in the previous day and the day in the following, resulting in a 23:59:59 error? Or is an atomic snapshot of dynamic system symbols taken and used for the duration of the step? I understand the reason for the extra spaces between the Time and the Date; WAD. I still don't like the behavior. What are the multiple: 10 ++S EXPORT EXPSET=Substituted in step 1 GENERATED STATEMENT ... I see unexpectedly in my JESJCL? (No message code!?) -- gil ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
