Hi Dmitry,

It seems that the TransactionManager can not be accessed via
"java:/TransactionManager" and I am not an expert of TomEE also I am not
sure if there is a way to set the transaction manager jndi name in the
configuration file ?

Regards,
Zheng Feng

On Wed, Sep 9, 2020 at 3:18 AM Shultz, Dmitry <dmitry_shu...@kaltire.com>
wrote:

> 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>
> *Sent:* 01 September 2020 23:09
> *To:* users@camel.apache.org <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>
> 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 <zf...@redhat.com>]
> > Sent: Sunday, August 30, 2020 8:58 AM
> > To: 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>
> > 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