Once the lock has been released by the blocking transaction,
an operation executing with the READ COMMITTED isolation level will
simply retry the operation. Since this operation is concerned only with the state of
data when the statement begins, this is a perfectly logical approach.
192 | Chapter 8: Oracle Multiuser Concurrency
On the other hand, if the blocking transaction commits changes to the data, an operation
executing with a SERIALIZABLE isolation level will return an error indicating
that it cannot serialize operations. This error makes sense, because the blocking
transaction will have changed the state of the data from the beginning of the SERIALIZABLE
transaction, making it impossible to perform any more write operations
on the changed rows. In this situation, an application programmer will have to add
logic to his program to return to the start of the SERIALIZABLE transaction and
begin it again.
There are step-by-step examples of concurrent access later in this
chapter (in the ???Concurrent Access and Performance??? section) that
illustrate the different ways in which Oracle responds to this type of
problem.
Pages:
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428