sync
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[mon_Check_Broker_queues]') AND type in (N'P', N'PC'))
|
||||
DROP PROCEDURE [dbo].[mon_Check_Broker_queues]
|
||||
GO
|
||||
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[mon_Check_Broker_queues]
|
||||
@in_debug tinyint = 0
|
||||
AS
|
||||
/*=============================================================================
|
||||
|
||||
Explication du traitement realise par la SP
|
||||
-------------------------------------------
|
||||
La SP va vérifier si l'ensemble des queues du broker ne sont pas désactivées pour chaque base de données
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Appelé depuis le job DR92110 - Check Broker Queues
|
||||
|
||||
Parametres
|
||||
----------
|
||||
@in_debug : non utilisé
|
||||
|
||||
Creation : 31.10.16 / FLA
|
||||
|
||||
Modifications : 17.03.2022 - FLA : Change DBA mail
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
set nocount on;
|
||||
|
||||
|
||||
/*------------------- Declaration des variables --------------------*/
|
||||
|
||||
declare @DbName sysname,
|
||||
@QueueName sysname,
|
||||
@ErrorMsg varchar(2000),
|
||||
@cmd varchar(5000)
|
||||
|
||||
declare c_database_broker cursor local forward_only static for
|
||||
select name from sys.databases
|
||||
WHERE database_id > 4
|
||||
AND is_broker_enabled = 1
|
||||
|
||||
create table #ListBrokerQueues (
|
||||
DbName sysname,
|
||||
QueueName sysname)
|
||||
|
||||
/*------------ Affectation des parametres aux variables ------------*/
|
||||
SET @ErrorMsg = ''
|
||||
|
||||
/*-------------------------- Traitement ---------------------------*/
|
||||
BEGIN TRY
|
||||
open c_database_broker
|
||||
|
||||
FETCH NEXT FROM c_database_broker
|
||||
into @DbName
|
||||
|
||||
WHILE @@fetch_status = 0
|
||||
BEGIN
|
||||
|
||||
SET @cmd = 'INSERT INTO #ListBrokerQueues
|
||||
SELECT '''+@DbName+''',name FROM '+ @DbName +'.sys.service_queues
|
||||
WHERE name NOT IN (''QueryNotificationErrorsQueue'',''EventNotificationErrorsQueue'',''ServiceBrokerQueue'')
|
||||
and (is_activation_enabled = 0 OR is_receive_enabled = 0 OR is_enqueue_enabled = 0)'
|
||||
|
||||
exec (@cmd)
|
||||
|
||||
FETCH NEXT FROM c_database_broker
|
||||
into @DbName
|
||||
END
|
||||
|
||||
CLOSE c_database_broker
|
||||
DEALLOCATE c_database_broker
|
||||
|
||||
|
||||
declare c_queues cursor local forward_only static for
|
||||
select DbName, QueueName from #ListBrokerQueues
|
||||
|
||||
open c_queues
|
||||
|
||||
FETCH NEXT FROM c_queues
|
||||
into @DbName, @QueueName
|
||||
|
||||
WHILE @@fetch_status = 0
|
||||
BEGIN
|
||||
|
||||
SET @ErrorMsg = @ErrorMsg + 'Error in queue ' + @QueueName + ' of Database ' + @DbName + CHAR(13) + CHAR(10)
|
||||
|
||||
FETCH NEXT FROM c_queues
|
||||
into @DbName, @QueueName
|
||||
END
|
||||
|
||||
CLOSE c_queues
|
||||
DEALLOCATE c_queues
|
||||
|
||||
DROP TABLE #ListBrokerQueues
|
||||
|
||||
/* S'il y a une erreur, on envoie un mail aux DBA */
|
||||
IF @ErrorMsg <> ''
|
||||
BEGIN
|
||||
exec aps_Send_Mail_with_template
|
||||
@in_param_varchar_2 = 'DBA_operator;',
|
||||
@in_job_type = 3, /* 3 = warning */
|
||||
@in_param_varchar_3 = @ErrorMsg
|
||||
|
||||
RAISERROR ('Erreur dans la SP [dbo].[mon_Check_Broker_queues]',16,1)
|
||||
END
|
||||
|
||||
/*---------------------- Traitement des erreurs ----------------------*/
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
|
||||
/* Traitement des erreurs (avec RaiseError) */
|
||||
EXEC dbo.get_Error_Info @in_RaiseError = 1
|
||||
|
||||
END CATCH
|
||||
|
||||
Reference in New Issue
Block a user