Вам необходимо зафиксировать транзакцию XA, чтобы сообщения могли быть использованы. В JMS вызов функции: XAResource.commit(xid, true)
Кроме того, есть ли причина использовать CountDownLatch? Если вы хотите получать сообщения синхронно, вы можете не устанавливать прослушиватель сообщений и вызывать MessageConsumer.receive()
. Утешение дает базовый пример, показывающий, как использовать транзакции XA. См. XATransactions.java
в каталоге примеров API.
Обратите внимание, что образец кода вручную управляет транзакцией XA, вызывая соответствующие методы XAResource, такие как XAResource.commit (). Транзакции XA обычно используются на серверах приложений Java EE, которые содержат менеджер транзакций, для управления жизненным циклом транзакций XA.