View previous topic :: View next topic
|
Author |
Message |
tander3
New User
Joined: 21 Jan 2016 Posts: 2 Location: USA
|
|
|
|
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 |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
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 |
|
|
tander3
New User
Joined: 21 Jan 2016 Posts: 2 Location: USA
|
|
|
|
Ok - guess it's back into the SAS code then. - Thanks. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
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 |
|
|
|