Partager via


MSSQL_ENG018752

Détails du message

Nom du produit

SQL Server

Version du produit

10.0

Numéro de version

 

ID d'événement

18752

Source de l'événement

MSSQLSERVER

Composant

Moteur de base de données SQL Server

Nom symbolique

Texte du message

Un seul Agent de lecture du journal ou une seule procédure liée au journal (sp_repldone, sp_replcmds et sp_replshowcmds) peut se connecter à une base de données à la fois. Si vous avez exécuté une procédure liée au journal, supprimez la connexion à travers laquelle la procédure a été exécutée ou exécutez sp_replflush sur cette connexion avant de démarrer l'Agent de lecture du journal ou d'exécuter toute autre procédure liée au journal.

Explication

Plusieurs connexions tentent actuellement d'exécuter l'une des procédures suivantes : sp_repldone, sp_replcmds ou sp_replshowcmds. Les procédures stockées sp_repldone (Transact-SQL) et sp_replcmds (Transact-SQL) sont utilisées par l'Agent de lecture du journal pour détecter et mettre à jour les informations relatives aux transactions répliquées dans une base de données publiée. La procédure stockée sp_replshowcmds (Transact-SQL) est utilisée pour résoudre certains types de problèmes rencontrés en réplication transactionnelle.

Cette erreur se produit dans les circonstances suivantes :

  • Si l'Agent de lecture du journal d'une base de données publiée est en cours d'exécution et si un deuxième Agent de lecture de journal tente de s'exécuter sur la même base de données, cette erreur est émise pour le second agent et apparaît dans l'historique de l'agent.

    Dans les situations où plusieurs agents sont impliqués, il est possible que l'un d'entre eux résulte d'un processus orphelin.

  • Si l'Agent de lecture du journal d'une base de données publiée est démarré et qu'un utilisateur exécute sp_repldone, sp_replcmds ou sp_replshowcmds sur la même base de données, cette erreur est émise dans l'application où la procédure stockée a été exécutée (par exemple sqlcmd).

  • Si aucun Agent de lecture de journal n'est en cours d'exécution sur une base de données publiée et si un utilisateur exécute sp_repldone, sp_replcmds ou sp_replshowcmds, puis omet de fermer la connexion sur laquelle la procédure a été exécutée, cette erreur est émise lorsque l'Agent de lecture de journal tente de se connecter à la base de données.

Action de l'utilisateur

La procédure suivante peut vous aider à résoudre ce problème. Si l'une des étapes permet à l'Agent de lecture de journal de démarrer sans erreur, il n'est pas nécessaire d'exécuter le reste de la procédure.