关闭

学习笔记——JMS消息

标签: jmsweblogicsession应用服务器getter扩展
3291人阅读 评论(0) 收藏 举报
分类:

JMS消息机制使用Message接口处理消息。

消息类型:

StreamMessage:从流中读取的消息;

MapMessage:由多个“key-value”对组成的内容。

TextMessage:普通字符串消息。

ObjectMessage:该消息包含序列化的对象。

BytesMessage:该消息内容是原始的字节流。

WebLogic还对TextMessage进行了扩展,扩展出一种新的类型XMLMessage。

 

JMS消息结构:

标准的消息头:可扩展的消息属性:消息主体内容

 

消息头是通过Message接口的setter和getter方法来设置、获取,也可有MessageProduce接口的方法操作。

消息生产者可通过调用Message对象的setXxxProperty(java.lang.String name, xxx value)方法来为JMS消息增加属性,

消息消费者可调用Message对象的getXxxProperty(java.lang.String name)方法来读取JMS消息属性。

JMS标准消息头
消息头名称 设置者 说明
JMSCorrelationID 应用程序 用于指定相关的ID,可设置为任意的字符串。使用场景:1、将请求消息中的JMSMessageID的值设置为效应消息中JMSCorrelationID的值,让其关联起来。2、将若干个相关联的消息连接在一起
JMSDeliveryMode 生产者 指定消息的传递模式。用于标识消息是否为持久性消息
JMSDestination 生产者 消息目的地的名称
JMSExpiration 生产者 指定消息什么时候过期。默认0,永不过期。
JMSMessageID 生产者 消息的唯一标识符,通常以“ID:”开头,其他字符应由服务器生成
JMSPriority 生产者 消息的优先级别,支持0~9个优先级。默认是4
JMSRedelivered 应用服务器 消息是否为重新传递的消息的旗标
JMSReplyTo 应用程序 消息的回复地址
JMSTimestamp 生产者 用于long型的整数值记录消息的发送时间
JMSType 应用程序 开发者的自定义消息类型

 

 

消息的选择器:

JMS消息选择器的表达式是一个SQL-92的字符串表达式,该表达式由JMS消息头、消息属性和SQL-92比较运算符、逻辑运算符组成,该表达式的返回值必须是一个boolean值。

每个JMS消息消费者都可以指定一个消息选择器。

Session接口提供如下方法:

MessageConsumer createConsumer(Destiantion destination, String messageSelector)

MessageConsumer createConsumer(Destination destination, string messageSelector, boolean NoLocal)

e.g.

MessageConsumer receiver = session.createConsumer(destination, "JMSPriority > 4");


消息的临时目的:

JMS消息的临时目的使用场景:JMS消息生产者向JMS服务器发送消息时,将JMSReplyTo消息头设为临时目的,JMS消息消费者收到消息后,向该临时目的回送一个响应。

Session接口提供了如下方法创建临时目的:

TemporaryQueue createTemporaryQueue()

TemporaryTopic createTemporaryTopic()

使用方法:

生产者

TemporaryQueue tempDestination = session.createTemporaryQueue();
message.setJMSReplyTo(tempDestination);
...
tempDestination.delete();


消费者

Destination replyTo = message.getJMSReplyTo();
MessageProducer sender = session.createProducer(replyTo);
TextMessage replyMessage = session.createTextMessage();
replyMessage.setText("Hello!");
sender.send(replyMessage);


 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:75611次
    • 积分:1263
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档