Rant about JMS implementations and XA stuff…
These last days at work I have been working on some transactional work using XA resources. Basically what we wanted to do was to use a open-source transaction manager (JOTM) with Websphere MQ in the following kind of scenarios:
a XA datasource and a XA queue within the same XA transaction,
many XA queues within the same transaction.
What we discovered really *pissed me* off: first of all, how many of you know that Websphere Application Server (aka WAS for short) although certified as J2EE compatible is not 100% Java? What does this mean for us developers? Well basically that you have no choice but use IBM JVMs! WAS is hard linked to their JVMs! I could not believe it!!Anyway, back to MQ. We had a MQ 5.3 server installed a few days ago and once more we discovered some incredible things… If you want to use XA with MQ, it seems you only have two options:
use your XA code within WAS,
install the MQ server on the same computer as the one where your Java (but not J2EE) code will run.
I know that the XA stuff is optional in JMS but what the f***? They can't make their server working out of their application server? Next, we decided to give a try to Tibco. This time we were able to have the scenario with a XA datasource and a XA queue working but not the one with two XA queues! Finally JORAM was able to handle both cases!!Although I am a big Java fan, I have really been disguted by this bad experience…