Blokady

Blokady, to mechanizm pozwalający zachować spójność danych podczas dostępu wielu użytkowników do tych samych obiektów bazodanowych.

W Oracle blokady mogą być zakładane na poziomie całej tabeli, lub na poziomie poszczególnych wierszy. Jeżeli jakaś sesja dokonuje modyfikacji wierszy w pewnej tabeli, to zakłada na te wiersze blokadę, a więc inne sesje, które także chciałyby zmodyfikować te wiersze muszą poczekać na zwolnienie się tej blokady. Jeżeli inne sesje chciałyby modyfikować inne wiersze w tabeli, to nic nie stoi na przeszkodzie.

Wszystkie blokady założone podczas trwania transakcji są zdejmowane dopiero w momencie zakończenia transakcji, w której zostały założone.

Zakleszczenie

W przypadku, gdy dwie lub więcej transakcji oczekuje wzajemnie na zwolnienie blokad przez siebie, zachodzi sytuacja bez wyjścia, gdyż żadna transakcja się nie skończy, ponieważ druga nie zwolni jej zasobów. Sytuacja taka nazywa się zakleszczeniem (deadlock).

System Zarządzania Bazą Danych Oracle automatycznie wykrywa takie sytuacje i przerywa ze statusem błędu jedną z operacji, które spowodowały zakleszczenie.