It sounds like your program has not implemented the IBM SHROPT(4 3) requirement for how to use ENQ/DEQ: "If your program is updating, after the update has completed the ENQ/DEQ bracket, the reader must determine the required operations for control block refresh and buffer invalidation based on a communication mechanism or assume that everything is not at the latest level and refresh each request." See https://www.ibm.com/support/knowledgecenter/SSLTBW_2.4.0/com.ibm.zos.v2r4.idad400/crso.htm Most likely the function missing in your application is "buffer invalidation based on a communication mechanism" -- ENQ/DEQ is not enough if doing it at the individual update level (which sounds like what your program is doing).
On Wed, Jan 20, 2021 at 2:19 AM Steff Gladstone <[email protected]> wrote: > Greetings, > > We are trying to figure out how a VSAM file became compromised. That is, > even though the primary key is unique, when we do a REPRO, we see that the > data contains an extra record with the same key. > > The file is updated from two different computers via a batch COBOL program. > The share options are (4,3) and an enqueue (with parameter SYSTEMS) is > performed (using an assembler subroutine) before any update is done. The > site has a 3rd-party product from CA that propagates the ENQ from one > computer to the other. We even tested the ENQ and saw that an update from > the second computer was blocked when the first computer previously issued > an ENQ prior to its update. > > It looks as if an update in one computer has not been committed from memory > to disk before the update in the second computer occurs. Which definitions > are lacking that would prevent this from happening? > > Thanks in advance, > Steff Gladstone > > ---------------------------------------------------------------------- > 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
