2011-06-07 4 views
0

J'ai un ESB (Aqualogic) qui a un proxy.ESB + WCF, Transaction sur plusieurs services

Cette procuration appellera 3 services différents, et je dois mettre ces 3 services dans un périmètre de transaction ...

ESB ne prend pas en charge les transactions ...

Quelqu'un connaît une solution pour que?

Répondre

1

Je ne suis pas familier avec Aqualogic, mais en général, je peux dire que ce que vous voulez faire est très, très difficile.

Si Aqualogic utilise MSMQ pour le transport, vous pouvez avoir une certaine forme de prise en charge des transactions en utilisant des files d'attente transactionnelles. Mais ce n'est que le début. Si vous souhaitez intégrer les services WCF dans un contexte transactionnel, vous devez configurer le support du protocole WS-Atomic (voir http://msdn.microsoft.com/en-us/library/ms729784.aspx et http://social.msdn.microsoft.com/Forums/en/wcf/thread/cae32545-6536-4631-b89f-54f55da62199). C'est une douleur sérieuse dans les fesses.

Non seulement pour le configurer, mais aussi pour l'utiliser. L'utilisation de WS-Atomic sur tous les serveurs signifie que vous devez activer MSDTC sur toutes les machines et que la coordination entre ces MSDTC est très lente et sujette à de longs délais d'attente.

Il est préférable de ne pas vous attendre à tout exécuter en une seule transaction, mais d'utiliser un flux de travail qui compense le succès partiel ou l'échec partiel de votre opération. Voir aussi http://msdn.microsoft.com/en-us/library/dd483319.aspx pour un exemple.

+0

Nice ... Mais j'ai vraiment besoin d'une transaction, pas de compensation. La performance n'est pas si importante dans mon cas ... Les coûts d'une compensation sont vraiment élevés. Avez-vous un didacticiel pour configurer un service avec WS-AT? J'ai déjà installé le WS-AT sur ma machine, mais je suis vraiment perdu ... – renanlf

+1

Je n'ai pas de tutoriels, non ... Je pense que beaucoup de gens qui ont essayé d'aller dans cette voie ont abandonné. Dans un projet que j'ai fait il y a 2 ans, nous avons dû abandonner WS-AT parce que c'était si compliqué, si lent et si sujet aux erreurs. Donc, si vous voulez vraiment aller de l'avant et faire cette chose transactionnelle ... pour citer des amis, "Préparez-vous à faire de sérieux pleurs." –

+0

Hehehe ... Merci! – renanlf