0

MS SCOM を使用して、ms sql エージェント ジョブの結果を監視しています。

現在、ジョブのいずれかのステップが失敗するとエラーが発生します。

開発者は、それは間違っており、いくつかのステップが機能していなくても、ジョブ全体が失敗した場合にのみアラートを受け取るべきだと言っています

Ok

エラーになる 1 ステップのテスト ジョブを作成します。

テストジョブ

仕事と結果を見つけましょう:

SELECT
    j.name,
    j.job_id,
    jh.step_id,
    jh.step_name,
    jh.run_status,

    CASE jh.run_status
        WHEN 0 THEN 'Failed'
        WHEN 1 THEN 'Succeeded'
        WHEN 2 THEN 'Retry'
        WHEN 3 THEN 'Canceled'
        WHEN 4 THEN 'Running'
        ELSE 'Unknown'
    END AS run_statusstring,
    j.enabled,
    jh.message,
    msdb.dbo.agent_datetime(
    CASE WHEN jh.run_date = 0 THEN NULL ELSE jh.run_date END,
    CASE WHEN jh.run_time = 0 THEN NULL ELSE jh.run_time END) AS last_runtime
FROM msdb.dbo.sysjobhistory jh
INNER JOIN (
    SELECT DISTINCT jh.job_id, MAX(jh.instance_id) instance_id
    FROM msdb.dbo.sysjobhistory jh
    WHERE jh.step_id != 0
    GROUP BY jh.job_id
) AS a
ON jh.job_id = a.job_id
    AND a.instance_id = jh.instance_id
INNER JOIN msdb.dbo.sysjobs AS j
ON jh.job_id = j.job_id

とにかく run_status=0 (失敗)

なんで?私は DBA ではありませんが、ロジックはどこにあるのでしょうか? 「仕事をやめる..」が機能しないのはなぜですか?

4

1 に答える 1