- Problème
Comment faire pour annuler ou valider l’ensemble des modifications apportées sur plusieurs bases de données dans une même méthode ?
Exemple : réservation d’un voyage = réservation d’un avion, réservation d’un hotel et réservation d’une voiture
La réservation du voyage ne peut se faire que si l’ensemble des réservations sont validées, c’est tout ou rien, il faut donc pouvoir annuler l’ensemble des informations déjà enreigstrées dans les différentes bases intervenantes.
- Solution
- Les transactions sont automatisées en utilisant la Programmation Orientée Aspect (AOP) de Spring
- L’utilisation de Java Transaction API (JTA) est obligatoire afin d’utiliser les transactions distribuées
- Java Open Transaction Manager (JOTM), une implémentation de JTA, est utilisé dans notre exemple
- L’utilisation d’un pool de connection XA est utilisé pour se connecter aux différentes source de données au moyen du projet XAPool Enhydra
.jpg)
Transactions distribuées
- Mise en place
com.pointbase.jdbc.jdbcUniversalDriver jdbc:pointbase:server://127.0.0.1/demo PBPUBLIC PBPUBLIC oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:tigerdb scott tiger PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED,-com.example.exception.TravelException
- Explications
Le bean « travelBroker » permet de répondre aux attentes.
L’ensemble des ses méthodes (key=*) permettront d’annuler ou valider l’ensemble des réservations d’un voyage d’un bout à l’autre.




Affichez votre portrait