Сегодня меня поразил успешный 2pc, который не был реализован в Oracle. Другим участником был MSMQ, который материализовался хорошо.Oracle DML с фиксацией 2 фазы не материализовался
Проблема в том, что я не получил исключение в приложении (используя C# odp.net). Позже я нашел транзакции с сомнением в sys.dba_2pc_pending.
Мог ли я как-то обнаружить это в своем приложении?
EDIT: Речь идет не о том, чтобы работать 2pc. Он работает и более года до дня, когда некоторые строки отсутствуют. Пожалуйста, ознакомьтесь с информацией о транзакциях с внутренним сомнением link1 и ожидающими заключения сделок link2
Возможно, вы можете показать нам код обработки исключений .. и вы должны убедиться, что он фактически обрабатывает другие ошибки ORA. Существует класс OracleException. –
На самом деле нет обработки исключений, поэтому ошибка не может быть проглочена. Также другой участник (MSMQ) совершил штраф.Логика работает внутри обработчика Nservicebus. – Stig
Можете ли вы разместить образец кода. Я предполагаю, что вы используете system.transaction? –