0

A は、同じ Oracle データベースに接続して同時に実行されるシーケンス コンテナー内に 4 つのデータフロー タスクを持っています。つまり、4 つのデータフロー タスクを強制的に順番に実行するための小さな緑色の線がありません。

ごくまれに、4 つのデータフロー タスクの実行中に、Oracle への obdc 接続が失敗します。

1 つ以上のデータフローが完了しません。通常の OnError ハンドラはヒットしないことに注意してください。

私はそのシナリオを処理し、優雅に失敗することができます。

しかし、どうやってテストするのですか?

パッケージはサーバーにインストールされ、実行されます。パッケージが実行され、Oracle データベースからデータをプルしている間に、odbc 接続を強制的に切断できるようにしたいと考えています。

Oracle にアクセスして、Sql Server Management Studio 内と同様の方法で適切なプロセスを強制終了することはできません。

私が考えることができる最も近いのは、Sql Serverデータベースでパッケージ構成として設定されている接続文字列を微調整して、ランダムなダミーサーバー名に接続できないようにすることです。まったく同じではありませんが、少なくともデータフローは失敗します。私が探している正確な理由で失敗することはありません。

4

1 に答える 1

0

強制的に何かを殺そうとするのではなく、SSiS トランザクションを使用するので、失敗するとすべてがロールバックされます。これを行うには、次の手順を実行します。

  1. MSDTC が実行されていることを確認する
  2. パッケージ レベルで TransactionOption = Supported を設定します。
  3. シーケンス コンテナ レベルで TransactionOption = Required を設定します。
  4. データ フロー タスクで TransactionOption = Supported を設定します。

これで、それらはすべて成功するか、すべてロールバックするはずです。

于 2012-11-07T07:55:20.650 に答える