I agree and we have to use the transaction manager which provides the
resume() and suspend() to support the "REQUIRED_NEW" and "NOT_SUPPORT"
policies. please can you raise a JIRA for the configurable jndi name ?

On Wed, Sep 2, 2020 at 4:09 PM Romain Manni-Bucau <rmannibu...@gmail.com>
wrote:

> AFAIK the transaction manager jndi name is not standard (user transaction
> one is) and current one is not zven the "common" one which is in comp/ for
> webapps so IMHO:
>
> - camel-cdi must not have any ee feature (deployment should theorically
> fail if validated since injection must not work in standalone)
> - either jta integration should use user transaction or make tx mgr
> name/static method configurable as in
>
> https://github.com/apache/openjpa/blob/08bb3a5a0e7573622aa6dc25763cb6513095093b/openjpa-kernel/src/main/java/org/apache/openjpa/ee/AutomaticManagedRuntime.java#L55
>
> Le mer. 2 sept. 2020 à 08:33, Zheng Feng <zf...@redhat.com> a écrit :
>
> > FYI, I just raised https://github.com/apache/camel/pull/4151 to backport
> > the fix of CAMEL-14918 to 3.4.x. Also I test the "transacted=true" which
> > the sjms consumer that the message will be sent to the DLQ after the
> error
> > handler is exhausted. Is this what you expected ?
> >
> > On Wed, Sep 2, 2020 at 2:09 PM Zheng Feng <zf...@redhat.com> wrote:
> >
> > > 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]
> > >> 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$
> > >> [2]
> > >>
> >
> 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$
> > >>
> > >> 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
> > >> >
> /others/cdi.html__;!!LdWlNaMnLCM!OJ-X6YfRy0exjKJ8PNWy-d5aHbD6mgnBfTRZX
> > >> > XKak6kEojLVTmcKwcF4puKY9NnrgwcA$  ) is here
> > >> >
> > 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