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? > >> > > >>>> > >> > > >>> > >> > > >> > >> > > > >> > > > >> > > >> > > > > >