在Java中,除了MDB以外,还有哪些其他可能性可以对消息使用者进行编程?

我已经阅读到有许多处理JMS(Java消息服务)消息的方法,MDB(消息驱动Bean)只是其中一种。那么,除了Java中的MDB以外,还有什么其他可能性可以对消息使用者进行编程?

ww1610 回答:在Java中,除了MDB以外,还有哪些其他可能性可以对消息使用者进行编程?

如JMS 2.0规范的第8章所述:

  • 在简化的(即JMS 2.0)API中,使用者由JMSConsumer对象表示,并使用JMSContext上的几种方法之一创建。
  • 在传统的(即JMS 1.1)API中,使用者由MessageConsumer对象表示,并使用Session上的几种方法之一创建。
  • 在用于点对点消息传递的特定于域的API(即JMS 1.0)中,使用者由QueueReceiver对象表示,并使用QueueSession上的几种方法之一创建。
  • li>
  • 在用于发布订阅消息传递的域指定(即JMS 1.0)API中,使用者由TopicSubscriber对象表示,并使用TopicSession上的几种方法之一创建。

为清楚起见,JMS规范的更高版本与早期版本向后兼容,因此,如果您使用JMS 1.1客户端实现,则可以使用1.1和1.0 API;如果您使用JMS 2.0客户端实现,则可以使用2.0 ,1.1和1.0 API。

每种类型的消息使用者都可以同步或异步接收消息。

MessageConsumerJMSConsumerQueueReceiverTopicSubscriber可以使用以下方法同步接收消息:

  • Message receive():返回为消费者产生的下一条消息
  • Message receive(long timeout):返回产生的下一条消息 在指定的超时时间内到达的消费者
  • Message receiveNoWait():如果有立即可用的消息,则返回为cnsumer生成的下一条消息。

每种类型的消息使用者都可以使用使用者的MessageListener方法注册一个实现JMS setMessageListener()接口的对象。当消息到达消费者时,提供者通过调用侦听器的onMessage方法来传递消息。

本文链接:https://www.f2er.com/2980891.html

大家都在问