Transaktion nicht aktiv ist und die Abfrage ausführen die eine lange Zeit in Jboss
Sind wir mit ATG für eine E-Commerce Website. Jetzt sind wir mit einigen scheduler zum abrufen der Daten aus der oracle-DB. Heute haben wir eine "Transaktion ist nicht aktiv" Ausnahme.
Erhöhen wir den timeout von 300 (Standard) 3000. Jetzt sind wir nicht immer diese Ausnahme aber es nimmt so lange, um die Abfrage auszuführen. Alle Zeiger? Während der Ausführung dieser Abfrage über SQL Server es nimmt viel weniger Zeit.
Ausnahme:
2014-07-10 21:17:41,888 ERROR [STDERR] CONTAINER:atg.repository.RepositoryException; QUELLE:org.jboss.util.NestedSQLException: die Transaktion ist nicht aktiv: tx=TransactionImple < ac, BasicAction: -75f3a39c:ca13:53bf2cee:6051 status: ActionStatus.ABGEBROCHEN >; - nested throwable: (javax.Ressource.ResourceException: die Transaktion ist nicht aktiv: tx=TransactionImple < ac, BasicAction: -75f3a39c:ca13:53bf2cee:6051 status: ActionStatus.ABGEBROCHEN >)
2014-07-10 21:17:41,888 ERROR [STDERR] at atg.- adapter.gsa.GSAItemDescriptor.executeQuery(GSAItemDescriptor.java:7638)
2014-07-10 21:17:41,888 ERROR [STDERR] at atg.- adapter.gsa.GSAView.executeUncachedQuery(GSAView.java:332)
2014-07-10 21:17:41,888 ERROR [STDERR] at atg.repository.Abfrage.QueryCache.executeUncachedQuery(QueryCache.java:693
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, auf die SQL-Debugger auf die
/dyn/admin/nucleus/atg/dynamo/service/jdbc/JTDataSource
Komponente. Dies wird Ihnen die genaue SQL-Code erzeugt wird, die durch Ihre RQL-Anweisung, die oft nicht effizient ist. Warnung dies erzeugt eine Menge debug-Anweisungen, so dass es nur tun, für eine kurze Zeit und niemals in einer Produktionsumgebung. Vorschlagen, Sie dann überprüfen Sie, ob Indizes auf die entsprechenden Spalten und Tabellen.Alternativ können Sie auch versuchen, die Aktivierung des ATG-performance-monitor von der dynamo-admin-Seite und das hinzufügen
PerformanceMonitor
zu Ihrem code. Ein Beispiel, wie Sie dies tun können finden hier.