Stato dell'agente di merge della replica per la sottoscrizione

Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState (UnitMonitor)

Questo monitoraggio controlla lo stato del servizio agente di merge della replica per la sottoscrizione. 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

L'agente di merge della replica è un eseguibile che applica lo snapshot iniziale contenuto nelle tabelle di database ai Sottoscrittori. Esegue inoltre il merge delle modifiche dati incrementali che si sono verificate a livello del server di pubblicazione dopo la creazione dello snapshot iniziale. Riconcilia i conflitti in base alle regole configurate o tramite un resolver personalizzato creato dall'utente. 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

Gli errori dell'agente di merge possono essere causati da uno dei motivi seguenti:

Risoluzioni

Per risolvere il problema, verificare quanto segue:

Aggiuntivo

Eseguire una query sulle tabelle msmerge_agents e msmerge_history nel database di distribuzione per ottenere maggiori informazioni sull'errore dell'agente. Anche la tabella Msrepl_errors contiene informazioni sugli eventuali errori dell'agente.

Esterna

Problema dell'heap del desktop

http://support.microsoft.com/kb/949296

Agente di merge della replica

http://msdn.microsoft.com/library/ms147839.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.

Durata stimata del processo

Soglia usata per controllare la conformità con la pianificazione processo

15

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.

300

Mostra i processi con stato sconosciuto

Include i processi con stato sconosciuto nell'output del monitoraggio e nel contesto dell'avviso. Ha effetto sull'integrità.

No

Ora di sincronizzazione

Ora di sincronizzazione

 

Timeout (secondi)

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

200

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.Subscription
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState
RemotableTrue
AccessibilityPublic
Alert Message
Replica di MSSQL per Windows: L'agente di merge per la sottoscrizione contiene un errore.
{0}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Subscription" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.ReplicationAgentState" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.SubscriptionMergeAgentState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<XPathName>Merge$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/Distributor$$Target/Host/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscriber']/ConnectionString$$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericSubscription']/SubscriptionName$</XPathName>
<ShowJobsWithUnknownState>false</ShowJobsWithUnknownState>
<EstimatedJobDuration>15</EstimatedJobDuration>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
<CheckMachineAndInstanceName>false</CheckMachineAndInstanceName>
</Configuration>
</UnitMonitor>