Pourcentage d'abonnements expirés

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

Moniteur du pourcentage d'abonnements expirés

Knowledge Base article:

Résumé

Mesure le pourcentage d'abonnements ayant expiré.

Causes

Un abonnement expire s'il n'est pas synchronisé durant une période de rétention spécifiée.

Pour une réplication transactionnelle, si un abonnement n'est pas synchronisé durant la période de rétention de publication, l'abonnement expire et est supprimé par le travail de nettoyage d'abonnement expiré qui s'exécute sur le serveur de publication.

Pour une réplication de fusion, les paramètres @retention et @retention_period_unit de sp_addmergepublication sont utilisés pour définir la période de rétention. Un abonnement expire uniquement s'il ne s'est pas synchronisé correctement durant la période de rétention, et si des modifications de données ont été apportées à la partition de l'abonné.

Résolutions

Pour une réplication transactionnelle, l'abonnement doit être recréé et synchronisé. Si un abonnement par émission de données expire, il est totalement supprimé, ce qui n'est pas le cas des abonnements par extraction de données. Les abonnements par extraction de données doivent être nettoyés sur l'abonné.

Quand un abonnement de fusion expire, ses métadonnées sont supprimées. L'abonnement peut être réinitialisé pour doubler la période de rétention depuis la dernière synchronisation réussie. Après qu'il a transmis une valeur de période de rétention double, il est complètement supprimé, et doit être recréé et synchronisé. Pour les abonnements par émission de données, l'abonnement est automatiquement supprimé par le travail de nettoyage d'abonnement expiré. Les abonnements par extraction de données ne sont pas nettoyés automatiquement, et doivent l'être manuellement sur l'abonné.

La période de rétention peut nécessiter un ajustement afin d'autoriser une durée plus longue entre les synchronisations d'abonné. Sachez que l'augmentation de cette valeur entraîne une augmentation de la quantité de données de réplication, et risque d'avoir une incidence négative sur les performances de réplication.

Externe

Pour plus d'informations sur la gestion de l'expiration des abonnements, consultez l'emplacement suivant :

! FACTICE ! http://technet.microsoft.com/library/ms151188.aspx

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail

Oui

Seuil d'erreur

Seuil d'erreur

10

Génère des alertes

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

Oui

Intervalle (secondes)

Intervalle de temps récurrent en secondes, pendant lequel le workflow est exécuté.

300

Délai d'attente (secondes)

Délai d'attente (secondes)

300

Heure de synchronisation

Heure de synchronisation

 

Seuil d'avertissement

Seuil d'avertissement

0

Element properties:

TargetMicrosoft.SQLServer.2012.Replication.Distributor
Parent MonitorSystem.Health.ConfigurationState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions
RemotableTrue
AccessibilityPublic
Alert Message
Réplication MSSQL 2012 : pourcentage élevé d'abonnements expirés détectés sur le serveur de distribution.
Le serveur de distribution (Nom : « {0} », Serveur : « {1} ») a détecté un pourcentage élevé d'abonnements expirés.
Pourcentage d'abonnements expirés : {2}\%
Abonnements :
{3}
RunAsMicrosoft.SQLServer.Replication.Monitoring.RunAs.Monitor

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Replication.Monitor.PercentOfExpiredSubscriptions" Accessibility="Public" Enabled="true" Target="MS2RD!Microsoft.SQLServer.2012.Replication.Distributor" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.Replication.MonitorType.DistributorPercentOfDeactivatedSubscriptions" ConfirmDelivery="false" RunAs="MSRL!Microsoft.SQLServer.Replication.Monitoring.RunAs.Monitor">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Replication.Monitor.DistributorPercentOfExpiredSubscriptions.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='DistributorPercentOfDeactivatedSubscriptions']$</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>
<SqlTimeout>300</SqlTimeout>
<ConnectionString>$Target/Property[Type='MSRL!Microsoft.SQLServer.Replication.Library.GenericDistributor']/ConnectionString$</ConnectionString>
<MeasuredStateId>0</MeasuredStateId>
<WarningThreshold>0</WarningThreshold>
<ErrorThreshold>10</ErrorThreshold>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>