JMS消息服务

j2me_home 2005-05-24 09:25:56
 消息机制可以建立组件间的松散耦合关系。
 消息机制允许组件发送消息并由其他组件读取。
 有两种基本的消息模型——点对点模型和发布/订阅模型。点对点消息模型允许组件将消息发送到一个消息队列中。一个消息消费者是指处理消息的目标组件。
 在点对点模型中,只有一个客户处理单个消息;服务器保留没有被消费的消息。
 发布/订阅模型允许组件将消息发布到一个主题上。对发布到特定主题的消息感兴趣的组件可以订阅该主题。
 当一个发布者将一条消息发布到给定的主题上后,当前的所有订阅者都会收到此消息。
 在发布/订阅模型中,零个或多个订阅者可以消费一个已发布的消息。
 一条消息包括一个消息头、消息属性(可选的)和一个消息体(也是可选的)。消息头包含目的地和发送时间等消息。
 消息属性允许消息的接收者选择他想接收的消息模型,消息的发送者可以设置这些属性。消息接收者使用消息选择器来过滤消息,过滤操作是在服务器端完成的。
 消息驱动bean是一种与MOM很好地集成在一起的企业级bean。
 EJB容器可以使用任何一个消息驱动bean的实例来处理发送的给定消息队列或主题上的消息。通过使用消息驱动bean,组件可以异步地接收消息。
 Java消息服务(JMS)API。JMS标准化了企业级的消息机制,并为点对点模型和发布/订阅模型提供了API。
 JMS提供了五种消息类型——BytesMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。
 服务器管理员创建连接工厂、消息队列和主题。
 QueueConnectionFactory可以让用户创建一个QueueConnection。
 QueueConnection创建QueueSession。QueueSession继而创建QueueSender或QueueReceiver。
 当消息队列的接收者或主题的订阅者接收到一条消息时,消息监听器会处理此消息。
 MessageListener接口声明了onMessage方法,该方法将在新消息到来时调用。
 客户可以进行两种订阅——非持久的和持久的。非持久的订阅只能在激活订阅过程的时候收到消息。
 持久的订阅在不激活订阅过程的时候也可以接收到消息,当订阅过程非活动时,服务器会保留发送到主题上的消息,并在订阅过程重新激活时发送给订阅者。注意,如果指定了一个消息选择器来过滤消息,那么服务器只会保留满足选择器要求的消息。
 由服务器创建的TopicConnectionFactory可以创建TopicConnection。TopicConnection接着可以创建TopicSession。TopicSession继而可以创建TopicPublisher或TopicSubscriber。
 主题订阅者(或消息队列接收者)可以利用消息选择器来过滤消息。如果客户指定一个消息选择器,那么服务器只会给客户发送满足过滤要求的消息。消息选择器的语法基于SQL92。
 消息驱动的EJB或消息驱动bean是企业级JavaBean2.0版中新加入的一种企业级JavaBean类型,它是Java2企业版的1.3版本的一部分。
 消息驱动bean能够处理发送到消息队列或主题上的JMS消息。
 当接收到一条消息时,EJB容器使用任何一个可用的消息驱动bean的实例来处理该消息。
 由于任何消息驱动的EJB实例都可能使用,所以任何消息驱动的EJB都不能指定特定的客户,也不能保留客户的状态信息。
 任何给定的EJB实例可以处理从多个客户发来的消息。
 不同于会话EJB和实体EJB(它们需要提供接口),消息驱动bean只要求开发者提供bean的实现类。
 MessageDrivenBean接口声明了setMessageDrivenContext方法,并指定消息驱动上下文应该存储在实例变量messageDrivenContext中。
...全文
101 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
andyzhu98 2005-05-24
  • 打赏
  • 举报
回复
sf

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