Чти двухвазные транзакции, там всё расписано. В товём случае это просто отлуп
такой транзакции, по какой причине она на одном из серверов обломлась неважно.
Ты про 2pc в общем случае или же в случае ФБ?
Я о том, что некоторые DSQL запросы тоже могут возвращать lock conflict,
но это никаким образом не влияет на состояние транзакции - изменения
произведенные этим запросом конечно откатятся по сэйвпойнту, но
изменения из предыдущих запросов в той же транзакции остаются и никто не
мешает мне сделать commit. Теперь если lock conflict случается только на
одном сервере, то на другом изменения остаются. И единственная
возможность - это инициировать откат транзакции из приложения, поскольку
сервер не в курсе, что у нас отлуп транзакции.
Каким образом может получится lock conflict только на одном сервере?
Например если два приложения одновременно стартуют транзакцию и запросы
на сервера приходят от приложений в разной последовательности...
Если ты дальше настаиваешь на формулировке "чти двухфазные транзакции",
то мне ничего не остается, как попробовать создать тебе пример, когда
твой подход не работает. Возможно ты прав, я только спросил насколько
такой подход правильный...
Роман