Ce comportement se présente parce que l'agent de réplication est trop occupé pour répondre lorsque SQL Server Enterprise Manager l'interroge. SQL Server Enterprise Manager ne connaît donc pas l'état de l'agent de réplication et ne peut pas établir si ce dernier est ou non en cours d'exécution.
Ce comportement se présente parce que l'agent de réplication est trop occupé pour répondre lorsque SQL Server Enterprise Manager l'interroge. SQL Server Enterprise Manager ne connaît donc pas l'état de l'agent de réplication et ne peut pas établir si ce dernier est ou non en cours d'exécution.
Si l'agent de réplication échoue, vous recevez le message d'erreur suivant :
Message 20536, gravité 10 « Réplication : Échec de l'agent ».
De nombreuses raisons peuvent expliquer que l'agent de réplication soit occupé : il peut y avoir une grande quantité de données en cours de réplication, ou il peut y avoir des problèmes de conception de la configuration ou de la réplication aboutissant à des processus très longs à s'exécuter.
Pour réduire la fréquence du message, augmentez le seuil d'inactivité.
La modification de cette valeur ne change rien, si ce n'est la fréquence d'interrogation de l'Agent de réplication concernant son état actuel. Pour modifier la valeur du seuil d'inactivité, procédez comme suit :
Dans SQL Server Enterprise Manager, sous Moniteur de réplication, cliquez avec le bouton droit sur le dossier de l'Agent de réplication, puis cliquez sur « Actualiser les taux et les paramètres ».
Définissez la valeur sur le nombre de minutes que le Moniteur de réplication doit attendre avant d'interroger l'Agent de réplication.
À moins que vous ne receviez d'autres messages d'erreur signalant un problème avec l'Agent de réplication, le message indiquant que l'Agent est suspect n'est qu'un message d'information. Lorsque vous recevez ce message, n'arrêtez pas l'Agent de réplication s'il n'existe aucune autre erreur associée. Si vous arrêtez l'agent de réplication, le processus engagé est restauré et doit alors être redémarré. Attendez plutôt la fin du processus.
Nom | Description | Valeur par défaut |
Activé | Active ou désactive le flux de travail. | Oui |
Intervalle (en secondes) | Intervalle régulier (en secondes) auquel exécuter le flux de travail. | 300 |
Priorité | Définit la priorité de l'alerte. | 1 |
Severity | Defines Alert Severity. | 2 |
Synchronization Time | Synchronization Time |
|
Timeout (seconds) | Specifies the time the workflow is allowed to run before being closed and marked as failed. | 200 |
Timeout for database connection (seconds) | The workflow will fail and register an event, if it cannot access the database during the specified period. | 15 |
Target | Microsoft.SQLServer.Linux.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{C65DF52B-B877-48C3-B546-67D69C494E84}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.CollectionRule.Agent.The_agent_is_suspect._No_response_within_last_minutes_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{C65DF52B-B877-48C3-B546-67D69C494E84}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>20554</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.CollectionRule.Agent.The_agent_is_suspect._No_response_within_last_minutes_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>