Fun thing...with @RequestScoped I get:

14:32:00,682 ERROR [stderr] (EE-ManagedExecutorService-default-Thread-3)
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active
contexts for scope type javax.enterprise.context.RequestScoped

when running a task inside a ManagedExecutorService. Any ideas?
Anyone know how to get the current TX id with wildfly? I this I'm runin' 2
different TX, since the MDB push a task to the ManagedExecutorService I
doubt the TX can be propagated.


On Tue, Feb 13, 2018 at 12:32 PM, Gerhard Petracek <gpetra...@apache.org>
wrote:

> org.apache.deltaspike.jpa.impl.transaction.ContainerManagedTransactionStr
> ategy
> is a 1:1 delegation (without additional logic [1]).
> it's mainly useful for shared libs which use
>  @org.apache.deltaspike.jpa.api.transaction.Transactional, but there are
> applications using CMT (instead of BMT).
>
> regards,
> gerhard
>
> [1]
> https://github.com/apache/deltaspike/blob/master/
> deltaspike/modules/jpa/impl/src/main/java/org/apache/deltaspike/jpa/impl/
> transaction/ContainerManagedTransactionStrategy.java
>
>
>
> 2018-02-13 12:58 GMT+01:00 Luís Alves <luisalve...@gmail.com>:
>
> > I'm avoiding EJBs...currently just for MDB. And I use CMT =>
> > globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.
> > TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.
> > ContainerManagedTransactionStrategy
> >
> > And now I changed my producer to:
> >
> >     @Produces
> >     @Default
> >     *@RequestScoped*
> >     public EntityManager get()
> >     {
> >         return entityManager;
> >     }
> >
> > On Tue, Feb 13, 2018 at 11:54 AM, Gerhard Petracek <gpetra...@apache.org
> >
> > wrote:
> >
> > > @TransactionScoped beans get destroyed after finishing the outermost
> > method
> > > (in the callstack) annotated (in-/directly) with
> > > @org.apache.deltaspike.jpa.
> > > api.transaction.Transactional.
> > >
> > > in case you are using ejbs and CMT, the container already manages the
> > scope
> > > for you (and you just get a proxy-instance anyway - which can be
> exposed
> > as
> > > dependent bean).
> > > -> it really depends on the mode you are using.
> > >
> > > regards,
> > > gerhard
> > >
> > >
> > >
> > > 2018-02-13 12:31 GMT+01:00 Luís Alves <luisalve...@gmail.com>:
> > >
> > > > There you use the @RequestScoped....and you present
> @TransactionScoped,
> > > > which seems exactly what I want but not sure what happens when TX is
> > > marked
> > > > as NEVER or SUPPORTS (and none is oppened).
> > > >
> > > > On Tue, Feb 13, 2018 at 11:15 AM, Gerhard Petracek <
> > gpetra...@apache.org
> > > >
> > > > wrote:
> > > >
> > > > > hi luis,
> > > > >
> > > > > please have a look at [1].
> > > > >
> > > > > regards,
> > > > > gerhard
> > > > >
> > > > > [1] http://deltaspike.apache.org/documentation/jpa.html#Basicusage
> > > > >
> > > > >
> > > > >
> > > > > 2018-02-13 12:11 GMT+01:00 Luís Alves <luisalve...@gmail.com>:
> > > > >
> > > > > > Well...I have REST services...so I think RequestScoped EM would
> be
> > > ok.
> > > > > >
> > > > > > On Tue, Feb 13, 2018 at 10:55 AM, Thomas Andraschko <
> > > > > > andraschko.tho...@gmail.com> wrote:
> > > > > >
> > > > > > > If an AppScoped EntityManager is the right thing for you, yes.
> > > > > > > In my webapplication i mostly use RequestScoped EMs.
> > > > > > >
> > > > > > > 2018-02-13 11:39 GMT+01:00 Luís Alves <luisalve...@gmail.com>:
> > > > > > >
> > > > > > > > "An instance of a dependent bean is never shared between
> > > *different
> > > > > > > clients
> > > > > > > > *or different injection points."
> > > > > > > > "Beans with scope @Dependent don’t need a proxy object. The
> > > client
> > > > > > holds
> > > > > > > a
> > > > > > > > direct reference to its instance."
> > > > > > > >
> > > > > > > > so...I think I should be OK.
> > > > > > > >
> > > > > > > > On Tue, Feb 13, 2018 at 10:29 AM, Luís Alves <
> > > > luisalve...@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > So my Service layer is @ApplicationScoped.
> > > > > > > > > Since Inject the @Repository into my service layer and is
> > > > > @Dependent
> > > > > > it
> > > > > > > > > will be an @ApplicationScoped. I'm producing my EM like:
> > > > > > > > >
> > > > > > > > > @ApplicationScoped
> > > > > > > > > public class EntityManagerProducerImpl implements
> > > > > > EntityManagerProducer
> > > > > > > > > {
> > > > > > > > >
> > > > > > > > >     @PersistenceContext(unitName = "unit")
> > > > > > > > >     private EntityManager entityManager;
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >     @Override
> > > > > > > > >     @Produces
> > > > > > > > >     @Default
> > > > > > > > >     public EntityManager get()
> > > > > > > > >     {
> > > > > > > > >         return entityManager;
> > > > > > > > >     }
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > > So...will it work properly? or do I have to mark my EM as
> > > > > > > @RequestScoped?
> > > > > > > > >
> > > > > > > > > LA
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Tue, Feb 13, 2018 at 10:24 AM, Thomas Andraschko <
> > > > > > > > > andraschko.tho...@gmail.com> wrote:
> > > > > > > > >
> > > > > > > > >> Hi,
> > > > > > > > >>
> > > > > > > > >> the default scope is @Dependent but i suggest everyone to
> > use
> > > > > > > > >> @ApplicationScoped.
> > > > > > > > >> The EM will be proxied if you use a NormalScope like
> > > > > @RequestScoped,
> > > > > > > > ....
> > > > > > > > >>
> > > > > > > > >> Regards,
> > > > > > > > >> Thomas
> > > > > > > > >>
> > > > > > > > >> 2018-02-13 10:54 GMT+01:00 Luís Alves <
> > luisalve...@gmail.com
> > > >:
> > > > > > > > >>
> > > > > > > > >> > Hi,
> > > > > > > > >> >
> > > > > > > > >> > What is the scope of @Repository? Do you use a similar
> > > > approach
> > > > > of
> > > > > > > > >> Spring?
> > > > > > > > >> > @Singleton and proxy the EM?
> > > > > > > > >> >
> > > > > > > > >> > Regards,
> > > > > > > > >> > LA
> > > > > > > > >> >
> > > > > > > > >>
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to