Что является хорошим ответом на «просто измените вашу программу» в случае ORA-02049, заключенного в распределенную транзакцию? - PullRequest
1 голос
/ 01 февраля 2012

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

База данных не находится под нашим контролем, мы должны ее использовать.Наш клиент использует какое-то глупое программное обеспечение для репликации, отличное от Oracle, которое в первую очередь отвечает за ошибку.

На мой взгляд, не разумно ожидать от нас разработки системы таким образом, чтобычто он обрабатывает такие случаи ошибок автоматически !Как бы вы ответили на такой запрос?

Является ли нашей ошибкой ожидать от менеджера транзакций, если он скажет, что выполнит фиксацию, что фиксация действительно будет выполнена?

Как бы вы подошли к такой проблеме - все наше программное обеспечение ожидает, чтобаза данных работает безупречно - это ошибочное предположение?

1 Ответ

0 голосов
/ 01 февраля 2012

Я бы попросил клиента сообщить об ошибке стороннему поставщику программного обеспечения. Я хотел бы изложить клиенту, что проблема вызвана ошибкой в ​​их системе. Затем я бы указал, что у них есть выбор: либо дождаться исправления ошибки от третьей стороны, либо заплатить за запрос на изменение, чтобы ваше программное обеспечение кодировало его.

Это, конечно, зависит от вас, от отношений с компанией и т. Д., Если вы действительно заставляете их платить за ЧР, но проясните, что это дополнительная работа, а не ваша вина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...