État de SQL Server Agent pour l'abonné

Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState (UnitMonitor)

Ce moniteur vérifie si SQL Server Agent est en cours d'exécution sur l'abonné. Notez que le service Windows SQL Server Agent n'est pris en charge par aucune édition de SQL Server Express. Par conséquent, ce moniteur ne s'applique pas aux cas SQL Server Express.

Knowledge Base article:

Récapitulatif

Ce moniteur se connecte à l'abonné de réplication et vérifie si le service SQL Server Agent est en cours d'exécution. Le service SQL Server Agent installé automatiquement pendant l'installation de SQL Server est responsable du démarrage des agents de réplication. Notez que le service Windows SQL Server Agent n'est pris en charge par aucune édition de SQL Server Express. Par conséquent, ce moniteur ne s'applique pas aux cas SQL Server Express.

Causes

Le service SQL Server Agent peut être arrêté manuellement par un administrateur système Windows, ou à la suite d'un échec de l'Agent. Examinez le journal des événements de l'application Windows pour déterminer les causes possibles d'un arrêt inattendu du service de l'Agent.

Si le mode de démarrage du service SQL Server Agent est défini sur « Manuel » plutôt que sur « Automatique », le service ne redémarre pas automatiquement lors du redémarrage du serveur.

Résolutions

Démarrez le service SQL Server Agent sous Services Windows, Gestionnaire de configuration SQL Server, ou via SQL Server Management Studio. Si le « Mode de démarrage » de l’Agent est défini sur « Manuel », envisagez de le définir sur « Automatique ».

Démarrer, arrêter ou suspendre le service SQL Server Agent

http://technet.microsoft.com/library/ms190695.aspx

Supplémentaire

Les agents de distribution s'exécutant sur l'abonné sont appelés Agents PULL. Ils peuvent s'exécuter en permanence ou à intervalles planifiés. S'ils s'exécutent à intervalles planifiés, le service SQL Agent, qui s'exécute en permanence, planifie le démarrage de l'Agent de distribution. En cas d'arrêt du service SQL Agent, les agents PULL de distribution ne démarrent pas au moment planifié, ce qui entraîne une latence des données.

Externe

Pour afficher le journal des erreurs de SQL Server Agent, utilisez le lien suivant : https://msdn.microsoft.com/library/ms175488.aspx

Cette rubrique décrit comment configurer Microsoft SQL Server Agent pour qu'il redémarre automatiquement en cas d'arrêt inattendu dans SQL Server sur Windows : https://msdn.microsoft.com/library/ms178130.aspx

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité d'alerte

Définit la priorité de l'alerte.

Normale

Gravité d'alerte

Définit la gravité de l'alerte.

Erreur

Activé

Active ou désactive le flux de travail.

Oui

Génère des alertes

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

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

600

Heure de synchronisation

Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise.

 

Délai d'attente (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué.

300

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Subscriber
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus
RemotableTrue
AccessibilityPublic
Alert Message
Réplication MSSQL sur Windows : Le service Windows SQL Server Agent est arrêté sur l'abonné.
Le service Windows SQL Server Agent s'est arrêté sur l'instance SQL Server {1} exécutée sur l'ordinateur {0}.
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscriber" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.SqlServiceStatus" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.Subscriber.SQLServerAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Running" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="RunningManualOrUnableToDetectStatus" HealthState="Warning"/>
<OperationalState ID="Error" MonitorTypeStateID="NotRunning" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>