MVS and JCL replated web pages =============================== http://www.cbttape.org/updates.htm http://www.damos.dircon.co.uk/html/jcl___utilities.html http://www.damos.dircon.co.uk/index.html - Good one http://www.ibmmainframes.com/jcls.html- Good one http://www.u.arizona.edu/~cithew/certificates/mvs-jcl-utilities-l.html http://www.theamericanprogrammer.com/ http://www.mainframeweek.com/code/showcode.php/0053/mw53mq1.txt - Mq rexx http://www.phillyos2.org/rexx/lesson1.html -REXX http://www.oberoi-net.com/mainfrme.html - mainframe stuff rexx, cobol jcl http://www.davar.net/CNT.HTM - mainframe ************************************ *1. Sample jcl to create GDG base. * ************************************ //GOWDAMAG JOB 6666,'TESTPGM1',CLASS=A, // MSGCLASS=X,NOTIFY=&SYSUID //******************************************** //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE GENERATIONDATAGROUP - (NAME(F1.SSDE.DD.CASHACC.CAS00005.BKUP) - EMPTY - NOSCRATCH - LIMIT(20)) // ************************************ *2. Sample jcl to FTP file from * * Mainframe to NT * ************************************ //GOWDAMAD JOB (6666),QUEUECOPY,CLASS=A,REGION=0M, // NOTIFY=&SYSUID //* check if file is Empty .. FTP will ignore //STPFTP EXEC PGM=FTP,REGION=4096K //OUTPUT DD SYSOUT=* //INPUT DD * sgb24152.ldn.swissbank.com international/ftp_sgb24152_sse sseproject CD /sse/Madhav/Qdonload mkdir D040129.BATCH cd D040129.BATCH PUT 'F1.SSDE.DD.GGL.OUT2.D040128.T145502' test1.DAT PUT 'F1.SSDE.DD.GGL.CTRL2.D040128.T145502' test2.CTL quit /* ********************************* Top of Data *********************** //AMKFTPTT JOB (6143),'FTP FILE',NOTIFY=&SYSUID,MSGCLASS=X,CLASS=A //*Copy file from PC to Mainframe //FTP EXEC PGM=FTP,REGION=4096K //OUTPUT DD SYSOUT=* //INPUT DD * sgb24152.ldn.swissbank.com international/ftp_sgb24152_sse sseproject CD /sse/Madhav/Qdonload Get krish.txt 'U.GOWDAMA.AMK.JCL(krishna)' QUIT ******************************** Bottom of Data *********************\ ********************************* Top of Data ********************************** /* REXX - Exec to invoke MXI using LIBDEFs */ /* */ /* */ address ISPEXEC "LIBDEF ISPLLIB DATASET ID('TSMG.AMK.MXI.LOAD') STACK" /*dress ISPEXEC "LIBDEF ISPPLIB DATASET ID('TSMG.AMK.MXI.PANELS') STACK" dress ISPEXEC "LIBDEF ISPTLIB DATASET ID('TSMG.AMK.MXI.TABLES') STACK" */ address TSO "ALLOC F(MXIXPT) DA('TSMG.AMK.MXI.LOAD') SHR REUSE" address ISPEXEC "SELECT PGM(MXI) NEWAPPL(MXI) PASSLIB" address TSO "FREE F(MXIXPT)" address ISPEXEC "LIBDEF ISPTLIB" address ISPEXEC "LIBDEF ISPPLIB" address ISPEXEC "LIBDEF ISPLLIB" exit ******************************** Bottom of Data ******************************** ********************************* Top of Data ********************************** //AMKJCLRX JOB 6143, // AMKRISH,NOTIFY=&SYSUID,CLASS=A,MSGLEVEL=(1,1) //*BATCH JOB TO RUN REXX PROGRAM //EXPPROC EXEC PGM=IKJEFT01,PARM=('REXCPTY') //* //SYSEXEC DD DSN=U.GOWDAMA.AMK.JCL,DISP=SHR //SYSUDUMP DD SYSOUT=* //SYSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY // ******************************** Bottom of Data ******************************** //GOWDAMAS JOB (6143),'GOWDAM',NOTIFY=&SYSUID,REGION=0M //* IF THE INPUT AND OUT PUT FILE IS VB ADD 4 BYTE //* THAT IS IF U WANT TO WRITE 7 COL. 'H' IN TH INPUT FILE U SHOULD GIVE //* COND=(11,1,CH,EQ,C'H') NOT COND=(7,1,CH,EQ,C'H') //S001 EXEC PGM=SORT //DFSMSG DD SYSOUT=* //TOOLMSG DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //CEEDUMP DD SYSOUT=* //SORTIN DD DSN=U.GOWDAMA.TEST.CHITRA.INPUT,DISP=SHR //SORTOUT DD DSN=U.GOWDAMA.TEST.CHITRA.OUTPUT,DISP=SHR //SYSIN DD * SORT FIELDS=(11,1,CH,A) SUM FIELDS=NONE INCLUDE COND=((11,1,CH,EQ,C'H'),OR, (11,1,CH,EQ,C'L')) /* // ******************************** Bottom of Data ************************ ********************************* Top of Data ********************************** /*REXX MADHAV*/ TRACE ?R DSN = "'U.GOWDAMA.AMK.FTPTEST'" X = LISTDSI(DSN) IF X = 0 | X = 4 THEN DO SAY DSN SYSUSED SYSUNITS END SAY DSN SYSUSED SYSUNITS ******************************** Bottom of Data ******************************** ********************************* Top of Data ********************************** //GOWDAMAC JOB 6143, JOB02540 // AMK,NOTIFY=&SYSUID,CLASS=A,MSGLEVEL=(1,1) //* * * * * * * * * * * * * * * * * * * * * * * * * //* THIS JOB WILL WRITE SDSF JOB OUT PUT TO FILE * //* * * * * * * * * * * * * * * * * * * * * * * * * //AMK001 EXEC PGM=SDSF,DYNAMNBR=32,REGION=0M,TIME=5 //ISFOUT DD SYSOUT=* //REPORT DD DISP=(NEW,CATLG,DELETE),DSN=U.GOWDAMA.RPT.SDSF, // SPACE=(CYL,(1,1)),RECFM=FB,LRECL=133,BLKSIZE=133000 //ISFIN DD * ST GOWDAMAR PRINT FILE REPORT FIND GOWDAMAR ++XC // ******************************** Bottom of Data ******************************** ********************************* Top of Data ********************************** //AMKIDCAM JOB (6143),'EMPTY',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID JOB16638 //S0010R EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSIN DD * PRINT INDATASET(U.GOWDAMA.AMK.FTPTEST) - CHARACTER - COUNT(1) // IF S0010R.RC=0 THEN //S0020R EXEC PGM=IEFBR14 not empty // ELSE //S0030R EXEC PGM=IEFBR14 empty // ENDIF ******************************** Bottom of Data ******************************** //AMADHAVA JOB 6143, // AMADHAV,NOTIFY=&SYSUID,CLASS=A,MSGLEVEL=(1,1) //* //S030IDCM EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * VERIFY DATASET(TFFT.T.FDA.F) //* // ********************************* Top of Data ********************************** //AMKIDCAM JOB (6143),'LCAT',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* LISTCAT DATA SET //TEST EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //INDD DD * 444444444444444 555555555555555 666666666666666 /* //OUTDD DD DSN=U.GOWDAMA.AMK.KSDS.CLUSTER,DISP=SHR //SYSIN DD * REPRO INFILE(INDD) OUTFILE(OUTDD) /* ******************************** Bottom of Data ******************************** ********************************* Top of Data ********************************** //AMKIDCAM JOB (6143),'LCAT',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* LISTCAT DATA SET //TESTPR EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSIN DD * PRINT INDATASET(U.GOWDAMA.AMK.KSDS.CLUSTER) - HEX - SKIP(2) - COUNT(3) /* // //TEST EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSIN DD * LISTCAT ENTRIES(U.GOWDAMA.AMK.KSDS.CLUSTER) ALL /* ******************************** Bottom of Data ******************************** //AMKREPRO JOB 'TEST ABCD',CLASS=X,MSGCLASS=X,NOTIFY=&SYSUID JO //TEST EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSOUT DD SYSOUT=* //DD01 DD DISP=SHR,DSN=ISSIE.DD.DAILYTRD.DLY00029.EXTR.PATTESE //DD02 DD DISP=MOD,DSN=ISSIE.DD.DAILYTRD.DLY00029.EXTR //SYSIN DD * REPRO INFILE(DD01) - OUTFILE(DD02) /* // //AMKSEARC JOB 'SEARCHING THE STRING',CLASS=X,MSGCLASS=X,NOTIFY=&SYSUID //SEARCH EXEC PGM=ISRSUPC, * // PARM=(SRCHCMP, // 'ANYC') //NEWDD DD DSN=CHGMAN.A.SS00.BASE.SRX, // DISP=SHR //OUTDD DD DSN=TSMG.PSBABU.SEARCH.OUTPUT, // DISP=(NEW,CATLG),UNIT=SYSDA, // SPACE=(13566,(50,100),RLSE), // DCB=(BLKSIZE=13566) //SYSIN DD * SRCHFOR 'ICNT' /* //AMKEMAIL JOB (6666),EMAILSEND,REGION=0M, // NOTIFY=&SYSUID //* send email //S07SMTP EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //SYSEXEC DD DISP=SHR,DSN=TSMG.GOWDAMA.REXX // DD DISP=SHR,DSN=SGLOBAL.OPSMVS.STD.REXX //DD1 DD DISP=SHR,DSN=TSMG.GOWDAMA.REXX(TEST) //SYSTSIN DD * %XMITIP - madhava_krishna@yahoo.com - SUBJECT 'test message from Madhav ' - NOMSG - FILEDD (DD1) /* Rexx job to submit jcl ********************************* Top of Data ********************************** /***Mahava Krishna REXX sub */ /* Now submit the jcl*/ trace ?r /*arg input_args * | */ address "TSO" "submit 'U.GOWDAMA.TESTING.JCLS(QDEPTH1)'" say '*******************************' say '* Job submitted *' say '*******************************' call exitprg end call exitprg /*******************************************************/ exitprg : exit REXX ftp samples ******************************** Bottom of Data ******************************** BROWSE U.GOWDAMA.AMK.REXX(REXXFTP) - 01.04 Line 00000000 Col 001 080 Command ===> Scroll ===> CSR ********************************* Top of Data ********************************** /*****rexx ftp madhav*****/ trace ?r FTP_SCRIPT_FILE = 'U.GOWDAMA.AMK.REXX(temp1)' "ALLOC DA('"FTP_SCRIPT_FILE"') DD(INPUT) SHR REU" WS_SPACE = ' ' FTP_TARGET_IP_ADDRESS = 'sgb24152.ldn.swissbank.com' FTP_ADDRESS = FTP_TARGET_IP_ADDRESS || WS_SPACE || '(exit timeout 60' "FTP "FTP_ADDRESS" " "FREE DD(INPUT)" ******************************** Bottom of Data ******************************** BROWSE U.GOWDAMA.AMK.REXX(TEMP1) - 01.01 Line 00000000 Col 001 080 Command ===> Scroll ===> CSR ********************************* Top of Data ********************************** international/ftp_sgb24152_sse sseproject CD /sse/Madhav/CUBS PUT 'U.GOWDAMA.AMK.TEST.INPUT' amktest1.txt quit ******************************** Bottom of Data ******************************** ********************************* Top of Data ********************************** //AMKTSQLT JOB (6143),'SQLQ',CLASS=A,MSGCLASS=X, // NOTIFY=&SYSUID //JOBLIB DD DSN=TD0TSYS.RUNLIB.LOAD,DISP=SHR // DD DSN=TD0TSYS.SDSNEXIT,DISP=SHR // DD DSN=TD0TSYS.SDSNLOAD,DISP=SHR //BATSQL EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(TD0T) RUN PROGRAM(DSNTEP2) PLAN(DSNTEP2) END /* //SYSIN DD * SELECT V0_COMPANY_ID,ACCOUNTING_DATE,TRADING_DATE FROM FSS0D0.OWNING_OFFICE WHERE V0_COMPANY_ID IN ('IE','FF','NL','AP','WL'); ********************************* Top of Data ********************************** /*REXX MADHAVA */ TCB =PTR(540) TIOT = PTR(TCB+12) JNAM = STG(TIOT,8) SNAM = STG(TIOT+8,8) PSNAM = STG(TIOT+16,8) JSCB = PTR(TCB+180) PNAM = STG(JSCB+360,8) SSIB = PTR(JSCB+316) JNUM = STG(SSIB+12,8) SAY 'TEST NNN TEST :' STG(TIOT,8,8) SAY 'JOB NAME :' JNAM SAY 'PROC NAME :' PSNAM SAY 'STEP NAME :' SNAM SAY 'PROGRAM NAME :' PNAM SAY 'JOB NUMBER :' JNUM EXIT(0) PTR: RETURN C2D(STORAGE(D2X(ARG(1)),4)) STG: RETURN STORAGE(D2X(ARG(1)),ARG(2)) Global change macro ===================== VIEW U.GOWDAMA.JCL(COPYSUB) - 01.02 Columns 00001 00072 Command ===> Scroll ===> CSR ****** ***************************** Top of Data ****************************** 000001 /* REXX */ 000002 "ISREDIT MACRO" 000003 "ISREDIT (LAST) = LINENUM .ZL" 000004 DO I = 1 TO LAST 000005 "ISREDIT CURSOR = (I),1 " 000006 "ISREDIT (VAR1) = LINE .ZCSR" 000007 PARSE UPPER VALUE VAR1 WITH MEM V1 V2 V3 V4 V5 V6 000008 "ISREDIT COPY &MEM AFTER .ZL " 000009 "ISREDIT CHANGE NX ALL '_V1_' &V1 " 000010 IF V2 ¬= '' THEN "ISREDIT CHANGE NX ALL '_V2_' &V2 " 000011 IF V3 ¬= '' THEN "ISREDIT CHANGE NX ALL '_V3_' &V3 " 000012 IF V4 ¬= '' THEN "ISREDIT CHANGE NX ALL '_V4_' &V4 " 000013 IF V5 ¬= '' THEN "ISREDIT CHANGE NX ALL '_V5_' &V5 " 000014 IF V6 ¬= '' THEN "ISREDIT CHANGE NX ALL '_V6_' &V6 " 000015 "ISREDIT X ALL " 000016 END 000017 "ISREDIT FLIP " 000018 "ISREDIT MEND "