This is a classic problem endemic to traditional PDS since the dawn of MVS. 
IBM's solution to this problem is PDSE. If you convert the data set to Library 
(PDSE) you may reduce problem occurrence to negligible. OTOH PDSE may introduce 
its own set of problems, chief of which is the inability to share the data set 
across sysplex boundaries. If that restriction is unacceptable, you might try 
adding in your RYO enqueue program as you suggest. Be aware, however, that 
DISP=SHR is unlikely to provide much if any protection against concurrent 
update. 

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler 
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
robin...@sce.com

-----Original Message-----
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of 
Pesce, Andy
Sent: Tuesday, October 8, 2019 9:16 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: (External):PDS Member updating via COBOL Program

I am looking for an explanation and this may be one of those "unpredictable 
results" may occur.

I have "JOBA" that executes a COBOL program to update a particular member in a 
PDS.   Within the program, it calls an internal utility that someone
wrote years ago that puts an enqueue on the dataset and its member that it is 
updating.  The dd associated with the parmlib uses DISP=SHR.

I have "JOBB" that executes a COBOL program to do the same thing, but it is a 
different member within the same dataset as "JOBA".    It is coded
to open the dataset as I/O.  After it reads the member, it then does a REWRITE. 
   It doesn't follow the rules as above and use the internal utility.
The dd associated with the parmlib also uses DISP=SHR.

Here is the issue.   Occasionally the member in "JOBA" is becoming "empty", 
while the member in JOBB is always OK.    I have looked at SMF
records and I see these jobs run at the same time.  And it is usually the same 
down to the hundreds of seconds.

My suggestion was that JOBB needs to be fixed to use the "enqueue and dequeue" 
utility, since it is using DISP-SHR.   This parmlib is
used heavily and extensively by applications, and no way to get it DISP=OLD.  
Any thoughts or explanation would truly be appreciated.


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to