You might consider an alternate deployment strategy

* A target and dlib zone for each IPL volume.
* Secondary res volsers based on IPL volser
* Symbols based on IPL volser
* File system names based on  IPL volser
* Data set names on other than target or dlib based on IPL volser
* Indirect cataloging.
* LOADxx and IEASYMxx for above

Having unique names for the data sets off the res volumes should resolve your 
ENQ issue.





--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי



________________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of 
Mark Zelden <[email protected]>
Sent: Friday, October 13, 2023 10:55 PM
To: [email protected]
Subject: Re: DFDSS RFE - Please read / vote

On Fri, 13 Oct 2023 15:31:42 -0500, Mark Zelden <[email protected]> wrote:

I've had some offline responses also. Including the suggestion to use 
TOLERATE(ENQFAILURE)
 which only applies to the input dataset.  Let me explain again and show all 
the DFDSS control cards.

I have an "program products" sysres that is an extension of IBM OS sysres. 
There is a maintenance
version of that sysres, just like you have a maintenance IBM sysres that you 
apply SMP/E maintenance
to.  The PP sysres gets cloned along with the IBM sysres via full volume disk 
to disk copies. That is not
a problem.

That program products sysres (really 2 3390-27 volumes) has perhaps 40 IBM / 
ISV products.
All the datasets are indirectly catalogued via &SYSRn.  Program product SMP/E 
target libs are copied
(and renamed during the copy) to the PP maintenance sysres at various time.  
When maintenance
for any give product is applied (or an upgrade) and is ready to roll out the 
sysprog copies
the SMP/E targets to this maintenance sysres.  So think of it as a volume were 
changes are staged for
production.  Then after cloning, the changes are rolled out as a package, be it 
with IBM OS maintenance,
one product, several products, or any combination like that.   This is done via 
rolling IPLs in
a sysplex environment so as not to cause any application outages (usually half 
the LPARs one
month, the other half the next month).   Almost every product's main loadlib is 
in the LNKLST - at
least anything that has associated production JCL, TSO CLISTs / EXECs, ISPxLIBs 
etc.  If something is only
used by an STC, it may not be in the LNKLST. This is to shield anyone from 
having to make
JCL changes etc. (pretty standard stuff, right?).

So many of these datasets being "staged" prior to cloning are ENQed.  If the 
input library
in the copy is larger than the one on the maintenance sysres volume, that is 
when DFDSS
fails.  If it doesn't have to scratch / reallocate the dataset that already 
exists to make it
larger to accommodate the input data set size,  it works fine.

Here is a sample of the copy process with DFDSS, only there would be many more
libraries copied / renamed than just a single one for almost all products.  
(another shortcoming
of DFDSS compared to FDRCOPY where only the HLQ can be renamed and FDRCOPY can
rename the hlq plus add / remove nodes for multiple datasets - dozens if I 
needed,  in a single
control statement, but I digress...)

//SYSIN    DD  *
 COPY DS( -
   INCLUDE( -
            smphlq.product.V6R3.LINKLIB -
           )  -
        )  -
  RENAMEU( -
           (smphlq.product.V6R3.LINKLIB -
              prodhlq.product.LINKLIB)    -
             ) -
  SHARE TOL(ENQF)   PROCESS(SYS1)     -
  BYPASSACS(**)   -
  NULLSTORCLAS    -
  LIDY(inpvol)    -
  OUTDYNAM(outvol,SYSALLDA)           -
  REPLACEUNCONDITIONAL -
  WAIT(2,2)  ALLDATA(*)  ALLEXCP
/*

If prodhlq.product.LINKLIB is ENQed (in this case you can presume it is due to 
being in the LNKLST on the driving system), you get this error:

ADR497E (001)-CATLG(07), A CATALOG ERROR OCCURRED WHILE DELETING UNCATALOGED 
DATA SET prodhlq.product.LINKLIB. RETURN CODE IS 102, REASON
CODE IS FP-007

ERROR OCCURRED WHILE DELETING UNCATALOGED DATA SET


** VOTE here by clicking the vote icon at the top left!
https://ibm-z-hardware-and-operating-systems.ideas.ibm.com/ideas/ZOS-I-3862

Regards,  Mark

>Sorry for top posting...
>
>Let's address your comments one keyword at a time:
>
>DELETE - deletes the source (input) dataset.  Ouch!  Lets not delete my SMP/E 
>target libs during copy to my sysres set please!
>
>PURGE -  overlays an output dataset that has an expiration date not yet 
>reached.  Not applicable.
>
>UNCOND -  no such parm or abbreviation.  I assume you mean 
>replaceunconditional, and that is already being done and doesn't matter.
>
>The deficiency is DADSM.  This is how DFSMSdss is handling this scenaro (it 
>attempts to scratch the DSN to reallocate a bigger dsn on copy if required).  
>DADSM can't scratch the DSN because the DSN is ENQ'd.
>
>ADR497E (001)-CATLG(07), A CATALOG ERROR OCCURRED WHILE DELETING UNCATALOGED 
>DATA SET SYNCSORT.SYNCLINK. RETURN CODE IS 102, REASON
>CODE IS FP-007
>
>You also will see:
>
>"ERROR OCCURRED WHILE DELETING UNCATALOGED DATA SET"
>
>Ironic since the CATALOG keyword is not used while copying over the indirectly 
>catalogged dataset on the maintenance sysres set.
>
>Not sure what FDRCOPY does under the covers... no access right now try try and 
>determine that.  Perhaps it renames it first and deletes it with DADSM.   But 
>I know one does not need access to STGADMIN.DPDSRN.dsn_to_rename in order for 
>it to work with FDRCOPY.
>
>Regards,
>
>Mark
>--
>Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
>ITIL v3 Foundation Certified
>mailto:[email protected]
>Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html
>Systems Programming expert at http://search390.techtarget.com/ateExperts/
>
>
>
>On Thu, 12 Oct 2023 22:44:29 +0000, willie bunter <[email protected]> 
>wrote:
>
>> I thought the UNCOND DELETE PURGE parms could be used along with the COPY 
>> command
>>
>>    On Wednesday, October 11, 2023 at 05:00:17 p.m. EDT, Mark Zelden 
>> <[email protected]> wrote:
>>
>> Hi all,
>>
>>Please read / vote for this RFE.
>>
>>
>>"Provide abilty for DSS to be able to scratch and reallocate an in use data 
>>set name that is not the actual dataset in use during a logical copy 
>>operation"
>>
>>https://ideas.ibm.com/ideas/ZOS-I-3862
>>
>>I think you vote here:
>>https://ibm-z-hardware-and-operating-systems.ideas.ibm.com/ideas/ZOS-I-3862
>>
>>I was honestly shocked this is not supported in DFDSS.  I've been using FDR 
>>for over 30 years for this.
>>
>>I don't know if you can see the entire text, so I will copy it below to 
>>explain the issue, but in summary:
>>
>>If you are copying a dataset to a maintenance sysres (target sysres that will 
>>be cloned) and that DSN
>>is ENQd, the copy will work - unless the dataset needs to be scratched / 
>>reallocated because the
>>input dataset is larger than the output one that already exists.  I've been 
>>supporting clients for
>>30 years that keep ISV (and IBM non-OS) products as an extension of the 
>>sysres and recently
>>ran into this at a client that dumped FDR since they had DFDSS and ran into 
>>this problem.
>>
>>If you know a way around the issue - shoot!  IBM says it is not supported.  
>>You can delete the
>>not in use dataset after rename (if allowed) but that is error prone since 
>>you have to point to
>>the maintenance volume and I don't want JR. people doing this.  One other 
>>work around is
>>after the logical copy fails, you can run it again as physical since the 
>>dataset is enlarged
>>on the first try, but just fails in scratch.  BTW, "CATALOG" is never used in 
>>this copy since
>>the datasets are indirectly catalogged.
>>
>>Now for the RFE main part of the RFE text:
>>
>>-----------------------------------------------------------------------------------
>>
>>Putting maintenance onto a "target" / maintenance sysres volume or set has 
>>been an MVS concept  and cloning an IPLable sysres set (or swapping IPL sets) 
>>"forever" . Many shops also put other IBM products or ISV products on a 
>>secondary / tertiary sysres and indirectly catalog them so they are on the 
>>sysres set.  This is the only way to support rolling IPLs in a sysplex so 
>>there are not application outages (another MVS concept).  Since those 
>>secondary / tertiary  volumes are a combination of products, adding new 
>>datasets is done via logical copy of a product's target libraries to the 
>>target / maintenance sysres and those datasets are indirectly catalogged 
>>using a system symbol like &SYSR2, &SYSR3, etc.  The copy to the "target" 
>>system (maintenance sysres) works fine even if the same named dataset is in 
>>use on the live sysres set (be it in the LNKLST, TSO PROC, STC STEPLIB etc.). 
>> EXCEPT... when the dataset needs to be enlarged as part of the copy process. 
>> In that case you get message ADR497E RC 102 Reason code FP-007 and "ERROR 
>>OCCURRED WHILE DELETING UNCATALOGED DATA SET" and the copy for that dataset 
>>fails.  However, the dataset to be "overlaid" (if you will), is not the 
>>dataset in use so DFDSS should have the ability to enlarge it and do the 
>>copy.  The only solution is to use the DFSMS special SAF authority to rename 
>>a dataset in use (STGADMIN.DPDSRN.dsn_to_rename) to rename the "target" 
>>dataset on the maintenance volume, then delete it, then rerun the copy job.  
>>This could be very error prone if someone doesn't put in the correct volser 
>>on ISPF  and they could rename the "real" in use dataset or perhaps one on a 
>>different sysres set.
>>
>>-----------------------------------------------------------------------------------
>>
>>Please vote this one up!
>>
>>Best Regards,
>>
>>Mark
>>--
>>Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
>>ITIL v3 Foundation Certified
>>mailto:[email protected]
>>Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html
>>
>>----------------------------------------------------------------------
>>For IBM-MAIN subscribe / signoff / archive access instructions,
>>send email to [email protected] with the message: INFO IBM-MAIN
>>
>>
>>----------------------------------------------------------------------
>>For IBM-MAIN subscribe / signoff / archive access instructions,
>>send email to [email protected] with the message: INFO IBM-MAIN
>
>----------------------------------------------------------------------
>For IBM-MAIN subscribe / signoff / archive access instructions,
>send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to