Percentuale di sottoscrizioni scadute

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

Monitoraggio della percentuale di sottoscrizioni scadute

Knowledge Base article:

Riepilogo

Misura la percentuale di sottoscrizioni scadute.

Il monitoraggio non supporta la replica di tipo merge.

Cause

Una sottoscrizione scade se non è stata sincronizzata entro il periodo di memorizzazione specificato.

Per la replica transazionale, se una sottoscrizione non viene sincronizzata entro il periodo di memorizzazione della pubblicazione, la sottoscrizione scadrà e verrà eliminata dal processo di pulizia delle sottoscrizioni scadute in esecuzione nel server di pubblicazione.

Risoluzioni

Per la replica transazionale, è necessario ricreare la sottoscrizione e sincronizzarla. Se una sottoscrizione push scade, viene rimossa completamente, al contrario di quanto avviene per le sottoscrizioni pull. Le sottoscrizioni pull devono essere eliminate tramite il processo di pulizia nel Sottoscrittore.

Potrebbe essere necessario modificare il periodo di memorizzazione per consentire una durata più lunga tra le sincronizzazioni del sottoscrittore. Tenere presente che se si aumenta questo valore, si aumenterà anche la quantità di dati di replica con un possibile impatto negativo sulle prestazioni della replica.

Esterna

Per altre informazioni sulla gestione della scadenza delle sottoscrizioni, vedere:

http://technet.microsoft.com/library/ms151188.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.

Soglia di errore

Soglia di errore

10

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

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

Soglia di avviso

Soglia di avviso

0

Element properties:

TargetMicrosoft.SQLServer.Replication.Windows.Distributor
Parent MonitorSystem.Health.ConfigurationState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Replication.Windows.MonitorType.DistributorPercentOfExpiredSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
Replica di MSSQL per Windows: È stata rilevata una percentuale elevata di sottoscrizioni scadute nel server di distribuzione.
Il server di distribuzione (nome: '{0}', server: '{1}') ha rilevato una percentuale elevata di sottoscrizioni scadute.
Percentuale di sottoscrizioni scadute: {2}\%
Sottoscrizioni:
{3}
RunAsMicrosoft.SQLServer.Core.RunAs.Monitoring

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Replication.Windows.Monitor.PercentOfExpiredSubscriptions" Accessibility="Public" Enabled="true" Target="SQLReplWD!Microsoft.SQLServer.Replication.Windows.Distributor" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Replication.Windows.MonitorType.DistributorPercentOfExpiredSubscriptions" ConfirmDelivery="false" RunAs="SqlCoreLib!Microsoft.SQLServer.Core.RunAs.Monitoring">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Replication.Windows.Monitor.DistributorPercentOfExpiredSubscriptions.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</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='DistributorPercentOfExpiredSubscriptions']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Message']$</AlertParameter4>
</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/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/InstanceName$</InstanceName>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<ConnectionString>$Target/Host/Property[Type='SqlCoreLib!Microsoft.SQLServer.Core.DBEngine']/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>200</TimeoutSeconds>
</Configuration>
</UnitMonitor>