On 08/05/2011 06:49 AM, Lizette Koehler wrote:

Questions :

During a GDG recall, the HSM keep in exclusive mode all versions of the
dataset and
cannot create new versions till tne recall ends?
Is it normal behaviour of the HSM or is there some "parameter" to avoid
this?
Best regards and happy weekend.
Enrique Montero


It is normal behavior for a GDG in general.

The enq is placed on the GDG base not the individual GDG entry.  So if any
long running job is creating a GDG +1, it will be the base name that is
enqueued.

I do not know if IBM was ever asked to address this concern.
Lizette

IBM would have to be very careful how they touched this code, as there are risks a change might cause more problems than it solved. I believe both GDG base and GDS enqueues are involved in a relative GDG reference, but there are specific conventions about order and type of enqueue.

The GDG base enqueue is what protects against two concurrent new GDS creations by two unrelated programs in order to guarantee consistent assignment of G0000V00 ordinals and consistent cataloging of new generations, including the case where a step ABEND results in subsequent deletion of the GDS. It also protects against resolving a GDG relative generation reference at times when the generations are in transition. Having two tasks with conflicting GDS creations running at the same time is potentially a scheduling/application-design error as there is no guarantee which process gets the GDG enqueue first, so from the end user's viewpoint the process may appear non-deterministic, even though it is deterministic and consistent from the view of MVS.

A DFHSM recall of a GDS is physically updating the GDS by moving it, even though the job step intent may be to read, so this muddles the waters as to what kind of enqueues may be required and appropriate. As long as the GDS can't be deleted by the step doing the recall, there shouldn't be any need to modify the GDG base itself so a GDG base enqueue might seem unneeded; but what might happen if some other process attempted to delete the GDS by relative generation number while the recall was in progress?

It used to be there were some methods of getting access to a GDS, like ISPF browse or JCL reference by specific G0000V00 number, that bypassed any enqueue on the GDG base and only enqueued the GDS; and that in some cases this could blow away (ABEND) a batch job step trying to access the same GDG family by relative generation: the relative GDG JCL/batch allocation logic assumed/required that the proper GDG base enqueue preceded the GDS enqueue and it couldn't tolerate an enqueue failure on the GDS that it "knew" should have worked after enqueueing the base. So, failure to enqueue the GDG base at all or using enqueues that are inconsistent with existing GDG enqueue conventions has introduced problems in the past. This is not to say change is impossible or undesirable, only that finding and fixing unintended side effects may not be trivial. This is in an area where omitted GDG base enqueues in the past have produced production batch ABENDs.

--
Joel C. Ewing,    Bentonville, AR       jcew...@acm.org 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to