MVSFORUMS.com A Community of and for MVS Professionals
View previous topic :: View next topic
Author
Message
sri50131 Beginner Joined: 07 Oct 2004 Posts: 38 Topics: 15
Posted: Mon Nov 27, 2006 2:11 pm Post subject: Current Date and Time Issue
Hello,
I am having a problem when the following JCL:
Problem:
JSTEP006 is not executing
Code:
//JSTEP005 EXEC PGM=IDCAMS
//*
//SYSPRINT DD SYSOUT=X
//SYSIN DD *
DELETE ATEST.USERID.TSTPROCY.REGN.EDS.NAMEADD
DELETE ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02
DELETE ATEST.USERID.RENAME.OUTPUT
IF MAXCC>0 THEN SET MAXCC=0
/*
//JSTEP006 EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//PSR012A1 JOB (AMI00-TT-DB2-3Z),
// 'SRIDHAR',
// CLASS=T,
// MSGCLASS=X,
// NOTIFY=&SYSUID
//STEPK1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DUMMY
//SYSUT2 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LYYMMDD..T&LHHMMSS,
// UNIT=SYSDA,DISP=(NEW,CATLG,KEEP),
// SPACE=(TRK,(50,50),RLSE)
//SYSIN DD DUMMY
@@
//JSTEP010 EXEC SORTER,PARM='EQUALS',
// AMT=50,
// OUTC=X
//*
//SORTIN DD DSN=INSORT
// DISP=SHR
//*
//SORTOF01 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LYYMMDD..T&LHHMMSS,
// DISP=OLD
//SORTOF02 DD DSN=ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02,
// UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(CYL,(10,10),RLSE),
// DCB=(LRECL=1504,RECFM=VB),STORCLAS=SPECIAL
//SYSIN DD *
SORT FIELDS=(14,18,A,47,2,A,43,4,A,12,2,A,5,5,A,92,1,A),
FORMAT=BI
RECORD TYPE=V
OUTFIL FILES=01,
INCLUDE=(5,6,CH,EQ,C'FPP910',OR,
5,6,CH,EQ,C'FPP410',OR,
5,6,CH,EQ,C'FPP110')
OUTFIL FILES=02,
INCLUDE=(5,6,CH,NE,C'FPP910',AND,
5,6,CH,NE,C'FPP410',AND,
5,6,CH,NE,C'FPP110',AND,
5,5,CH,NE,C'IPP10',AND,
5,5,CH,NE,C'IPP11',AND,
5,5,CH,NE,C'IPP12',AND,
5,5,CH,NE,C'MMS10',AND,
5,5,CH,NE,C'MMS11')
END
/*
Here is the error that I am getting:
IEFC618I OPERAND FIELD DOES NOT TERMINATE IN COMMA OR BLANK
Line 18 is:
18 //SORTOF01 DD DSN=ATEST.PSR012.APCPE602.SR2B.EDSNM.D&LYYMMDD..T&LHHMMS
// DISP=OLD
Can someone please tell me what I am doing wrong.
Thanks.
Back to top
superk Advanced Joined: 19 Dec 2002 Posts: 684 Topics: 5
Posted: Mon Nov 27, 2006 2:26 pm Post subject:
What I see is that, in step JSTEP006, you are executing the EZACFSM1 program (TCP/IP Variable Substitution) and creating a new job PSR012A1, which you are routing to the Internal Reader for submission. This job appears to copy a dataset to a new dataset with a value substituted for the system date and time.
Meanwhile, back in the original job, step JSTEP010 executes, and uses two symbolic variables (D&LYYMMDD and T&LHHMMSS) that you have not previously defined (you would need a SET statement).
How'd I do?
Back to top
superk Advanced Joined: 19 Dec 2002 Posts: 684 Topics: 5
Posted: Mon Nov 27, 2006 3:22 pm Post subject:
An unresolved variable will cause a JCL error. A value must be supplied before the job ever executes (usually with a SET statement).
Back to top
superk Advanced Joined: 19 Dec 2002 Posts: 684 Topics: 5
Posted: Mon Nov 27, 2006 3:50 pm Post subject:
It would work better if you re-arranged the job like this:
Code:
//JSTEP005 EXEC PGM=IDCAMS
//*
//SYSPRINT DD SYSOUT=X
//SYSIN DD *
DELETE ATEST.USERID.TSTPROCY.REGN.EDS.NAMEADD
DELETE ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02
DELETE ATEST.USERID.RENAME.OUTPUT
IF MAXCC>0 THEN SET MAXCC=0
/*
//*
//JSTEP006 EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//PSR012A1 JOB (AMI00-TT-DB2-3Z),
// 'SRIDHAR',
// CLASS=T,
// MSGCLASS=X,
// NOTIFY=&SYSUID
//STEPK1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DUMMY
//SYSUT2 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LYYMMDD..T&LHHMMSS,
// UNIT=SYSDA,DISP=(NEW,CATLG,KEEP),
// SPACE=(TRK,(50,50),RLSE)
//SYSIN DD DUMMY
//*
//JSTEP010 EXEC SORTER,PARM='EQUALS',
// AMT=50,
// OUTC=X
//*
//SORTIN DD DSN=INSORT
// DISP=SHR
//*
//SORTOF01 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LYYMMDD..T&LHHMMSS,
// DISP=OLD
//SORTOF02 DD DSN=ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02,
// UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(CYL,(10,10),RLSE),
// DCB=(LRECL=1504,RECFM=VB),STORCLAS=SPECIAL
//SYSIN DD *
SORT FIELDS=(14,18,A,47,2,A,43,4,A,12,2,A,5,5,A,92,1,A),
FORMAT=BI
RECORD TYPE=V
OUTFIL FILES=01,
INCLUDE=(5,6,CH,EQ,C'FPP910',OR,
5,6,CH,EQ,C'FPP410',OR,
5,6,CH,EQ,C'FPP110')
OUTFIL FILES=02,
INCLUDE=(5,6,CH,NE,C'FPP910',AND,
5,6,CH,NE,C'FPP410',AND,
5,6,CH,NE,C'FPP110',AND,
5,5,CH,NE,C'IPP10',AND,
5,5,CH,NE,C'IPP11',AND,
5,5,CH,NE,C'IPP12',AND,
5,5,CH,NE,C'MMS10',AND,
5,5,CH,NE,C'MMS11')
END
/*
@@
//
Back to top
sri50131 Beginner Joined: 07 Oct 2004 Posts: 38 Topics: 15
Posted: Mon Nov 27, 2006 5:43 pm Post subject:
superk, after making the changes that you suggested, I am now getting a 0C4, reason code 11 ((Page-Translation Exception) on the sort step (JSTEP010). Here is the JCL that I am executing:
Code:
//WHORUNIT JOB (AMI00-TT-EDS-3W),'EDS TSTPROCY REGN',MSGLEVEL=(1,1),
//* RESTART=JSTEP085,
// CLASS=T,MSGCLASS=X,REGION=4096K,NOTIFY=&SYSUID
//*
//ROTATE OUTPUT FORMDEF=0101,PAGEDEF=V06481,PRMODE=PAGE
//*
//JSTEP005 EXEC PGM=IDCAMS
//*
//SYSPRINT DD SYSOUT=X
//SYSIN DD *
DELETE ATEST.USERID.TSTPROCY.REGN.EDS.NAMEADD
DELETE ATEST.USERID.TSTPROCY.REGN.S10.SRTOF2
DELETE ATEST.USERID.RENAME.OUTPUT
IF MAXCC>0 THEN SET MAXCC=0
/*
//JSTEP006 EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//WHORUNIT JOB (AMI00-TT-DB2-3Z),
// 'SRIDHAR',
// CLASS=T,
// MSGCLASS=X,
// NOTIFY=&SYSUID
//STEPK1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DUMMY
//SYSUT2 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LMON&LDAY..T&HR&MIN,
// UNIT=SYSDA,DISP=(NEW,CATLG,KEEP),
// SPACE=(TRK,(50,50),RLSE)
//SYSIN DD DUMMY
//*
//JSTEP010 EXEC SORTER,PARM='EQUALS',
// AMT=50,
// OUTC=X
//*
//SORTIN DD DSN=INSORT
// DISP=SHR
//*
//SORTOF1 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LMON&LDAY..T&HR&MIN,
// DISP=SHR
//* UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(TRK,150,RLSE),
//* DCB=(LRECL=1504,RECFM=VB)
//SORTOF2 DD DSN=ATEST.USERID.TSTPROCY.REGN.S10.SRTOF2,
// UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(CYL,(10,10),RLSE),
// DCB=(LRECL=1504,RECFM=VB)
//SYSIN DD *
SORT FIELDS=(14,18,A,47,2,A,43,4,A,12,2,A,5,5,A,92,1,A),
FORMAT=BI
RECORD TYPE=V
OUTFIL FILES=01,
INCLUDE=(5,6,CH,EQ,C'FPP910',OR,
5,6,CH,EQ,C'FPP410',OR,
5,6,CH,EQ,C'FPP110')
OUTFIL FILES=02,
INCLUDE=(5,6,CH,NE,C'FPP910',AND,
5,6,CH,NE,C'FPP410',AND,
5,6,CH,NE,C'FPP110',AND,
5,5,CH,NE,C'IPP10',AND,
5,5,CH,NE,C'IPP11',AND,
5,5,CH,NE,C'IPP12',AND,
5,5,CH,NE,C'MMS10',AND,
5,5,CH,NE,C'MMS11')
END
/*
@@
//*
Please let me know what my mistake is?
Thanks.
Back to top
superk Advanced Joined: 19 Dec 2002 Posts: 684 Topics: 5
Posted: Mon Nov 27, 2006 11:29 pm Post subject:
First of all, I fail to understand the concept of cataloging an empty dataset in step STEPK1 (as RECFM=FB, LRECL=80) and then re-using that same dataset in the SORT step, where it needs to be RECFM=VB, LRECL-1504). I'd eliminate the entire step STEPK1 and instead catalog the dataset in the DD SORTOF1 in step JSTEP010 where you've commented out the code.
Back to top
kolusu Site Admin Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
Posted: Tue Nov 28, 2006 6:08 am Post subject:
I did not read the entire thread but did it ever occur to you that
Code:
ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LMON&LDAY..T&HR&MIN
may have exceeded the allowable length of 44 for a DSN name which would result in a JCL error?
Also looking at the sort control cards, the output file names should be SORTOF01 & SORTOF02 .
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu
Back to top
sri50131 Beginner Joined: 07 Oct 2004 Posts: 38 Topics: 15
Posted: Thu Nov 30, 2006 2:02 pm Post subject:
Kolusu, the job that I am trying to modify currently runs in production every 2 hours. I am trying to add the current time and date to the output datasets to make sure that there would be no overlay of the output datasets. So, I am using EZACFSM1 to get the current time and date. However, I am now having a problem:
the SYSTSIN card in the JCL that I am submitting is getting truncated at the beginning. Here is the JCL that I executing:
Code:
//JSTEP006 EXEC PGM=EZACFSM1
//SYSOUT DD SYSOUT=(*,INTRDR)
//SYSIN DD DATA,DLM=@@
//PSR012A2 JOB (AMI00-TT-DB2-3Z),
// 'SRIDHAR',
// CLASS=T,
// MSGCLASS=X,
// NOTIFY=&SYSUID
//JSTEP010 EXEC SORTER,PARM='EQUALS',COND=(0,LT),
// AMT=50,
// OUTC=X
//SORTIN DD DSN=INSORT
// DISP=SHR
//SORTOF01 DD DSN=ATEST.USERID.TSTPROCY.REGN.EDSNM.D&LMON&LDAY..T&HR,
// UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(TRK,150,RLSE),
// DCB=(LRECL=1504,RECFM=VB)
//SORTOF02 DD DSN=ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02,
// UNIT=SYSDA,DISP=(,CATLG,DELETE),SPACE=(CYL,(10,10),RLSE),
// DCB=(LRECL=1504,RECFM=VB)
//SYSIN DD DSN=ATEST.PSR012.JCLLIB(SRSORT10),DISP=SHR
/*
//*
//JSTEP012 EXEC PGM=IDCAMS,
// COND=(0,LT)
//*
//*YSPRINT DD SYSOUT=*
//SYSPRINT DD DSN=ATEST.USERID.RENAME.OUTPUT,
// DISP=(,CATLG,DELETE),SPACE=(TRK,(5,5),RLSE),
// DCB=(LRECL=132,RECFM=FB)
//SYSIN DD *
ALTER -
IF MAXCC > 0 THEN SET MAXCC = 0
/*
//*
//* ---------------------------------------------------
//* -----IDCAMS DELETE --------------------------------
//* ---------------------------------------------------
//*
//JSTEP015 EXEC PGM=IDCAMS,
// COND=(0,LT)
//*
//SYSPRINT DD SYSOUT=X
//SYSIN DD *
DELETE ATEST.USERID.TSTPROCY.REGN.IOB00110.STATOUT
IF MAXCC>0 THEN SET MAXCC=0
/*
//*
//* ---------------------------------------------------
//* ----- IOB00110 --------------------------------
//* ---------------------------------------------------
//*
//JSTEP020 EXEC PGM=IKJEFT01,
// COND=(0,LT),
// DYNAMNBR=20
//*
//STEPLIB DD DSN=EXEAMI00.BTD.PROD,
// DISP=SHR
// DD DSN=EXEAMI00.BTL.PROD,
// DISP=SHR
//ADRCDVN1 DD DSN=ATEST.USERID.TSTPROCY.REGN.S10.SRTOF02,
// DISP=(OLD,DELETE,KEEP)
//STATOUT DD DSN=ATEST.USERID.TSTPROCY.REGN.IOB00110.STATOUT,
// UNIT=SYSDA,DISP=(,CATLG,CATLG),SPACE=(CYL,(10,10),RLSE),
// LRECL=1504,RECFM=VB,STORCLAS=SPECIAL
//SYSTSPRT DD SYSOUT=X
//SQLERROR DD SYSOUT=X
//SYSOUT DD SYSOUT=X
//SYSUDUMP DD SYSOUT=5,FREE=CLOSE,HOLD=YES
//SYSTSIN DD *
DSN SYSTEM(DBT0)
RUN PROGRAM(EDS000) PLAN%NALP
After the execution of the job, JSTEP020 SYSTSPRT looks like this:
READY
STEM(DBT0)
IKJ56621I INVALID COMMAND NAME SYNTAX
READY
OGRAM(EDS000) PLAN(EDSB0001)
IKJ56621I INVALID COMMAND NAME SYNTAX
READY
END
When I "SJ" on the job in the held output, JSTEP020 looks like this:
Code:
//JSTEP020 EXEC PGM=IKJEFT01,
// COND=(0,LT),
// DYNAMNBR=20
//*
//STEPLIB DD DSN=EXEAMI00.BTD.PROD,
// DISP=SHR
// DD DSN=EXEAMI00.BTL.PROD,
// DISP=SHR
//ADRCDVN1 DD DSN=ATEST.PSR012.ISPRC605.EDS1.S10.SRTOF02,
// DISP=(OLD,DELETE,KEEP)
//STATOUT DD DSN=ATEST.PSR012.ISPRC605.EDS1.IOB00110.STATOUT,
// UNIT=SYSDA,DISP=(,CATLG,CATLG),SPACE=(CYL,(10,10),RLSE),
// LRECL=1504,RECFM=VB,STORCLAS=SPECIAL
//SYSTSPRT DD SYSOUT=X
//SQLERROR DD SYSOUT=X
//SYSOUT DD SYSOUT=X
//SYSUDUMP DD SYSOUT=5,FREE=CLOSE,HOLD=YES
//SYSTSIN DD *
DSN SYSTEM(DBT0)
RUN PROGRAM(EDS000) PLAN(EDSB0001)
Can you please tell me what my mistake is.
Thanks
Back to top
dbzTHEdinosauer Supermod Joined: 20 Oct 2006 Posts: 1411 Topics: 26 Location: germany
Posted: Thu Nov 30, 2006 4:36 pm Post subject:
this is one purpose of generation data sets (GDG's). _________________ Dick Brenholtz
American living in Varel, Germany
Back to top
sri50131 Beginner Joined: 07 Oct 2004 Posts: 38 Topics: 15
Posted: Thu Nov 30, 2006 4:51 pm Post subject:
dbzTHEdinosauer, can you please be more specific/clear?
Thanks
Back to top
kolusu Site Admin Joined: 26 Nov 2002 Posts: 12375 Topics: 75 Location: San Jose
Posted: Thu Nov 30, 2006 9:18 pm Post subject:
sri50131 ,
The reason the first byte is getting truncated is because the default recfm for intrdr is FBA . You need to override that
change the following statement
Code:
//SYSOUT DD SYSOUT=(*,INTRDR)
to
Code:
//SYSOUT DD SYSOUT=(*,INTRDR),RECFM=FB
Hope this helps...
Cheers
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu
Back to top
sri50131 Beginner Joined: 07 Oct 2004 Posts: 38 Topics: 15
Posted: Fri Dec 01, 2006 1:50 pm Post subject:
Kolusu, it worked!
Thanks a lot!!
Back to top
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum