¿Es posible configurar una alerta en SQL Server 2008 que envíe un correo electrónico cada vez que falle un trabajo en una categoría específica?
Me pregunto porque me gustaría configurar un correo electrónico cada vez que falle una suscripción de SSRS, y todas estas suscripciones son trabajos en la categoría Servidor de informes .
EDITAR : resulta que cuando falla una suscripción SSRS, el trabajo en sí no falla, por lo que mi pregunta no se aplicará al uso de monitoreo de suscripción SSRS. Sin embargo, me gustaría saber para otros trabajos que ejecutamos en nuestro entorno.
AND EXISTS
parte delINSERT/SELECT
. Y probablemente cambie el nombreReportServerJob_FailQueue
a algo más genérico. :-)Respuestas:
Puede crear un trabajo que compruebe la tabla msdb.dbo.sysjobhistory cada minuto (o con la frecuencia que desee). Es posible que desee implementar una tabla de cola para que solo envíe una vez el mensaje de una falla de instancia única.
Entonces, su código, que puede programar en un trabajo, se convierte en:
Ahora supongo que desea enviar un correo electrónico individual para cada falla, por lo que esto podría ser parte del trabajo también (o parte de un trabajo diferente, aunque eso no es necesariamente sabio):
También hay algunas otras opciones:
Si el Correo electrónico de base de datos no está configurado, consulte este tutorial .
También puede usar herramientas de terceros (por ejemplo, SQL Sentry Event Manager ) que simplificarán mucho esto. Revelación completa: trabajo para SQL Sentry.
fuente
Según su edición, esto sería solo una extensión de la respuesta de Aaron, con respecto a las fallas de suscripción SSRS (no solo el trabajo del Agente SQL). Sugeriría simplemente agregar un paso al trabajo de supervisión del trabajo, o podría hacer esto como un trabajo separado por completo.
Para obtener el estado de suscripción, simplemente verifique la
ReportServer.dbo.ExecutionLog3
vista . LaStatus
columna mostrará cualquier cosa menosrsSuccess
fallas. Solo filtra porRequestType = 'Subscription'
. Deberá incluir alguna verificación de tiempo, para que no verifique todos los registros cada vez. Si ejecuta el trabajo cada 15 minutos, solo verifiqueTimeStart
los últimos 15 minutos.fuente