2013-02-12 15 views
5

Jestem nowy w WZP. I doszedłem do tej adnotacji @Version. W dokumentacji tej adnotacji to mówi:Co to jest blokada optymistyczna w WZP?

„To adnotacji określa pole wersji lub własność klasy podmiotem, który służy jako jego optymistycznym wartość blokady Wersja jest używany w celu zapewnienia integralności podczas wykonywania . Operacja scalania i optymalna kontrola współbieżności. "

Co oznacza optymistyczny zamek i jak jest on faktycznie związany z tą adnotacją? Dzięki

+2

Znajdź informacje [pod tym linkiem] (http://bit.ly/Y9IIO1). –

+1

Pozwól wszystkim edytować to samo na raz. Gdy ktoś potwierdzi zmianę, sprawdź, czy ** inne ** zmiany zostały popełnione od momentu rozpoczęcia zmiany. Jeśli tak, płacz. (Przywróć zmiany i zmusić je do otrzymania nowej kopii). Zwykle dotyczy to numerów wersji jako sposobu śledzenia zestawów zmian. –

Odpowiedz

5

Krótko mówiąc ...

Każdy rekord podmiotu z polem adnotacją @Version jest oznaczony jak w wersji SVN. Za każdym razem, gdy jednostka jest aktualizowana, zatwierdzając (i przepłukując!) Transakcję, czek sprawdza, czy wersje bieżącej jednostki i wpis w bazie danych są zgodne. Niepowodzenie tej kontroli skutkuje OptimisticLockException, ponieważ ktoś dokonał zmiany w tym rejestrze przed wykonaniem bieżącej operacji.

Optymistyczne jest oparta na koncepcji

„Nie potrzebuję, aby zablokować ten wpis, nikt nie będzie go dotknąć”

natomiast pesymistyczny blokada faktycznie blokuje pewne operacje (jak czytać lub NAPISZ) na danym wejściu zakładając

„Ktoś spróbuje zaktualizować tę jednostkę podczas gdy ja pracuję”