首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让JavaEE服务器记录事务信息

让JavaEE服务器记录事务信息
EN

Stack Overflow用户
提问于 2010-11-03 00:01:19
回答 2查看 1.1K关注 0票数 2

我在GlassFish上开发JavaEE6应用程序已经有几个月了,但是我仍然觉得我不能完全理解容器如何管理事务(以及对持久化上下文的影响)--尽管我读了很多关于底层基础知识的文章。

为了更好地理解,如果Java Server(例如GlassFish)可以在启动/提交/回滚事务时写入日志文件,我会觉得很有趣。这有没有可能呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-03 02:22:19

使用GlassFish,您可以通过管理控制台在Configuration > logging > Log Level下使用以下类别启用JTA / JTS日志:

javax.enterprise.resource.jta

  • JTS -
  • JTA - javax.enterprise.system.core.transaction

但是日志非常冗长,并且不容易阅读。

您可能还希望在管理控制台中通过Configuration>Monitoring激活对事务服务的“监视”。然后,转到企业服务器>监视器>服务器

票数 5
EN

Stack Overflow用户

发布于 2013-12-18 23:31:34

这可以很好地工作。你只需要JTA的日志级别FINE (不需要监控)就可以看到:

代码语言:javascript
复制
FINE: TM: getTransaction: tx=null, tm=null
FINE: TM: status: Active
FINE: TM: status: NoTransaction
FINE: --Created new JavaEETransactionImpl, txId = 55
FINE: TM: getTransaction: tx=JavaEETransactionImpl: txId=55 nonXAResource=null jtsTx=null localTxStatus=0 syncs=[], tm=null
FINE: TM: enlistComponentResources
FINE: TM: getTransaction: tx=JavaEETransactionImpl: txId=55 nonXAResource=null jtsTx=null localTxStatus=0 syncs=[], tm=null
FINE: --In JavaEETransactionImpl.registerSynchronization, jtsTx=null nonXAResource=null

正如你在这里看到的,例如,你可以确定是否使用了一个新的事务,例如,使用来自JEE6的@TransactionAttribute (至少我是这么假设的)。请注意,注释仅在从bean外部调用时才起作用。

但是,您应该将日志循环的文件大小提高到20-100MB,因为根据您的应用程序,这将在您的日志中写入大量信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4079560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档