В чем разница между потребителем JMS и компонентами, управляемыми сообщениями (MDB)

Есть ли разница между асинхронным потребителем JMS (служба обмена сообщениями Java) и фактическим MDB (компонентом, управляемым сообщениями). Единственная разница, которую я вижу, заключается в том, что класс MDB имеет аннотацию @MessageDriven, которой нет у асинхронного потребителя JMS.

Что-нибудь еще, что мне не хватает?


person robin bajaj    schedule 13.04.2011    source источник


Ответы (1)


В вашем случае ваш MDB работает как потребитель JMS. MDB — это специальный термин EJB, а потребитель — это термин JMS. Потребитель JMS также может быть POJO, управляемым сообщениями, который технически не является EJB.

Ответы на комментарии

А1. Да, правильно сказать, что простой потребитель JMS не может объединяться/управляться как EJB, если только этот потребитель JMS не управляется контейнерами, такими как контейнеры EJB или Spring.

А2. На самом деле MDB просто выполняет требование асинхронной связи с EJB. Когда они основаны на JMS, ваша MDB технически также является потребителем JMS. Но MDB также может быть основана на не JMS, например: MDB на основе JCA (Java Connector Architecture). Вы можете увидеть этот пост для получения более подробной информации о MDB на основе не-JMS: http://debupanda.blogspot.com/2006/08/using-ejb-30-message-driven-bean-with.html

person anubhava    schedule 13.04.2011
comment
спасибо за ваш ответ ... для дальнейшего уточнения того, что вы сказали, я думаю, было бы правильно сказать, что простой потребитель JMS не может быть объединен / контролироваться (с точки зрения жизненного цикла) / администрироваться с использованием контейнера EJB, как может быть MDB? Это правильно ? - person robin bajaj; 14.04.2011
comment
просто любопытно - в каких других инфраструктурах обмена сообщениями могут работать MDB ... кроме JMS? [этот вопрос был поднят из вашего комментария о том, что ваш MDB работает как потребитель JMS в вашем случае] Я знаю, что они могут, но не видел много ссылок из поиска Google, указывающих на другие варианты, в которых можно использовать MDB... - person robin bajaj; 14.04.2011
comment
@rooban bajwa: Ответил на ваши вопросы выше, так как место для комментариев ограничено. - person anubhava; 14.04.2011