|
True, but that ignores the subtle\unstated implication that
Mohammed's _read_ was per use of effective WITH NC [no isolation], thus
effecting a /dirty read/ of Abdul's update using isolation. As such,
although Mohammed's request to effect the change was _momentarily_
/blocked/ awaiting the record lock on ITEM='X' [per WAITRCD() setting],
still he would have been able to set the value of UNITS=UnitsRead-5
within the program, to reflect that he had sold five units, thus
reducing the total number of units that was just read into his program;
i.e. 500=>(500-5)=>495. Then his update operation completes [with data
set from the buffer; i.e. UNITS=495] after the ROLLBACK releases the
lock; of course, if not exceeding the wait-time for the record lock. So
unfortunately for their failure to both participate with isolation to
prevent dirty reads, the number of units of ITEM='X' henceforth would
reflect a value of 83 more than actually exist... perhaps arising from
Abdul realizing that the shipment of new items were not ITEM='X'
irrespective of markings, and having since decided they will be returned
to the manufacturer, he rolls back his change [just before Mohammed made
and updated the effect of his sale].
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.