cshannon commented on PR #996:
URL: https://github.com/apache/activemq/pull/996#issuecomment-1672064620

   The ParallelXATransactionTest seems to be failing because you don't have an 
XA transaction manager being used, the new config you added uses two local JMS 
transaction managers. You need to replacement for Geronimo/Jencks such as 
Atomikos or mock something.
   
   Some of the errors I get when running locally:
   
   **This stack trace is showing there is no distributed transaction in 
progress.**
   ```
   org.springframework.jms.UncategorizedJmsException: Uncategorized exception 
occurred during JMS processing
        at 
org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:311)
        at 
org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:184)
        at 
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:510)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:587)
        at 
org.apache.activemq.spring.ParallelXATransactionTest$1ProducerThread$1.doInTransactionWithoutResult(ParallelXATransactionTest.java:109)
        at 
org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:36)
        at 
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
        at 
org.apache.activemq.spring.ParallelXATransactionTest$1ProducerThread.run(ParallelXATransactionTest.java:103)
   Caused by: jakarta.jms.JMSException: Session's XAResource has not been 
enlisted in a distributed transaction.
        at 
org.apache.activemq.ActiveMQXASession.doStartTransaction(ActiveMQXASession.java:101)
        at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1973)
        at 
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:329)
        at 
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:289)
        at 
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:224)
        at 
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:270)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:637)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:611)
        at 
org.springframework.jms.core.JmsTemplate.lambda$send$3(JmsTemplate.java:589)
        at 
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:507)
   ```
   
   **This stack trace shows that the JMsTransactionManager is calling commit() 
on the ActiveMQ XA transaction which isn't allowed and that is because the 
JMsTransactionManager doesn't know how to handle XA**.
   ```
   org.springframework.transaction.TransactionSystemException: Could not commit 
JMS transaction
   
        at 
org.springframework.jms.connection.JmsTransactionManager.doCommit(JmsTransactionManager.java:286)
        at 
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743)
        at 
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711)
        at 
org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:135)
        at 
org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:259)
        at 
org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:440)
        at 
org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
        at 
org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
        at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at 
org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
        at 
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at 
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
        at 
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
   Caused by: jakarta.jms.TransactionInProgressException: Cannot commit() 
inside an XASession
        at 
org.apache.activemq.ActiveMQXASession.commit(ActiveMQXASession.java:78)
        at 
org.springframework.jms.connection.JmsTransactionManager.doCommit(JmsTransactionManager.java:280)
        ... 27 more
   
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to