我们在WL服务器上随机收到如下警告。我们想更好地了解这些警告究竟是什么以及我们应该采取哪些措施来避免这些警告。
86,606之后放弃交易 秒: XID = BEA1-52CE4A8A9B5CD2587CA9(14534444), 状态=犯下,numRepliesOwedMe = 0,numRepliesOwedOthers = 0,秒 因为开始= 86605,秒 left = 0,XAServerResourceInfo [JMS_goJDBCStore] =(ServerResourceInfo [JMS_goJDBCStore] =(state = committed,assigned = go_server),xar = JMS_goJDBCStore,重新注册 = true),XAServerResourceInfo [weblogic.jdbc.wrapper.JTSXAResourceImpl] = (ServerResourceInfo [weblogic.jdbc.wrapper.JTSXAResourceImpl] =(状态=新,分配=无),XAR = weblogic.jdbc.wrapper.JTSXAResourceImpl @ 1a8fb80,重新注册 = true),SCInfo [go + go_server] =(state = committed),properties =({weblogic.jdbc = t3://10.6.202.37:18080}),local 性能= ({weblogic.transaction.recoveredTransaction =真}),OwnerTransactionManager = ServerTM [ServerCoordinatorDescriptor =(CoordinatorURL = go_server + 10.6.202.37:18080 +去+ T3 +, XAResources = {JMS_goJDBCStore, weblogic.jdbc.wrapper.JTSXAResourceImpl},NonXAResources = {})],CoordinatorURL = go_server + 10.6.202.37:18080 +去+ T3 +)
我完全理解BEA explanation:
错误:在秒秒后放弃交易:tx
说明:当交易被放弃时, 交易知识是 从事务管理器中删除 那是试图开车的 交易完成。 JTA 配置属性 AbandonTimeoutSeconds确定如何 交易经理应该多久 坚持尝试提交或 回滚交易。
原因:资源或参与服务器可能 已经无法使用 AbandonTimeoutSeconds期间。
操作:检查参与资源是否有启发式方法 完成并纠正任何数据不一致。
我们发现您可以通过删除* .tlog文件来消除这些警告,但这似乎不是处理警告的正确策略。
警告涉及JMS和我们的JMS存储。我们确实使用JMS。我们只是不明白为什么交易挂在那里以及为什么它们会被“抛弃”?
答案 0 :(得分:2)
我知道这不是很令人满意,但我们会在WLS 7上托管的应用中启动之前删除* .tlog文件。
我们的应用程序是一个事件处理后端,主要由JMS驱动。我们对保持WLS重启的事务不感兴趣。如果在关机之前没有完成,则重启后往往无法完成。所以这样做* .tlog清理只是消除了一些警告和潜在的片状行为。
顺便说一下,我认为JMS不是任何一个基础。至少不是我知道的。
顺便说一下,我们从JDBC JMS存储移动到本地文件。据说这表现更好,我们不需要使用JDBC获得的位置独立性。如果这也描述了你的情况,那么转移到本地文件会消除你的根本原因吗?