我有一个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)
任何帮助都将不胜感激。
答案 0 :(得分:1)
如果启用了XA事务,则需要配置事务管理器参考
如果您选择JBoss Transaction Manager Reference 添加全局属性
<jbossts:transaction-manager >
<property key="com.arjuna.ats.arjuna.coordinator.defaultTimeout" value="47" /><!-- this is in seconds -->
<property key="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="108000"/><!-- this is in milliseconds -->
</jbossts:transaction-manager>