Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Arnaud CLERET


Astuces et News : .Net, BizTalk, Team System, SQL ...

Actualités

  • BizTalk User Group


    Microsoft Most Valuable Professional

    Microsoft Certified Technology Specialist

    Microsoft Certified Solution Developer


    Exakis

    Windows Live Alerts

    View Arnaud Cleret's profile on LinkedIn

Configuration MSDTC et port FireWall

Voici une question qui revient assez souvent dans le cadre de BizTalk Server et SQL Server, mais avec le Framework .Net 2.0, elle se généralise ... Comment configurer MSDTC lorsque celui-ci doit échanger avec des serveurs inscrits dans des zones différentes protégées par FireWall ? Cas typique d'application distribuée échangeant avec des partenaires ou dans le cadre de sites internet reposant sur des architecture N-Tiers.

Depuis le Framework .Net 2.0, un nouveau Namespace est apparue : System.Transaction qui permet de créer ou de participer à des transactions locales ou distribuées. Cette fonctionnalité était accessible auparavant au travers d'assemblies .Net hébergées dans COM+.

Ce namespace utilise donc en interne MSDTC (Microsoft Distributed Transaction Coordinator) pour synchroniser les transactions sur une architecture distribuée entre plusieurs serveurs. L'inconvénient majeur de cette utilisation concerne la paramétrage de MSDTC et notamment dans le cadre où l'un des serveurs se trouve derrière un FireWall puisque MSDTC participe au transaction via RPC mais en allouant dynamiquement le port de communication entre 1024 et 65535.

Afin d'éviter d'ouvrir l'ensemble des ports sur le FireWall, il est préférable de configurer MSDTC pour qu'il utilise uniquement une plage de port restreinte. Pour ce faire, identifiez idéalement une plage au-dessus de 5000 et d'au moins 100 ports. Typiquement : 5000 à 5100.

Le détail de la configuration se trouve ici : http://support.microsoft.com/kb/250367/ 
Toutefois, cette KB indique une manipulation de la base de registre alors que depuis Windows XP et 2003 il est possible de faire cette configuration depuis l'interface de Service de composants (comexp.msc). Voir copie d'écran ci-dessous :

Configuration MSDTC

Une fois cette plage de port définie et configurer, il est donc nécessaire d'ouvrir les ports suivants sur le FireWall :

  1. Connexion entrante MSDTC : TCP 135 
  2. Plage de port MSDTC définie plus haut : TCP 5000 à 5100
  3. Si vous utilisez une résolution de nom basée sur un serveur DNS : TCP/UDP 53
  4. Redémarrer MSDTC

Une fois ces différentes configurations effectuées, un petit test peut-être sympa à affectuer pour valider le tout. Pas facile de fournir une application de test validant les transactions MSDTC. Et bien Microsoft à penser à nous et je ne peux que vous le recommander : DTCPing.exe qui permet de valider les échanges et de tracer l'ensemble des flux échangés.

Point important, pensez aussi à autoriser les accès distant à MSDTC dans la même console que plus haut. Cette option n'est pas cochée par défaut ...

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 20 avril 2007 14:54 par arno

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [Silverlight] En attendant Silverlight 2 RTW par Blog Technique d'Audrey PETIT le il y a 17 heures et 20 minutes

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le 10-11-2008, 01:18

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le 10-10-2008, 17:52

- Hello CS par Le Blog de julz le 10-10-2008, 12:26

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le 10-10-2008, 09:35

- MVC Pratique #07 - Un projet concret et le transfert des objets avec les ModelBinders par #Rui le 10-09-2008, 23:39

- SQL Server 2008 : Certifié - TS Admin (70-432) par SQL Server vu par Christian Robert le 10-09-2008, 10:58

- [WPF] Comment changer la couleur utilisée pour sélectionner les éléments d’un ItemsControl ? par Thomas Lebrun le 10-09-2008, 10:49

- Hello World! par Hamid's Place le 10-08-2008, 23:38

- SQL Profiler - Configuration pour un développeur - tracer les requêtes SQL de votre application par Atteint de JavaScriptite Aiguë [Cyril Durand] le 10-08-2008, 15:52