Zheng,

I'm still having problem and it seems to behave differently running on the same 
TomEE version (7.0.6) but different Camel 3+ versions.

To reproduce  I corrupted the query (handled by Deltaspike Data Module 
repository).

When it runs (fails) with Camel 3.4.5 it behaves as expected the first time, 
but when it tries to redeliver the same JMS message it complains with 'Cannot 
join transaction: do not override hibernate.transaction.factory_class'. Here is 
the full stack for redelivery:

2020-09-08 11:07:56.428 [Thread-0 (ActiveMQ-client] WARN  
c.k.m.c.DeadLetterChannelBuilderProducer - redelivery attempt 1 to 
direct://process
2020-09-08 11:07:56.440 [Thread-0 (ActiveMQ-client] WARN  
o.h.ejb.AbstractEntityManagerImpl - HHH000326: Cannot join transaction: do not 
override hibernate.transaction.factory_class
2020-09-08 11:07:56.442 [Thread-0 (ActiveMQ-client] ERROR 
c.k.m.c.DeadLetterChannelBuilderProducer - processing failed with:
javax.persistence.TransactionRequiredException: No active JTA transaction on 
joinTransaction call
                at 
org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1233)
                at 
org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1183)
                at 
org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy.beforeProceed(BeanManagedUserTransactionStrategy.java:171)
                at 
org.apache.deltaspike.jpa.impl.transaction.EnvironmentAwareTransactionStrategy.beforeProceed(EnvironmentAwareTransactionStrategy.java:109)
                at 
org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:127)
                at 
org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.executeInTransaction(TransactionalInterceptor.java:57)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at 
org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
                at 
org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:63)
                at 
org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139)
                at 
com.kaltire.mix.tirelodge.camel.beans.EventProcessor$$OwbInterceptProxy0.process(com/kaltire/mix/tirelodge/camel/beans/EventProcessor.java)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at 
org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:209)
                at 
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:421)
                at 
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:242)
                at 
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:213)
                at 
org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:154)
                at 
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:56)
                at 
org.apache.camel.management.DefaultInstrumentationProcessor.process(DefaultInstrumentationProcessor.java:91)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.redeliver(RedeliveryErrorHandler.java:766)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleSync(DefaultReactiveExecutor.java:65)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:175)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:158)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:260)
                at 
org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:115)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:260)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.jta.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:242)
                at 
org.apache.camel.jta.TransactionErrorHandler$1.run(TransactionErrorHandler.java:203)
                at 
org.apache.camel.cdi.transaction.TransactionalJtaTransactionPolicy.runWithTransaction(TransactionalJtaTransactionPolicy.java:51)
                at 
org.apache.camel.cdi.transaction.RequiredJtaTransactionPolicy.run(RequiredJtaTransactionPolicy.java:26)
                at 
org.apache.camel.jta.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:193)
                at 
org.apache.camel.jta.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:144)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:108)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:117)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:395)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleSync(DefaultReactiveExecutor.java:65)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:175)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:158)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:260)
                at 
org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:90)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleSync(DefaultReactiveExecutor.java:65)
                at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:145)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:260)
                at 
org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:66)
                at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:168)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:260)
                at 
org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:90)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleSync(DefaultReactiveExecutor.java:65)
                at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:145)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.jta.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:242)
                at 
org.apache.camel.jta.TransactionErrorHandler$1.run(TransactionErrorHandler.java:203)
                at 
org.apache.camel.cdi.transaction.TransactionalJtaTransactionPolicy.runWithTransaction(TransactionalJtaTransactionPolicy.java:51)
                at 
org.apache.camel.cdi.transaction.RequiredJtaTransactionPolicy.run(RequiredJtaTransactionPolicy.java:26)
                at 
org.apache.camel.jta.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:193)
                at 
org.apache.camel.jta.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:144)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:108)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:117)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:395)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
                at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
                at 
org.apache.camel.component.sjms.consumer.InOnlyMessageHandler.handleMessage(InOnlyMessageHandler.java:52)
                at 
org.apache.camel.component.sjms.consumer.AbstractMessageHandler.onMessage(AbstractMessageHandler.java:81)
                at 
org.apache.activemq.artemis.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:110)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1030)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:49)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1153)
                at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
                at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
                at 
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
                Suppressed: javax.persistence.PersistenceException: 
org.hibernate.exception.SQLGrammarException: could not execute statement
                                at 
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
                                at 
