一个消息对象分为三部分:消息头(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和属性的用法。
文章来源:http://www.cnblogs.com/guthing/archive/2010/06/12/1757158.html
相关推荐
### 深入掌握 JMS(Java Message Service) #### JMS 基础概念 - **JMS**(Java Message Service)是一种Java平台中的消息中间件技术标准,它定义了一套标准API,用于应用程序之间的消息传递。JMS的出现极大地简化...
《JMS 1.1.jar:Java消息服务与Maven的深度解析》 在Java开发领域,消息服务(Java Message Service,简称JMS)扮演着至关重要的角色,它为...理解和掌握JMS原理及操作,对于提升Java应用的稳定性和扩展性至关重要。
JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。本资源为chm格式,深入介绍了ActiveMQ的应用。
通过阅读和理解这些示例,你可以更好地掌握JMS和Camel在实际项目中的应用。 总之,JMS提供了可靠的异步通信方式,而Apache Camel则通过其灵活的路由规则和组件,简化了JMS与其他系统的集成。理解和掌握这些技术,...
**JMS消息队列机制详解** Java Message Service(JMS)是Java平台中用于企业级应用间异步通信的一种标准...通过深入理解和实践,我们可以掌握如何利用JMS和ActiveMQ实现异步处理、系统解耦以及错误恢复等多种功能。
总的来说,JMS是构建高可用、分布式系统的重要工具,理解和掌握JMS对于提升Java开发者在企业级应用开发中的能力至关重要。通过深入学习和实践,我们可以更好地利用JMS来解决复杂系统的异步通信问题。
接着,**《深入掌握JMS》** 进一步探讨了JMS的高级特性,如消息选择器、消息组、消息优先级以及事务管理。这部分内容有助于读者解决更复杂的消息处理需求,例如实现特定条件的消息过滤,或者确保消息的有序处理。 *...
【JBOSST建立JMS应用实例】 JBOSST(Java Business Open Source ...通过实践这些步骤,开发者可以掌握如何在JBOSST环境中利用JMS进行高效的数据通信。同时,提供的文档和项目文件为深入理解和实践提供了丰富的资源。
理解并掌握JMS的基本原理和WebLogic的相关配置,将有助于开发人员更好地利用这一强大的通信机制,实现高效的数据交换。通过阅读《Weblogic环境下JMS配置.doc》文档,可以获取更详细的步骤和配置示例,进一步提升对这...
在这个"JMS demo 及 资料"的压缩包中,我们可能找到了一些关于JMS的基础教程和示例代码,帮助初学者了解和掌握JMS的基本用法。 JMS的核心概念主要包括以下几个部分: 1. **消息**: 消息是JMS中的基本数据单元,它...
**正文** 在IT行业中,Java消息服务(Java Message Service,JMS)是一种标准接口,用于在应用程序之间交换异步消息。它提供了一种可靠的消息...通过深入研究该项目,可以掌握JMS和Spring集成的关键技术和最佳实践。
本文将深入探讨Spring JMS的核心功能,并通过一个点对点(P2P)的消息系统示例来展示其工作原理。 首先,Spring JMS的核心在于`org.springframework.jms.core`包中的JMS模板类。这个模板类负责管理JMS资源,如连接...
Java消息服务(Java Message Service,简称JMS...对于开发分布式、高并发的企业级应用,掌握JMS是必不可少的技能。同时,文档还可能涵盖了错误处理、性能优化、安全性和与其他技术(如JEE、Spring框架)的集成等内容。
本篇文章将深入探讨一个简单的JMS客户端应用的实现及其关键知识点。 1. **JMS概述** JMS是Java平台的标准接口,允许开发者通过消息传递在不同的应用程序之间进行通信。它支持两种消息模型:点对点(Point-to-Point...
Java消息服务(Java Message Service,简称JMS)是Java平台上的一个标准API,它为分布式环境中...通过深入研究这份资料,你可以更好地掌握如何在J2EE应用中有效地利用JMS进行通信和数据交换,提升系统的稳定性和效率。
本压缩包文件“消息中间件和JMS消息服务.rar”可能包含了关于这两个主题的详细资料,旨在帮助读者深入理解其概念、工作原理以及实际应用。 消息中间件是一种软件,它允许应用程序之间通过消息进行通信,而不是直接...