2011-01-26 5 views
2

私はグーグルで、私は高くて低く見えます。カスタムSSISコンポーネント内のトランザクションオブジェクトExecuteメソッド

私は、カスタムタスクのExecuteメソッドに渡されるオブジェクト型のトランザクション変数を使用する方法の例を探しています。

私はトランザクションオブジェクトを持っていると、それがSystem .__ ComObject型であることに気付きました。

私が特に必要とするのは、トランザクションをオブジェクトをWebサービスに渡すことです。 Webサービスは、接続を開くときにsqlを実行して、何らかの形でこのトランザクションに登録します。キッカーは、パッケージがさらに下に失敗した場合、WebサービスのロールバックにSQLがあることです。今すぐDTCが有効になり、カスタムタスクが失敗した場合、パッケージはロールバックされますが、カスタムタスクが成功し、別のタスクが失敗すると、カスタムタスクの作業は引き続きコミットされます。これはExecuteメソッドの外で使用することができない場合

は今、私は、私は1つに建てられたがありませんので、私は私のカスタムWebサービスタスクを作成しなければならなかったいくつかの歴史を与えるために、Executeメソッド

にWebサービスコードをもたらすことができると思います認証をサポートしていません。

CredentialCache with IIS vs personal development server

答えて

1

組み込みのSSIS接続マネージャーは、彼らの「AquireConnections」コール(詳細はhttp://msdn.microsoft.com/en-us/library/microsoft.sqlserver.dts.pipeline.pipelinecomponent.acquireconnections.aspxを参照)で、このトランザクションオブジェクトをサポートしています。

しかし、ほとんどの場合、ある種の管理されていないトランザクションオブジェクトへのポインタにすぎず、SSISはマネージラッパーを提供していないようです(DtsConvert経由)。

しかし、私はもう一度一歩踏み込んで、あなたがそれを得るときにやると思っていることを自分に尋ねます。トランザクションでのWebサービスの登録は簡単です。理論的には、wsトランザクションをサポートするWebサービスを登録することができます(WCFはhttp://msdn.microsoft.com/en-us/library/ms729784.aspxをサポートしていますが、あなたが呼んでいるWebサービスはサポートしています)。実際には私はといつも信頼できる方法でメッセージを受け取ることができる他のローカルのトランザクションリソースを登録してください。 DB内の「送信トレイ」テーブルのように。またはMSMQ。

これはより信頼性の高いソリューションとなり、お客様のケースではトランザクションに簡単に登録することができます。

関連する問題