2009-12-14 7 views
1

Quelle est la meilleure pratique pour gérer plusieurs fichiers EAR et la même transaction, dans la mesure où nous savons que nous devons appliquer les concepts XA dans la transaction de commande fonctionne correctement. mais apparemment dans le projet de courants sur lequel nous avons travaillé, ce n'est pas strictement nécessaire pour les créations et les mises à jour; Toutefois, si nous essayons de récupérer une collection d'une entité, nous obtenons une erreur indiquant qu'il n'y a pas de transaction active ou fermée, mais si nous mettons à jour l'entité A dans l'oreille A et l'entité B dans l'oreille B, cela fonctionne parfaitement. et l'Entité B a des sources de données différentes, à ce stade nous sommes tellement confus à ce sujet, parce que nous n'avons pas encore configuré de source de données xa. comment est la meilleure approche pour travailler avec cela. transaction sont traitées par les beans et non par le conteneur et la source de données sont différentes entre EAR A et EAR BGérer la transaction sur différents fichiers EAR

+0

bonjour, je serais mieux si vous nous expliquez ce que vous voulez réaliser et quels problèmes vous avez. Quelle est la relation entre l'application A et B (partagent-elles les mêmes données, s'appellent-elles les unes les autres ???) – pgras

Répondre

1

Lorsque vous souhaitez utiliser plusieurs ressources (bases de données, ressources JMS, connecteurs JCA) en une seule transaction, vous avez besoin d'un XA. transaction (également appelée «transaction globale») Une transaction XA implique un gestionnaire de transactions JTA pour la coordination via le protocole de validation en deux phases (2pc) Pour plus de détails sur XA, voir ce merveilleux article de Mike Spille XA Exposed

(...) si nous mettons à jour l'entité A dans l'oreille A et mettons à jour l'entité B dans l'oreille B cela fonctionne parfaitement lorsque l'entité A et l'entité B ont des sources de données différentes

Comment effectuez-vous cette mise à jour (je veux dire, d'où)? Que voulez-vous dire exactement par "ça marche"? Êtes-vous sûr que les deux mises à jour sont annulées en cas de problème? Sans utiliser une transaction globale, je serais surpris s'ils le sont. Pouvez-vous clarifier cela un peu?

Questions connexes