2012-04-04 5 views
0

この問題は、同じSQL Server 2005に2つのデータベースを使用して2つのアプリケーションを統合する場合に発生します。両方のアプリケーションが同じサーバー上に独自のデータベースを持ちますが、データベースを別のデータベースに移動します。私たちはそれを行うためにトリガーとストアドプロシージャを使用しています。MS DTCが同じサーバー上でトリガーとストアドプロシージャを実行するために必要

SQL Server Management Studioを使用してデータベースにデータを挿入する場合、msdtcは必要ありませんが、アプリケーションを使用してデータを挿入すると、DTCが有効ではないというエラーが表示されます。データを挿入するアプリケーションを制御することはできません。

なぜ私の質問は、データを挿入するアプリケーションを使用するときにmsdtcが必要なのですか?

注:クラスタ化されたサーバー、構成された複製、COM +のほとんどの用途など:トリガーが唯一のストアドプロシージャのデータベース間で通話を発信していない1つは、間接的にMSDTCを使用することができるかなりの数の状況が

+1

コードを投稿..... –

+0

は、SQL Server 2005の問題の自動エスカレーションのように聞こえる:http://stackoverflow.com/questions/1690892/transactionscope-automatically-escalating-to-msdtc-on-some-マシン –

+0

それは問題である可能性があります、私はここに投稿する前にその記事を読んでいます。このアプリケーションが実行され、msdtcが有効になっていないクライアント環境に展開しています。 msdtcを有効にせずに作業する方法はありませんか?おそらく –

答えて

0

がありますされていますに。

ただし、コメント内の@MitchWheatがすでに指摘しているように、SQL Server 2005(およびOracleリソースマネージャー)は、単一のトランザクションスコープに複数のデータベース接続がある場合は特にMSDTCを使用します。この現象は、SQL Server 2008で修正されています(ご不便をおかけしている場合)。

あなたのケースでは、これはクライアント側であり、サーバー側の問題ではありませんが、通常はどちらかになります。

関連する問題