Bonjour à tous,
Tout d'abord, je tiens à m'excuser si mon post ne se trouve pas dans la bonne catégorie.
Voilà le contexte: j'écris une application Web utilisant JSF 2.0, PrimeFaces, la Persitance API (avec EclipseLink) et tournant sous Tomcat 6.0.26/JRE 1.6.0_22.
La base de donnée utilisée est mysql 5.1.36.
Pour intéragire avec la base de donnée, j'utilise donc l'API de Persitence et fait donc beaucoup de
Le soucis est que l'utilisateur à la possibilité de lancer un traitement via cette interface, et vu que ce traitement peut être potentielement long, je le fais dans un thread dédié. Et ce thread utilise aussi la base de donnée de la même façon que précédemment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 em.getTransaction().begin(); em.persist(monObjet); em.getTransaction().commit();
Le problème arrive lorsque plusieurs threads tentent de communiquer avec la base de donnée en même temps: un des threads plante en précisant que la transaction a déjà commencer.
Y-a-t'il un moyen d'éviter ce problème?
Merci beaucoup pour votre aide.
Partager