Frank, Since I'm only somewhat dangerous with VSAM and even less informed in IMS, does not the IDCAMS DEFINE for a VSAM file give you an empty/initialized VSAM file? Isn't there an end-of-file at the very beginning of the file created by DEFINE?
What does IMS consider an initialized/empty VSAM file? I would think that somewhere in the IMS documentation or IMS SAMPLIB there would be an example of how to do this. No?? HITACHI DATA SYSTEMS Raymond E. Noal Senior Technical Engineer Office: (408) 970 - 7978 -----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Frank Swarbrick Sent: Wednesday, March 25, 2009 4:47 PM To: [email protected] Subject: initialize (reset) file Is there a standard z/OS tool to "initialize" a VSAM file? There are a few reasons I want to do this. One is when reloading an IMS database the index portion of the database (which is a VSAM ESDS) must be empty (initialized). If it is not I get something like this: DFS0730I UNABLE TO OPEN DATA SET WITH DDNAME FFUNDIN FOR REASON I,30,DATABASE FFUNDIN PSB FFUNDDB IVP3 where "I,30 An attempt was made to open a VSAM data set associated with a PCB which has processing option L and the data set is not empty. Programmer response: If the old data set is to be scratched, delete it using the VSAM AMS program. If the data set is not to be scratched, use a PCB with processing option other than L." It seems to me there is no point using AMS to do a DELETE/DEFINE. I can just initialize the database. For now I've been using IDCAMS REPRO from a DUMMY dataset. This works fine, but for whatever reason it bugs me. There should be something to just open the file (for reuse) and then close it. So I came up with this: INITVSAM START 0 BEGIN SAVE (14,12) BALR 3,0 USING *,3 OPEN FILE1 LTR 15,15 BNZ DUMP B CLOSE DUMP ABEND 1234,REASON=99,DUMP CLOSE CLOSE FILE1 LTR 15,15 BNZ DUMP RETURN (14,12),RC=0 FILE1 ACB MACRF=(CNV,OUT,RST) RPL1 RPL ACB=FILE1 END BEGIN Warning! I am not really an assembler programmer. But it is simple enough and seems to do the trick. Can anyone see anything wrong with this or see any reason why I shouldn't do this? What do others usually do to empty/initialize a file? Or do you generally just not do this? We have a lot of VSE JCL where we use a utility called Doctor.D to initialize files. But I'm not sure as to the various reasons why we are initializing the files. I think sometimes we process a file and then initialize it so that it's empty if we try to process it again before it's properly "rebuilt" (by a program or usually an FTP) the next processing day. Anyway, any thoughts are welcome. Frank ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] 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 [email protected] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

