MSDTC и транзакции Oracle блокируются после отмены вызова?

2

Im работает в проблемах с использованием MSDTC и Oracle. Его приложение .net и Im используют класс TransactionScope для управления транзакциями.

Проблема заключается в том, что иногда, если транзакция откатывается (scope.Dispose вызывается без вызова scope.Complete), он остается в состоянии "Прерывание" в течение длительного времени, не освобождая заблокированные записи. Несмотря на то, что транзакции остаются в состоянии "Прерывание", когда Dispose вызывается для отмены транзакции, он немедленно возвращается, поэтому поток не застревает.

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

Спасибо

Теги:
transactions
msdtc

1 ответ

1

Известные проблемы, связанные с использованием распределенных транзакций при использовании поставщика данных Microsoft для Oracle.

Если вы используете его, попробуйте перейти на поставщик ODP.NET, который должен исправить ваши проблемы с транзакциями.

  • 0
    Использование ODP.NET изменило поведение, но не решило проблему. Теперь некоторые транзакции застревают в состоянии «Подготовка» и фактически блокируют вызывающий поток.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню