Question

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: "Dernière optimisation des ressources".

Sur JBoss, votre classe XAResource doit implémenter LastResource pour bénéficier de l'optimisation.

Ma question est la suivante: comment cela peut-il être réalisé dans WebLogic, WebSpehre, Glassfish, etc. ...

Était-ce utile?

La solution

Weblogic: autant que je sache (il se peut que ce soit très faux), seuls les pilotes JDBC peuvent être utilisés avec LRO. Il s'agit d'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 afin d'émuler la participation à des transactions globales à l'aide de JTA" .

Essentiellement, LRO tolère une ressource qui n’a pas de phase de préparation et ne peut être validée ou annulée. Ainsi, si une seule ressource de ce type existe dans XA-transaction, nous pouvons d'abord essayer de préparer toutes les autres, puis engager celle-ci, puis, en cas de succès, engager les autres, sinon annuler les autres.

Vous voyez, il n’est pas nécessaire 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 les autres serveurs aient quelque chose de similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top