Re: REXX to delete all members of a PDS... serverpac CPPEDELM

2010-02-02 Thread Wayne Bickerdike
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

2010-01-28 Thread Victor Gil
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

2010-01-26 Thread Roger Bolan
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

2010-01-25 Thread Stocker, Herman
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

2010-01-22 Thread Eric Verwijs
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

2010-01-21 Thread Victor Gil
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

2010-01-21 Thread Wayne Bickerdike
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

2010-01-20 Thread Walter Marguccio
 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

2010-01-20 Thread Walter Marguccio
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

2010-01-20 Thread Mark Zelden
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

2010-01-20 Thread Bonno, Tuco
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

2010-01-20 Thread Eric Verwijs
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

2010-01-20 Thread Mark Pace
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

2010-01-20 Thread Savor, Tom
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

2010-01-20 Thread Eric Verwijs
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

2010-01-20 Thread Rick Fochtman

-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

2010-01-20 Thread Paul Gilmartin
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

2010-01-20 Thread Ted MacNEIL
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

2010-01-20 Thread Paul Gilmartin
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

2010-01-20 Thread Pommier, Rex R.
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

2010-01-20 Thread Ted MacNEIL
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

2010-01-20 Thread McKown, John
 -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

2010-01-20 Thread Paul Gilmartin
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

2010-01-20 Thread Edward Jaffe

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

2010-01-20 Thread Ted MacNEIL
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

2010-01-20 Thread Mark Zelden
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

2010-01-20 Thread Staller, Allan
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

2010-01-20 Thread Rick Fochtman

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

2010-01-20 Thread Pommier, Rex R.
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

2010-01-20 Thread Rick Fochtman

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

2010-01-20 Thread John P Kalinich
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

2010-01-20 Thread Rick Fochtman

-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

2010-01-20 Thread Mark Zelden
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

2010-01-20 Thread Mark Zelden
(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

2010-01-20 Thread David Cartwright
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

2010-01-20 Thread Shmuel Metz (Seymour J.)
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

2010-01-19 Thread John Mattson
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

2010-01-19 Thread Ted MacNEIL
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

2010-01-19 Thread Paul Gilmartin
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

2010-01-19 Thread Pinnacle
- 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