1

Windowsサーバー2003マシンでホストされているWCFベースのWebサービスがあります。データベースは、solaris上のOracle10Gです。Webサービスは、transactionscopeを広範囲に使用し、一部の場所ではado.netトランザクションを使用します。ほとんどのトランザクションには、1つのリソース(複数のOracleストアドプロシージャ呼び出し)のみが含まれます。それらのいくつかは2つのリソース(MSMQとoracleストアドプロシージャ)です。これを考えると、ネットワークDTCはWindowsマシンで有効にする必要があります。すでにMSDTCサービスが開始されています。WebサービスクライアントからWebサービスへのトランザクションフローはありません。ネットワークDTCを有効にしなくても機能するようですが、確認したいと思います。

プラットフォームは.Net2.0SP1 + 3.0(WCF用)です。OracleドライバはODP.Netv11.1.0.6です。

4

2 に答える 2

1

私の信念は、ネットワークDTCを有効にする必要はないということです。唯一の要件は、MSDTCサービスとOracleMTSRecoveryServiceサービスの両方が開始されていることです。DTCコンポーネントサービスビューアのコントロールパネルアプリを使用して、発生しているトランザクションを表示できます。

于 2009-11-11T02:58:58.023 に答える
0

クライアントトランザクションがフローしていない場合、または複数の永続リソースがない場合、トランザクションマネージャーはトランザクションを分散トランザクションにプロモートしません。

TransactionクラスのTransactionInformationプロパティにアクセスすると、トランザクション識別子を確認できます。

このクラスにはDistributedIdentifierプロパティがあります。トランザクションが分散トランザクションにプロモートされていない場合、DistributedIdentifierはGuid.Emptyになります。

于 2009-08-31T02:37:28.683 に答える