I have an existing client-server project which uses plain JDBC to communicate with a single MySQL instance. Now I would like to extend it to support multiple (sharded) MySQL instances using any JPA implementation and with the help of JTA implementation that supports XA transactions.
My question is how should I proceed? After several hours of Googling what I understand I may not able to use JTA implementations without any application server container, is it true?
For my purpose I would be happy if the application logics could be abstracted using any ORM layer - a JPA implementation (like EclipseLink Partition or OpenJPA Slice) and then using a transaction manager (like BTM) to execute the XA transactions providing ACID guarantees over the underlying set of MySQL instances.
So far I tried the video tutorial in YouTube (https://www.youtube.com/watch?v=Vmr6GAlbG10) experimenting with EclipseLink and a single db instance. Now I'm planning to extend it over multiple instances but not sure how.
Any kind suggestions, links and guidelines would be very helpful. I'm kind of new to this so accept any inconvenience if I misunderstood anything. Thanks.