ibm-messaging / mq-jms-spring

Components to assist MQ JMS integration with Spring frameworks
Apache License 2.0
190 stars 102 forks source link

Aligned with SpringBoot JTA and external XA providers #24

Closed maciekdeb closed 5 years ago

maciekdeb commented 5 years ago

Please ensure all items are complete before opening.

What

XA functionality was aligned with other JMS providers (see ActiveMQ) - SpringBoot keeps the specific ordering of instantiation of beans in configurations - firslty the XA wrapper then the resource adapters. Additionally in order to use the JTA provider the connectionFactory has to be wrapped with the abstraction comming from the provider according to the interface.

How

The order is kept with annotation @AutoconfigureAfter and the wrappeing functionality is done similarly to the ActiveMQ project. Additionally the nonXA bean is kept in the registry for convenience making it possible to autowire in places of the application where the non distributed transaction is needed.

Testing

Locally installed the modified version of this starter and used it in the application which connects to the external IBM queue. Tests were done with Atomikos implementation.

Issues

Issue was spotted in my team during the migration of one of the app to this IBM starter. The finding was that it is impossible to use XA with SpringBoot and Atomikos for example.

jcristante commented 5 years ago

Good morning,

I need to manage distributed transactions between a datasource and IBM MQ. I'm interested by this feature and I would like to know if there is a release date to integrate this feature? As workaround, I can still fork and package this feature by myself but I think it will be useful for the community to get it on Maven Central.

@ibmmqmet, what do you think about @maciekdeb commit?

Regards, Jérôme.

ibmmqmet commented 5 years ago

I'm travelling at the moment. Will take a closer look at it when I'm at my desk next week

maciekdeb commented 5 years ago

Hi @ibmmqmet, when do you expect the next release?