You have picked a very interesting topic, though I can't see much value of it in real world and I don't have an answer for it, but it's good for brain exercise.
I think the key to your problem is XA, you need a single, distributed transaction across heterogenous systems. first let's take a look how you do the same action in a single/homogenous system.
you need call two ejbs from client, ejb does not need to be stateful but they must be in same transaction context. use UserTransaction and controlled it from client, that's no brainer. agree?
Now you want the second ejb lives in different system, the transaction manager from second one defintely need be attached or delegate control to first(primary) one. The suggestion you got from that expert basically is let jboss become another managed resource of websphere, so you pass the transaction context in second ejb call become recognized as it's still managed by same transaction manager.
Communicate with MBean remotely thru RMI is trivial once you figure out how to write that mbean, I believe you just have to dig into the websphere integration doc as any vendor who want to integrated with it would do the same thing. e.g Sonic MQ to websphere.
JCA maybe a wrong term here as it already carry a well known meaning, but you do need a implementation in similar pattern to work with another external resource, except it's being managed instead of managing position.
Now go back to the original point of usefulness, I never seen people want to get into trouble of scenario that you are pursuing, ( it's nice to stay in school ;-) )I do see people need to contact another app server from one server, actually I have done transaction routing myself but that's more like a nested/chain mode transaction usage, think about calling third party jms from ejb is a case as well.
Even you manage to make the simply case work as wanted,what happen when you do more things? let's assume you need to send a message(of course, within same tran), thought tran context maybe propogated thru threadlocal, but how can you sure the connection you get from JMS will be associated with that "remote" transaction manager? it may have problem even with XA jdbc connection, of course, this whole depends on jboss implementation.
You are using jboss 4 ? good luck. recently I can't resist the temptation to try out joss3.21, guess what, my topas server broken in many places, it took me almost a half day to figure out the places that's not compatible.
JMS is the not solution to your problem, it's simply a reliable way to convey data, in your case a simple ejb call will do the same thing. If I understand you correctly, you need a 2pc on top of was and jboss. you can deliver a msg in transaction mode but the jms server in jboss still use its own TX manager.
you get the point now, but I don't think this is available today. you have to get familiar with JTS in jboss.
Does not mean to scorn the people here, but I think you can get better answer if you post the question to some cotainer oriented forums. For chinese site, you can try huihoo group or maybe this guy firstname.lastname@example.org.
As I said before, jms is not the solution, actually using it may requires you may effort. the ejb in jboss is going to use some XA resources, mostly jdbc connection, it could be a jms connection as well( this has nothing to do with passing your transaction or data between two app servers), you need let me under control of was tx mgr.
I think we are talking about ACID here based on the title and previous reply from "bluegirl". hi, be careful when you do account transferring. ;-(
are you bluegirl's brother/sister? Just kidding. I think you are right one the point about single/homogeneous container vs. multiple container. Regarding your question about transaction control across webservice calls, I think in theory it is feasible but probably no implementation yet and it's against the common usage of web service: normally web service is high level abstraction func, it is used in stateless fashion.