13

SQL Server 2008 用の SSIS パッケージを作成しているときに、次のエラーが発生しました。

エラー: SSIS ランタイムは、エラー 0x8004D01B "The Transaction Manager is not available." により、分散トランザクションを開始できませんでした。DTC トランザクションの開始に失敗しました。これは、MSDTC サービスが実行されていないために発生する可能性があります。

パッケージを自分のマシンでローカルに作成して実行していますが、データベースはドメイン内にないWindows Server 2008 を実行しているサーバー上にあります。

DTC サービスがローカルとサーバーの両方で開始されていることを確認し、Windows Vista ファイアウォールで事前定義されているファイアウォールの例外を追加しました。

SSIS ランタイムが分散トランザクションの開始に失敗するのはなぜですか?

4

2 に答える 2

6

ここでこの問題に対する私の解決策を確認してください [ http://faiz.kera.la/2009/08/26/ssis-transaction-enabled-tasks-fail-due-to-msdtc ]

これは、マシンがドメイン内にない場合や Windows XP を実行している場合によくあるシナリオです。

編集:リンクは死んでいます。リンクの元のテキストは次のようです。

私の現在のプロジェクトでは、チームに複数の SSIS 開発者がいて、全員が私のシステムでデータベース サーバー インスタンスを共有していました。昨日、チーム メイトが SSIS でトランザクションを実装しようとしていたときに、問題に直面しました。データベースが存在するシステムではスムーズに実行されていますが、他のマシンではパッケージが失敗します。スローされたエラーメッセージは、

SSIS ランタイムは、分散トランザクションに OLE DB 接続を登録できませんでした。エラー 0x8004D00E 「トランザクションは、暗黙的または明示的にコミットまたは中止されています」</p>

すぐに、これが Microsoft Distributed Transaction Coordinator (MsDTC) に関連するものであることがわかりました。検索を行った結果、さまざまなマシンの MsDTC プロセスの状態をチェックする「Dtcping.exe」というツールを入手しました。このツールは、「アクセスが拒否されました」というエラーを報告しました。これは、MsDTC のセキュリティ上の問題を示唆しています。しかし、数時間グーグルした後でも、私たちは幸運ではありませんでした. 次に、MsDTC のセキュリティ設定を学習することにしましたが、ネットワーク関連の接続はすべて既定で無効になっていることがわかりました。私たちのマシンは Windows XP を実行していて、ワーク グループに属していたため、認証設定が問題を引き起こす可能性があることを知りました (私の組織には奇妙なネットワーク構成があります)。すべてのマシンで MsDTC インスタンスを「認証不要」に変更したところ、うまくいきました。MsDTC のセキュリティ構成を変更するには、[コントロール パネル] >> [管理ツール] >> [コンポーネント サービス] >> [コンピュータ] >> [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします >> [MSDTC] タブをクリックします >> [セキュリティの構成] をクリックします。以下は私が使用した設定のスクリーン ショットですが、セキュリティに与える影響を認識していないため、すべての場合にこの構成をお勧めしません。

スクリーンショット

于 2009-09-15T17:16:50.520 に答える