JMS使用者和消息驱动Bean(MDB)之间有什么区别

rob*_*jaj 10 ejb jms java-ee message-driven-bean java-ee-5

异步JMS(Java消息服务)使用者与实际MDB(消息驱动Bean)之间是否存在任何差异.我看到的唯一区别是MDB类具有@MessageDriven异步JMS使用者没有的注释.

还有我遗失的其他东西?

anu*_*ava 8

您的MDB在您的案例中充当JMS使用者.MDB是EJB特定术语,而消费者是JMS术语.JMS使用者也可以是消息驱动的POJO,从技术上讲它不是 EJB.

评论的答案

A1.是的,可以说普通的JMS使用者不能像EJB一样进行池化/管理,除非JMS使用者恰好由EJB或Spring容器等容器管理.

A2.MDB实际上只满足与EJB的异步通信的要求.当它们基于JMS时,您的MDB在技术上也是JMS消费者.但是MDB也可以是非基于JMS的,例如:基于JCA(Java连接器体系结构)的MDB.有关非基于JMS的MDB的更多详细信息,请参阅此帖子:http://debupanda.blogspot.com/2006/08/using-ejb-30-message-driven-bean-with.html