org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
                                at 
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:1397)
                                at 
org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:111)
                                at 
org.apache.deltaspike.data.impl.builder.result.QueryProcessorFactory$ExecuteUpdateQueryProcessor.executeQuery(QueryProcessorFactory.java:192)
                                at 
org.apache.deltaspike.data.impl.handler.CdiQueryInvocationContext.executeQuery(CdiQueryInvocationContext.java:253)
                                at 
org.apache.deltaspike.data.impl.builder.AnnotatedQueryBuilder.execute(AnnotatedQueryBuilder.java:51)
                                at 
org.apache.deltaspike.data.impl.builder.QueryBuilder.executeQuery(QueryBuilder.java:57)
                                at 
org.apache.deltaspike.data.impl.builder.AnnotatedQueryBuilder$$OwbNormalScopeProxy0.executeQuery(org/apache/deltaspike/data/impl/builder/AnnotatedQueryBuilder.java)
                                at 
org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$1.proceed(TransactionalQueryRunner.java:73)
                                at 
org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:130)
                                at 
org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeTransactional(TransactionalQueryRunner.java:68)
                                at 
org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:50)
                                at 
org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$$OwbNormalScopeProxy0.executeQuery(org/apache/deltaspike/data/impl/tx/TransactionalQueryRunner.java)
                                at 
org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:151)
                                at 
org.apache.deltaspike.data.impl.handler.QueryHandler$1.proceed(QueryHandler.java:119)
                                at 
org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:130)
                                at 
org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:111)
                                at 
org.apache.deltaspike.data.impl.handler.QueryHandler$$OwbNormalScopeProxy0.invoke(org/apache/deltaspike/data/impl/handler/QueryHandler.java)
                                at 
org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.proceed(DeltaSpikeProxyInvocationHandler.java:97)
                                at 
org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationContext.proceed(DeltaSpikeProxyInvocationContext.java:101)
                                at 
org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:130)
                                at 
org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.executeInTransaction(TransactionalInterceptor.java:57)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at 
java.lang.reflect.Method.invoke(Method.java:498)
                                at 
org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
                                at 
org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationContext.proceed(DeltaSpikeProxyInvocationContext.java:80)
                                at 
org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler.invoke(DeltaSpikeProxyInvocationHandler.java:63)
                                at 
org.apache.deltaspike.proxy.spi.invocation.DeltaSpikeProxyInvocationHandler$$OwbNormalScopeProxy0.invoke(org/apache/deltaspike/proxy/spi/invocation/DeltaSpikeProxyInvocationHandler.java)
                                at 
com.kaltire.mix.tirelodge.dao.StorageRecordRepository$$DSPartialBeanProxy.updateStorageRecord(Unknown
 Source)
                                at 
com.kaltire.mix.tirelodge.camel.beans.EventProcessor.process(EventProcessor.java:96)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at 
java.lang.reflect.Method.invoke(Method.java:498)
                                at 
org.apache.webbeans.intercept.AbstractInvocationContext.directProceed(AbstractInvocationContext.java:113)
                                at 
org.apache.webbeans.intercept.AbstractInvocationContext.proceed(AbstractInvocationContext.java:106)
                                at 
org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:67)
                                at 
org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:130)
                                at 
org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.executeInTransaction(TransactionalInterceptor.java:57)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at 
java.lang.reflect.Method.invoke(Method.java:498)
                                at 
org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136)
                                at 
org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:63)
                                at 
org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139)
                                at 
com.kaltire.mix.tirelodge.camel.beans.EventProcessor$$OwbInterceptProxy0.process(com/kaltire/mix/tirelodge/camel/beans/EventProcessor.java)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at 
java.lang.reflect.Method.invoke(Method.java:498)
                                at 
org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:209)
                                at 
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:421)
                                at 
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:242)
                                at 
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:213)
                                at 
org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:154)
                                at 
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:56)
                                at 
org.apache.camel.management.DefaultInstrumentationProcessor.process(DefaultInstrumentationProcessor.java:91)
                                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:702)
                                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:616)
                                ... 72 common frames omitted
                Caused by: org.hibernate.exception.SQLGrammarException: could 
not execute statement
                                at 
org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
                                at 
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
                                at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124)
                                at 
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109)
                                at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:189)
                                at 
org.hibernate.engine.query.spi.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:204)
                                at 
