Мы используем Java EE. И делаем приложение, в котором в худшем случае большое количество сообщений очереди сообщений будет поступать от одного и того же пользователя.
Поэтому мы рассматриваем пессимистическую блокировку в стиле SELECT FOR UPDATE. Что в теории и при первых тестах решает наши проблемы.
Но мы боимся тупиков. Не классические: пользователь X блокирует A, пользователь Y блокирует B. Но больше сценариев, таких как: сбой системы, проблемы с сетью и т. д. Система базы данных блокируется по неизвестной причине. Мы будем использовать современные базы данных, такие как: oracle, MS SQL и postgresql.
Что мы хотели бы знать, используется ли пессимистическая блокировка в продакшене и какие практические проблемы можно ожидать?
Заранее спасибо!