On 8/1/2006 4:09 PM, [EMAIL PROTECTED] wrote:
In a recent note, Walt Farrell said:
On 8/1/2006 10:10 AM, Edward Jaffe wrote:
No. Holding a shared ENQ prevents others from acquiring an exclusive ENQ
on the same resource and modifying it. To maintain the integrity of the
resource, you use RET=CHNG to upgrade from shared to exclusive without
losing control. If you were required to DEQ and then re-ENQ to perform
the upgrade, you would lose control of the resource between the time you
inspected it and the time you had the necessary serialization to update
it. In the worst case scenario, someone else could change (or even
delete) the resource in-between!!
Of course, if anyone else also has the resource with a shared ENQ, your
RET=CHNG will fail, and at that point you have no choice but to DEQ and
try again from the beginning (presumably starting with EXC that time
around).
What do you gain by performing the DEQ? The EXCL ENQ will immediately
fail and continue to fail until all other jobs DEQ the resource.
Isn't it as good or better simply to re-issue the RET=CHNG until
it works, or use the WAIT option if you have the authority.
Re-issuing the RET=CHNG is not guaranteed to ever work. You might find,
based on the vagaries of exactly when your program gets CPU time, that
the resource is always ENQed SHR by someone else when you try to do your
RET=CHNG. DEQing and re-ENQing will succeed, possibly with an automatic
WAIT.
I'm not sure what WAIT option you're referring to, when using RET=CHNG.
Walt Farrell, CISSP
z/OS Security Design, IBM
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html