EJBTransactionRolledbackException se produit occasionnellement sur @Asynchrone Fonction
Je suis à l'aide de Java 1.6.0_23 et Glassfish 3.1.1. J'ai deux Ejb Singleton. L'un est à l'aide de la TimerService le feu à la @fonction de Délai. Au cours de l' @Délai d'attente, un @Asynchrone en fonction appelée dans l'autre EJB Singleton. Il fonctionne à 95% du temps et sans erreurs. Mais les autres 5% du temps lorsque le @Asynchrone fonction est appelée, j'obtiens l'erreur suivante avec pas de preuve qu'il a même commencé à la @fonctions Asynchrones. Pas d'autres détails de l'erreur sont enregistrés.
Des idées?
PS: j'ai tenté d'augmenter le nombre max d'Ejb dans Glassfish de 32 à 64. Pas de changement.
java.util.de façon concomitante.ExecutionException: javax.ejb.EJBTransactionRolledbackException au com.soleil.ejb.les conteneurs.EjbAsyncTask.appel(EjbAsyncTask.java:132) ~[ejb conteneur.jar:3.1.1] à java.util.de façon concomitante.FutureTask$De Synchronisation.innerRun(FutureTask.java:303) ~[na:1.6.0_23] à java.util.de façon concomitante.FutureTask.exécuter(FutureTask.java:138) ~[na:1.6.0_23] à java.util.de façon concomitante.ThreadPoolExecutor$Par Travailleur.runTask(ThreadPoolExecutor.java:886) ~[na:1.6.0_23] à java.util.de façon concomitante.ThreadPoolExecutor$Par Travailleur.exécuter(ThreadPoolExecutor.java:908) ~[na:1.6.0_23] à java.lang.Fil de discussion.exécution(Thread.java:662) ~[na:1.6.0_23] Causés par: javax.ejb.EJBTransactionRolledbackException: null au com.soleil.ejb.les conteneurs.BaseContainer.mapLocal3xException(BaseContainer.java:2305) ~[ejb conteneur.jar:3.1.1] au com.soleil.ejb.les conteneurs.BaseContainer.postInvoke(BaseContainer.java:2088) ~[ejb conteneur.jar:3.1.1] au com.soleil.ejb.les conteneurs.EjbAsyncTask.appel(EjbAsyncTask.java:114) ~[ejb conteneur.jar:3.1.1] ... 5 communes cadres omis Causés par: javax.ejb.TransactionRolledbackLocalException: la transaction du Client abandonnée au com.soleil.ejb.les conteneurs.BaseContainer.useClientTx(BaseContainer.java:4699) ~[ejb conteneur.jar:3.1.1] au com.soleil.ejb.les conteneurs.BaseContainer.preInvokeTx(BaseContainer.java:4577) ~[ejb conteneur.jar:3.1.1] au com.soleil.ejb.les conteneurs.BaseContainer.preInvoke(BaseContainer.java:1910) ~[ejb conteneur.jar:3.1.1] au com.soleil.ejb.les conteneurs.EjbAsyncTask.appel(EjbAsyncTask.java:99) ~[ejb conteneur.jar:3.1.1] ... 5 communes cadres omis
OriginalL'auteur mauman | 2011-09-08
Vous devez vous connecter pour publier un commentaire.
Vous aurez à chercher d'autres erreurs qui s'est passé avant celui-ci (peut-être avalé des exceptions, puisque vous l'avez dit il n'y a pas d'autres erreurs). EJBTransactionRolledbackException se produit si le trx a été marquée par un retour en arrière, et vous êtes toujours à faire des trucs sur la DB.
est-il possible que vous êtes en possession d'une référence à l'entitymanager? il est important de l'avoir gérée par le conteneur par injection.
Je suis en effet en fonction de l'injection: PersistenceContext(unitName = "myPersistenceUnit") private EntityManager em; ... et de ne jamais utiliser une usine à créer l'entitymanager, ou quelque chose comme ça.
désolé, ne peut pas proposer quelque chose de plus avec les informations fournies. J'ai vu cette exception dans de telles circonstances, par exemple lors d'un em a été réutilisé dans un non-jee conforme. Vous pourriez tout simplement être en contact avec un récipient de bug. 🙁
Bien sûr il y a un serveur défaut: même si c'est probablement causé par quelque chose d'autre, une opération erronée est en quelque sorte lié à certains http thread. Double vérifier vos journaux: c'est probablement toujours le cas sur les mêmes http thread de travail. Si vous redimensionnez la http pool de threads, il sera reconstruit et le problème aura disparu (jusqu'à ce qu'il revienne). Vu dans un couple de situations (mais il y a toujours une cause précédente.
OriginalL'auteur alvi
M'est arrivé aussi.
Semble que le problème n'est pas un problème de codage, mais les ressources du serveur.
J'ai augmenté le http taille du pool de threads
Il était 5 max pour moi et je l'ai changé pour 10
Semble résolu le problème.
Aussi quelques notes sur cette erreur ici:
http://pcjuzeren.blogspot.co.il/2008/12/clients-transaction-aborted.html
OriginalL'auteur Ronen Morecki