0

对于消息传递系统/处理消息 - 使用 MDB;不要使用实体 Bean 或会话 Bean。请告诉我原因。

感谢 Adv
RW

4

1 回答 1

0

MDB 旨在接受消息,而其他则不接受。来自旧的 Sun 教程,但在最新版本中仍然相同

消息驱动 bean 与会话和实体 bean 之间最明显的区别是客户端不通过接口访问消息驱动 bean。接口在使用接口定义客户端访问部分中进行了描述。与会话或实体 bean 不同,消息驱动 bean 只有一个 bean 类

会话 bean 允许您发送 JMS 消息并以同步方式而非异步方式接收它们。为避免占用服务器资源,请勿在服务器端组件中使用阻塞同步接收;一般来说,JMS 消息不应该同步发送或接收。要异步接收消息,请使用消息驱动的 bean。

换句话说:在会话 bean 中,您只能在调用 bean 时收到消息。应用服务器将自动调用附加到接收消息的目标(队列或主题)的 MDB 的 onMessage 方法。这意味着 MDB 将保证在每条消息可用时立即处理它,这是会话 bean 无法保证的。

于 2012-07-01T09:57:06.717 回答