2011-08-18 3 views
3

Nous utilisons Infinispan (cluster en utilisant JGroups) comme notre deuxième cache de niveau dans notre application JPA (Hibernate). Quand une opération de base de données échoue, nous voyons que le cache de niveau 2 est périmé. Par exemple:exception SQL provoque le cache de second niveau Hibernate pour avoir des données périmées avec Infinispan comme fournisseur

1) Essayez de créer un utilisateur avec le login "joe". 2) Appel persistant (utilisateur); 3) La persistance échoue en raison de la contrainte d'unicité de la base de données. 4) Faites une recherche par id sur login = joe (en supposant que la connexion est le PK). 5) Hibernate renvoie l'utilisateur joe à partir du cache Infinispan, même si la base de données ne l'a pas.

Configuration des transactions XA et ont Infinispan participer à XA semble exagéré dans cette situation. XA est-il le seul moyen de résoudre ce problème?

+0

Pour fermer la boucle sur ceci, j'ai dû activer XA (en utilisant Atomikos) pour faire garder le cache en synchronisation. La solution de Manik n'a pas fonctionné. –

Répondre

0

J'ai dû activer les transactions XA en déployant Atomikos pour garder le cache en synchronisation. D'autres solutions n'ont pas fonctionné.

Questions connexes