对于消息系统/处理消息 - 使用MDB;不要使用Entity Bean或Session Bean。请告诉我原因。
感谢Adv
RW
答案 0 :(得分:0)
MDB旨在接受消息而其他消息则不接受。来自an old Sun tutorial但still the same in the up to date version
消息驱动的bean和会话之间最明显的区别 和实体bean是客户端不访问消息驱动的bean 通过接口。接口在定义部分中描述 带接口的客户端访问。与会话或实体bean不同,a 消息驱动的bean只有一个bean类
和
会话bean允许您发送JMS消息并接收它们 同步但不是异步。避免捆绑服务器 资源,不要使用阻塞同步接收 服务器端组件;通常,不应发送JMS消息或 同步收到。要异步接收消息,请使用 消息驱动的bean。
换句话说:在会话bean中,只能在调用bean时收到消息。应用服务器将自动调用附加到接收消息的目标(队列或主题)的MDB的onMessage方法。这意味着MDB将保证尽快处理每条消息,这是您无法保证使用会话bean的。