Est-il possible de configurer une alerte dans SQL Server 2008 qui enverra un e-mail chaque fois qu'un travail dans une catégorie spécifique échoue?
Je me le demande parce que je voudrais configurer un e-mail chaque fois qu'un abonnement SSRS échoue - et tous ces abonnements sont des emplois dans la catégorie Report Server .
EDIT - il s'avère que lorsqu'un abonnement SSRS échoue, le travail lui - même n'échoue pas , donc ma question ne s'appliquera pas à l'utilisation de la surveillance des abonnements SSRS. Cependant, je voudrais toujours savoir pour d'autres emplois que nous exécutons dans notre environnement
AND EXISTS
partie entière duINSERT/SELECT
. Et probablement changer le nomReportServerJob_FailQueue
en quelque chose de plus générique. :-)Réponses:
Vous pouvez créer un travail qui vérifie la table msdb.dbo.sysjobhistory toutes les minutes (ou à la fréquence souhaitée). Vous souhaiterez peut-être implémenter une table de files d'attente afin de n'envoyer le message pour une seule défaillance d'instance qu'une seule fois.
Ainsi, votre code, que vous pouvez planifier dans un travail, devient:
Maintenant, je suppose que vous voulez envoyer un e-mail individuel pour chaque échec, donc cela pourrait également faire partie du travail (ou faire partie d'un travail différent, bien que ce ne soit pas nécessairement judicieux):
Il existe également d'autres options:
Si la messagerie de base de données n'est pas déjà configurée, consultez ce didacticiel .
Vous pouvez également utiliser des outils tiers (par exemple, SQL Sentry Event Manager ) qui simplifieront la tâche. Divulgation complète: je travaille pour SQL Sentry.
la source
Sur la base de votre modification, cela ne serait qu'une extension de la réponse d'Aaron, concernant les échecs d'abonnement SSRS eux-mêmes (pas seulement le travail de l'Agent SQL). Je suggérerais simplement d'ajouter une étape au travail de surveillance des travaux, ou vous pourriez le faire en tant que travail distinct.
Pour obtenir le statut d'abonnement, il vous suffit de vérifier la
ReportServer.dbo.ExecutionLog3
vue . LaStatus
colonne affichera tout saufrsSuccess
en cas d'échecs. Il suffit de filtrer pourRequestType = 'Subscription'
. Vous souhaiterez inclure une vérification de l'heure, de sorte que vous ne vérifiez pas tous les enregistrements à chaque fois. Si vous exécutez le travail toutes les 15 minutes, recherchez simplementTimeStart
les 15 dernières minutes.la source