JMS学习笔记(三)

在这一节中,我着重介绍一下JMS1.1中的公共接口,以及该接口下的重要方法

ConnectionFactory

ConnectionFactory是一个可以从JNDI检索的受管理对象,它建立了到提供者的连接。它包含createConnection()方法,该方法返回了一个Connection对象。



Connection

Connection封装了一个连接到提供者的活动连接。它的一些方法包括:

  • createSession(boolean, int):返回一个Session对象。boolean参数指出Session是否被处理,int则指出确认模式
  • start():激活提供者发送消息。
  • stop():临时停止消息的发送,可以用start()重新开始发送。
  • close():关闭到提供者的连接,并释放以它的名义占用的所有资源。

Session

Session是用来发送和接收消息的单线程的上下文。它的一些方法包括:

  • createProducer(Destination):返回一个MessageProducer对象,向指定的Destination发送消息。
  • createConsumer(Destination):返回一个MessageConsumer对象来接收来自指定Destination的消息。
  • commit():提交当前事务的所有使用的或者产生的消息。
  • rollback():回滚当前事务所有使用的或者产生的消息。
  • create<MessageType>Message(...):一组返回<MessageType>Message的方法——例如,MapMessageTextMessage等。

Destination

Destination封装消息的目的地。它是一个从 JNDI 检索的受管理对象。


MessageProducer

MessageProducer用于发送消息。它的一些方法包括:

  • send(Message):发送指示的Message
  • setDeliveryMode(int):设置后续消息的发送模式,有效值为DeliveryMode.PERSISTENTDeliveryMode.NON_PERSISTENT
  • setPriority(int):设置后续发送消息的优先级,有效值为 0 9
  • setTimeToLive(long):设置后续发送消息失效前的持续时间,以毫秒计。

MessageConsumer

MessageConsumer被用来接收消息。它的一些方法包括:

  • receive():返回下一发到达的消息,该方法在消息可用之前会受到阻塞。
  • receive(long):接收在long毫秒内到达的下一个消息,如果在时间限制内没有消息到达,则该方法返回null
  • receiveNoWait:如果有一个消息立即可用,则接收下一个消息,如果没有消息可用,则该方法返回null
  • setMessageListener(MessageListener):设置MessageListenerMessageListener对象在消息到达时接收它们,也就是异步接收

MessageListener

MessageListener是有一个单一方法——onMessage(Message)——的接口,它提供了消息的异步接收和处理。

应该通过客户机类和该类使用setMessageListener(MessageListener)方法传递给MessageConsumer对象的实例来实现这个接口。在消息到达目的地时,用onMessage(Message)将它传递给对象。


对于之上的这些接口,都是JMS1.1中的重要接口以及其下的重要方法。

针对现在程序的开发现状,我们不可能做到发送方和接收方都要一直进行通信,换句话说,也就是接收方不一定要实时的接收消息。现在基于异步消息通讯的机制,才能适应企业级应用开发。所以,对于这些接口中真正实现的异步接口,最重要的就是MessageListener接口。

版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(JMS学习笔记(三))