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

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

Что-то еще, что мне не хватает?

1 Ответ

8 голосов
/ 14 апреля 2011

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

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

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

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

...