Stato di SQL Server Agent per il sottoscrittore

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

Questo monitoraggio controlla se SQL Server Agent è in esecuzione nel Sottoscrittore. Si noti che il servizio di Windows SQL Server Agent non è supportato da alcuna edizione di SQL Server Express. Questo monitoraggio non è quindi applicabile ai casi relativi a SQL Server Express.

Knowledge Base article:

Riepilogo

Questo monitoraggio stabilisce una connessione al Sottoscrittore della replica e verifica se il servizio SQL Server Agent è in esecuzione. Il servizio SQL Server Agent viene installato automaticamente durante l'installazione di SQL Server ed è responsabile per l'avvio degli agenti di replica. Si noti che il servizio di Windows SQL Server Agent non è supportato da alcuna edizione di SQL Server Express. Questo monitoraggio non è quindi applicabile ai casi relativi a SQL Server Express.

Cause

Il servizio SQL Agent potrebbe essere stato arrestato manualmente dall'amministratore di sistema di Windows o in seguito a un errore dell'agente. Esaminare il registro eventi applicazioni di Windows per individuare le cause possibili dell'arresto imprevisto del servizio SQL Agent.

Se la modalità di avvio del servizio SQL Server Agent è impostata su "Manuale" anziché su "Automatica", il servizio non verrà riavviato automaticamente al riavvio del server.

Risoluzioni

Avviare il servizio SQL Server Agent in Servizi di Windows, Gestione configurazione SQL Server o tramite SQL Server Management Studio. Se la "Modalità di avvio" dell'agente è impostata su "Manuale", provare a impostarla su "Automatica".

Avviare, arrestare o sospendere il servizio SQL Server Agent

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

Aggiuntivo

Gli agenti di distribuzione in esecuzione nel sottoscrittore sono denominati agenti PULL e possono essere eseguiti in modo continuo o a intervalli pianificati. Se sono in esecuzione a intervalli pianificati, il servizio SQL Agent, in esecuzione in modo continuo, pianificherà l'avvio dell'agente di distribuzione. Se il servizio SQL Agent è arrestato, gli agenti pull di distribuzione non verranno avviati come pianificato, causando quindi una latenza dei dati.

Esterna

Fare clic sul collegamento seguente per visualizzare il log degli errori di SQL Server Agent: https://msdn.microsoft.com/library/ms175488.aspx

Questo articolo descrive come configurare Microsoft SQL Server Agent per il riavvio automatico in caso di arresto imprevisto in SQL Server per Windows: https://msdn.microsoft.com/library/ms178130.aspx

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Priorità avviso

Definisce la priorità dell'avviso.

Normale

Gravità avviso

Definisce la gravità dell'avviso.

Errore

Abilitato

Abilita o disabilita il flusso di lavoro.

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

600

Ora di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

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
Replica di MSSQL per Windows: Il servizio di Windows SQL Server Agent nel sottoscrittore è stato arrestato.
Il servizio di Windows SQL Server Agent è stato arrestato nell'istanza di SQL Server {1} nel computer {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>