The concurrency changes that come in with EE10 have obviously meant some
changes were needed in TomEE. Generally it looks to be working very well.
Thanks for merging in the my last change around CDI async observers!

I've come across a similar use-case, specifically:

1. Call a stateless session bean (A)
2. Bean A uses a ManagedExecutorService to make multiple calls to another
Stateless session bean (B)
3. Bean B makes a call to Bean C, and also uses the ManagedExecutorService
to run some other tasks.

What I've observed is, that despite the default executor service being
setup to no propagate transactions, it seemed to happen anyway, in a
listener that EjbTransactionUtil adds to ThreadContext and gets fired when
ThreadContext.enter() is called. The listener is fired on every call, and
it doesn't know the context of what's happening, and it always propagates
the transaction if it is there.

In the PR (https://github.com/apache/tomee/pull/1762) I added a parameter
to specify whether this should happen or not, and modified the
SecurityThreadContextProvider and ApplicationThreadContextProvider to not
propagate the transaction. I'm open to better approaches though as this
doesn't feel optimal.

Does anyone have any thoughts?

Jon

Reply via email to