[
https://issues.apache.org/activemq/browse/AMQ-2676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-2676.
-----------------------------
Assignee: Gary Tully
Fix Version/s: 5.4.0
(was: 5.4.1)
Resolution: Fixed
https://issues.apache.org/activemq/browse/AMQ-2670 sorts this issue out. Please
reopen if this is not the case.
> Exception sending to an ActiveMQ queue from JBoss in an XA Transaction
> ----------------------------------------------------------------------
>
> Key: AMQ-2676
> URL: https://issues.apache.org/activemq/browse/AMQ-2676
> Project: ActiveMQ
> Issue Type: Bug
> Components: Connector
> Affects Versions: 5.3.0
> Reporter: Edwin van der Elst
> Assignee: Gary Tully
> Fix For: 5.4.0
>
> Attachments: activemq-jms-ds.xml, activemq-ra-5.3.0.jar,
> jbossts-properties.xml, ra.xml, rar_performance.ear, simpl_ejb_testcase.zip
>
>
> We are trying to use an inbound and outbound queue on a remote ActiveMQ
> instance using XA transactions.
> Receiving seems to work ok, but when we send a message, the ActiveMQ RA gives
> an exception saying that the session is not 'enlisted to a distributed
> transaction'.
> If we use JBoss Messaging, there is no exception, but the thread on this
> forum http://community.jboss.org/thread/149573 gives me the impression that
> JBMQ just works without the transaction in that situation, without throwing
> an exception.
> To work around a classcastexception on the QueueConnectionFactory we use a
> patched version of the activemq-rar-adapter (see also
> https://issues.apache.org/activemq/browse/AMQ-2670).
> his is the test application & configuration.
> To set it up, a regular JBoss 5.1.0-GA can be used (compiled for java 6).
> Changes in configuration:
> - unzipped activemq-rar (5.3.0), with the new class I wrote as a 'hack'.
> The ra.xml is attached to this message, as is the replacement for the jar
> jbossts-properties.xml - Has the ActiveMQProvider registered for XA recovery
> purposes
> activemq-jms-ds.xml, must be placed in the deploy folder
> Test application:
> I commented out the persistence stuff, that is not related to the issue.
> The application deploys a MDB and a SLSB. For running the test, you need an
> ActiveMQ instance on localhost :61616 (default)
> To get the error, you can call the SLSB directly (see Test.java, put
> jboss-all-client.jar on the cp and the ejbjar).
> The helloWorld method sends to ActiveMQ.
> The sendJBoss method uses a JBoss Messaging Queue (this doesn't give the
> Exception, but I'm not sure that this means it actually runs in a XA
> transaction)
> To deploy the JBoss queue, you need to add this fragment to the
> 'deploy/messaging/destinations-service.xml':
> <mbean code="org.jboss.jms.server.destination.QueueService"
> name="jboss.messaging.destination:service=Queue,name=DemoQueue"
> xmbean-dd="xmdesc/Queue-xmbean.xml">
> <depends
> optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
> <depends>jboss.messaging:service=PostOffice</depends>
> </mbean>
> The rar_performance.ear is the compiled testcase.
> To rebuild, unzip the 'simple_ejb_testcase' and perform a mvn install in te
> 'simple_mdb' folder and in the 'simple_mdb_ear' folder (there is no parent
> pom.xml).
> The exception:
> 11:56:28,851 ERROR [STDERR] javax.jms.JMSException: Session's XAResource has
> not been enlisted in a distributed transaction.
> 11:56:28,852 ERROR [STDERR] at
> org.apache.activemq.ActiveMQXASession.doStartTransaction(ActiveMQXASession.java:109)
> 11:56:28,852 ERROR [STDERR] at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1636)
> 11:56:28,852 ERROR [STDERR] at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
> 11:56:28,852 ERROR [STDERR] at
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
> 11:56:28,852 ERROR [STDERR] at
> gts.ise.refdata.domain.complexinstrument.HelloBean.helloWorld(HelloBean.java:46)
> 11:56:28,852 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 11:56:28,852 ERROR [STDERR] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 11:56:28,852 ERROR [STDERR] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 11:56:28,852 ERROR [STDERR] at
> java.lang.reflect.Method.invoke(Method.java:597)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.