Luis,

This issue is solved by using the global alternative in
META-INF/apache-deltaspike.properties.

John

On Thu, Feb 8, 2018 at 7:11 AM Luís Alves <luisalve...@gmail.com> wrote:

> So... from the stack:
>
> Caused by: java.lang.IllegalStateException: A JTA EntityManager cannot use
> getTransaction()
>     at
>
> org.hibernate.jpa.spi.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:1333)
>     at
>
> org.jboss.as.jpa.container.AbstractEntityManager.getTransaction(AbstractEntityManager.java:518)
>     at org.apache.deltaspike.jpa.impl.transaction.
> *ResourceLocalTransactionStrategy*
> .getTransaction(ResourceLocalTransactionStrategy.java:370)
>     at
>
> org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.rollbackAllTransactions(ResourceLocalTransactionStrategy.java:336)
>     at
>
> org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:154)
>     at
>
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeTransactional(TransactionalQueryRunner.java:72)
>     at
>
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:54)
>     at
>
> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$Proxy$_$$_WeldClientProxy.executeQuery(Unknown
> Source)
>     at
>
> org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:147)
>     ... 85 more
>
> I'm on a multi module gradle project. As I said before on the
> \WEB-INF\beans.xml I have:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
> http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd";
>     version="1.2" bean-discovery-mode="annotated">
>
>     <alternatives>
>         <class>org.apache.deltaspike.jpa.impl.transaction.
> *ContainerManagedTransactionStrategy*</class>
>     </alternatives>
>
> </beans>
>
> So...DS is not picking up this. So maybe I might need to place it at
> META-INF/apache-deltaspike.properties, as John point out. Or I need to
> place this alternative on the jar(s) of my sevice layer where the TX is
> started.
> I'm going to try some scenarios this afternoon.
>
>
>
> On Wed, Feb 7, 2018 at 5:35 PM, Luís Alves <luisalve...@gmail.com> wrote:
>
> > Thanks John. I going to test it tomorrow I hope...
> >
> > Currently I have it like:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"; xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance";
> >     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
> > http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd";
> >     version="1.2" bean-discovery-mode="annotated">
> >
> >     <alternatives>
> >         <class>org.apache.deltaspike.jpa.impl.transaction.
> > ContainerManagedTransactionStrategy</class>
> >     </alternatives>
> >
> > </beans>
> >
> > which as you pointed out might not work.
> > I also do my TX demarcation at the service level (business logic). A
> > Service can use multiple repos, jms, ...
> > Repo should only concern about persisting and querying data.
> >
> > Regards,
> > LA
> >
> > On Tue, Feb 6, 2018 at 9:44 PM, John D. Ament <johndam...@apache.org>
> > wrote:
> >
> >> Hi,
> >>
> >> Yes, Mark's input is definitely useful.  I can say I've been using DS +
> >> Repositories + JTA Transactional for a few years now, it all continues
> to
> >> work fine.  I'm on Wildfly 10.1 as well.
> >>
> >> The only thing you need to remember is to
> >> add globalAlternatives.org.apache.deltaspike.jpa.spi.transaction
> >> .TransactionStrategy=org.apache.deltaspike.jpa.impl.transact
> >> ion.ContainerManagedTransactionStrategy
> >> to your META-INF/apache-deltaspike.properties file.  This is covered at
> >> http://deltaspike.apache.org/documentation/jpa.html#JTASupport for
> >> Weld/Wildfly instances
> >>
> >> Then you'll get the seamless transactions between DS repositories, other
> >> JPA use cases, and JMS, etc.  Presently I deal with the JMS + SMTP  +
> JPA
> >> use case today and haven't seen it falter too much.
> >>
> >> I don't add @Transactional to my repositories, the transaction boundary
> >> tends to be at a higher level (Services).
> >>
> >> John
> >>
> >> On Tue, Feb 6, 2018 at 3:41 PM Luís Alves <luisalve...@gmail.com>
> wrote:
> >>
> >> > I want to use DS repositories, that's why I've asked about
> >> Transactional.
> >> > As I use Wildfly 10, I can use the standard Transactional instead of
> >> the DS
> >> > one.
> >> > @Mark: thanks for your point of view. I wan't to stay as standard as
> >> > possible, but if I have strange behaviors I'll switch for DS
> annotation.
> >> > Tomorrow I have to deal with some JMS configs, but I'll try to do some
> >> > testing until the end of this week. I was out for a month and my
> >> colleagues
> >> > are injecting the EntityManager into the @Repositories, because they
> had
> >> > some issues with the TX. I suspect that, this is not a good idea, as
> DS
> >> > repositories should own their own EntityManager instance.
> >> >
> >> > Regards
> >> >
> >> > On Tue, Feb 6, 2018 at 8:20 PM, Mark Struberg
> <strub...@yahoo.de.invalid
> >> >
> >> > wrote:
> >> >
> >> > > Hi!
> >> > >
> >> > > Please note that @javax.transaction.Transactional and deltaspike
> >> > > @Transactional work pretty different under the hood.
> >> > >
> >> > > With javax.transaction.Transactional you will get the weird
> >> transaction
> >> > > handling of EJB [1].
> >> > > It's also not that portable as it seems. There are huge definition
> >> gaps
> >> > in
> >> > > the tx spec as well. E.g. whether you can catch Exceptions,
> >> transaction
> >> > > boundaries etc.
> >> > >
> >> > > Needless to say I'm not a fan of javax.transaction.Transactional ;)
> >> > >
> >> > > LieGrue,
> >> > > strub
> >> > >
> >> > >
> >> > > [1] https://struberg.wordpress.com/2015/04/21/transaction-
> >> > > and-exception-handling-in-ejbs-and-javaee7-transactional/
> >> > >
> >> > >
> >> > > > Am 06.02.2018 um 20:38 schrieb Mauro Chi <
> mauro2java2...@gmail.com
> >> >:
> >> > > >
> >> > > > If you use wildfly10 it came with jeee7 that already   came with
> >> > > > annotation@Transactional.
> >> > > >
> >> > > > So if you use wildfy 10 you dont have to use  deltaspike.
> >> > > > Mauro
> >> > > >
> >> > > > Il 6 feb 2018 19:31, "Luís Alves" <luisalve...@gmail.com> ha
> >> scritto:
> >> > > >
> >> > > >> Left the office already...It's wildfly 10 dot something. I'll
> give
> >> the
> >> > > >> exact version and strategy used tomorrow.
> >> > > >>
> >> > > >> Regards
> >> > > >>
> >> > > >> Em 06/02/2018 18:11, "John D. Ament" <johndam...@apache.org>
> >> > escreveu:
> >> > > >>
> >> > > >>> Yes, in general javax.transaction.Transactional works well.
> >> > Depending
> >> > > >> on
> >> > > >>> your server, you may need to just point to the container managed
> >> > > >>> transaction approach.  What container are you deploying to
> >> (including
> >> > > >>> version)?
> >> > > >>>
> >> > > >>> On Tue, Feb 6, 2018 at 12:37 PM Luís Alves <
> luisalve...@gmail.com
> >> >
> >> > > >> wrote:
> >> > > >>>
> >> > > >>>> Will deltaspike work with javax.transaction.Transactional?
> >> > > >>>> Do I need to specify an interceptor?
> >> > > >>>> Where can I find an example?
> >> > > >>>>
> >> > > >>>
> >> > > >>
> >> > >
> >> > >
> >> >
> >>
> >
> >
>

Reply via email to