Recevez les mises à jour gratuites du blog par Email : »» Garanti sans spam indésirable ««

Transactions distribuées : automatisation avec Spring AOP

de Mimie le 27 juillet 2009

Rubrique : Programmation

  • 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
  1. Les transactions sont automatisées en utilisant la Programmation Orientée Aspect (AOP) de Spring
  2. L’utilisation de Java Transaction API (JTA) est obligatoire afin d’utiliser les transactions distribuées
  3. Java Open Transaction Manager (JOTM), une implémentation de JTA, est utilisé dans notre exemple
  4. 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

Transactions distribuées

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.

Cet article a été écrit par :

– qui a déjà rédigé 123 posts sur Des Geeks et des lettres.

Passionné d'informatique et développeur JavaEE de métier, je me consacre principalement à écrire des billets sur les sujets du Web et de la programmation Web. Ce blog est un espace qui me permet de partager mes découvertes avec vous et me sert accessoirement de pense bête !

Contacter l'auteur

Jetez aussi un oeil sur :

Laissez un Commentaire

Article précédent:

Article suivant: