2008-09-25 18 views
1

J'écris un adaptateur de ressources qui ne prend pas en charge la validation en deux phases. Je sais qu'il existe une technique d'optimisation appelée "Last Resource Optimization".Dernière optimisation des ressources

Sur JBoss, votre classe XAResource doit implémenter LastResource afin d'avoir l'optimisation.

Ma question est la suivante: comment cela peut se faire dans WebLogic, WebSpehre, Glassfish, etc ...

Répondre

6

Weblogic: AFAIK (peut être très mal) que les pilotes JDBC peuvent être utilisés avec LRO, et il est une tâche purement administrative. Lorsqu'un pilote ne prend pas en charge XA, il peut être configuré pour être utilisé avec LRO: "Sélectionnez cette option si vous souhaitez activer les connexions JDBC non-XA à partir de la source de données pour émuler la participation aux transactions globales à l'aide de JTA". Essentiellement, LRO tolère une ressource qui n'a pas de phase de préparation et qui peut uniquement être validée ou annulée. Ainsi, si une seule ressource de ce type existe dans la transaction XA, nous pouvons d'abord tenter de préparer tous les autres, puis valider celle-ci, puis, si elle réussit, en commettre d'autres, sinon annuler les autres.

Vous voyez, il n'y a pas de besoin particulier de déclarer une interface. C'est un algorithme qui peut fonctionner avec n'importe quelle ressource non-XA. Je ne sais pas pourquoi JBoss l'a, mais je ne m'attends pas à ce que d'autres serveurs aient quelque chose de similaire.