当线程尝试使用或检查事务状态时,我们通常会获得异常并在超时检测后的某个时间发生日志(示例如下)。对于花费太长时间的事情,这并不是很令人陶醉。
我想在事务管理器检测到超时时获取堆栈跟踪。我怎么能这样做?
我们得到的内部异常的一个例子:
weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
BEA1-008AB08D9B8DFE95E711
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwTransactionRolledback(EJBRuntimeUtils.java:200)
at weblogic.ejb.container.internal.EJBRuntimeUtils.throwWrappedTransactionRolledback(EJBRuntimeUtils.java:213)
at weblogic.ejb.container.manager.BaseEJBManager.handleSystemException(BaseEJBManager.java:412)
at weblogic.ejb.container.manager.BaseEJBManager.setupTxListener(BaseEJBManager.java:334)
at weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:145)
at weblogic.ejb.container.internal.BaseRemoteObject.preInvoke(BaseRemoteObject.java:229)