`
hhhhh-kk#qq.com
  • 浏览: 57592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JMS 消息头

阅读更多
深入掌握JMS(六):消息头
2009年03月31日 星期二 09:43
一个消息对象分为三部分:消息头(Headers),属性(Properties)和消息体(Payload)。对于StreamMessage和MapMessage,消息本身就有特定的结构,而对于TextMessage,ObjectMessage和BytesMessage是无结构的。一个消息可以包含一些重要的数据或者仅仅是一个事件的通知。

    消息的Headers部分通常包含一些消息的描述信息,它们都是标准的描述信息。包含下面一些值:

  JMSDestination
       消息的目的地,Topic或者是Queue。

  JMSDeliveryMode
        消息的发送模式:persistent或nonpersistent。前者表示消息在被消费之前,如果JMS提供者DOWN了,重新启动后消息仍然存在。后者在这种情况下表示消息会被丢失。可以通过下面的方式设置:
       Producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

       JMSTimestamp
       当调用send()方法的时候,JMSTimestamp会被自动设置为当前事件。可以通过下面方式得到这个值:
       long timestamp = message.getJMSTimestamp();

  JMSExpiration
       表示一个消息的有效期。只有在这个有效期内,消息消费者才可以消费这个消息。默认值为0,表示消息永不过期。可以通过下面的方式设置:
       producer.setTimeToLive(3600000); //有效期1小时 (1000毫秒 * 60秒 * 60分)

  JMSPriority
       消息的优先级。0-4为正常的优先级,5-9为高优先级。可以通过下面方式设置:
       producer.setPriority(9);

  JMSMessageID
       一个字符串用来唯一标示一个消息。

  JMSReplyTo
       有时消息生产者希望消费者回复一个消息,JMSReplyTo为一个Destination,表示需要回复的目的地。当然消费者可以不理会它。

  JMSCorrelationID
       通常用来关联多个Message。例如需要回复一个消息,可以把JMSCorrelationID设置为所收到的消息的JMSMessageID。

  JMSType
       表示消息体的结构,和JMS提供者有关。

  JMSRedelivered
       如果这个值为true,表示消息是被重新发送了。因为有时消费者没有确认他已经收到消息或者JMS提供者不确定消费者是否已经收到。

    除了Header,消息发送者可以添加一些属性(Properties)。这些属性可以是应用自定义的属性,JMS定义的属性和JMS提供者定义的属性。我们通常只适用自定义的属性。

    后面会讲到这些Header和属性的用法。
分享到:
评论

相关推荐

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    6.4.2 JMS消息头和消息属性 253 6.4.3 重用消息对象 254 6.4.4 JMS传递方式和有效时间 255 6.4.5 设置消息的优先级 256 6.4.6 消息的确认方式 256 6.4.7 消息选择器 257 6.4.8 消息的临时目的261 6.5 使用队列浏览器...

    JMS模拟ActiveMQ代理服务器并实现消息收发

    java JMS模拟ActiveMQ代理服务器并实现消息收发,这里是工程源码,已经过测试,可以直接使用。

    osb12cjms消息发送简单示例

    通过使用JDveloper开发工具在Oracle service business 12c 的环境下创建简单的jms消息发送示例

    C#实现同Active MQ通讯的方法

    本文实例讲述了C#实现同Active MQ通讯的方法。分享给大家供大家参考...Message 由消息头,属性和消息体三部份组成。 Active MQ支持过滤机制,即生产者可以设置消息的属性(Properties),该属性与消费者端的Selector对

    WebLogicServer9.2上的消息级加密入门

    从支持选择的关键存储、启用消息级加密以及在SOAP头中发送X.509证书开始,您将学习如何支持消息级机密性。您将看到如何诊断安全策略,从而通过从基于.NET的客户端发送SOAP消息来实现功能完整性、性能和互操作性。沿...

    NCV6X-信息交换平台技术红皮书

    1.3 JMS Client消息交互图 62 1.5解决方案 62 2.JMS传输模式 64 3. JMS Client For NC6.0 65 4 大文件传输模式 85 附录 86 1发送结果错误码 86 2 K系统自定义项目档案样本defdoc.xml 89 常见问题 90

    外部交换平台操作手册.zip

    加密类注册 56 第七章 扩展 57 第八章 JMS及大文件传输模式 59 1信息交换平台异步通信解决方案 59 1.1信息交换平台现状及存在的问题 59 1.2需求分析 59 1.3 JMS简介 60 1.3 JMS Client消息交互图 62 1.5解决方案 62...

    Java优化编程(第2版)

    9.1 jms消息收发模式及其各自适用场合 9.2 发送与接收jms消息 9.3 优化jms中的会话对象 9.4 优化连接对象 9.5 优化消息目的地destination及消息生产者与消费者 9.6 优化消息对象及合理使用事务机制 9.7 影响jms性能...

    sample-management-system:示例客户管理系统和邮件应用程序,从消息系统读取和写入

    JMS 4.1.4/Spring 支持6. Java 邮件 API 7. 嵌入式码头8. 消息代理 - ActiveMQ 9. Maven应用程序演示了 Java EE 8、Spring MVC 3.2.3 的一些关键特性,例如1. 表单/bean 验证2. 构建 RESTful JSON 服务3. 使用Java...

    axis-bin-1_4.zip

    支持WSDL。 提供转化WSDL为Java类的工具。 提供例子程序。 提供TCP/IP数据包监视工具。...基于JMS的传输。 独立的服务器(但需要HTTP 服务器和Servlet容器支持)。 提供客户端、服务器端相关应用程序的样例。

    java开源包1

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包11

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包2

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包3

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包6

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包5

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包10

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

    java开源包4

    Chronicle 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库,延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。 google-api-translate-java(Java 语言对Google翻译引擎的封装类库) 语音识别程序 ...

Global site tag (gtag.js) - Google Analytics