2017-09-05 1 views
0

SQL Server 인스턴스에 Grand Master이라는 에이전트 작업이 있으며,이 작업은 매 분 24/7 일정으로 실행됩니다.오류 처리에도 불구하고 한 단계에서 SQL 에이전트 작업이 실패 함

수시로 수작업으로 실행해야하는 다른 작업을 만들었습니다. 가장 먼저 수행해야 할 작업 중 하나는 활성 상태 일 때 Grand Master 작업이 실행되지 않도록 설정하고 중지하는 것입니다. 그러나 실패

exec msdb..sp_update_job @job_name = "Grand Master", @Enabled = 0 

2 단계 :

1 단계는 잘 작동 GM을 비활성화하는 것입니다. 그것의 일은 IF을 달리기에서 GM를 멈추기 위하여 그것 달리고있다. 그것은이 GM이 현재 실행되고 있지 않으면 아무것도 안된다

Executed as user: NT AUTHORITY\SYSTEM. SQLServerAgent Error: Request to stop job Grand Master (from User NT AUTHORITY\SYSTEM) refused because the job is not currently running. [SQLSTATE 42000] (Error 22022). The step failed.

:

if exists (select 1 
      from msdb.dbo.sysjobs_view j 
      join msdb.dbo.sysjobactivity a on j.job_id = a.job_id 
      where a.run_requested_date is not null 
      and a.stop_execution_date is null 
      and j.name = 'Grand Master') 
begin 
    exec msdb.dbo.sp_stop_job 'Grand Master' 
end 

내가 상관없이 GM의 상태,이 작업을 실행할 때마다,이 오류가 2 단계에서 실패

누구에게 아이디어가 있습니까?

+0

sp_stop_job이 작업을 중지하려고 시도하고 실행 중이 아니기 때문에이 작업이 수행되지 않습니까? 먼저 실행 중인지 확인하고 sp_stop_job이 실행 중인지 확인해야합니까? – Leonidas199x

+0

귀하의 의견을 주셔서 감사합니다 @ Leonidas199x 'if exists ...'쿼리는 작업이 실행 중인지 확인합니다. 작업이 실행 중이 아니면 해당 쿼리는 빈 집합을 반환하고 단계는 아무 것도 수행하지 않고 3 단계로 넘어갑니다. – Cam

+0

그냥 제안했지만 두 단계를 전환하려고 시도 했습니까? 먼저 실행 중이면 중지하고 작업을 사용 중지 하시겠습니까? 아마도 SQL Server는 장애가있는 작업을 중지시키기 위해 아이디어를 잘못 해석합니다. – Tyron78

답변

0

실행중인 경우 먼저 중지 한 다음 작업을 사용하지 않도록 설정하십시오. SQL Server는 장애가있는 작업을 중지하기 위해 아이디어를 잘못 해석 할 수 있습니다.

관련 문제