By any chance do you have JBM installed on the local server (A) too?
Also, the JmsXA will return a XAConnectionFactory. Are you starting a Tx but not committing?
Server (A) does not have any messaging installed locally, just the resource adapter with jms-ds.xml configured to point to Server (B).
We get the same behavior when we connect and send via java:/JmsXA, whether from a Session bean with transaction REQUIRED or SUPPORTS, or from an MBean; it's consistently a silent failure and no messages get to the Destination, regardless of transaction scope. What's frustrating is it seems like it works, but it doesn't.
I'm wondering if this is just our unfamiliarity with JBM's Server Peer architecture. I mean, *must* we have JBM installed on Server (A), perhaps with distributed queues? The way we current have it is that JBM is a messaging-only node or cluster. Server (A) would be just one of several clients - but in this case it is a container client, while others are just simple processes. What we want is managed remote connections, in our case more for performance concerns than for the XA (We could alternatively use Spring's JMSTemplate, which does pool sessions, but JBM's documentation specifically warns against it).
Meanwhile, I've have difficulty finding any documentation or examples of *sending* messages from a remote container; all the container examples seem to be of consuming with MDBs.