0

毎晩/早朝に連続して実行するようにスケジュールされている非常に多くの SSIS ジョブがあります。これらのジョブは、本番システム用に大量のデータを取り込み、更新します。最近、さまざまなジョブでさまざまなタイミングでエラー メッセージが表示されるようになりました。これまでのところ、一貫して再現することは不可能でした:

     コード: 0xC0202009     
     ソース: [ジョブ名] 接続マネージャー "[Connection.Manager.Name]"
     説明: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。
OLE DB レコードが利用可能です。ソース: "Microsoft SQL Native Client" Hresult: 0x80004005 説明: "通信リンク エラー"。
OLE DB レコードが利用可能です。ソース: "Microsoft SQL Native Client" Hresult: 0x80004005 説明: "名前付きパイプ プロバイダー: パイプの反対側にプロセスはありません。".  
終了エラー
エラー: 2009-03-10 05:19:51.09
     コード: 0xC00291EC ソース: レコード ステータスの更新 SQL タスクの実行
     説明: コネクション "[Connection.Manager.Name]" の取得に失敗しました。接続が正しく構成されていないか、この接続に対する適切なアクセス許可がない可能性があります... パッケージの実行が失敗しました... ステップが失敗しました。

接続は間違いなく適切に構成されており、適切な権限を持つユーザーとして実行しています。1 年以上にわたって、これらのジョブは完璧に機能していました。Google の検索結果は、考えられる接続の問題からデータの整合性の問題まで、あらゆるものに及ぶように思われます。接続の問題としてデータ ソース エンドから、イベント ログをチェックして SQL Server db とサーバー ボックスからこれを処理しようとしました。何も並んでいないようです。セットアップは次のとおりです。

  • SSIS ジョブの格納と実行専用の SQL Server 2005 を搭載した Server 2003 ボックスが 1 台あります。
  • データを格納し、Reporting Services レポートも提供する SQL Server データベースのみを搭載した専用の Server 2003 ボックスがあります。
  • 私たちの仕事のほとんどは、ODBC 経由で Sybase DB に接続して、記録システムからデータを取得し、レポート作成とデータ操作のために SQL Server に転送します。

同様の方法でこの例外に遭遇した人はいますか? 繰り返しになりますが、SQL Server DB と Sybase 接続のトラブルシューティングを試みましたが、うまくいきませんでした。

4

2 に答える 2

2

私たちの場合、それはリソースの競合でした。他のジョブからのテーブル レベルのロックが原因で、デッドロックが発生していました。ネイティブ クライアントのエラーは、最初に何が問題だったのかを知らせるのに十分なほど説明的ではありませんでした。DB で SQL Server プロファイラーを実行し、デッドロック エラーをフィルター処理する必要がありました。この記事は、私たちが正しい方向性を示すのに大いに役立ちました.

それが役立つことを願っています!!

于 2009-03-24T15:10:08.633 に答える
1

OLE DB があなたに嘘をついているなら、これはまったく何でもありえます。そうでない場合は、パイプの反対側にプロセスがない可能性があります。イベントログなどを調べて、他のプロセスが停止した可能性があるかどうかを確認する必要があります。

本番環境で何年も実行されてきたプロセスでさえ、他の何かが変更された場合にその動作を変更する可能性があります。たとえば、バックアップやその他の自動化されたジョブにかかる時間がどんどん長くなり、SSIS パッケージの既存のスケジュールと衝突する可能性があります。このようなことにより、開いている接続が強制的に閉じられ、「パイプの反対側にプロセスがありません」が発生する可能性があります。

于 2009-03-11T12:21:40.973 に答える