2012-10-29 13 views
8

Im Moment habe ich ein unangenehmes Problem. Ich habe 6 Projekte auf meinem JBoss AS 7. Sie werden im Standalone-Modus bereitgestellt. Nachdem ich einige Zeit (5-25 Stunden) gearbeitet habe, beginne ich den identischen Fehler in allen meinen Projekten zu erhalten: javax.enterprise.event.ObserverException. Hierjavax.enterprise.event.ObserverException

ist der Stapel:

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[site.technorational.kz]] (http--192.168.1.2-80-3) Exception sending request initialized lifecycle event to listener instance of class org.jboss.seam.transaction.TransactionServletListener: javax.enterprise.event.ObserverException 
     at sun.reflect.GeneratedConstructorAccessor136.newInstance(Unknown Source) [:1.6.0_21] 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:1.6.0_21] 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_21] 
     at java.lang.Class.newInstance0(Class.java:355) [rt.jar:1.6.0_21] 
     at java.lang.Class.newInstance(Class.java:308) [rt.jar:1.6.0_21] 
     at org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:343) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:173) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:340) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:33) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:73) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:162) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:569) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:564) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.weld.event.EventImpl.fire(EventImpl.java:68) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
     at org.jboss.seam.transaction.TransactionServletListener.requestInitialized(TransactionServletListener.java:117) [seam-transaction-3.1.0.Final.jar:3.1.0.Final] 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:] 
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:] 
     at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_21] 
Caused by: javax.transaction.NotSupportedException: BaseTransaction.checkTransactionState - ARJUNA016051: thread is already associated with a transaction! 
     at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:63) 
     at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.begin(BaseTransactionManagerDelegate.java:65) 
     at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:142) 
     at org.jboss.seam.transaction.UTTransaction.begin(UTTransaction.java:51) [seam-transaction-3.1.0.Final.jar:3.1.0.Final] 
     at org.jboss.seam.transaction.DefaultSeamTransaction.begin(DefaultSeamTransaction.java:88) [seam-transaction-3.1.0.Final.jar:3.1.0.Final] 
     at org.jboss.seam.transaction.TransactionServletListener.requestInitialized(TransactionServletListener.java:110) [seam-transaction-3.1.0.Final.jar:3.1.0.Final] 
     ... 8 more 
Caused by: java.lang.IllegalStateException: BaseTransaction.checkTransactionState - ARJUNA016051: thread is already associated with a transaction! 
     at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.checkTransactionState(BaseTransaction.java:257) 
     at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:59) 
     ... 13 more 

Nachdem ich nach Antworten in den Protokollen war auf der Suche fand ich, dass manchmal kommt, bevor die vorhergehende Ausnahme kommt:

22:19:21,872 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project1-web.war" 
22:19:21,873 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project2-web.war" 
22:19:21,873 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project3-web.war" 
22:19:21,875 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project4-web.war" 
22:19:21,875 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project5-web.war" 
22:19:21,876 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS018559: Deployed "project6-web.war" 
22:19:21,888 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://192.168.2.1:9990/management 
22:19:21,889 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://192.168.2.1:9990 
22:19:21,889 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.2.0.Alpha1-SNAPSHOT "Steropes" started in 31119ms - Started 4319 of 4426 services (98 services are passive or on-demand) 
22:24:59,256 WARN [com.arjuna.ats.arjuna] (Transaction Reaper) ARJUNA012117: TransactionReaper::check timeout for TX 0:ffffc0a80107:2c60f317:50914f6c:4d in state RUN 
22:24:59,259 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012095: Abort of action id 0:ffffc0a80107:2c60f317:50914f6c:4d invoked while multiple threads active within it. 
22:24:59,259 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffffc0a80107:2c60f317:50914f6c:4d aborting with 1 threads active! 
22:24:59,260 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffffc0a80107:2c60f317:50914f6c:4d 

ich viel gegeben haben zu diesem Thema zu denken. Einer meiner Vorschläge ist, dass MySQL das verursacht, weil es viele Methoden gibt, die Informationen aus der Datenbank unter Verwendung von JPA CriteriaBuilder abrufen. Wenn ich den Status von MySQL überprüfe, kann ich sehen, dass es ungefähr 100 langsame Abfragen gibt.

In meinen Projekten verwende ich SEAM, Hibernate, JPA, PrimeFaces.

Ich habe es geschafft, ein paar ähnliche Probleme zu finden, aber immer noch keine Antworten.

Vielen Dank im Voraus, Ilya Sidorovich

+0

Nicht sicher, wie Seam hier eine Rolle spielt, wie ich es nie benutzt habe, aber um sicher zu sein, du verwendest also nirgendwo EJBs? – BalusC

+0

Wir verwenden EJB in unseren Projekten –

+0

JBoss AS Version? –

Antwort

4

hier das gleiche Problem aufgetreten ist: https://community.jboss.org/thread/179047?_sscc=t

die Hörer Deaktivieren und mit Anmerkungen versehen manuell die Klassen/Methoden wären eine Möglichkeit, es zu fixieren sein. Wenn eine Transaktion zum Zurücksetzen markiert ist, wird sie vom Listener zurückgerollt.

Es ist auch möglich, dass ein Thread versucht, eine Transaktion zu starten, die bereits zurückgesetzt wurde. Daher lautet der Transaktionsstatus in TransactionServletListener.requestInitialized() 4 (zurückgesetzt).

Bitte beachten Sie die Diskussion link für weitere Details.

1

Ich hatte diese Stacktrace, als meine Transaktion von der JBoss (AS 7) abgelaufen war.

Innerhalb der Knoten:

<subsystem xmlns="urn:jboss:domain:transactions:1.2"> 

Ändern dieses Attribut:

<coordinator-environment default-timeout="600"> 

Der Timeout in Sekunden können Sie Ihre Transaktionen Lebensdauer Änderung dieser Konfiguration auf Ihrem standalone.xml erhöhen.

Hinweis: Diese Fehler können aus anderen Gründen verursacht werden (Sergey Antwort ist einer von ihnen). In der Regel passiert es, wenn Ihre Transaktion abgeschlossen oder für das Rollback markiert wurde und Ihr Prozess sie noch benötigt.