Hi
You don't say but you ARE copying sequentially and using blocking, right ?
:)
Regards
Evan Harris
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of sjl
Sent: Thursday, 13 November 2008 9:12 a.m.
To: midrange-l@xxxxxxxxxxxx
Subject: Fast Copy File
All -
We were having difficulties when refreshing data libraries in our test
environments due to the long time it was taking to rebuild the logical files
over the physical files.
I determined that it was much more efficient to first /remove/ the LF
members from the logical files in the to-library /before/ doing the CPYF
command, then submitting jobs to add back the LF members once the PF was
copied - thus was born a new command I call FASTCPYF.
The underlying CPP for this command does the following:
1) DSPDBR of the PF in the to-library to an outfile to capture all of the
logical files that are dependent on the PF in the to-library
2) DSPFD of the PF in the to-library TYPE(*TRG) to an outfile to capture any
triggers on the file in the to-library
3) Removes all of the LF members from the PF in the to-library
4) Removes all of the triggers from the PF in the to-library
5) Uses CPYF to copy the from-file to the to-file
6) Using the information from DSPDBR, submits jobs to add back all of the
logical file members to the PF in the to-library
7) Using the information from DSPFD TYPE(*TRG), adds back all of the
triggers to the PF in the to-library
Have I missed anything?
From my preliminary testing on a physical file that has a lot of logical
files, FASTCPYF can be 10 times faster than CPYF...
- sjl
As an Amazon Associate we earn from qualifying purchases.