Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In this chapter, you learned about the problem known as “lost updates.” You looked at various techniques you can use to solve this problem. Changing the transaction isolation level to SERIALIZABLE can solve the problem in some special cases. The technique of locking the row beforehand (pessimistic locking) solves the problem for cases where you maintain state across pages. Optimistic locking solves the problem by detecting the changes made by another transaction and asking the user to retry his transaction if unsuccessful. In most of the web applications that use connection pooling, optimistic locking is the only real alternative since it does not require the application to maintain connections across pages. You examined several implementations of optimistic locking, and finally briefly compared optimistic and pessimistic locking.