org.hibernate.internal.SessionImpl.executeNativeUpdate(SessionImpl.java:1238)
                                at 
org.hibernate.internal.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:401)
                                at 
org.hibernate.ejb.QueryImpl.internalExecuteUpdate(QueryImpl.java:198)
                                at 
org.hibernate.ejb.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:102)
                                ... 131 common frames omitted
                Caused by: java.sql.SQLSyntaxErrorException: Table 
'KTDN_TM.badTable doesn't exist
                                at 
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
                                at 
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
                                at 
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
                                at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
                                at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092)
                                at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040)
                                at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1347)
                                at 
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:1025)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                at 
java.lang.reflect.Method.invoke(Method.java:498)
                                at 
org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114)
                                at 
com.sun.proxy.$Proxy238.executeUpdate(Unknown Source)
                                at 
org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:186)
                                ... 136 common frames omitted

Updating the pom.xml to use Camel 3.5.0 I see multiple entries like this during 
the boot (16 times to be exact):

2020-09-08 10:24:00.174 [http-nio-8081-exec-4] WARN  
o.a.c.c.t.TransactionalJtaTransactionPolicy - Could not find the transaction 
manager through java:/TransactionManager

Then this (same stacktrace and message) 5 times:

2020-09-08 11:53:23.487 [Thread-0 (ActiveMQ-client] WARN  
o.a.c.jta.TransactionErrorHandler - Transaction rollback (0x41543024) 
redelivered(true) for (MessageId: ID:07638789-f1fb-11ea-b2f4-564c8aece8ca on 
ExchangeId: ID-Kal030841-1599591203098-0-2) caught: null
2020-09-08 11:53:23.496 [Thread-0 (ActiveMQ-client] ERROR 
o.a.c.jta.TransactionErrorHandler - Failed delivery for (MessageId: 
ID:07638789-f1fb-11ea-b2f4-564c8aece8ca on ExchangeId: 
ID-Kal030841-1599591203098-0-2). Exhausted after delivery attempt: 1 caught: 
java.lang.NullPointerException

Message History (complete message history is disabled)
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              ProcessorId          Processor                             
                                           Elapsed (ms)
[easybook-events   ] [easybook-events   ] 
[from[sjms://topic:kt.mix.easybook.events?durableSubscriptionId=tire-lodge-dev&]
 [        31]
                ...
[easybook-events   ] [transacted1       ] [transacted                           
                                         ] [         0]

Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------

java.lang.NullPointerException: null
                at 
org.apache.camel.cdi.transaction.TransactionalJtaTransactionPolicy.hasActiveTransaction(TransactionalJtaTransactionPolicy.java:114)
                at 
org.apache.camel.cdi.transaction.RequiredJtaTransactionPolicy.run(RequiredJtaTransactionPolicy.java:26)
                at 
org.apache.camel.jta.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:186)
                at 
org.apache.camel.jta.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:137)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:101)
                at 
org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:110)
                at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$SimpleTask.run(RedeliveryErrorHandler.java:404)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
                at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
                at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
                at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:287)
                at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
                at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41)
                at 
org.apache.camel.component.sjms.consumer.InOnlyMessageHandler.handleMessage(InOnlyMessageHandler.java:53)
                at 
org.apache.camel.component.sjms.consumer.AbstractMessageHandler.onMessage(AbstractMessageHandler.java:81)
                at 
org.apache.activemq.artemis.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:110)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1030)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:49)
                at 
org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1153)
                at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
                at 
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
                at 
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)

And then JMS message disappears from the topic.
Note when using 3.4.5  message stays unacknowledged, I will stick to 3.4.5 for 
now... Please let me know if you need any more info.

Cheers,
Dmitry


From: Shultz, Dmitry
Sent: Wednesday, September 2, 2020 9:17 PM
To: Zheng Feng <zf...@redhat.com>; users@camel.apache.org
Subject: Re: CDI + SJMS + transacted

You are right, I forgot to specify transacted=true on the endpoint uri...
To be exact I looked at all the places (even changed the AMQ connection URL :) 
except this probably because for some stupid reason wishfully thought the 
.transacted() on the route is enough for the component to set it true 
automagically.
The interesting thing is that it worked (infinite redeliveries) - message was 
not committed to the broker (not lost) without the URI change just by using the 
JTA error handler builder (comes with CDI component). Now it works even with no 
redeliveries configured at all, but they are  never stopping (do there is some 
good automation already:)
________________________________
From: Zheng Feng <zf...@redhat.com<mailto:zf...@redhat.com>>
Sent: 01 September 2020 23:09
To: users@camel.apache.org<mailto:users@camel.apache.org> 
<users@camel.apache.org<mailto:users@camel.apache.org>>
Subject: Re: CDI + SJMS + transacted

