Donc, je fais des recherches sur MSDTC et son rôle qu'il fait ou ne joue pas dans différents types d'appels dans SQL Server, et cela m'a fait penser aux questions suivantes:
Y a-t-il des alternatives/remplaçants tierces pour MSDTC (s'ils existent) et leur avr.
Le DTC est-il entré en jeu lorsque je vous interroge simplement une seule table (CRUD ou SELECT) via un serveur lié?
MSDTC est-il requis pour la réplication transactionnelle? Je connais des abonnements à la mise à jour nécessitent MSDTC, mais pas clair si des abonnements non mis à jour ont besoin/utiliser MSDTC.
De Googling, je n'arrive pas à trouver de bonnes réponses à ces questions, alors tournant vers la communauté ici. Toute aide pour améliorer ma compréhension de la MSDTC est grandement appréciée.
Merci!
MSDTC fournit des services de gestion des transactions pour les applications. Il peut agir en tant que gestionnaire de transactions régulier ou un gestionnaire de ressources compatible XA. SQL Server est l'application bien connue qui utilise DTC, mais ce n'est pas vraiment une fonctionnalité SQL Server ou même un composant. La MSDTC est vraiment destinée à fournir une gestion des transactions pour deux ressources distinctes ou plus pour assurer la cohérence transactionnelle. La gestion des transactions est intégrée à SQL Server pour une seule ressource/une base de données, mais il ne traite actuellement pas de multiples ressources. Voir Cet ancien blog MSDTC pour une description plus détaillée. Le contenu est vraiment vieux mais les concepts sont toujours exacts.
Quant à vos questions,
BEGIN DISTRIBUTED TRANSACTION
Enlève automatiquement DTC en tant que gestionnaire de transactions). Si vous utilisez JDBC, vous pouvez également configurer SQL Server pour prendre en charge XA en installant le composant XA à partir du package JDBC. Il y a un pilote et un script d'installation pour le faire (tout dans l'emballage). Qui définit certains XPS pour fournir un support de transaction XA. Il peut y avoir autre TMS là-bas pour SQL Server, mais je ne les ai pas rencontrés.