IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Append to file, but also remove old records when full?


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
tander3

New User


Joined: 21 Jan 2016
Posts: 2
Location: USA

PostPosted: Mon Jan 25, 2016 8:05 pm
Reply with quote

I have a JCL that triggers SAS code to compare files and record certain records.

New records append to the same file when the job runs. When the file is full the job abends.

Is there a way for the oldest records to drop from the file when new records append?

The file would have a fixed size, but never grow larger. I could change the SAS Code to help out with this, but I wonder if there a JCL only solution? That might be simpler.

Here is the JCL DD statement:

Code:

//RECORDS   DD DSN=FILE.NAME.RECORDS,               
//                  DISP=(MOD,CATLG),                         
//                  DCB=(RECFM=FB,LRECL=500,BLKSIZE=0),       
//                  AVGREC=M,SPACE=(500,(1,1),RLSE),UNIT=DISK


Thank you for reading my post !!
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Mon Jan 25, 2016 8:53 pm
Reply with quote

Quote:
I could change the SAS Code to help out with this, but I wonder if there a JCL only solution?
First, JCL does nothing but allocate resources and execute programs. Hence you will NOT be able to find a JCL-only solution; you will have to use a program of some sort to do this.

Second, the system doesn't know how old a given record is -- the system tracks a data set as far as create date and last referenced date, but that's as far as it goes. So you'll need to write a program in the language of your choice to identify the oldest records and remove them from the data set. Note that removing them is easy if the data set is a VSAM KSDS but may be time-consuming if the data set is sequential since you'll probably need to copy it to an output data set omitting the old records from the write to the output data set.
Back to top
View user's profile Send private message
tander3

New User


Joined: 21 Jan 2016
Posts: 2
Location: USA

PostPosted: Mon Jan 25, 2016 10:03 pm
Reply with quote

Ok - guess it's back into the SAS code then. - Thanks.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Tue Jan 26, 2016 1:51 pm
Reply with quote

Quote:
Is there a way for the oldest records to drop from the file when new records append?


..and what determines what's "oldest"? If you have a datestamp in the records, you could perhaps use a DFSORT/SYNCSORT step to drop the 'oldest' records before you current step appends more records?

Garry.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts Access to non cataloged VSAM file JCL & VSAM 18
No new posts Sortjoin and Search for a String and ... DFSORT/ICETOOL 1
Search our Forums:

Back to Top