[mule-user] Session's XAResource has not been enlisted in a distributed transaction

124 views
Skip to first unread message

chocheraz

unread,
Jan 22, 2008, 10:37:04 AM1/22/08
to us...@mule.codehaus.org

I'm using ActiveMQ 4.1.1, Hibernate 3.2.0.cr2(MySQL 5.0) and Mule 1.4.1 in a
Jboss 4.04GA App server.
I'm getting the following XA Error:

12:27:04,747 ERROR [DefaultExceptionStrategy] Caught exception in Exception
Strategy: null
java.lang.reflect.UndeclaredThrowableException
at $Proxy62.send(Unknown Source)
at org.mule.providers.jms.Jms11Support.send(Jms11Support.java:226)
at
org.mule.providers.jms.JmsMessageDispatcher.dispatchMessage(JmsMessageDispatcher.java:260)
at
org.mule.providers.jms.JmsMessageDispatcher.doDispatch(JmsMessageDispatcher.java:59)
at
org.mule.providers.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:560)
at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)

at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.mule.providers.jms.xa.ConnectionFactoryWrapper$ConnectionInvocationHandler$SessionInvocationHandler$Consu
merProducerInvocationHandler.invoke(ConnectionFactoryWrapper.java:362)
... 9 more
Caused by: javax.jms.JMSException: Session's XAResource has not been
enlisted in a distributed transaction.
at
org.apache.activemq.ActiveMQXASession.doStartTransaction(ActiveMQXASession.java:110)
at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1504)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:465)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:384)
... 14 more


Hello All:
I’m new in XA transactions. I’m trying to use XA in a UMO that gets a
message from an ActiveMQ queue.
I have the following configurations:
Resources:
In Spring File
1.- XA Data Source :
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${database.jndi.name}"/>
</bean>
using the following class in a xml configuration file in Jboss
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
<xa-datasource-property
name="URL">jdbc:mysql://localhost:3306/bse_eis</xa-datasource-property>

2. JMS Connection Factory XA
<bean id="activeMqConnectionFactory"
class="org.apache.activemq.ActiveMQXAConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
<!-- More properties you want set on ActiveMQConnectionFactory -->
</bean>

Transaction Manager
<!-- Transaction manager for a single Hibernate SessionFactory (alternative
to JTA) -->
<bean id="transactionManagerB2B"
class="org.springframework.transaction.jta.JtaTransactionManager">
</bean>

<bean id="baseTransactionProxyB2B"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManagerB2B" />
<property name="transactionAttributes">
<props>
<prop key="do*">PROPAGATION_REQUIRED,-Exception</prop>

</props>
</property>
</bean>

In mule Config: The JmsConnector
<connector name="JmsConnectorProvisioning"
className="org.mule.providers.jms.JmsConnector">
<properties>
<property name="specification" value="1.1"/>
<container-property name="connectionFactory"
reference="activeMqConnectionFactory"
container="spring"/>
</properties>
</connector>

The UMO:

<mule-descriptor name="PullCanonicalFromQueueUMO"
implementation="org.mule.components.simple.BridgeComponent" >
<inbound-router>
<endpoint address="jms://${provisioning.inbound.queue}"
synchronous="true"
connector="JmsConnectorProvisioning"
transformers="ActiveMQMessageToObject">
<transaction action="ALWAYS_BEGIN"
factory="org.mule.transaction.XaTransactionFactory" timeout="60000"/>
</endpoint>
<endpoint address="jms://${accounting.inbound.queue}" synchronous="true"
connector="JmsConnectorBilling"
transformers="ActiveMQMessageToObject"
/>
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.OutboundPassThroughRouter">
<endpoint address="vm://saveoutgoinginformationdb" />
</router>
</outbound-router>
<interceptor name="default" />
</mule-descriptor>


<mule-descriptor name="SaveOutgoingCanonicalDBUMO"
implementation="SaveOutgoingCanonicalDBImpl">
<inbound-router>
<endpoint address="vm://saveoutgoinginformationdb" />
</inbound-router>
<interceptor name="default" />
</mule-descriptor>


Can anyone give some ideas? what am I doing wrong????
Please help!!!
--
View this message in context: http://www.nabble.com/Session%27s-XAResource-has-not-been-enlisted-in-a-distributed-transaction-tp15021178p15021178.html
Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Anatoli Kuzmin

unread,
Jan 27, 2008, 5:57:53 PM1/27/08
to us...@mule.codehaus.org
Please retest with Mule 1.4.3
--
Best regards,
Anatoli Kuzmin
Reply all
Reply to author
Forward
0 new messages