Как настроить JM-коннектор ActiveMQ в JBoss для использования соединений XA?

На JBoss 5.1.0 у меня есть источник данных (PostgreSQL 8.3.11), настроенный с использованием * -ds.xml (стандартная jboss DS). Он использует XADataSource (PGXADataSource). У меня также есть брокер ActiveMQ (сейчас он работает как in-VM, под JBoss, но последний будет на отдельном сервере).

Я хочу, чтобы фабрика соединений ActiveMQ и источник данных участвовали в транзакциях XA. Например, я хочу обновить запись в БД и отправить сообщение JMS как UOW. Вы поняли идею.

Я настроил PGXADataSource в my-pg-ds.xml, и он работает (я могу отследить выполнение доPGXAConnection метод запуска). Я пытался настроитьActiveMQXAConnectionFactory непосредственно в Spring (я использую Spring 3.0.2.RELEASE), но это не работает, потому что в этом случае диспетчер транзакций Spring (я использую аннотацию для настройки SpringJtaTransactionManager который просто делегирует всю работу диспетчеру транзакций Jboss) не подключает XAResource для данногоActiveMQXAConnection, Всякий раз, когда я пытаюсь отправить сообщение, я получаю исключение JMSException, говорящее «XAResource сеанса не был зачислен в распределенную транзакцию». брошенный изActiveMQXASession.

Поскольку это не сработало, я перешел на JCA-конфигурацию ActiveMQ ConnectionFactory (основанную наэтот документ), и это работает на регулярной основеConnectionFactory, но я не понимаю, как я могу настроить его для использования XAConnectionFactory. Это похоже наРесурсный адаптер просто нет соответствующих реализаций ManagedConnectionFactory, ManagedConnection и т. д. для фабрики соединений XA.

Я что-то упустил или у меня нет другого выбора, кроме как написать обертки XA для адаптера ресурсов?

Ответы на вопрос(1)

Ваш ответ на вопрос