В чем разница между JCA JMS и Plain JMS - PullRequest
0 голосов
/ 08 мая 2019

Я новичок в JMS. Я пытаюсь понять, в чем разница между JCA JMS (Java Connector Architecture) и Plain JMS. Я пытался найти его через Интернет, но я не нашел ничего удовлетворительного. Можем ли мы написать код, используя JCA JMS, который поддерживается как для WebLogic, так и для JBoss?

1 Ответ

1 голос
/ 08 мая 2019

С точки зрения API нет никакой разницы между "JCA JMS" и "Plain JMS".Разница в том, как они ведут себя .Фабрика соединений JMS на основе JCA имеет 2 больших преимущества по сравнению с фабрикой соединений JMS:

  • Пул - Вообще говоря, когда соединение "создается" из JCA-соединенияФабрика соединений JMS базовое физическое соединение извлекается из пула, а когда соединение «закрыто», базовое физическое соединение возвращается в пул.Это устраняет снижение производительности при фактическом создании и разрушении физического соединения, что позволяет клиентам писать таким образом, который обычно считается анти-паттерном (например, «создание» и «закрытие» соединения для каждого отправленного сообщения).
  • Автоматическое включение в транзакции JTA - В большинстве случаев приложения, работающие на сервере приложений Java EE, которые принимают сообщения JMS, делают это через MDB.По умолчанию потребление сообщения в MDB (то есть выполнение onMessage) происходит в транзакции JTA.Если в процессе обработки MDB (например, для отправки сообщения) используется фабрика соединений JMS на основе JCA, то логика JCA автоматически включит сеанс в транзакцию JTA, чтобы использовать сообщение и отправить сообщение.являются атомарной операцией (при условии, что фабрика соединений на основе JCA поддерживает XA).

Я ожидаю, что вы могли бы написать код приложения, который будет вести себя одинаково как в WebLogic, так и в JBoss AS.

...