Chapter 8. Handling concurrency and transactions
- Understanding the concurrency problem
- Configuring concurrency
- Managing concurrency exceptions
- Managing transactions
Suppose you want to book a flight online. You search for the flight you want and find an available seat, but when you click the reservation button, the system says the flight is fully booked. If you search for the flight again, it isn’t shown.
What happened is that at the moment when you searched for the flight, a seat was available; but in the time between the search response and the booking attempt, someone else booked the last seat. There were concurrent searches for the last seat, and the first person to book it won. If the booking application hadn’t ...