###前提・実現したいこと
パッケージ全体をトランザクション化して、
全てのタスクが成功した場合 → コミット
1つでもタスクが失敗した場合 → ロールバック
というパッケージを作成したいです。
###発生している問題・エラーメッセージ
下記のURLを参考にして実装しましたが、うまくいきません。 http://blogs.timberlandchapel.com/blogs/timberlandchapel/articles/865.aspx パッケージの内容は後述しますが、 パッケージを実行すると、 エラー: 0xC0014034 (Package, 接続マネージャー "(実際は後述したデータフロータスク2内の接続マネージャー名が表示されます。)": この接続では、分散トランザクションへの参加がサポートされていません。 とエラー出力されてしまいます。 ためしにデータフロータスク1のみで、実行するとパッケージが正常に実行されます。 データフロータスク2で使用しているOLEDB接続マネージャーがなにかしらの原因になっているのではと推測はしているのですが、、、 OLEDB接続マネージャーを使った場合、今の方法ではパッケージ全体をトランザクションかすることはできないのでしょうか? できないとすれば、なにか他の方法があるのでしょうか???
###該当のソースコード
【TransactionOptionプロパティの設定内容】 ・パッケージのプロパティ:TransactionOption → Requiredに変更 ・データフロータスク1のプロパティ:TransactionOption → Supportedに設定(既定値のまま) ・データフロータスク2のプロパティ:TransactionOption → Supportedに設定(既定値のまま) 【各データフロータスクの処理内容】 ・データフロータスク1 フラットファイルソースを変換元 とし SqlServerを変換先としてデータを取り込む。 ※取り込み対象のファイルはcsvファイルになります。 ※フラットファイルソースの接続はフラットファイル接続マネージャーを使っています。 ・データフロータスク2 OLEDBソースを変換元 とし SqlServerを変換先としてデータを取り込む。 ※取り込み対象のファイルはmdbファイルになります。 ※OLEDBソースの接続はOLEDB接続マネージャーを使っています。 プロバイダーは"Microsoft Office 12.0 Access Database Engine OLE DB Provider"です。
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2013
Microsoft SqlServer 2012
あなたの回答
tips
プレビュー