事务处于非活动状态,并且在Jboss中执行查询需要很长时间

时间:2014-07-13 17:49:17

标签: java oracle jboss transactions atg

我们正在将ATG用于电子商务网站。现在我们使用一些调度程序从oracle DB中获取数据。今天我们得到了一个"交易不活跃"异常。

我们将超时从300(默认)增加到3000.现在我们没有得到此异常,但执行查询需要很长时间。有什么指针吗?通过sqlserver执行此查询时,所花费的时间要少得多。

例外:

  

2014-07-10 21:17:41,888 ERROR [STDERR] CONTAINER:atg.repository.RepositoryException; SOURCE:org.jboss.util.NestedSQLException:事务处于非活动状态:tx = TransactionImple< ac,BasicAction:-75f3a39c:ca13:53bf2cee:6051 status:ActionStatus.ABORTED&gt ;; - 嵌套throwable:(javax.resource.ResourceException:事务处于非活动状态:tx = TransactionImple< ac,BasicAction:-75f3a39c:ca13:53bf2cee:6051 status:ActionStatus.ABORTED>)   2014-07-10 21:17:41,888 atg.adapter.gsa.GSAItemDescriptor.executeQuery(GSAItemDescriptor.java:7638)的错误[STDERR]   2014-07-10 21:17:41,888错误[STDERR] at atg.adapter.gsa.GSAView.executeUncachedQuery(GSAView.java:332)   2014-07-10 21:17:41,888错误[STDERR] at atg.repository.query.QueryCache.executeUncachedQuery(QueryCache.java:693

1 个答案:

答案 0 :(得分:0)

尝试启用/dyn/admin/nucleus/atg/dynamo/service/jdbc/JTDataSource组件上的SQL调试器。这将为您提供由RQL语句生成的确切SQL,这通常效率不高。 警告这将生成大量调试语句,因此只能在短时间内完成,而不会在生产环境中执行。建议您检查相关列和表上是否有索引。

或者,您也可以尝试从dynamo管理页面启用ATG性能监视器,并将PerformanceMonitor添加到您的代码中。您可以在here找到一个如何执行此操作的示例。