【问题标题】:Weblogic DEADLOCK weblogic.store.gxa.internal.GXATransactionImplWeblogic 死锁 weblogic.store.gxa.internal.GXATransactionImpl
【发布时间】:2019-11-20 08:49:15
【问题描述】:

Weblogic 托管服务器在启动后出现问题:

检测到死锁:

[死锁线程] [ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)':

线程 '[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'' 正在等待获取持有的锁 'weblogic.store.gxa.internal.GXATransactionImpl@6d75d9c2'通过线程 '[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)''

堆栈跟踪:

    weblogic.store.gxa.internal.GXAResourceImpl.rollback(GXAResourceImpl.java:1506)
    weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:1482)
    weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:807)
    weblogic.transaction.internal.ServerSCInfo.startRollback(ServerSCInfo.java:880)
    weblogic.transaction.internal.ServerTransactionImpl.localRollback(ServerTransactionImpl.java:2090)
    weblogic.transaction.internal.ServerTransactionImpl.globalRetryRollback(ServerTransactionImpl.java:3170)
    weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2919)
    weblogic.transaction.internal.ServerTransactionImpl.internalRollback(ServerTransactionImpl.java:442)
    weblogic.transaction.internal.ServerTransactionImpl.rollback(ServerTransactionImpl.java:420)
    weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:570)
    weblogic.ejb.container.internal.BaseLocalObject.postInvoke(BaseLocalObject.java:766)
    weblogic.ejb.container.internal.TimerDrivenLocalObject.postInvoke(TimerDrivenLocalObject.java:79)
    weblogic.ejb.container.timer.TimerImpl.timerExpired(TimerImpl.java:403)
    weblogic.timers.internal.TimerImpl.run(TimerImpl.java:284)
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

[死锁线程] [ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)':

线程 '[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'' 正在等待获取持有的锁 'weblogic.ejb.container.timer.TimerImpl@7706b14b'通过线程 '[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)''

堆栈跟踪:

    weblogic.ejb.container.timer.TimerImpl.handleTimeoutFailure(TimerImpl.java:508)
    weblogic.ejb.container.timer.EJBTimerManager$TimerExpirationOperation.onRollback(EJBTimerManager.java:1128)
    weblogic.store.gxa.internal.GXAOperationWrapperImpl.onRollback(GXAOperationWrapperImpl.java:180)
    weblogic.store.gxa.internal.GXAAbstractTransaction.loopOperationCallbacks(GXAAbstractTransaction.java:254)
    weblogic.store.gxa.internal.GXATransactionImpl.doOperationCallbacks(GXATransactionImpl.java:183)
    weblogic.store.gxa.internal.GXAResourceImpl.rollback(GXAResourceImpl.java:1555)
    weblogic.store.gxa.internal.GXAResourceImpl$RollbackRequest.run(GXAResourceImpl.java:1761)
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

> 有人帮忙

【问题讨论】:

  • 最好向 Oracle 提出 SR 以获得解决方案,因为这是产品本身的问题。使用的是哪个版本的 Weblogic?
  • 嗨 Naveen,Weblogic 10.3.6

标签: weblogic


【解决方案1】:

看起来很奇怪:有“阻塞链”被地方改变了 - 现在是 weblogic.store.gxa.internal.GXATransactionImpl 的 weblogic.ejb.container.timer.TimerImpl 阻塞器

检测到死锁:

[死锁线程] [ACTIVE] ExecuteThread: '31' for queue: 'weblogic.kernel.Default (self-tuning)':

线程 '[ACTIVE] ExecuteThread: '31' for queue: 'weblogic.kernel.Default (self-tuning)'' 正在等待获取持有的锁 'weblogic.ejb.container.timer.TimerImpl@1aba871c'通过线程 '[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)''

堆栈跟踪:

    weblogic.ejb.container.timer.TimerImpl.handleTimeoutFailure(TimerImpl.java:508)
    weblogic.ejb.container.timer.EJBTimerManager$TimerExpirationOperation.onRollback(EJBTimerManager.java:1128)
    weblogic.store.gxa.internal.GXAOperationWrapperImpl.onRollback(GXAOperationWrapperImpl.java:180)
    weblogic.store.gxa.internal.GXAAbstractTransaction.loopOperationCallbacks(GXAAbstractTransaction.java:254)
    weblogic.store.gxa.internal.GXATransactionImpl.doOperationCallbacks(GXATransactionImpl.java:183)
    weblogic.store.gxa.internal.GXAResourceImpl.rollback(GXAResourceImpl.java:1555)
    weblogic.store.gxa.internal.GXAResourceImpl$RollbackRequest.run(GXAResourceImpl.java:1761)
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

[死锁线程] [ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)':

线程 '[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'' 正在等待获取持有的锁 'weblogic.store.gxa.internal.GXATransactionImpl@5279549f'通过线程 '[ACTIVE] ExecuteThread: '31' for queue: 'weblogic.kernel.Default (self-tuning)''

堆栈跟踪:

    weblogic.store.gxa.internal.GXAResourceImpl.rollback(GXAResourceImpl.java:1506)
    weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:1482)
    weblogic.transaction.internal.XAServerResourceInfo.rollback(XAServerResourceInfo.java:807)
    weblogic.transaction.internal.ServerSCInfo.startRollback(ServerSCInfo.java:880)
    weblogic.transaction.internal.ServerTransactionImpl.localRollback(ServerTransactionImpl.java:2090)
    weblogic.transaction.internal.ServerTransactionImpl.globalRetryRollback(ServerTransactionImpl.java:3170)
    weblogic.transaction.internal.ServerTransactionImpl.globalRollback(ServerTransactionImpl.java:2919)
    weblogic.transaction.internal.ServerTransactionImpl.internalRollback(ServerTransactionImpl.java:442)
    weblogic.transaction.internal.ServerTransactionImpl.rollback(ServerTransactionImpl.java:420)
    weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:570)
    weblogic.ejb.container.internal.BaseLocalObject.postInvoke(BaseLocalObject.java:766)
    weblogic.ejb.container.internal.TimerDrivenLocalObject.postInvoke(TimerDrivenLocalObject.java:79)
    weblogic.ejb.container.timer.TimerImpl.timerExpired(TimerImpl.java:403)
    weblogic.timers.internal.TimerImpl.run(TimerImpl.java:284)
    weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
    weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
    weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

SUBSYSTEM = WebLogicServer USERID = SEVERITY = Critical THREAD = [ACTIVE] ExecuteThread: '28' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-000394 MACHINE = vs-szp-app-t2 TXID = CONTEXTID = 时间戳 = 1574697355831 WatchAlarmType:自动复位 WatchAlarmResetPeriod:30000 >

【讨论】:

  • 如果您可以访问 Oracle 支持,最好向他们提出 SR 以获得解决方案。您可能必须根据要求提供线程转储和其他数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 2014-06-08
  • 2013-11-30
  • 2013-12-25
  • 2015-01-29
  • 2017-03-02
相关资源
最近更新 更多