ne pouvait pas acquérir de verrouillage sur un composant
J'obtiens cette erreur, parfois sur une session étendue de composants, n'ont toujours pas compris quelle est la cause de cet échec. Des idées?
ERROR [Exceptions] handled and logged exception
javax.el.ELException: org.jboss.seam.core.LockTimeoutException: could not acquire lock on @Synchronized component: importUser
OriginalL'auteur Joe | 2010-10-13
Vous devez vous connecter pour publier un commentaire.
Session étendue de composants sont synchronisés par défaut. Cela signifie que, Couture prend en charge qu'une seule demande à la fois peut accéder à un tel composant. Toutes les autres demandes doivent attendre jusqu'à ce que le premier est terminé. Pour éviter la famine, les demandes en attente ont un délai d'attente (voir
org.jboss.seam.core.SynchronizationInterceptor
pour la mise en œuvre correspondant). Lors de l'attente de la demande n'a pas accès à l'élément jusqu'à ce que le délai est atteint, leSynchronizationInterceptor
jette unorg.jboss.seam.core.LockTimeoutException
.En supposant que les demandes, A et B, besoin de votre
importUser
composant et A est premier. Si A prend beaucoup de temps pour terminer, B la fin de laLockTimeoutException
. Pour trouver la cause de votre problème, essayez de trouver comment faire une demande deimportUser
peut prendre plus de temps que le délai d'attente défini.Merci!
Ce n'est pas le cas car il y a une longue commande en cours d'exécution, mais semble à la surface quand il y a une Exception levée de cette méthode et que vous tentez d'accéder à nouveau à la même fonctionnalité.
OriginalL'auteur kraftan
J'ai eu une page où cela arriverait rarement sous une lourde charge. J'ai été en mesure de réduire la fréquence de ce phénomène en mettant cette annotation sur la délinquance Couture de la classe d'objet:
Qui augmente le délai de cinq secondes au lieu de la valeur par défaut d'une seconde Couture donne. C'est juste un band-aid, mais je n'étais pas pour la réécriture que behemoth.
OriginalL'auteur iandisme