2016-07-12 4 views
0

MS SCOMを使用して、ms sqlエージェントジョブの結果を監視しています。"成功を報告するジョブを終了する"場合でも、sqlエージェントジョブrun_status = 0

現在、ジョブのステップが失敗した場合にエラーが発生します。

開発者は、それが間違っていると言いますと、私たちはいくつかのステップが

[OK]を

働いていない私は、エラーが発生します1つのステップでテストジョブを作成した場合でも、ジョブ全体が失敗した場合にのみ、アラート取得する必要があります。

test job

仕事との結果を見つけることができます:とにかく

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ではありませんが、ロジックはどこですか?なぜ「仕事をやめて..」がうまくいかないのですか?

答えて

0

私は(STEP_ID <> 0)(STEP_ID = 0)はあなたのようなケースでの成功としてログインしているジョブ自体の故障が、run_statusとして記録されているのと同じ問題に遭遇したとステップのrun_statusを発見しました。

関連する問題