【问题标题】:Weblogic filestore, Transaction has timed out when making requestWeblogic文件存储,发出请求时事务已超时
【发布时间】:2012-01-22 23:21:43
【问题描述】:

我们在 weblogic 上使用分布式 JMS,有时会发生 ResourceAccessException。我们尝试删除文件存储、重新启动服务器并将 JTA 超时更改为 300 秒。 (默认为 30 秒)。

但是我们遇到了同样的错误。可能是什么原因?

谢谢

Caused by: javax.transaction.SystemException: start() failed on resource 'WLStore_COLUMBUS-ADA-PROD-DMN_ColumbusADAFileStore': XAER_RMERR : A resource manager error has occured in the transaction branch
    weblogic.transaction.internal.ResourceAccessException: Transaction has timed out when making request to XAResource 'WLStore_COLUMBUS-ADA-PROD-DMN_ColumbusADAFileStore'.
    at weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResourceDescriptor.java:670)
    at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1230)
    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1164)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:296)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:522)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:449)
    at weblogic.store.gxa.internal.GXAResourceImpl.enlist(GXAResourceImpl.java:442)
    at weblogic.messaging.kernel.internal.KernelImpl.getGXATransaction(KernelImpl.java:570)
    at weblogic.messaging.kernel.internal.QueueImpl.send(QueueImpl.java:329)
    at weblogic.jms.backend.BEDestinationImpl.sendIssueMessage(BEDestinationImpl.java:1873)
    at weblogic.jms.backend.BEDestinationImpl.send(BEDestinationImpl.java:2108)
    at weblogic.jms.backend.BEDestinationImpl.wrappedSend(BEDestinationImpl.java:2051)
    at weblogic.jms.backend.BEDestinationImpl.invoke(BEDestinationImpl.java:1539)
    at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:961)
    at weblogic.messaging.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:139)
    at weblogic.messaging.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:115)
    at weblogic.messaging.dispatcher.Request.dispatchAsync(Request.java:1303)
    at weblogic.jms.dispatcher.Request.dispatchAsync(Request.java:96)
    at weblogic.jms.frontend.FEProducer.doDispatch(FEProducer.java:888)
    at weblogic.jms.frontend.FEProducer.sendRetryDestination(FEProducer.java:1021)
    at weblogic.jms.frontend.FEProducer.send(FEProducer.java:1405)
    at weblogic.jms.frontend.FEProducer.invoke(FEProducer.java:1466)
    at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:961)
    at weblogic.messaging.dispatcher.DispatcherImpl.syncRequest(DispatcherImpl.java:184)
    at weblogic.messaging.dispatcher.DispatcherImpl.dispatchSyncNoTran(DispatcherImpl.java:287)
    at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:59)
    at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1293)
    at weblogic.jms.client.JMSProducer.deliveryInternal(JMSProducer.java:796)
    at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:541)
    at weblogic.jms.client.JMSProducer.sendWithListener(JMSProducer.java:394)
    at weblogic.jms.client.JMSProducer.send(JMSProducer.java:384)
    at weblogic.jms.client.WLProducerImpl.send(WLProducerImpl.java:970)
    at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:592)
    at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:569)
    at org.springframework.jms.core.JmsTemplate$4.doInJms(JmsTemplate.java:546)
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:466)
    at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:543)
    at com.turkcellteknoloji.calypso.jms.SendToJms.insertJms(SendToJms.java:35)
    at com.turkcellteknoloji.calypso.action.impl.SentTransactionToJms.execute(SentTransactionToJms.java:15)
    at com.turkcellteknoloji.calypso.service.impl.Service.execute(Service.java:36)
    at com.turkcellteknoloji.calypso.service.impl.JmsService.onMessage(JmsService.java:21)
    at com.turkcellteknoloji.calypso.service.impl.JmsService.onMessage(JmsService.java:12)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:534)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:977)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:969)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:871)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: weblogic.transaction.internal.TimedOutException: Transaction has timed out when making request to XAResource 'WLStore_COLUMBUS-ADA-PROD-DMN_ColumbusADAFileStore'.
    at weblogic.transaction.internal.XAResourceDescriptor.startResourceUse(XAResourceDescriptor.java:673)
    ... 50 more

    at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1188)
    at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:296)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:522)
    at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:449)
    at weblogic.store.gxa.internal.GXAResourceImpl.enlist(GXAResourceImpl.java:442)
    ... 44 more

【问题讨论】:

    标签: timeout jms weblogic


    【解决方案1】:

    添加与 Weblogic 托管应用程序发现的类似问题一直失败,几乎没有或根本没有堆栈跟踪的原因:

    Caused by: weblogic.jms.common.JMSException: weblogic.messaging.kernel.KernelException: Error enlisting GXA transaction
        at weblogic.jms.dispatcher.DispatcherAdapter.convertToJMSExceptionAndThrow(DispatcherAdapter.java:110)
        at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncTran(DispatcherAdapter.java:53)
        at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1300)
        at weblogic.jms.client.JMSProducer.deliveryInternal(JMSProducer.java:807)
        at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:543)
        at weblogic.jms.client.JMSProducer.sendWithListener(JMSProducer.java:394)
        at weblogic.jms.client.JMSProducer.send(JMSProducer.java:384)
        at weblogic.jms.client.WLProducerImpl.send(WLProducerImpl.java:970)
        at weblogic.deployment.jms.WrappedMessageProducer.send(WrappedMessageProducer.java:188)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:626)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:597)
        at org.springframework.jms.core.JmsTemplate$3.doInJms(JmsTemplate.java:562)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:484) 
    

    可用的信息很少,遵循一些其他建议来重新创建可能已损坏的 JMS 数据存储。

    在我们这里的例子中:

    ..fmw_home/user_projects/domains/ipp_domain/servers/myapplicationName/data/store/default - 文件名 WLS******.DAT

    建议正常关闭以允许解析尽可能多的消息,然后在删除文件之前关闭应用程序和 Weblogic Server(建议进行备份)。

    重新启动后,这些问题消失了,并且没有记录更多错误,但我不确定原因是什么。您可能不得不接受 JMS 队列中的任何事务数据都将丢失。

    【讨论】:

      【解决方案2】:

      您是否尝试过更改“同步写入策略”?它会影响 JMS 文件存储的性能、可伸缩性和可靠性。

      【讨论】:

        猜你喜欢
        • 2021-08-07
        • 1970-01-01
        • 2014-12-17
        • 1970-01-01
        • 2018-03-17
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多