Yeah, TomEE could provide the "java:/TransactionManager" since it is a J2EE
container. I wonder if you use the "transacted=true" option on the sjms
consumer which will rollback the transaction if the router is failed.


On Tue, Sep 1, 2020 at 4:35 AM Shultz, Dmitry 
<dmitry_shu...@kaltire.com<mailto:dmitry_shu...@kaltire.com>>
wrote:

> Thanks for the reply Zheng.
>
> I'm running very similar code in the TomEE and It doesn't fail on NPE. See
> similar behaviour though:
>
> [Thread-0 (ActiveMQ-client] WARN  o.a.c.jta.TransactionErrorHandler -
> Transaction rollback (0x30730302) redelivered(false) for (MessageId:
> ID:9fd77209-ebc6-11ea-955a-1ee7171b8787 on ExchangeId:
> ID-Kal030841-1598904862181-0-2) caught: test
>
> And after process restart the message is gone.
>
> I can confirm that when I use infinite re-delivery (the error handler
> never exhausted) the message stays in the durable topic as forever even
> after restart. So, I'm not sure if my expectation are correct i.e. does it
> supposed to stay in the topic after error handler redeliveries are
> exhausted?
>
> Cheers,
> Dmitry
>
>
> -----Original Message-----
> From: Zheng Feng [mailto:zf...@redhat.com]
> Sent: Sunday, August 30, 2020 8:58 AM
> To: users@camel.apache.org<mailto:users@camel.apache.org>
> Subject: Re: CDI + SJMS + transacted
>
> Hi Dmitry,
>
> It seems that SJMS [1]  currently only supports the use of internal JMS
> Transactions. There is no support for the Camel Transaction Processor or
> the Java Transaction API (JTA). Also if you want to use the JTA transaction
> provided by the camel-cdi, the TransactionManager should be available via
> JNDI "java:/TransactionManager". Then you are running the camel in the
> standalone environment, and the transaction manager should be provided by
> the third party implementation, such as Narayana ( you can find the jta
> standalone example here [2]). The NPE I think should be fixed by
> CAMEL-14918 [3], and I will try to backport it to the 3.4.x
>
> Regards,
> Zheng Feng
>
> [1]
> https://urldefense.com/v3/__https://camel.apache.org/components/latest/sjms-component.html__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9P1BTwqO$<https://urldefense.com/v3/__https:/camel.apache.org/components/latest/sjms-component.html__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9P1BTwqO$>
> [2]
> https://urldefense.com/v3/__https://github.com/jbosstm/quickstart/tree/master/jta-1_2-standalone__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9Py3UShj$<https://urldefense.com/v3/__https:/github.com/jbosstm/quickstart/tree/master/jta-1_2-standalone__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9Py3UShj$>
> [3]
>
> https://urldefense.com/v3/__https://github.com/apache/camel/commit/4421b2bba294dd8828621684c7670f78d811ecd8*diff-773b20d331dac13fb17acfa0f58ac01f__;Iw!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9F_CLTBw$<https://urldefense.com/v3/__https:/github.com/apache/camel/commit/4421b2bba294dd8828621684c7670f78d811ecd8*diff-773b20d331dac13fb17acfa0f58ac01f__;Iw!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVTmcKwcF4puKY9F_CLTBw$>
>
> On Sat, Aug 29, 2020 at 5:50 AM Shultz, Dmitry 
> <dmitry_shu...@kaltire.com<mailto:dmitry_shu...@kaltire.com>>
> wrote:
>
> > Hi All,
> >
> > I'm probably doing something  wrong/stupid, but I can't get the sjms
> > (recent Camel, but same true for 2.25.2) to leave failed messages in
> > the JMS topic (AMQ Artemis) after exception.
> > This is what logged:
> >
> > [ctiveMQ-client-global-threads)] TransactionErrorHandler        WARN
> > Transaction rollback (0x5cd1283) redelivered(false) for (MessageId:
> > ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId:
> > ID-Kal030841-1598650245838-0-1) caught: null
> > [ctiveMQ-client-global-threads)] TransactionErrorHandler        WARN
> > Transaction rollback (0x5cd1283) redelivered(false) for (MessageId:
> > ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId:
> > ID-Kal030841-1598650245838-0-1) caught: null
> > [ctiveMQ-client-global-threads)] TransactionErrorHandler        WARN
> > Transaction rollback (0x5cd1283) redelivered(false) for (MessageId:
> > ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId:
> > ID-Kal030841-1598650245838-0-1) caught: null
> > [ctiveMQ-client-global-threads)] TransactionErrorHandler        ERROR
> > Failed delivery for (MessageId:
> > ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on
> > ExchangeId: ID-Kal030841-1598650245838-0-1). Exhausted after delivery
> > attempt: 3 caught: java.lang.NullPointerException
> >
> > Message History (complete message history is disabled)
> >
> >
> ---------------------------------------------------------------------------------------------------------------------------------------
> > RouteId              ProcessorId          Processor
> >                                                 Elapsed (ms)
> > [route1            ] [route1            ]
> > [from[sjms://topic:topic:test?durableSubscriptionId=dmitr] [      1999]
> >                 ...
> > [route1            ] [transacted1       ] [transacted
> >                                               ] [         0]
> >
> > Stacktrace
> >
> > ----------------------------------------------------------------------
> > -----------------------------------------------------------------
> >
> > java.lang.NullPointerException: null
> >                 at
> > org.apache.camel.cdi.transaction.TransactionalJtaTransactionPolicy.has
> > ActiveTransaction(TransactionalJtaTransactionPolicy.java:105)
> > ~[camel-cdi-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.cdi.transaction.RequiredJtaTransactionPolicy.run(Requ
> > iredJtaTransactionPolicy.java:26)
> > ~[camel-cdi-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.jta.TransactionErrorHandler.doInTransactionTemplate(T
> > ransactionErrorHandler.java:193)
> > ~[camel-jta-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.jta.TransactionErrorHandler.processInTransaction(Tran
> > sactionErrorHandler.java:144)
> > ~[camel-jta-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorH
> > andler.java:108)
> > ~[camel-jta-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorH
> > andler.java:117)
> > ~[camel-jta-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$Redeliv
> > eryTask.redeliver(RedeliveryErrorHandler.java:766)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(D
> > efaultReactiveExecutor.java:148)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(Defa
> > ultReactiveExecutor.java:60)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.processor.Pipeline.process(Pipeline.java:147)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.processor.CamelInternalProcessor.process(CamelInterna
> > lProcessor.java:286)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process
> > (DefaultAsyncProcessorAwaitManager.java:83)
> > ~[camel-base-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorS
> > upport.java:40)
> > ~[camel-support-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.component.sjms.consumer.InOnlyMessageHandler.handleMe
> > ssage(InOnlyMessageHandler.java:52)
> > ~[camel-sjms-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.camel.component.sjms.consumer.AbstractMessageHandler.onMess
> > age(AbstractMessageHandler.java:81)
> > ~[camel-sjms-3.4.3.jar:3.4.3]
> >                 at
> > org.apache.activemq.artemis.jms.client.JMSMessageListenerWrapper.onMes
> > sage(JMSMessageListenerWrapper.java:110)
> > ~[artemis-jms-client-2.14.0.jar:2.14.0]
> >                 at
> > org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOn
> > Message(ClientConsumerImpl.java:1030)
> > ~[artemis-core-client-2.14.0.jar:2.14.0]
> >
> > So, it looks like rollback is kicked off, but when I restart the
> > process message is gone from the JMS topic.
> >
> > Sample reproducer  (generated using
> > -DarchetypeArtifactId=camel-archetype-cdi as described here
> > https://urldefense.com/v3/__https://camel.apache.org/components/latest<https://urldefense.com/v3/__https:/camel.apache.org/components/latest>
> > /others/cdi.html__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZX
> > XKak6kEojLVTmcKwcF4puKY9NnrgwcA$  ) is here
> > https://urldefense.com/v3/__https://github.com/zeppelinux/CamelCDISjms<https://urldefense.com/v3/__https:/github.com/zeppelinux/CamelCDISjms>
> > Test__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZXXKak6kEojLVT
> > mcKwcF4puKY9HBU5Opk$
> > Please  have a look.
> >
> > Cheers,
> > Dmitry
> >
>

Reply via email to