Travaux à long terme

Microsoft.SQLServer.2008.Agent.LongRunningJobs (UnitMonitor)

Ce moniteur vérifie les tâches SQL Agent de longue durée.
Notez que le service Windows de SQL Server Agent n'est pris en charge par aucune édition de SQL Server Express ; aucun objet approprié n'est découvert. Ce moniteur est désactivé par défaut. Utilisez des remplacements pour l'activer quand c'est nécessaire.

Knowledge Base article:

Résumé

Cette analyse recherche les travaux à long terme de l'Agent SQL. Une alerte d'avertissement ou d'erreur sera déclenchée si un travail s'est exécuté pendant une durée supérieure au seuil configuré.

Causes

Un fonctionnement défectueux est dû à un travail de SQL Server Agent qui s'est exécuté pendant une durée supérieure au seuil configuré. Ceci peut indiquer un problème au niveau du travail.

SQL Server Agent est responsable de l'exécution des tâches SQL Server planifiées à des heures ou à des intervalles spécifiques ainsi que de la détection de conditions particulières pour lesquelles les administrateurs ont défini une action, comme l'alerte d'une personne par radiomessagerie ou par e-mail, ou une tâche traitant les conditions. SQL Server Agent est également utilisé pour exécuter des tâches de réplication définies par les administrateurs.

Pour identifier le travail qui a provoqué l'avertissement ou l'état d'erreur, examinez les données de contexte du changement d'état ou d'alerte.

Solutions

Vérifiez SQL Server Management Studio pour identifier les travaux exécutés. Si ces travaux s'exécutent durant une période plus longue que nécessaire, analysez-les pour en connaître la raison.

Utilisez sp_help_jobactivity pour afficher des informations sur les travaux en cours d'exécution.

Sinon, s'il est prévu que l'exécution de certains travaux de l'agent dure longtemps :

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité de l'alerte

Définit la priorité de l'alerte.

Normal

Gravité de l'alerte

Définit la gravité de l'alerte.

MatchMonitorHealth

Activé

Active ou désactive le flux de travail.

Non

Génère des alertes

Définit si le flux de travail génère une alerte.

Oui

Intervalle (en secondes)

Ce moniteur utilise un script pour surveiller les travaux de longue durée. Il s'agit de l'intervalle (en secondes) entre deux exécutions de ce script.

600

Seuil inférieur (minutes)

Le seuil inférieur (en minutes) pour ce moniteur. Par défaut, le dépassement de ce seuil fait que l'état du moniteur passe au moins à Avertissement.

60

Heure de synchronisation

L'heure de synchronisation spécifiée dans un format de 24 heures. Peut être omise.

 

Délai d'expiration (en secondes)

Durée d'autorisation de l'exécution du script (en secondes).

300

Seuil supérieur (minutes)

Le seuil supérieur (en minutes) pour ce moniteur. Par défaut, le dépassement de ce seuil fait que l'état du moniteur passe à Critique. Si la valeur est entre ce seuil et le seuil inférieur (inclusivement), par défaut, le moniteur est dans l'état Avertissement.

120

Element properties:

TargetMicrosoft.SQLServer.2008.Agent
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AgentLongRunningJobsProvider
RemotableTrue
AccessibilityPublic
Alert Message
Travaux à long terme
Il existe des travaux à long terme de l'Agent sur l'instance SQL {0} de l'ordinateur {1}. Ceci peut indiquer un problème avec un ou plusieurs travaux.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Agent.LongRunningJobs" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.Agent" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AgentLongRunningJobsProvider" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.Agent.LongRunningJobs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<Threshold1>60</Threshold1>
<Threshold2>120</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>