Weblogic远程JMS队列到本地JMS队列XA事务。 XAER_PROTO

时间:2018-10-29 14:56:54

标签: java-ee jms weblogic xa

我们有一个流程,在单个容器托管的事务中,weblogic 10.3.5上的mdb侦听远程jms队列(tibco),进行一些处理,然后在本地weblogic jms队列上丢弃另一条消息。

最近,我们确实从weblogic 10.3.2升级到了10.3.5,并在尝试将消息发送到本地队列时(通过spring jmstemplate)开始看到一个新问题。 我们得到 XAER_PROTO:例程在不适当的上下文中被调用

令人惊讶的是,引发此异常的XAResource是tibco资源。

javax.transaction.xa.XAException     在com.tibco.tibjms.TibjmsXAResource.start(TibjmsXAResource.java:199)     位于weblogic.deployment.jms.WrappedXAResource_com_tibco_tibjms_TibjmsXAResource.start(未知源)     在weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1231)     在weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1164)     在weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:285)     在weblogic.transaction.internal.XAServerResourceInfo.enlistIfStatic(XAServerResourceInfo.java:184)     在weblogic.transaction.internal.ServerTransactionImpl.enlistStaticallyEnlistedResources(ServerTransactionImpl.java:1580)     在weblogic.transaction.internal.ServerTransactionManagerImpl.dispatchRequest(ServerTransactionManagerImpl.java:565)     在weblogic.messaging.dispatcher.DispatcherServerRef.handleRequest(DispatcherServerRef.java:132)     在weblogic.messaging.dispatcher.DispatcherServerRef.access $ 000(DispatcherServerRef.java:34)     在weblogic.messaging.dispatcher.DispatcherServerRef $ 2.run(DispatcherServerRef.java:111)     在weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)     在weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

在进一步调查(反编译tibco代码)时,tibco XA资源会在认为已经存在事务的情况下抛出此错误。

为什么weblogic在尝试向本地jms队列发送消息时会征募此XA资源并调用start()?

仅在10.3.5中才发生此问题。

任何帮助将不胜感激。

0 个答案:

没有答案