Hi,
Add autoEnlistInTransaction="true" :
<sm:container id="jbi"
rootDir="./data/smx"
MBeanServer="#jmxServer"
installationDirPath="./hotdeploy"
monitorDeploymentDirectory="false"
monitorInterval="1"
transactionManager="#transactionManager"
createJmxConnector="false"
depends-on="jndi"
autoEnlistInTransaction="true">
in the conf/servicemix.xml.
Regards,
Raphaël
2010/2/4 gude <[email protected]>
>
> For the moment I'm testing the use of XA, next I'll use two different JMS
> broker (MQseries and OpenJMS), that's why I want XA.
> I don't understand who enlists my JMS XAResource in the transaction, I
> didn't find anywhere the code who does this neither in servicemix-jms, nmr
> or spring-framework.
> I don't understand what you mean conerning the registration of XA resources
> in the JNDI registry. I thought that only the transaction manager was
> recoverable from the JNDI properties, and the JBI container is in charge to
> do this. Then I create my XAConnection and XASessions and enlist it into a
> new created transaction. That's what I did into an other JBI container, and
> it worked.
> It seems that there's something I didn't get...
>
>
>
> Mariusz Brylant wrote:
> >
> > Hi,
> >
> > All XA capable resources participating in the XA transaction should be
> > enlisted in (and looked up from) the JNDI registry. Your configuration
> > suggests that you are actually connecting to a standalone AMQ server
> > which does not provide JNDI registry.
> >
> > Would consider running AMQ deployed inside JEE container as a JCA
> > resource.
> >
> > Also would suggest asking yourself a question if you really need an
> > overhead of the XA transactions - both queues seat on the same
> > resources (#connectionFactory), therefore native/local transaction seems
> > more appropriate.
> >
> > Have a look here "
> > http://www.infoq.com/presentations/native-transactions-java-spring " for
> > some ideas.
> >
> > Best regards,
> > Mario
> >
> > Mariusz Brylant
> > [email protected]
> >
> > gude wrote:
> >> Hello,
> >>
> >> I would like to receive a message from a JMS queue and send it into an
> >> other
> >> one inside the same XA transaction. But I have the following trace in
> the
> >> log, while attempting to get the input message :
> >>
> >> 16:11:45,323 | INFO | tenerContainer-2 |
> DefaultMessageListenerContainer
> >> |
> >> .DefaultMessageListenerContainer 750 | Setup of JMS message listener
> >> invoker failed for destination 'queue/transactions-in' - trying to
> >> recover.
> >> Cause: Session's XAResource has not been enlisted in a distributed
> >> transaction.
> >>
> >> my xbean.xml looks like :
> >>
> >> <?xml version="1.0" encoding="UTF-8" ?>
> >>
> >> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> >> xmlns:t1="http://examples/transaction1">
> >>
> >> <jms:consumer service="t1:t1jmsreceiver"
> >> endpoint="t1jmsreceiver"
> >> targetService="t1:t1sendtot2"
> >> targetEndpoint="t1sendtot2"
> >> destinationName="queue/transactions-in"
> >> connectionFactory="#connectionFactory"
> >> marshaler="#consumerMarshaler"
> >> synchronous="true"
> >> transacted="xa"
> >> sessionAcknowledgeMode="2"/>
> >>
> >> <jms:provider service="t1:t1sendtot2"
> >> endpoint="t1sendtot2"
> >> destinationName="queue/transactions-checkpoint"
> >> connectionFactory="#connectionFactory"/>
> >>
> >> <bean id="connectionFactory"
> >> class="org.apache.activemq.ActiveMQXAConnectionFactory">
> >> <property name="brokerURL" value="tcp://localhost:61616" />
> >> </bean>
> >>
> >> <bean id="consumerMarshaler"
> >> class="org.apache.servicemix.jms.endpoints.DefaultConsumerMarshaler">
> >> <property name="mep"
> >> value="http://www.w3.org/2004/08/wsdl/in-only"
> >> />
> >> <property name="copyProperties" value="true" />
> >> </bean>
> >>
> >> </beans>
> >>
> >> What should I do?
> >>
> >
> >
>
> --
> View this message in context:
> http://old.nabble.com/Session%27s-XAResource-has-not-been-enlisted-in-a-distributed-transaction.-tp27452437p27455535.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>