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]