上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 36 下一页
  2012年5月29日
摘要: 我们先来看看在Sun OpenMQ系统中 一个持久、可靠的方式传送消息的步骤是怎么样的,如图所示:查看大图请点击这里在传送过程中,系统处理JMS消息分为以下两类: ■ 有效负荷消息,由生成方发送给使用方的消息。 ■ 控制消息,代理与客户端运行时环境之间传送的私有消息,用于确保有效负荷消息成功传送和控制跨连接的消息流。详细流程如下:消息生成 1. 客户端运行时环境通过连接将消息从消息生成方传送到代理。消息处理和路由 2. 代理从连接中读取消息并将此消息放入相应的目的地中。 3. 代理将(持久性)消息放入数据存储库中。 4. 代理向消息生成方的客户端运行时环境确认已收到消息。 5. 代理确定消息的 阅读全文
posted @ 2012-05-29 15:27 懒懒的呐喊 阅读(573) 评论(0) 推荐(0) 编辑
摘要: TemporaryQueue和TemporaryTopic,从字面上就可以看出它们是“临时”的目的地。可以通过Session来创建,例如:TemporaryQueue replyQueue = session.createTemporaryQueue();虽然它们是由Session来创建的,但是它们的生命周期确实整个Connection。如果在一个Connection上创建了两个Session,则 一个Session创建的TemporaryQueue或TemporaryTopic也可以被另一个Session访问。那如果这两个Session是 由不同的Connection创建,则一个Sessio 阅读全文
posted @ 2012-05-29 15:21 懒懒的呐喊 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 在EJB3中,一个MDB(消息驱动Bean)就是一个实现了MessageListener接口的POJO。下面就是一个简单的MDB。@MessageDriven(activationConfig={@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),@ActivationConfigProperty(propertyName="destination",propertyValue="queue/tes 阅读全文
posted @ 2012-05-29 15:21 懒懒的呐喊 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 前面讲过JMSCorrelationID主要是用来关联多个Message,例如需要回复一个消息的时候,通常把回复的消息的 JMSCorrelationID设置为原来消息的ID。在下面这个例子中,创建了三个消息生产者A,B,C和三个消息消费者A,B,C。生产者A给消费 者A发送一个消息,同时需要消费者A给它回复一个消息。B、C与A类似。简图如下:生产者A-----发送----〉消费者A-----回复------〉生产者A 生产者B-----发送----〉消费者B-----回复------〉生产者B 生产者C-----发送----〉消费者C-----回复------〉生产者C需要注意的是,所有的发 阅读全文
posted @ 2012-05-29 15:20 懒懒的呐喊 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 前面的例子中创建一个消息消费者使用的是:sesssion.createConsumer(destination)另外,还提供了另一种方式:sesssion.createConsumer(destination, selector)这里selector是一个字符串,用来过滤消息。也就是说,这种方式可以创建一个可以只接收特定消息的一个消费者。Selector的格式是类似于 SQL-92的一种语法。可以用来比较消息头信息和属性。 下面的例子中,创建两个消费者,共同监听同一个Queue,但是它们的Selector不同,然后创建一个消息生产者,来发送多个消息。import javax.jms.Conne 阅读全文
posted @ 2012-05-29 15:19 懒懒的呐喊 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 在下面的例子中,分别发送一个Persistent和nonpersistent的消息,然后关闭退出JMS。import javax.jms.Connection;import javax.jms.DeliveryMode;import javax.jms.MessageProducer;import javax.jms.Queue;import javax.jms.Session;import org.apache.activemq.ActiveMQConnectionFactory;import org.apache.activemq.command.ActiveMQQueue;public 阅读全文
posted @ 2012-05-29 15:18 懒懒的呐喊 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 在下面的例子中,首先创建两个Queue,发送者给一个Queue发送,接收者接收到消息之后给另一个Queue回复一个Message,然后再创建一个 消费者来接受所回复的消息。import javax.jms.Connection;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.MessageProducer;import javax.jms.Queue;import ja 阅读全文
posted @ 2012-05-29 15:18 懒懒的呐喊 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload)。对于StreamMessage和 MapMessage,消息本身就有特定的结构,而对于TextMessage,ObjectMessage和BytesMessage是无结构的。一个 消息可以包含一些重要的数据或者仅仅是一个事件的通知。 消息的Headers部分通常包含一些消息的描述信息,它们都是标准的描述信息。包含下面一些值: JMSDestination消息的目的地,Topic或者是Queue。 JMSDeliveryMode消息的发送模式:persistent或nonpersiste.. 阅读全文
posted @ 2012-05-29 15:17 懒懒的呐喊 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 与Queue不同的是,Topic实现的是发布/订阅模型,在下面的例子中,启动2个消费者共同监听一个Topic,然后循环给这个Topic中发送多个 消息。import javax.jms.Connection;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageListener;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms. 阅读全文
posted @ 2012-05-29 15:16 懒懒的呐喊 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 消息的消费者接收消息可以采用两种方式:1、consumer.receive() 或 consumer.receive(int timeout);2、注册一个MessageListener。采用第一种方式,消息的接收者会一直等待下去,直到有消息到达,或者超时。后一种方式会注册一个监听器,当有消息到达的时候,会回调它的 onMessage()方法。下面举例说明:MessageConsumer comsumer = session.createConsumer(queue);comsumer.setMessageListener(new MessageListener(){@Overridepubl 阅读全文
posted @ 2012-05-29 15:14 懒懒的呐喊 阅读(456) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 36 下一页