1

我们在 WL 服务器上随机收到如下警告。我们想更好地了解这些警告到底是什么,以及我们应该做些什么来避免它们。

86,606 秒后放弃事务:Xid=BEA1-52CE4A8A9B5CD2587CA9(14534444), Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=86605, seconds left=0,XAServerResourceInfo[JMS_goJDBCStore]=(ServerResourceInfo[JMS_goJDBCStore]= ( state=committed,assigned=go_server),xar=JMS_goJDBCStore,re-Registered = true),XAServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]= (ServerResourceInfo[weblogic.jdbc.wrapper.JTSXAResourceImpl]=(state=new,assigned= none),xar= weblogic.jdbc.wrapper.JTSXAResourceImpl@1a8fb80,re-Registered = true),SCInfo[go+go_server]= (state=committed),properties=({weblogic.jdbc=t3://10.6.202.37 :18080}),本地属性= ({weblogic.transaction.recoveredTransaction=true}),OwnerTransactionManager= ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=go_server+10.6.202.37:18080+go+t3+, XAResources={JMS_goJDBCStore, weblogic.jdbc.wrapper.JTSXAResourceImpl},NonXAResources= {})],CoordinatorURL=go_server+10.6.202.37:18080+go+t3+)

我确实理解 BEA 的解释

错误:在 secs 秒后放弃交易:tx

描述:当一个事务被放弃时,该事务的知识将从试图推动该事务完成的事务管理器中删除。JTA 配置属性 AbandonTimeoutSeconds 确定事务管理器在尝试提交或回滚事务时应该坚持多长时间。

原因:资源或参与服务器可能在 AbandonTimeoutSeconds 期间不可用。

行动:检查参与资源的启发式完成并纠正任何数据不一致。

我们观察到您可以通过删除 *.tlog 文件来消除这些警告,但这似乎不是处理警告的正确策略。

警告指的是 JMS 和我们的 JMS 存储。我们确实使用 JMS。我们只是不明白为什么交易在那里挂起,为什么它们会被“放弃”??

4

1 回答 1

2

我知道这不是很令人满意,但我们确实在启动之前在 WLS 7 上托管的应用程序中删除了 *.tlog 文件。

我们的应用程序是一个事件处理后端,主要由 JMS 驱动。我们对在 WLS 重新启动时保留事务不感兴趣。如果它在关闭之前没有完成,它往往不会在重新启动后完成。所以做这个 *.tlog 清理只是消除了一些警告和潜在的不稳定行为。

顺便说一句,我不认为 JMS 是其中的基础。至少我不知道。

顺便说一句,我们从 JDBC JMS 存储转移到本地文件。据说性能更好,我们不需要使用 JDBC 获得的位置独立性。如果这也描述了您的情况,那么移动到本地文件可能会消除您的根本原因?

于 2009-03-02T20:39:08.903 回答