As previously stated, ISPF is working as designed...
...but then again, so is REXX EXECIO, and TSO EDIT, and ...
You probably need to look up the ENQUE mechanism and understand how it
REALLY works...
an ENQUE is nothing more than an "data" entry in a table, and it
basically has two components,
a major enque name, and a minor enque name.
It has been a while, so I do not remember what the maximum length of
these two fields are.
When you try to "allocate" or process or "whatever" if you issue an
enque request then the table is searched, and your processing might be
"held" while the resource you are looking for can be satisfied.
Eventually your "enque" is added to the table
and your processing is allowed to continue.
A basic flaw in ENQUE processing, is that if an application processes
more than one enque, it must check them in the same sequence as they
were "requested". Not doing so, CAN (will) result in a deadly embrace,
and neither task will ever complete.
For this and many other reasons (including the fact that, in my
environment, many systems were interconnected (sysplex) and each system
supported hundreds (maybe a thousand or more?) TSO development
programmers) I adopted my own unique way of editing and/or reading
"shared" or "sharable" files...
1. I "copied" the data to be edited to a temporary file.
2. The editing or update processing was done against the temp file.
3. The original file was "deleted" and then rebuilt from the update.
(Note: If the edit/update was for a member, then the PDS was never
really deleted for obvious reasons.)
Enque processing (of SHR/OLD) prevented me from replacing the file,
until all other processes were done with their "reading"..
I then had exclusive control of the file, where it was deleted, and then
replaced.
If the "reading" process was a rexx exec, then my recommendation was to:
(1) alloc,
(2) read the file into memory and an "array" (stem).
(3) free.
This overall process worked well, and occurred so fast that any
processing delays for almost all "updates" was quite minimal (and safe).
Just remember, each of the major applications (ISPF, TSO EDIT,
ALLOC/FREE) uses a different set of Major/Minor names an while you will
be "protected" against simular use in the SAME APPLICATION, you might
not be protected from a different one...
Just my 2 cents worth..
/s/ Bill Turner, wb4alm