Должен ли сетевой DTC быть включен для транзакций оракула - PullRequest
0 голосов
/ 31 августа 2009

У меня есть веб-служба на основе WCF, размещенная на машине с Windows Server 2003. База данных Oracle 10G на солярисе. Веб-сервис широко использует транзакции и транзакции ado.net в некоторых местах. В большинстве транзакций используется только один ресурс (несколько вызовов proc, хранимых оракулом). Некоторые из них являются двумя ресурсами (MSMQ и Oracle хранятся в Proc). Учитывая это, сетевой DTC должен быть включен на машине Windows. Уже запущен сервис MSDTC. Нет потока транзакций от клиента веб-сервиса к веб-сервису. Кажется, он работает без сетевого DTC, но я хочу быть уверен.

Платформа .Net 2.0 SP1 + 3.0 (для WCF). Драйвер Oracle - ODP.Net v11.1.0.6

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Я считаю, что сетевой код неисправности не нужно включать. Единственным требованием является запуск служб MSDTC и OracleMTSRecoveryService. Я могу просматривать транзакции, происходящие с помощью приложения панели управления средства просмотра служб DTC.

0 голосов
/ 31 августа 2009

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

Вы можете проверить идентификаторы транзакций, обратившись к свойству TransactionInformation класса Transaction.

Этот класс имеет свойство DistributedIdentifier. DistributedIdentifier будет равен Guid.Empty, если транзакция не будет преобразована в распределенную транзакцию.

...