É possível configurar um alerta no SQL Server 2008 que enviará um e-mail sempre que um trabalho de uma categoria específica falhar?
Estou me perguntando porque gostaria de configurar um e-mail sempre que uma assinatura do SSRS falhar - e todas essas assinaturas são trabalhos na categoria Report Server .
EDIT - acontece que quando uma assinatura do SSRS falha, o trabalho em si não falha, então minha pergunta não se aplica ao uso de monitoramento de assinatura do SSRS. No entanto, ainda gostaria de saber sobre outros trabalhos que executamos em nosso ambiente
Você pode criar um trabalho que verifique a tabela msdb.dbo.sysjobhistory a cada minuto (ou com a frequência que desejar). Talvez você queira implementar uma tabela de filas para enviar a mensagem apenas uma vez para qualquer falha de instância única.
Então, seu código, que você pode agendar em um trabalho, torna-se:
Agora, suponho que você queira enviar um e-mail individual para cada falha, então isso também pode fazer parte do trabalho (ou parte de um trabalho diferente, embora isso não seja necessariamente sensato):
Existem algumas outras opções também:
Se o Database Mail ainda não estiver configurado, consulte este tutorial .
Você também pode usar ferramentas de terceiros (por exemplo, SQL Sentry ) que simplificarão muito isso. Divulgação completa: eu trabalho para o SQL Sentry.
Com base na sua edição, isso seria apenas uma extensão da resposta de Aaron, em relação às próprias falhas de assinatura do SSRS (não apenas ao trabalho do SQL Agent). Sugiro apenas adicionar uma etapa ao trabalho de monitoramento do trabalho, ou você pode fazer isso como um trabalho separado.
Para obter o status da assinatura, basta verificar a
ReportServer.dbo.ExecutionLog3
exibição . AStatus
coluna mostrará tudo menosrsSuccess
em falhas. Basta filtrar porRequestType = 'Subscription'
. Você desejará incluir alguma verificação de tempo, para não verificar todos os registros a cada vez. Se você executar o trabalho a cada 15 minutos, verifique apenasTimeStart
os últimos 15 minutos.