[DTS] スケジュール起動で、何故かエラーになる? その2

今現在、エラーが出ることなく動いてるのだが!
原因は不明・・・ (゚д゚lll)

そして・・・

致命的なエラーとしかエラーログに残らないのは、エラーを取得していないためだということにようやく気がついた (´ヘ`;)

On Error Resume Next ステートメントを設定していないときに実行時エラーが発生すると、そのエラーは致命的なエラーとなり、エラー メッセージが表示されてプログラムの実行が停止します。

VBScript ランゲージ リファレンス - On Error ステートメント

そこでデータ変換タスクで発生しているエラーを取得することに。

しかし、ここで疑問。
DTSのエラーログにどうやってハンドルしたエラーを書き出すんじゃ?一生懸命ググるも何にも成果なし・・・。同じようなことで悩んでいる人は、随分前にいた。

なので、どうしようかと無い頭で考えた。

  1. データ変換タスクの変換スクリプト内でエラーを取得し、グローバル変数にセット
  2. グローバル変数にセットした値をSQL実行タスクで、エラーテーブルにInsert

単純にこういうこと(常識?)

ほんとうにこんな風にするのか知らんけど、
もう藁をも掴む感じで以下のコードを追記。

On Error Resume Next

' 処理コード

If Err.Number <> 0 Then
DTSGlobalVariables("ErrPackage").Value = "TestPackage"
DTSGlobalVariables("ErrNumber").Value = Err.Number
DTSGlobalVariables("ErrDescription").Value = Err.Description
DTSGlobalVariables("ErrSource").Value = Err.Source
DTSGlobalVariables("ErrTime").Value = Now


Main = DTSTransformStat_Error
Else
Main = DTSTransformStat_OK
End If

でワークフローで失敗したときに、書き出したグローバル変数をSQL実行タスクで書き出します。うーん。今のところ謎の「致命的なエラー」が発生しないため、拾えるか不明です。。。

トラックバック(0)

このブログ記事を参照しているブログ一覧: [DTS] スケジュール起動で、何故かエラーになる? その2

このブログ記事に対するトラックバックURL: http://www.swk623.com/mt-tb.cgi/506

コメントする

このブログ記事について

このページは、がJanuary 25, 2006 5:36 PMに書いたブログ記事です。

ひとつ前のブログ記事は「すべって、こけて、すべって(;´Д`)」です。

次のブログ記事は「不快感を与えるのは違法!?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1