`
qtlkw
  • 浏览: 307198 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JMS Header

    博客分类:
  • JMS
阅读更多
转载: http://calvinliu.iteye.com/blog/788611
    一个消息对象分为三部分:消息头(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
       一个字符串用来唯一标示一个消息。由JMS provider产生。

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

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

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

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

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

The different between a durable message and a persistent message:

A " durable message " is a message where the JMS server will hold on to a message if the subscriber is temporarily unavaliable. So the durability is defined by the relationship between a "Topc Subscriber" and the "JMS Server". Durability is applicable only to publish/Subscribe paradigm. For this to happen subscribers need to register themselves with a unique " client id ".


A " persistent message " is a message that defines the relationship between a "Message Producer" and the "JMS Server". This can be established for both
point-to-point and publish/subscribe. This has to do with the guaranteed once only delivery of the message by persisting the message after it has been recieved from the message producer.
分享到:
评论

相关推荐

    spring-integration

    - **JMS Header Mapping**:改进了JMS头部映射的机制。 - **JMS Outbound Channel Adapter**:增强了JMS出站通道适配器的功能。 - **JMS Inbound Channel Adapter**:改进了JMS入站通道适配器。 - **Datatype ...

    JMS学习笔记精心总结

    2. **消息**:消息是数据的载体,包含头(Header)、属性(Properties)和体(Payload)。头包含了路由信息,属性是可选的,体则携带实际的数据。 3. **连接工厂(ConnectionFactory)**:JMS客户端通过连接工厂...

    java中间件之jms

    - **消息头(Header)**:包含消息的元数据,如目的地、传输模式、过期时间等。 - **消息属性**:用于存储额外的信息,可以通过set和get方法进行操作。 - **消息体**:包含了消息的具体内容。 **1.2.2 JMS 生产者**...

    jms规范说明

    JMS消息包含头部(Header)、属性(Properties)和消息体(Body)。头部字段包括JMSDestination、JMSDeliveryMode、JMSMessageID等,用于描述消息的元数据;属性字段则提供了额外的信息,如消息的类型、优先级等;而...

    webshpere配置JMS

    这需要在IDE中更新服务导入的属性,确保JMSReplyTo Header指向WebSphere MQ JMS资源。 4. **配置JNDI资源**:由于SIBus JMS和WebSphere MQ JMS的实现方式不同,你需要在WebSphere Application Server管理控制台中...

    jms学习指导(weblogic下的)

    - **头(Header)**:包含用于标识和路由消息的标准字段。 - **属性(Properties)**:允许添加可选的头字段,以适应应用程序特定的需求。 - **消息体(Body)**:承载要传递的实际内容,JMS定义了多种消息类型以...

    有关JMS/或j2ee技术的说明与问题

    消息由头(Header)、属性(Properties)和体(Body)三部分组成。头包含了一些元数据,如发送者、目标等;属性允许添加额外的信息,如优先级、时间戳等;体则包含了实际要传递的数据。 2. **消息模型:** - **点...

    JMS 参考实例相关讲解

    消息具有消息头(Message Header)、属性(Message Properties)和消息体(Message Body)三部分。 2. **消息生产者(Producer)**:负责创建并发送消息到目的地。生产者通常不关心消息何时被消费,只是将消息放入...

    TongLinkQ开发手册

    - **消息头(MessageHeader)**:包含消息的基本元数据。 - **属性(Properties)**:附加在消息上的键值对形式的额外信息。 - **消息体(Body)**:实际的消息内容。 - **JMS消息查询**:用于查找消息的条件表达式。...

    JMS,ActiveMQ 内部实现的研究

    它具有头信息(Header)、属性(Property)和正文(Body)。 6. **持久化**: ActiveMQ支持消息的持久化,即使在Broker重启后,未被消费的消息也能恢复。 7. **Transports**: ActiveMQ支持多种传输协议,如TCP、SSL...

    sun-jms权威指南

    - 消息头(Header):包含消息的元数据。 - 消息属性(Properties):自定义属性集合。 - 消息体(Body):实际的消息内容。 - **JMS编程模型**: - **编程对象**: - **Connection**:负责建立与消息服务器的...

    [课堂课件讲解]Java微服务实践-Spring Boot 消息.pptx

    JMS消息头字段(Header Fields)包括: * JMSDestination:消息发送目的地 * JMSDeliveryMode:消息传递模式 * JMSMessageID:消息ID * JMSTimestamp:消息发送时间戳 * JMSCorrelationID:提供方特殊ID、应用特殊...

    RabbitMQ的五种模式源码+纯手工打的代码

    RabbitMQ是一款开源的消息队列系统,基于AMQP(Advanced Message Queuing Protocol)协议实现,广泛应用于分布式系统中,用于解耦组件、处理异步任务和实现负载均衡。本资源包含RabbitMQ的五种核心模式的源码,全部...

    activemq学习资料.docx

    * 消息头(Header):每个消息头字段都有相应的getter和setter方法。 * 消息属性(Property):如果需要除消息头字段以外的值,那么可以使用消息属性。 * 消息体(Body):JMS定义的消息类型有TextMessage、...

    ActiveMQ基础知识

    1.5.1 消息头(Header) * Message ID:是指消息的唯一标识符。 * Correlation ID:是指关联消息的标识符。 * Reply To:是指回复消息的目的地。 * Type:是指消息的类型。 1.5.2 消息体(Body) * TextMessage:...

    activeMQ总结

    4. 消息:消息由消息头(header)、属性(property)和消息体(body)组成。消息体包括五种类型:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。 通信方式 JMS提供了两种通信模式: 1. 点...

    activeMq 实战

    - **消息头** (`Message Header`):每个消息头字段都有相应的 getter 和 setter 方法。 - **消息属性** (`Message Properties`):如果需要除消息头字段以外的值,则可以使用消息属性。 - **消息体** (`Message Body`...

Global site tag (gtag.js) - Google Analytics