リモート(別プロセス)のJBossサーバー上のキューにXAトランザクション内で正しくメッセージを送受信するには

Weblogicなど普通のサーバーだとJTAトランザクション境界の内部で別サーバーインスタンスに対するJNDIツリーから直接XA対応の接続ファクトリーをルックアップすれば、自動的にXAのトランザクションに参加してくれます(と思います)。
JBoss MQやJBoss Messagingでは、別サーバー上のJNDIツリーからルックアップした接続ファクトリーが自動的にXAに参加してくれないため、注意が必要です。これらは名前はJBossとついていますが、実質的にはJBoss ASとは独立したJMSのプロバイダーであり、JCAを使って統合しない限りXAのリソースマネージャーとして機能しないようです。XAのトランザクション内で正しくメッセージを送受信するためには、以下の記事にあるように、ローカルサーバー上にJMSResourceAdapterを登録した上で、接続ファクトリーはローカルのJNDIツリーからルックアップする必要があります。
http://germanogiudici.wordpress.com/2010/09/01/how-to-send-a-tx-transactional-jms-message-from-a-local-jboss-to-a-remote-jboss-version-4-2-3-ga/
別のやり方としては、
http://docs.redhat.com/docs/ja-JP/JBoss_Enterprise_Application_Platform/4.3/html/JBoss_Messaging_User_Guide_CP04/bridge.html
に記述されているメッセージブリッジを利用する方法でも別サーバー上のキューにメッセージを送ることができます。
Consumerがキャッシュされない件を含めて、分散化されたJBossでJMSを扱う場合は、いろいろとハマル箇所がありそうです。