En JBoss 5.1.0 tengo Datasource (PostgreSQL 8.3.11) configurado con * -ds.xml (DS estándar jboss). Utiliza XADataSource (PGXADataSource). También tengo el agente de ActiveMQ (ahora se ejecuta como en VM, bajo JBoss, pero estará en un servidor por separado más tarde).¿Cómo configurar el conector ActiveMQ JCA en JBoss para usar conexiones XA?
Lo que quiero hacer es hacer que ActiveMQ Connection Factory y Datasource participen en XA Transactions. Por ejemplo, quiero actualizar el registro de BD y enviar un mensaje JMS como un UOW. Entiendes la idea.
Configuré PGXADataSource en my-pg-ds.xml y funciona (puedo rastrear la ejecución hasta el final en PGXAConnection's start method). He intentado configurar ActiveMQXAConnectionFactory directamente en Spring (estoy usando Spring 3.0.2.RELEASE), pero esto no funciona, porque en este caso Spring transaction manager (uso la anotación para permitir que Spring configure JtaTransactionManager que simplemente delega todo el trabajo en Jboss transaction manager) no alista XAResource para el dado ActiveMQXAConnection. Cada vez que trato de enviar un mensaje recibo una excepción JMSException que dice "XAResource de la sesión no se ha alistado en una transacción distribuida". lanzado desde ActiveMQXASession.
Dado que no funcionó, he cambiado la configuración de la JCA ActiveMQ ConnectionFactory (basado en la this documento) y funciona para regular de , pero no entienden cómo puedo configurarlo para usar XAConnectionFactory. Parece que Resource Adapter simplemente no tiene las implementaciones apropiadas de ManagedConnectionFactory, ManagedConnection, etc. para la fábrica de conexiones XA.
¿Me falta algo o no tengo más remedio que escribir envoltorios XA para el adaptador de recursos?