sync
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mon_Check_Long_Running_Jobs]') AND type in (N'P', N'PC'))
|
||||
DROP PROCEDURE [dbo].[mon_Check_Long_Running_Jobs]
|
||||
GO
|
||||
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[mon_Check_Long_Running_Jobs]
|
||||
@in_debug tinyint = 0
|
||||
AS
|
||||
/*=============================================================================
|
||||
|
||||
Explication du traitement realise par la SP
|
||||
-------------------------------------------
|
||||
La SP va vérifier s'il y a des jobs qui tournent depuis plus de 2 heures
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Appelé depuis le job DR92050 - Long Running Jobs
|
||||
|
||||
Parametres
|
||||
----------
|
||||
@in_debug : non utilisé
|
||||
|
||||
Creation : 28.10.16 / FLA
|
||||
|
||||
Modifications : 13.01.2017 / RTC Ignore REPL-Merge jobs for Pham index instances.
|
||||
21.04.2017 / FLA Ignore all jobs of replication
|
||||
17.03.2022 / FLA : Change DBA mail
|
||||
29.12.2023 / RTC : Ignore Datamart specific jobs
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
set nocount on;
|
||||
|
||||
|
||||
/*------------------- Declaration des variables --------------------*/
|
||||
DECLARE @message VARCHAR(255)
|
||||
|
||||
DECLARE @running_jobs TABLE
|
||||
(
|
||||
[Job ID] uniqueidentifier,
|
||||
[Last Run Date] INT,
|
||||
[Last Run Time] INT,
|
||||
[Next Run Date] INT,
|
||||
[Next Run Time] INT,
|
||||
[Next Run Schedule ID] INT,
|
||||
[Requested To Run] INT,
|
||||
[Request Source] INT,
|
||||
[Request Source ID] NVARCHAR(128),
|
||||
[Running] INT,
|
||||
[Current Step] INT,
|
||||
[Current Retry Attempt] INT,
|
||||
[State] INT
|
||||
)
|
||||
|
||||
/*------------ Affectation des parametres aux variables ------------*/
|
||||
SELECT @message = 'Jobs non terminés:' + CHAR(10) + '------------------------------' + char(10)
|
||||
|
||||
/*-------------------------- Traitement ---------------------------*/
|
||||
BEGIN TRY
|
||||
|
||||
INSERT INTO @running_jobs
|
||||
EXEC master.dbo.xp_sqlagent_enum_jobs 1,''
|
||||
|
||||
SELECT @message = @message + sj.name + ' : ' + convert(VARCHAR(10),datediff( mi, ja.run_requested_date, getdate())) + ' minutes' + char(10)
|
||||
FROM @running_jobs rj
|
||||
JOIN msdb.dbo.sysjobs sj WITH (NOLOCK)
|
||||
ON sj.job_id = rj.[Job ID]
|
||||
JOIN msdb.dbo.sysjobactivity ja
|
||||
ON ja.job_id = sj.job_id
|
||||
AND ja.session_id = (SELECT TOP 1
|
||||
ja2.session_id
|
||||
FROM msdb.dbo.sysjobactivity ja2
|
||||
WHERE ja2.job_id = sj.job_id
|
||||
ORDER BY ja2.run_requested_date DESC)
|
||||
JOIN msdb.dbo.syscategories c WITH (NOLOCK)
|
||||
ON c.category_id = sj.category_id
|
||||
AND c.name NOT LIKE 'REPL%'
|
||||
AND sj.name NOT LIKE '%Datamart specific'
|
||||
WHERE rj.[Running]=1
|
||||
AND ( DATEDIFF( mi, ja.run_requested_date, GETDATE()) > 5 and sj.name like 'DR%'
|
||||
OR DATEDIFF( mi, ja.run_requested_date, GETDATE()) > 120 and sj.name not like 'DR%')
|
||||
|
||||
IF @@ROWCOUNT > 0
|
||||
BEGIN
|
||||
|
||||
EXEC aps_Send_Mail_with_template
|
||||
@in_param_varchar_2 = 'DBA_operator;',
|
||||
@in_param_message = @message;
|
||||
|
||||
END
|
||||
|
||||
|
||||
/*---------------------- Traitement des erreurs ----------------------*/
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
|
||||
/* Traitement des erreurs (avec RaiseError) */
|
||||
EXEC dbo.get_Error_Info @in_RaiseError = 1
|
||||
|
||||
END CATCH
|
||||
|
||||
|
||||
GO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user