У меня есть распределенная транзакция, которая оборачивается, скажем, 3 других.Одна из этих внутренних транзакций завершается неудачно с ORA-02049 .Коварная вещь в том, что внешняя транзакция и другие в порядке, потому что менеджер транзакций сначала получил от всех трех транзакций, что они преуспеют.Одна транзакция завершается неудачно с ORA-02049 и корректно откатывается.Но в целом система находится в противоречивом состоянии, потому что система ожидает, что все транзакции пройдут.
База данных не находится под нашим контролем, мы должны ее использовать.Наш клиент использует какое-то глупое программное обеспечение для репликации, отличное от Oracle, которое в первую очередь отвечает за ошибку.
На мой взгляд, не разумно ожидать от нас разработки системы таким образом, чтобычто он обрабатывает такие случаи ошибок автоматически !Как бы вы ответили на такой запрос?
Является ли нашей ошибкой ожидать от менеджера транзакций, если он скажет, что выполнит фиксацию, что фиксация действительно будет выполнена?
Как бы вы подошли к такой проблеме - все наше программное обеспечение ожидает, чтобаза данных работает безупречно - это ошибочное предположение?