【发布时间】:2015-10-14 18:43:16
【问题描述】:
我有一个包含 VM 入站端点和 JMS 出站端点的流程。当我使用 VM 和 JMS 启动 XA 事务时,它会在无限循环中引发异常。我尝试了不同的事务类型,但它抛出了相同的异常。有什么指点吗??
我在 VM://abc123 中有另一个删除按摩的流程。现在我从 VM 中提取这些消息并放入 JMS 队列中。
<flow name="transactionMainFlow_202_EQueue_JMS" doc:name="transactionMainFlow_202_EQueue_JMS">
<vm:inbound-endpoint exchange-pattern="one-way" doc:name="VM" path="abc123">
<xa-transaction action="ALWAYS_BEGIN"/>
</vm:inbound-endpoint>
<timer-interceptor />
<jms:outbound-endpoint queue="${om_request_queue}"
connector-ref="Offering_Messaging_Connector" doc:name="OM_JMS_Request_Queue">
<xa-transaction action="BEGIN_OR_JOIN"/>
</jms:outbound-endpoint>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<logger message="#[exception]" level="ERROR" category="Exception"
doc:name="Logger" />
</catch-exception-strategy>
</flow>
例外:
ERROR 2014-10-13 22:55:32,596 [[transaction-orch].VM_Connector.receiver.04] org.mule.exception.DefaultSystemExceptionStrategy:
********************************************************************************
Message : Can not start XA transaction
Code : MULE_ERROR-95
--------------------------------------------------------------------------------
Exception stack is:
1. Object of type "javax.transaction.TransactionManager" with name "Transaction Manager" is not available in the registry (java.lang.IllegalStateException)
org.mule.transaction.XaTransaction:53 (null)
2. Can not start XA transaction (org.mule.api.transaction.TransactionException)
org.mule.transaction.XaTransactionFactory:33 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transaction/TransactionException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.IllegalStateException: Object of type "javax.transaction.TransactionManager" with name "Transaction Manager" is not available in the registry
at org.mule.transaction.XaTransaction.doBegin(XaTransaction.java:53)
at org.mule.transaction.AbstractTransaction.begin(AbstractTransaction.java:62)
at org.mule.transaction.XaTransactionFactory.beginTransaction(XaTransactionFactory.java:28)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
任何帮助将不胜感激。
【问题讨论】:
-
我能够解决这个问题。您需要通过选择 XA Support Mode 属性将 jms 连接器定义为 xa-transaction 连接器
-
您能否详细说明您为解决此问题所做的工作?我遇到了同样的问题,无法解决。
标签: transactions jms mule xa