Actually, I took a stab at this again since I had some spare time now. I am
almost done. It looks promising.
The only question I have is about the entity manager. In the examples, I see
an entity manager is obtained in the activate method, and used for the rest of
the life of the component:
private EntityManager em;
@Activate
void init() {
em = provider.getResource(txControl);
}
Is this safe in a multi threaded environment? I expect the component to be
called concurrently.
Section 127.3.3 of OSGi Companion states that "An Entity Manager is intended to
be used by a single session, it is not thread safe.” So I am confused since all
examples seem to be ignoring this.
Best regards,
Alex soto
> On Feb 6, 2019, at 3:16 PM, Tim Jones <[email protected]> wrote:
>
> Hi Alex,
>
> yes it is possible to use tx-control with Karaf, we have been using it on
> v4.0.5 in our production system for about 18 months with no issues. One of
> the main reasons we use tx-control is that is it 'backed' by a standard.
> Rightly or wrongly we also didn't have confidence in Aries JPA Template at
> the time we were considering transaction managment solutions to manage our
> transactions in a production environment (perhaps this was misguided) but we
> were concerned that there were few integrated tests for that project where
> as there are over 2000 lines of test code for tx-control which demonstrate
> sucess and failure cases for JPA, JDBC, non-XA, XA, last gambit wins,
> commit, rollback depending upon exception type and much more.
>
> I think the enRoute project has some examples
> https://enroute.osgi.org/examples/023-examples-microservice-jdbc.html and
> the tx-control test code is worth looking at.
>
> Tim
>
>
>
> --
> Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html