Транзакции и блокировки - Ошибки 

Page / - Изменено Alexandr Fokin в 2023/01/12 14:52 

Ошибки 
Изменено Alexandr Fokin
в 2023/01/12 14:52

Оглавление

 	Код	 	 	
MSSQL	1222	Ошибка получения блокировки (ожидания разблокировки) данных.
Не является полноценным Deadlock, поэтому не разрешается механизмом прерывания сервера БД.
Зависит от параметра LOCK_TIMEOUT (может иметь значение - бесконечно) и от таймаута запроса.
Не разрешается пока один из запросов не завершиться успешно или же упадет по одному из таймаутов и снимет блокировку, чтобы второй мог продолжится.
Пессимистичная блокировка	 	
	1205	Полноценный Deadlock, прерывается сервером БД.
Сервер БД завершает одну из взаимоблокирующих транзакций с ошибкой.	READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE	
PostgreSQL	55P03	Ошибка получения блокировки (ожидания разблокировки) данных.
Не является полноценным Deadlock, поэтому не разрешается механизмом прерывания сервера БД.
Зависит от параметра lock_timeout (может иметь значение - бесконечно) и от таймаута запроса.
Не разрешается пока один из запросов не завершиться успешно или же упадет по одному из таймаутов и снимет блокировку, чтобы второй мог продолжится.	READ COMMITTED
REPEATABLE READ
SERIALIZABLE	
	40P01	Полноценный Deadlock, прерывается сервером БД.
Сервер БД завершает одну из взаимоблокирующих транзакций с ошибкой.	READ COMMITTED
REPEATABLE READ
SERIALIZABLE	
 	40001	Ошибка сериализации.
Транзакция не может быть продолжена из-за того, что необходимые данные были изменены другой транзакцией.
13.5. Serialization Failure Handling
https://www.postgresql.org/docs/current/mvcc-serialization-failure-handling.html
Оптимистичная блокировка	REPEATABLE READ
SERIALIZABLE