Questo monitoraggio controlla se sono presenti sottoscrizioni inattive per le pubblicazioni.
Le sottoscrizioni possono essere disattivate o scadere se non vengono sincronizzate entro un periodo di memorizzazione specificato. Le azioni che si verificano dipendono dal tipo di replica e dal periodo di memorizzazione superato.
La sottoscrizione non è stata sincronizzata correttamente entro il periodo di memorizzazione definito.
Transazionale:
Se una sottoscrizione non è sincronizzata entro il periodo di memorizzazione per la distribuzione massimo (il valore predefinito è 72 ore) e nel database di distribuzione sono presenti modifiche che non sono state inviate al Sottoscrittore, la sottoscrizione verrà contrassegnata come disattivata dal processo di pulizia della distribuzione in esecuzione nel server di distribuzione. È necessario inizializzare di nuovo la sottoscrizione.
Merge:
Se una pubblicazione presenta un periodo di memorizzazione di 14 giorni, questa può scadere se non è stata sincronizzata entro 14 giorni. Se nel server di pubblicazione è in esecuzione SQL Server 2005 o versione successiva e l'agente per la sottoscrizione è un agente di SQL Server 2005 o versione successiva, la sottoscrizione scade solo se non sono state apportate modifiche ai dati nella partizione di quella sottoscrizione. Si supponga ad esempio che un Sottoscrittore riceva i dati dei clienti solo per i clienti in Germania. Se il periodo di memorizzazione è impostato su 14 giorni, la sottoscrizione scade il giorno 14 solo se non sono state apportate modifiche ai dati dei clienti tedeschi negli ultimi 14 giorni.
Controllare se l'esecuzione dell'agente di distribuzione/merge non è riuscita con un errore. Per informazioni dettagliate, esaminare la cronologia processo.
Per le sottoscrizioni che sono diventate inattive, verificare se sono presenti errori nella tabella Msrepl_errors del database di distribuzione. Correggere l'errore e inizializzare di nuovo la sottoscrizione.
Se non sono presenti errori per la replica transazionale, esaminare la tabella MSdistribution_history per individuare le cause dello stato di inattività della sottoscrizione. Se non sono presenti errori per la replica di tipo merge, esaminare la tabella msmerge_history per individuare le cause dello stato di inattività della sottoscrizione.
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Avviso |
Abilitato | Abilita o disabilita il flusso di lavoro. | Sì |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 900 |
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. | 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 |
Target | Microsoft.SQLServer.Replication.Windows.Publisher | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Replication.Windows.MonitorType.PublisherSubscriptionsMonitor | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Microsoft.SQLServer.Core.RunAs.Monitoring |
<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.PublisherSubscriptionsMonitor" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Publisher" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.PublisherSubscriptionsMonitor" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.PublisherSubscriptions.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Health" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</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>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/Distributor$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<DistributorDbName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/DistributorDatabaseName$</DistributorDbName>
<PublisherServerName>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Core.GenericPublisher']/ConnectionString$</PublisherServerName>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>