Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I tried this REXX and found that it returns RC=8 for a LMMDEL for (*) as a member. The original author specified a member for each LMMDEL. Does this only work for later versions of z/OS? Curious. I already have some REXX to build the member list, so I can still use the technique. Anyone try this on z/OS 1.8? Thanks, On Fri, Jan 29, 2010 at 3:10 AM, Victor Gil victor@broadridge.com wrote: Feeling obligated to expose the original author I've rediscovered the source - http://www.mainframesupport.dk/tips/tip0344.html and so the author's name is Claus E. Mikkelsen. His website has also tons of other useful tips, so thank YOU very much, Claus! -Victor- On Tue, 26 Jan 2010 23:06:36 -0700, Roger Bolan rogerbo...@gmail.com wrote: Victor's Rexx works fine. I just tested it. On my system there is a PDS utility installed, and this also works. I just tested it from a batch TSO job: //TSO EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * PDS 'BOLAN.JUNK.JCL' FIX RESET /* On Mon, Jan 25, 2010 at 6:12 AM, Stocker, Herman herman.stoc...@avisbudget.com wrote: Very nice Victor. Thank you. Regards, Herman Stocker -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- Wayne V. Bickerdike -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Feeling obligated to expose the original author I've rediscovered the source - http://www.mainframesupport.dk/tips/tip0344.html and so the author's name is Claus E. Mikkelsen. His website has also tons of other useful tips, so thank YOU very much, Claus! -Victor- On Tue, 26 Jan 2010 23:06:36 -0700, Roger Bolan rogerbo...@gmail.com wrote: Victor's Rexx works fine. I just tested it. On my system there is a PDS utility installed, and this also works. I just tested it from a batch TSO job: //TSO EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * PDS 'BOLAN.JUNK.JCL' FIX RESET /* On Mon, Jan 25, 2010 at 6:12 AM, Stocker, Herman herman.stoc...@avisbudget.com wrote: Very nice Victor. Thank you. Regards, Herman Stocker -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Victor's Rexx works fine. I just tested it. On my system there is a PDS utility installed, and this also works. I just tested it from a batch TSO job: //TSO EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * PDS 'BOLAN.JUNK.JCL' FIX RESET /* On Mon, Jan 25, 2010 at 6:12 AM, Stocker, Herman herman.stoc...@avisbudget.com wrote: Very nice Victor. Thank you. Regards, Herman Stocker It is impossible to make anything foolproof, because fools are so ingenious. -- Robert Heinlein Snip The below REXX [from one of the dino sites, forgot which one] does the job. Can even be used as an action against a given PDS on the DSLIST panel. /* REXX */ /* DELETE ALL MEMBERS OF A GIVEN LIBRARY DSN */ TRACE 'N' /* TRACE 'R' */ /* TRACE 'O' */ PARSE UPPER ARG DSNAME DSN = STRIP(DSNAME, 'BOTH', ) /* IN CASE IT'S IN QUOTES */ QUOTE = ' QDSN = QUOTE||DSN||QUOTE /* FULLY QUOTED DSN */ ADDRESS ISPEXEC LMINIT DATAID( MYDATAID) DATASET( QDSN ) ENQ(SHRW) LMOPEN DATAID(MYDATAID) OPTION(OUTPUT) LMMDEL DATAID(MYDATAID) MEMBER(*) LMCLOSE DATAID(MYDATAID) LMFREE DATAID(MYDATAID) SAY DSN IS NOW EMPTY EXIT HTH, -Victor- /snip The sender believes that this E-mail and any attachments were free of any virus, worm, Trojan horse, and/or malicious code when sent. This message and its attachments could have been infected during transmission. By reading the message and opening any attachments, the recipient accepts full responsibility for taking protective and remedial action about viruses and other defects. The sender's employer is not liable for any loss or damage arising in any way from this message or its attachments. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Very nice Victor. Thank you. Regards, Herman Stocker It is impossible to make anything foolproof, because fools are so ingenious. -- Robert Heinlein Snip The below REXX [from one of the dino sites, forgot which one] does the job. Can even be used as an action against a given PDS on the DSLIST panel. /* REXX */ /* DELETE ALL MEMBERS OF A GIVEN LIBRARY DSN */ TRACE 'N' /* TRACE 'R' */ /* TRACE 'O' */ PARSE UPPER ARG DSNAME DSN = STRIP(DSNAME, 'BOTH', ) /* IN CASE IT'S IN QUOTES */ QUOTE = ' QDSN = QUOTE||DSN||QUOTE /* FULLY QUOTED DSN */ ADDRESS ISPEXEC LMINIT DATAID( MYDATAID) DATASET( QDSN ) ENQ(SHRW) LMOPEN DATAID(MYDATAID) OPTION(OUTPUT) LMMDEL DATAID(MYDATAID) MEMBER(*) LMCLOSE DATAID(MYDATAID) LMFREE DATAID(MYDATAID) SAY DSN IS NOW EMPTY EXIT HTH, -Victor- /snip The sender believes that this E-mail and any attachments were free of any virus, worm, Trojan horse, and/or malicious code when sent. This message and its attachments could have been infected during transmission. By reading the message and opening any attachments, the recipient accepts full responsibility for taking protective and remedial action about viruses and other defects. The sender's employer is not liable for any loss or damage arising in any way from this message or its attachments. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I liked this. Thanks for posting it. Regards, Eric Verwijs Programmer Analyst | Programmeur-analyste CPP/ OAS/ IA Production Support Team | Équipe de soutien à la production RPC / SV / IA frederick.verw...@hrsdc-rhdcc.gc.ca Telephone | Téléphone 613-941-7492 Facsimile | Télécopieur 613-941-4234 National Headquarters | Administration Centrale Human Resources and Skills Development Canada | Ressources humaines et Développement des compétences Canada Government of Canada | Gouvernement du Canada -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Victor Gil Sent: 2010-01-21 9:48 AM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM The below REXX [from one of the dino sites, forgot which one] does the job. Can even be used as an action against a given PDS on the DSLIST panel. /* REXX */ /* DELETE ALL MEMBERS OF A GIVEN LIBRARY DSN */ TRACE 'N' /* TRACE 'R' */ /* TRACE 'O' */ PARSE UPPER ARG DSNAME DSN = STRIP(DSNAME, 'BOTH', ) /* IN CASE IT'S IN QUOTES */ QUOTE = ' QDSN = QUOTE||DSN||QUOTE /* FULLY QUOTED DSN */ ADDRESS ISPEXEC LMINIT DATAID( MYDATAID) DATASET( QDSN ) ENQ(SHRW) LMOPEN DATAID(MYDATAID) OPTION(OUTPUT) LMMDEL DATAID(MYDATAID) MEMBER(*) LMCLOSE DATAID(MYDATAID) LMFREE DATAID(MYDATAID) SAY DSN IS NOW EMPTY EXIT HTH, -Victor- On Tue, 19 Jan 2010 16:45:33 -0800, John Mattson john_matt...@ea.epson.com wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. SCPPCENU(CPPEDELM) Everyone who has used CPP should have a copy. Its only about 100 lines of nicely written and documented REXX. Below is the basic JCL, of course you need your LOCAL ISPF/TSO data sets as in your logon proc... //DELMEM EXEC PGM=IKJEFT1B,COND=(4000,LT) //* *** *** //* *DELETE ALL MEMBERS OF MASTER DIALOG DATA SETS * //* * (EXCEPT SCPPTENU)* //* *** *** //SYSEXEC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //SYSPROC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //ISPMLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPMENU //ISPPLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPPENU //ISPSLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPSENU //ISPLLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPLOAD //ISPTLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPTENU //ISPPROF DD UNIT=SYSALLDA,DISP=(NEW,DELETE), //DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB), //SPACE=(CYL,(1,1,1)) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * PROFILE PREFIX(AFITSUP) ISPSTART CMD(CPPEDELM) //SYSINDD * MSYS.CPP.D091130.SCPPCENU MSYS.CPP.D091130.SCPPLOAD MSYS.CPP.D091130.SCPPMENU MSYS.CPP.D091130.SCPPPENU MSYS.CPP.D091130.SCPPSENU /* -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
The below REXX [from one of the dino sites, forgot which one] does the job. Can even be used as an action against a given PDS on the DSLIST panel. /* REXX */ /* DELETE ALL MEMBERS OF A GIVEN LIBRARY DSN */ TRACE 'N' /* TRACE 'R' */ /* TRACE 'O' */ PARSE UPPER ARG DSNAME DSN = STRIP(DSNAME, 'BOTH', ) /* IN CASE IT'S IN QUOTES */ QUOTE = ' QDSN = QUOTE||DSN||QUOTE /* FULLY QUOTED DSN */ ADDRESS ISPEXEC LMINIT DATAID( MYDATAID) DATASET( QDSN ) ENQ(SHRW) LMOPEN DATAID(MYDATAID) OPTION(OUTPUT) LMMDEL DATAID(MYDATAID) MEMBER(*) LMCLOSE DATAID(MYDATAID) LMFREE DATAID(MYDATAID) SAY DSN IS NOW EMPTY EXIT HTH, -Victor- On Tue, 19 Jan 2010 16:45:33 -0800, John Mattson john_matt...@ea.epson.com wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. SCPPCENU(CPPEDELM) Everyone who has used CPP should have a copy. Its only about 100 lines of nicely written and documented REXX. Below is the basic JCL, of course you need your LOCAL ISPF/TSO data sets as in your logon proc... //DELMEM EXEC PGM=IKJEFT1B,COND=(4000,LT) //* *** *** //* *DELETE ALL MEMBERS OF MASTER DIALOG DATA SETS * //* * (EXCEPT SCPPTENU)* //* *** *** //SYSEXEC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //SYSPROC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //ISPMLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPMENU //ISPPLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPPENU //ISPSLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPSENU //ISPLLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPLOAD //ISPTLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPTENU //ISPPROF DD UNIT=SYSALLDA,DISP=(NEW,DELETE), //DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB), //SPACE=(CYL,(1,1,1)) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * PROFILE PREFIX(AFITSUP) ISPSTART CMD(CPPEDELM) //SYSINDD * MSYS.CPP.D091130.SCPPCENU MSYS.CPP.D091130.SCPPLOAD MSYS.CPP.D091130.SCPPMENU MSYS.CPP.D091130.SCPPPENU MSYS.CPP.D091130.SCPPSENU /* -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Here's another method which works on a S/360 :) I have to shamefully admit the JCL is built using REXX and various ISPF facilitiesbut if you only have a card punch.. //* --*/ //* DELETE MEMBERS FROM THE LIBRARY */ //* --*/ //IEHPROGM EXEC PGM=IEHPROGM //SYSPRINT DD SYSOUT=* //MYDD DD UNIT=SYSDA,VOL=SER=WRKVOL,DISP=SHR, //DSN=MYUSER.COBOL.SOURCE //SYSINDD * SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXFIX SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXKEYCHK SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXKEYS SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXRMCHK SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXRMCHKO SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXRMCHKR SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XXSQL SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XX2XXRM SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XX2PKG SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XX2UP SCRATCH DSNAME=MYUSER.COBOL.SOURCE,VOL=3390=(WRKVOL),MEMBER=XX2VTOC //* --*/ //* COMPRESS THE LIBRARY AFTER DELETES*/ //* --*/ //COMPRESS EXEC PGM=IEBCOPY //SYSUT1 DD DISP=SHR,DSN=MYUSER.COBOL.SOURCE //SYSUT2 DD DISP=SHR,DSN=MYUSER.COBOL.SOURCE //SYSPRINT DD SYSOUT=* //SYSINDD DUMMY On Fri, Jan 22, 2010 at 1:47 AM, Victor Gil victor@broadridge.com wrote: The below REXX [from one of the dino sites, forgot which one] does the job. Can even be used as an action against a given PDS on the DSLIST panel. /* REXX */ /* DELETE ALL MEMBERS OF A GIVEN LIBRARY DSN */ TRACE 'N' /* TRACE 'R' */ /* TRACE 'O' */ PARSE UPPER ARG DSNAME DSN = STRIP(DSNAME, 'BOTH', ) /* IN CASE IT'S IN QUOTES */ QUOTE = ' QDSN = QUOTE||DSN||QUOTE /* FULLY QUOTED DSN */ ADDRESS ISPEXEC LMINIT DATAID( MYDATAID) DATASET( QDSN ) ENQ(SHRW) LMOPEN DATAID(MYDATAID) OPTION(OUTPUT) LMMDEL DATAID(MYDATAID) MEMBER(*) LMCLOSE DATAID(MYDATAID) LMFREE DATAID(MYDATAID) SAY DSN IS NOW EMPTY EXIT HTH, -Victor- On Tue, 19 Jan 2010 16:45:33 -0800, John Mattson john_matt...@ea.epson.com wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. SCPPCENU(CPPEDELM) Everyone who has used CPP should have a copy. Its only about 100 lines of nicely written and documented REXX. Below is the basic JCL, of course you need your LOCAL ISPF/TSO data sets as in your logon proc... //DELMEM EXEC PGM=IKJEFT1B,COND=(4000,LT) //* *** *** //* * DELETE ALL MEMBERS OF MASTER DIALOG DATA SETS * //* * (EXCEPT SCPPTENU) * //* *** *** //SYSEXEC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //SYSPROC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //ISPMLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPMENU //ISPPLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPPENU //ISPSLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPSENU //ISPLLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPLOAD //ISPTLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPTENU //ISPPROF DD UNIT=SYSALLDA,DISP=(NEW,DELETE), // DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB), // SPACE=(CYL,(1,1,1)) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * PROFILE PREFIX(AFITSUP) ISPSTART CMD(CPPEDELM) //SYSIN DD * MSYS.CPP.D091130.SCPPCENU MSYS.CPP.D091130.SCPPLOAD MSYS.CPP.D091130.SCPPMENU MSYS.CPP.D091130.SCPPPENU MSYS.CPP.D091130.SCPPSENU /* -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- Wayne V. Bickerdike -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Subject: REXX to de From: John Mattson john_matt...@ea.epson.com Subject: REXX to delete all members of a PDS... serverpac CPPEDELM Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. from inside a PDS you can also give 'SEL * DEL' , then Set Delete Confirmation to On. This would do the trick as well, without any REXX. Walter Marguccio z/OS Systems Programmer BELENUS LOB Informatic GmbH Munich - Germany -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Subject: Re: REXX From: Walter Marguccio walter_marguc...@yahoo.com Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM from inside a PDS you can also give 'SEL * DEL' , then Set Delete Confirmation to On. actually, set delete confirmation to OFF would be better/quicker. Walter Marguccio z/OS Systems Programmer BELENUS LOB Informatic GmbH Munich - Germany -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 01:23:17 +, Ted MacNEIL eamacn...@yahoo.ca wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Really? Is that your own personal version of IDCAMS? Mark -- Mark Zelden Sr. Software and Systems Architect - z/OS Team Lead Zurich North America / Farmers Insurance Group - ZFUS G-ITO mailto:mark.zel...@zurichna.com z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/ Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
yeah, I couldn't get this to work w/ my version either IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Really? Is that your own personal version of IDCAMS? Mark -- Mark Zelden -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I tried this but IDCAMS rejected it. What am I missing? DEL 'MY.PDS(*) IDC3203I ITEM 'MY.PDS(*' DOES NOT ADHERE TO RESTRICTIONS IDC3202I ABOVE TEXT BYPASSED UNTIL NEXT COMMAND. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 Regards, Eric Verwijs Programmer Analyst | Programmeur-analyste CPP/ OAS/ IA Production Support Team | Équipe de soutien à la production RPC / SV / IA frederick.verw...@hrsdc-rhdcc.gc.ca Telephone | Téléphone 613-941-7492 Facsimile | Télécopieur 613-941-4234 National Headquarters | Administration Centrale Human Resources and Skills Development Canada | Ressources humaines et Développement des compétences Canada Government of Canada | Gouvernement du Canada -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Ted MacNEIL Sent: 2010-01-19 8:23 PM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I believe you need to remove the parens (). DELETE MY.PDS* On Wed, Jan 20, 2010 at 10:22 AM, Eric Verwijs frederick.verw...@hrsdc-rhdcc.gc.ca wrote: I tried this but IDCAMS rejected it. What am I missing? DEL 'MY.PDS(*) IDC3203I ITEM 'MY.PDS(*' DOES NOT ADHERE TO RESTRICTIONS IDC3202I ABOVE TEXT BYPASSED UNTIL NEXT COMMAND. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 Regards, Eric Verwijs Programmer Analyst | Programmeur-analyste CPP/ OAS/ IA Production Support Team | Équipe de soutien à la production RPC / SV / IA frederick.verw...@hrsdc-rhdcc.gc.ca Telephone | Téléphone 613-941-7492 Facsimile | Télécopieur 613-941-4234 National Headquarters | Administration Centrale Human Resources and Skills Development Canada | Ressources humaines et Développement des compétences Canada Government of Canada | Gouvernement du Canada -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Ted MacNEIL Sent: 2010-01-19 8:23 PM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- Mark Pace Mainline Information Systems 1700 Summit Lake Drive Tallahassee, FL. 32317 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 01:23:17 +, Ted MacNEIL eamacn...@yahoo.ca wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Since when has IDCAMS been able to do this ?? It never used to, so is this a new upgrade to IDCAMS ?? Thanks, ___ Tom Savor Office: +1 678.867.8431 Mobile: +1 404.660.6898 E-Mail: tom.sa...@fnis.com _ The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. _ -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Same error. I suspect this isn't a supported feature in IDCAMS. Regards, Eric Verwijs Programmer Analyst | Programmeur-analyste CPP/ OAS/ IA Production Support Team | Équipe de soutien à la production RPC / SV / IA frederick.verw...@hrsdc-rhdcc.gc.ca Telephone | Téléphone 613-941-7492 Facsimile | Télécopieur 613-941-4234 National Headquarters | Administration Centrale Human Resources and Skills Development Canada | Ressources humaines et Développement des compétences Canada Government of Canada | Gouvernement du Canada -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Mark Pace Sent: 2010-01-20 10:42 AM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM I believe you need to remove the parens (). DELETE MY.PDS* On Wed, Jan 20, 2010 at 10:22 AM, Eric Verwijs frederick.verw...@hrsdc-rhdcc.gc.ca wrote: I tried this but IDCAMS rejected it. What am I missing? DEL 'MY.PDS(*) IDC3203I ITEM 'MY.PDS(*' DOES NOT ADHERE TO RESTRICTIONS IDC3202I ABOVE TEXT BYPASSED UNTIL NEXT COMMAND. CONDITION CODE IS 12 IDC0002I IDCAMS PROCESSING COMPLETE. MAXIMUM CONDITION CODE WAS 12 Regards, Eric Verwijs Programmer Analyst | Programmeur-analyste CPP/ OAS/ IA Production Support Team | Équipe de soutien à la production RPC / SV / IA frederick.verw...@hrsdc-rhdcc.gc.ca Telephone | Téléphone 613-941-7492 Facsimile | Télécopieur 613-941-4234 National Headquarters | Administration Centrale Human Resources and Skills Development Canada | Ressources humaines et Développement des compétences Canada Government of Canada | Gouvernement du Canada -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Ted MacNEIL Sent: 2010-01-19 8:23 PM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- Mark Pace Mainline Information Systems 1700 Summit Lake Drive Tallahassee, FL. 32317 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
-snip--- Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. -unsnip-- I used to have a simple little RYO utility that would do the job. It ran quite quickly since it deleted the emmber names in descending order, thus rewriting only 1-2 directory blocks at a time, instead of ascending order, which requires rewriting the entire used portion of the directory on each STOW. Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Rick -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 10:42:11 -0500, Mark Pace wrote: I believe you need to remove the parens (). DELETE MY.PDS* Why does this feel similar to instructing a UNIX novice to use the Read Manual - Really Fast! command, rm -rf *? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Really? Is that your own personal version of IDCAMS? Actually, I checked, again. The EXEC's, which I wrote many years ago, actually specifies each member, individually, but does empty the entire PDS with IDCAMS. I can't remember if I ever did try (*). - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 10:47:58 -0600, Rick Fochtman wrote: -snip--- Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. -unsnip-- I used to have a simple little RYO utility that would do the job. It ran quite quickly since it deleted the emmber names in descending order, thus rewriting only 1-2 directory blocks at a time, instead of ascending order, which requires rewriting the entire used portion of the directory on each STOW. Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. (Does QSAM reset DS1LSTAR as needed? Is this the only reaon you need to write (zeroes or whatever) to the entire directory?) -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Gil, So that's what rm -rf * really means!! :-) I agree that it feels the same, but fortunately it doesn't work quite the same. Here are a couple samples I tried on a 1.10 sandbox. There is 1 dataset that matches the filter. Fortunately (although sometimes I wish it would work...) IDCAMS isn't quite so free as to just do what you tell it without questioning - unlike the afore-mentioned read manual command... Dataset that I really don't care about T05.AGC.ZAG088C.AGCYLST.SORT Test 1: DEL T05.AGC* IDC3203I ITEM 'T05.AGC*' DOES NOT ADHERE TO RESTRICTIONS Test 2: DEL T05.AGC.* IDC3012I ENTRY T05.AGC. NOT FOUND Test 3: DEL T05.AGC.** IDC3203I ITEM 'T05.AGC.**' DOES NOT ADHERE TO RESTRICTIONS Test 4: DEL T05.AGC.*.*.* IDC3203I ITEM 'T05.AGC.*.*.*' DOES NOT ADHERE TO RESTRICTIONS Test 5: DEL T05.AGC.ZAG088C.AGCYLST.* IDC0550I ENTRY (A) T05.AGC.ZAG088C.AGCYLST.SORT DELETED Running an rm -rf against the IDCAMS manual brings up the following description of using wildcards: entryname is the name of the entry to be deleted. A generic name can be coded to delete multiple entries with one entryname. (For example, GENERIC.*.BAKER is a generic name where * is any 1-to-8 character simple name.) Here is an example of how generic level DELETE works given the following data sets: 1) AAA.BBB.CCC.DDD 2) AAA.BBB.CCC.DDD 3) AAA.BBB.CCC.DDD.EEE 4) AAA.BBB.CCC DELETE AAA.* results in the deletion of no data sets. DELETE AAA.BBB.* results in the deletion of data set #4 DELETE AAA.BBB.*.DDD results in the selection of data sets #1 and #2 DELETE AAA.BBB.*.DDD.EEE results in the deletion of data set #3. When a generic level name is specified, only one qualifier can replace the asterisk (*). If you are deleting a member of a non-VSAM partitioned data set, the entryname must be specified in the format: pdsname(membername). If you are deleting a non-VSAM data set that was defined by coding DEVICETYPES() and VOLUMES(**), then DELETE only uncatalogs the data set. It does not scratch the data set from the SYSRES volume. Exception: If data set contains indirect or symbolic VOLSER, the scratch parameter will be ignored, if specified. So one cannot delete all members of a PDS via a wildcard IDCAMS run, nor will it replace multiple qualifiers with a single asterisk, nor part of a qualifier with an asterisk. Rex -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Paul Gilmartin Sent: Wednesday, January 20, 2010 11:02 AM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM On Wed, 20 Jan 2010 10:42:11 -0500, Mark Pace wrote: I believe you need to remove the parens (). DELETE MY.PDS* Why does this feel similar to instructing a UNIX novice to use the Read Manual - Really Fast! command, rm -rf *? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Since when has IDCAMS been able to do this ?? It never used to, so is this a new upgrade to IDCAMS ?? My bad. As I've already said, I thought I did it that way. I checked my code, and, while it empties the entire PDS, it does it a member at a time. When I wrote it, I was working at a shop, many years ago, where space was at a premium, so I didn't want to delete and re-allocate the file. Instead, I wrote a REXX procedure, that used ISPF LM services to get the member list, parse it, and call ICAMS with one line of: DELETE mypds || ( || member.n || ) For each member, through an appropriate loop. I only have a hard copy of the EXEC, since it was a shop without PC's, so no downloading. - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
-Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Ted MacNEIL Sent: Wednesday, January 20, 2010 11:27 AM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM Since when has IDCAMS been able to do this ?? It never used to, so is this a new upgrade to IDCAMS ?? My bad. As I've already said, I thought I did it that way. I checked my code, and, while it empties the entire PDS, it does it a member at a time. When I wrote it, I was working at a shop, many years ago, where space was at a premium, so I didn't want to delete and re-allocate the file. Instead, I wrote a REXX procedure, that used ISPF LM services to get the member list, parse it, and call ICAMS with one line of: DELETE mypds || ( || member.n || ) For each member, through an appropriate loop. I only have a hard copy of the EXEC, since it was a shop without PC's, so no downloading. Curiousity: Did you delete them in reserve order? I.e. Z to A instead of A to Z? -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * (817)-961-6183 cell john.mck...@healthmarkets.com * www.HealthMarkets.com Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 11:18:42 -0600, Pommier, Rex R. wrote: So that's what rm -rf * really means!! :-) Running an rm -rf against the IDCAMS manual brings up the following description of using wildcards: ... So one cannot delete all members of a PDS via a wildcard IDCAMS run, nor will it replace multiple qualifiers with a single asterisk, nor part of a qualifier with an asterisk. I have a script that does this from NFS client. -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Paul Gilmartin wrote: On Wed, 20 Jan 2010 10:47:58 -0600, Rick Fochtman wrote: Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. Does this technique NOT work with PDSE? -- Edward E Jaffe Phoenix Software International, Inc 831 Parkview Drive North El Segundo, CA 90245 310-338-0400 x318 edja...@phoenixsoftware.com http://www.phoenixsoftware.com/ -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Curiousity: Did you delete them in reserve order? I.e. Z to A instead of A to Z? I experimented, but (as I said) it was such a long time ago, and a small part of what the EXEC was doing, that it didn't make much difference. (As a long-time performance/capacity analyst -- since September 1981, I'm aware of the issues surrounding PDS responsiveness). I wrote the EXEC shortly after MVS started supporting REXX (circa 1990 -- MVS/ESA 3.1.0 [or was it 3.1.0e?]). And, until today, I have never really looked at that code, since). - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 09:34:29 -0800, Edward Jaffe edja...@phoenixsoftware.com wrote: Paul Gilmartin wrote: On Wed, 20 Jan 2010 10:47:58 -0600, Rick Fochtman wrote: Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. Does this technique NOT work with PDSE? I don't know about that program, but this REXX program doesn't work with PDSE (013-EC abend): ARG dsn ALLOC F(PDSDIR) DA(dsn) SHR REUSE RECFM(F), /* pds directory */ DSORG(PS) LRECL(256) BLKSIZE(256) EXECIO 1 DISKRU PDSDIR (STEM DIR./* read pds directory */ /* for update */ DIR.1 = '000E'x/* End of Directory */ EXECIO 1 DISKW PDSDIR (STEM DIR. FINIS /* Rewrite Directory */ FREE F(PDSDIR) Exit Mark -- Mark Zelden Sr. Software and Systems Architect - z/OS Team Lead Zurich North America / Farmers Insurance Group - ZFUS G-ITO mailto:mark.zel...@zurichna.com z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/ Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I believe the wild card feature has been added in z/OS 1.11 a la DFSMS. *, **, snip Dataset that I really don't care about T05.AGC.ZAG088C.AGCYLST.SORT Test 1: DEL T05.AGC* IDC3203I ITEM 'T05.AGC*' DOES NOT ADHERE TO RESTRICTIONS Test 2: DEL T05.AGC.* IDC3012I ENTRY T05.AGC. NOT FOUND Test 3: DEL T05.AGC.** IDC3203I ITEM 'T05.AGC.**' DOES NOT ADHERE TO RESTRICTIONS Test 4: DEL T05.AGC.*.*.* IDC3203I ITEM 'T05.AGC.*.*.*' DOES NOT ADHERE TO RESTRICTIONS Test 5: DEL T05.AGC.ZAG088C.AGCYLST.* IDC0550I ENTRY (A) T05.AGC.ZAG088C.AGCYLST.SORT DELETED /snip -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
snip -snip--- Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. -unsnip-- I used to have a simple little RYO utility that would do the job. It ran quite quickly since it deleted the emmber names in descending order, thus rewriting only 1-2 directory blocks at a time, instead of ascending order, which requires rewriting the entire used portion of the directory on each STOW. Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. (Does QSAM reset DS1LSTAR as needed? Is this the only reaon you need to write (zeroes or whatever) to the entire directory?) ---unsnip- Since I opened the directory in UPDAT mode, DS1LSTAR is unaffected. Takes a IEBCOPY compress of the empty dataset to reset. I wrote zeros purely for the sake of appearances. Rewriting the first block would have sufficed. Rick -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Allan, You are correct, sir. The snippet from the manual was at the 1.10 level. I should have mentioned that in my e-mail. Rex -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Staller, Allan Sent: Wednesday, January 20, 2010 12:10 PM To: IBM-MAIN@bama.ua.edu Subject: Re: REXX to delete all members of a PDS... serverpac CPPEDELM I believe the wild card feature has been added in z/OS 1.11 a la DFSMS. *, **, snip Dataset that I really don't care about T05.AGC.ZAG088C.AGCYLST.SORT Test 1: DEL T05.AGC* IDC3203I ITEM 'T05.AGC*' DOES NOT ADHERE TO RESTRICTIONS Test 2: DEL T05.AGC.* IDC3012I ENTRY T05.AGC. NOT FOUND Test 3: DEL T05.AGC.** IDC3203I ITEM 'T05.AGC.**' DOES NOT ADHERE TO RESTRICTIONS Test 4: DEL T05.AGC.*.*.* IDC3203I ITEM 'T05.AGC.*.*.*' DOES NOT ADHERE TO RESTRICTIONS Test 5: DEL T05.AGC.ZAG088C.AGCYLST.* IDC0550I ENTRY (A) T05.AGC.ZAG088C.AGCYLST.SORT DELETED /snip -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
snip- Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. Does this technique NOT work with PDSE? ---unsnip- Haven't tried it on a PDSE, since STOW dcb,,I seems to work so well. Rick -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Ed Jaffe of the IBM Mainframe Discussion List IBM-MAIN@bama.ua.edu wrote on 01/20/2010 11:34:29 AM: Paul Gilmartin wrote: On Wed, 20 Jan 2010 10:47:58 -0600, Rick Fochtman wrote: Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. Does this technique NOT work with PDSE? -- Edward E Jaffe You have to use STOW I(nitialize) for a PDSE. Regards, John K -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
-snip- I don't know about that program, but this REXX program doesn't work with PDSE (013-EC abend): ARG dsn ALLOC F(PDSDIR) DA(dsn) SHR REUSE RECFM(F), /* pds directory */ DSORG(PS) LRECL(256) BLKSIZE(256) EXECIO 1 DISKRU PDSDIR (STEM DIR./* read pds directory */ /* for update */ DIR.1 = '000E'x/* End of Directory */ EXECIO 1 DISKW PDSDIR (STEM DIR. FINIS /* Rewrite Directory */ FREE F(PDSDIR) Exit ---unsnip Mark, did you forget about the keys on the directory blocks ?? Rick -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 12:48:11 -0600, Rick Fochtman rfocht...@ync.net wrote: -snip- I don't know about that program, but this REXX program doesn't work with PDSE (013-EC abend): ARG dsn ALLOC F(PDSDIR) DA(dsn) SHR REUSE RECFM(F), /* pds directory */ DSORG(PS) LRECL(256) BLKSIZE(256) EXECIO 1 DISKRU PDSDIR (STEM DIR./* read pds directory */ /* for update */ DIR.1 = '000E'x/* End of Directory */ EXECIO 1 DISKW PDSDIR (STEM DIR. FINIS /* Rewrite Directory */ FREE F(PDSDIR) Exit ---unsnip Mark, did you forget about the keys on the directory blocks ?? Rick It isn't needed (for a PDS... the problem is with PDSE): From DFSMS Using Data Sets: 3.7.9 Reading a PDS Directory Sequentially You can read a PDS directory sequentially just by opening the data set to its beginning (without using positioning macros) and reading it. The DD statement must identify the DSNAME without a member name. You can use either BSAM or QSAM with MACRF=R or G. Specify BLKSIZE=256 and RECFM=F or RECFM=U. QSAM always requires LRECL=256 You should test for the last directory entry (8 bytes of X'FF'). Records and blocks after that point are unpredictable. After reading the last allocated directory block, control passes to your EODAD routine or reading continues with a concatenated data set. You can issue an FEOV macro to cease reading the current data set and continue with the next one. If you issue FEOV while reading the last or only data set, control passes to your EODAD routine. If you also want to read the keys (the name of the last member in that block), use BSAM and specify KEYLEN=8. This technique works when PDSs and PDSEs are concatenated. However, you cannot use this technique to sequentially read a UNIX directory. The system considers this to be a like sequential concatenation. See Reading a PDSE Directory in topic 3.8.11. -- Mark Zelden Sr. Software and Systems Architect - z/OS Team Lead Zurich North America / Farmers Insurance Group - ZFUS G-ITO mailto:mark.zel...@zurichna.com z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/ Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
(sorry... I hit send to quick on the last one): On Wed, 20 Jan 2010 12:48:11 -0600, Rick Fochtman rfocht...@ync.net wrote: -snip- I don't know about that program, but this REXX program doesn't work with PDSE (013-EC abend): ARG dsn ALLOC F(PDSDIR) DA(dsn) SHR REUSE RECFM(F), /* pds directory */ DSORG(PS) LRECL(256) BLKSIZE(256) EXECIO 1 DISKRU PDSDIR (STEM DIR./* read pds directory */ /* for update */ DIR.1 = '000E'x/* End of Directory */ EXECIO 1 DISKW PDSDIR (STEM DIR. FINIS /* Rewrite Directory */ FREE F(PDSDIR) Exit ---unsnip Mark, did you forget about the keys on the directory blocks ?? Rick It isn't needed (for a PDS... the problem is with PDSE): From DFSMS Using Data Sets: 3.7.9 Reading a PDS Directory Sequentially You can read a PDS directory sequentially just by opening the data set to its beginning (without using positioning macros) and reading it. The DD statement must identify the DSNAME without a member name. You can use either BSAM or QSAM with MACRF=R or G. Specify BLKSIZE=256 and RECFM=F or RECFM=U. QSAM always requires LRECL=256 You should test for the last directory entry (8 bytes of X'FF'). Records and blocks after that point are unpredictable. After reading the last allocated directory block, control passes to your EODAD routine or reading continues with a concatenated data set. You can issue an FEOV macro to cease reading the current data set and continue with the next one. If you issue FEOV while reading the last or only data set, control passes to your EODAD routine. If you also want to read the keys (the name of the last member in that block), use BSAM and specify KEYLEN=8. This technique works when PDSs and PDSEs are concatenated. However, you cannot use this technique to sequentially read a UNIX directory. The system considers this to be a like sequential concatenation. See Reading a PDSE Directory in topic 3.8.11. Here is the PDSE doc in 3.8.11 (note that update can't be used, which is what the rexx program does with the first EXECIO DISKRU): 3.8.11 Reading a PDSE Directory You can read a PDSE directory sequentially just by opening the data set (without using positioning macros) and reading it. The PDSE directory cannot be updated. The following rules and guidelines apply to reading a PDSE directory: The DD statement must identify the DSNAME without a member name. You can use either BSAM or QSAM with MACRF=R or G. Specify BLKSIZE=256 and RECFM=F or RECFM=U. If you also want to read the keys (the name of the last member in that block), use BSAM and specify KEYLEN=8. After reading the last PDSE directory entry, you read the next directory, or control passes to your EODAD routine. The last directory entry is indicated with a dummy name of eight bytes of X'FF'. Alias entries with names longer than eight bytes are omitted. To read them, use DESERV. You can use sequentially read the directories of a concatenation of PDSs and PDSEs. However, you cannot sequentially read a UNIX directory. This is considered to be a like sequential concatenation. To proceed to each successive data set, you can rely on the system's EOV function or you can issue the FEOV macro. Regards, Mark -- Mark Zelden Sr. Software and Systems Architect - z/OS Team Lead Zurich North America / Farmers Insurance Group - ZFUS G-ITO mailto:mark.zel...@zurichna.com z/OS Systems Programming expert at http://expertanswercenter.techtarget.com/ Mark's MVS Utilities: http://home.flash.net/~mzelden/mvsutil.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
I cobbled together two routines written by colleagues as EMPTYPDS on CBT file 172 to overwrite the directory and DS1LSTAR, then some kind gentleman improved upon it. Search for EMPTYPDS on the CBT tape. I don't believe it works on PDSE because it dos not use STOW but I cannot test it. DC On Wed, 20 Jan 2010 12:42:28 -0600, Rick Fochtman rfocht...@ync.net wrote: snip -snip --- Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. -unsnip-- I used to have a simple little RYO utility that would do the job. It ran quite quickly since it deleted the emmber names in descending order, thus rewriting only 1-2 directory blocks at a time, instead of ascending order, which requires rewriting the entire used portion of the directory on each STOW. Then I came up with a little QSAM program that set the entire directory to zeros and placed the x'' in the key and first member name of the first block. Then IBM invented PDSE and spoiled all your fun. (Does QSAM reset DS1LSTAR as needed? Is this the only reaon you need to write (zeroes or whatever) to the entire directory?) ---unsnip- Since I opened the directory in UPDAT mode, DS1LSTAR is unaffected. Takes a IEBCOPY compress of the empty dataset to reset. I wrote zeros purely for the sake of appearances. Rewriting the first block would have sufficed. Rick -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
In 834360723-1264008407-cardhu_decombobulator_blackberry.rim.net-1682978...@bda026.bisx.prod.on.blackberry, on 01/20/2010 at 05:27 PM, Ted MacNEIL eamacn...@yahoo.ca said: Instead, I wrote a REXX procedure, that used ISPF LM services to get the member list, parse it, and call ICAMS with one line of: DELETE mypds || ( || member.n || ) For each member, through an appropriate loop. If you're already using ISPF services, why not also use ISPF services to do the delete. That should be a lot less overhead. I only have a hard copy of the EXEC, since it was a shop without PC's, so no downloading. Were there policies against, e.g., FTP, tape? -- Shmuel (Seymour J.) Metz, SysProg and JOAT ISO position; see http://patriot.net/~shmuel/resume/brief.html We don't care. We don't have to care, we're Congress. (S877: The Shut up and Eat Your spam act of 2003) -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
REXX to delete all members of a PDS... serverpac CPPEDELM
Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. SCPPCENU(CPPEDELM) Everyone who has used CPP should have a copy. Its only about 100 lines of nicely written and documented REXX. Below is the basic JCL, of course you need your LOCAL ISPF/TSO data sets as in your logon proc... //DELMEM EXEC PGM=IKJEFT1B,COND=(4000,LT) //* ** //* *DELETE ALL MEMBERS OF MASTER DIALOG DATA SETS * //* * (EXCEPT SCPPTENU)* //* ** //SYSEXEC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //SYSPROC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //ISPMLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPMENU //ISPPLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPPENU //ISPSLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPSENU //ISPLLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPLOAD //ISPTLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPTENU //ISPPROF DD UNIT=SYSALLDA,DISP=(NEW,DELETE), //DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB), //SPACE=(CYL,(1,1,1)) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * PROFILE PREFIX(AFITSUP) ISPSTART CMD(CPPEDELM) //SYSINDD * MSYS.CPP.D091130.SCPPCENU MSYS.CPP.D091130.SCPPLOAD MSYS.CPP.D091130.SCPPMENU MSYS.CPP.D091130.SCPPPENU MSYS.CPP.D091130.SCPPSENU /* -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. - Too busy driving to stop for gas! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
On Wed, 20 Jan 2010 01:23:17 +, Ted MacNEIL wrote: Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. IDCAMS: DELETE MY.PDS(*) I have a few REXX programmes using that. Performance? How does this compare to STOW dcb,,I? Or does IDCAMS use that facility nowadays? (Also address TSO 'DELETE MY.PDS(*)'?) (I find I participated in a thread on this 3 years ago: http://www.mail-archive.com/ibm-main@bama.ua.edu/msg29610.html This still ought to be a DSLIST prefix command.) -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html
Re: REXX to delete all members of a PDS... serverpac CPPEDELM
- Original Message - From: John Mattson john_matt...@ea.epson.com Newsgroups: bit.listserv.ibm-main Sent: Tuesday, January 19, 2010 7:46 PM Subject: REXX to delete all members of a PDS... serverpac CPPEDELM Some folks have asked about how to delete all members from a PDS without deleting the PDS. I just stumbled across this while doing a receive from ServerPac CPP. I noticed this REXX in and amongst the JCL. SCPPCENU(CPPEDELM) Everyone who has used CPP should have a copy. Its only about 100 lines of nicely written and documented REXX. Below is the basic JCL, of course you need your LOCAL ISPF/TSO data sets as in your logon proc... //DELMEM EXEC PGM=IKJEFT1B,COND=(4000,LT) //* ** //* *DELETE ALL MEMBERS OF MASTER DIALOG DATA SETS * //* * (EXCEPT SCPPTENU)* //* ** //SYSEXEC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //SYSPROC DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPCENU //ISPMLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPMENU //ISPPLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPPENU //ISPSLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPSENU //ISPLLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPLOAD //ISPTLIB DD DISP=SHR,DSN=MSYS.ZOS111.OS120544.SCPPTENU //ISPPROF DD UNIT=SYSALLDA,DISP=(NEW,DELETE), //DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB), //SPACE=(CYL,(1,1,1)) //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTSIN DD * PROFILE PREFIX(AFITSUP) ISPSTART CMD(CPPEDELM) //SYSINDD * MSYS.CPP.D091130.SCPPCENU MSYS.CPP.D091130.SCPPLOAD MSYS.CPP.D091130.SCPPMENU MSYS.CPP.D091130.SCPPPENU MSYS.CPP.D091130.SCPPSENU /* Without seeing the code for this CPPEDELM, I would bet that you have to compress the PDS to reclaim all the member space. I'd recommend using the PDS command FIXPDS RESET to clear the directory without requiring a compress. File 182 on the CBTTAPE dial www.cbttape.org. Regards, Tom Conley -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html