Et quand tu as plus ? (des messages JMS envoyé et des commits en base par exemple)
Cela fait toujours deux ressources managers :-)
Blague à part, tant que tu es dans une logique tout ou rien, le code reste simple. Si de toute façon tu veux commencer à gérer finement les transactions en fonction des cas d'erreur, tu devras passer en mode manuel.
De plus, si tu as beaucoup (>>2) de ressources managers à coordonner, le coût du XA va également augmenter... et il faut sans doute se demander s'il est bien raisonnable de gérer autant de ressources synchronisées dans une seule transaction. En cas de pépin, la resynchro sera pénible (et XA ou pas, il y a toujours des cas ou on doit le faire, donc autant avoir un système robuste...).
Je ne dis qu'XA est inutile dans l'absolu (et mettre en place du XA aujourd'hui est moins aléatoire qu'il y a 10 ans) ; cela s'évalue au cas par cas comme tu le soulignes, mais dans 99% des cas c'est un réel overkill qui amène son lot de bug et de complexité car les gens ont peur de gérer deux malheureuses transactions à la main ou font du XA par conformisme (2 transactions=>XA...). Heureusement, cela n'est pas une fatalité.
[^] # Re: Questions
Posté par Sebastien . En réponse à la dépêche JQM, un serveur de batchs asynchrones en Java. Évalué à 1.
Cela fait toujours deux ressources managers :-)
Blague à part, tant que tu es dans une logique tout ou rien, le code reste simple. Si de toute façon tu veux commencer à gérer finement les transactions en fonction des cas d'erreur, tu devras passer en mode manuel.
De plus, si tu as beaucoup (>>2) de ressources managers à coordonner, le coût du XA va également augmenter... et il faut sans doute se demander s'il est bien raisonnable de gérer autant de ressources synchronisées dans une seule transaction. En cas de pépin, la resynchro sera pénible (et XA ou pas, il y a toujours des cas ou on doit le faire, donc autant avoir un système robuste...).
Je ne dis qu'XA est inutile dans l'absolu (et mettre en place du XA aujourd'hui est moins aléatoire qu'il y a 10 ans) ; cela s'évalue au cas par cas comme tu le soulignes, mais dans 99% des cas c'est un réel overkill qui amène son lot de bug et de complexité car les gens ont peur de gérer deux malheureuses transactions à la main ou font du XA par conformisme (2 transactions=>XA...). Heureusement, cela n'est pas une fatalité.