Если транзакция хочет установить блокировку на ресурс, но обнаруживает, что на ресурсе уже стоит несовместимая с ней блокировка, она ставится в очередь на установку блокировки.
При наступлении определенных событий транзакция может быть удалена из очереди до того, как она дождется своего права установить блокировку. Если такое происходит, это приводит к возникновению исключительной ситуации, которая называется ошибкой (конфликтом) блокировок. Транзакция при этом откатывается, пользователь получает сообщение об ошибке.
Текст сообщения об ошибке зависит от того, был ли это конфликт управляемых блокировок или конфликт блокировок СУБД. Если конфликт произошел в СУБД, текст зависит от того, что это за СУБД, а также от ее версии и языка. Ключевые фразы, по которым на текущий момент можно определить текст ошибок блокировок, приведены в таблице 3.9.1.
Причин такого удаления две:
Таблица 3.9.1. Подстроки, идентифицирующие ошибки блокировок в текстах сообщений об ошибках (пользователям и в технологическом журнале «1С»)
| Подстрока | Ошибка | 
|---|---|
| Превышено максимальное время ожидания | таймаут на управляемых блокировках (1С- рус.) | 
| Maximum idle time for lock access | таймаут на управляемых блокировках (1С-англ.) | 
| Неразрешимый конфликт блокировок | взаимоблокировка на управляемых блокировках (1С-рус.) | 
| Unresolved lock conflict in a session | взаимоблокировка на управляемых блокировках (1С-англ.) | 
| SQL Server: Lock request time out period exceeded | таймаут СУБД SQL Server (англ.) | 
| SQL Server: Превышено время ожидания запроса на блокировку | таймаут СУБД SQL Server (рус.) | 
| was deadlocked on lock resources with another process and has been chosen as the deadlock victim | взаимоблокировка СУБД SQL Server (англ.) | 
| вызвала взаимоблокировку ресурсов | взаимоблокировка СУБД SQL Server (рус.) | 
| SQL0911N The current transaction has been rolled back because of a deadlock or timeout | любой конфликт блокировок СУБД IBM DB2 (англ.) | 
| SQL0911N Из-за тупиковой ситуации или из-за истечения срока | любой конфликт блокировок СУБД IBM DB2 (рус.) | 
| ORA-00051: timeout occurred while waiting for a resource | таймаут СУБД Oracle Database (англ.) | 
| ORA-00051: Истекло время ожидания ресурса | таймаут СУБД Oracle Database (рус.) | 
| ORA-00060: deadlock detected while waiting for resource или ORA-00060: Deadlock detected | взаимоблокировка СУБД Oracle Database (англ.) | 
| ORA-00060: Возникла мертвая блокировка во время ожидания ресурса или ORA-00060: тупик обнаружено  |           взаимоблокировка СУБД Oracle Database (рус.) | 
Рассмотрим каждую из ошибок подробнее.