Published on

July 6, 2013

Comprendre les transactions distribuées dans SQL Server

Aujourd’hui, j’ai rencontré un problème intéressant lors de la configuration de la réplication transactionnelle avec une souscription de mise à jour immédiate entre deux instances de SQL Server 2005. J’ai reçu un message d’erreur indiquant “Aucune transaction n’est active” lors de la tentative d’exécution de la procédure stockée sp_link_publication sur le serveur abonné.

Après avoir étudié le problème et consulté le site de support de Microsoft, j’ai trouvé un article intitulé “Comment résoudre l’erreur 7391 qui se produit lorsque vous utilisez un serveur lié dans SQL Server”. Cependant, malgré le respect de toutes les exigences décrites dans l’article, le problème persistait.

Après avoir passé un temps considérable à rechercher une solution, j’ai demandé l’aide du groupe d’administrateurs système. Un des experts en administration système m’a donné un indice précieux – le problème était causé par le fait que les deux serveurs étaient construits à partir de la même image fantôme, ce qui entraînait des informations d’identification MSDTC identiques.

Après une enquête plus approfondie, j’ai découvert un message dans le journal des événements de Windows indiquant que le MS DTC local avait détecté que le MS DTC sur le serveur 1 avait la même identité unique que le MS DTC local. Cela signifiait que les deux instances de MS DTC ne pouvaient pas communiquer entre elles. Ce problème se produit généralement lorsque des systèmes sont clonés à l’aide d’outils de clonage non pris en charge, plutôt que d’outils pris en charge comme SYSPREP.

Pour résoudre le problème, j’ai suivi les étapes recommandées en exécutant ‘msdtc -uninstall’ puis ‘msdtc -install’ depuis l’invite de commande. Il est important de noter que l’exécution de ‘msdtc -uninstall’ entraînera la perte de toutes les informations de configuration de MS DTC du système. Cependant, après avoir terminé ces étapes, j’ai pu exécuter avec succès la procédure stockée sp_link_publication.

Cette expérience m’a appris que bien que les articles de la base de connaissances de Microsoft puissent être utiles, ils ne doivent pas être considérés comme la solution définitive pour chaque problème. Parfois, la cause profonde d’un problème peut se situer en dehors du champ d’application de la documentation fournie.

Lorsque vous rencontrez des problèmes similaires avec des transactions distribuées dans SQL Server, il est important de prendre en compte des facteurs tels que la configuration du serveur, les méthodes de clonage et les informations d’identification MSDTC. En enquêtant minutieusement sur ces aspects et en demandant l’aide de personnes compétentes, vous pouvez surmonter les défis et mettre en œuvre avec succès des transactions distribuées dans votre environnement SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.