Apache CMS学习笔记3 - Message

 

  • Message

    by viki 2009/12/08

     

    种类

     

     

    class CMS_API BytesMessage : public Message

    class CMS_API MapMessage : public Message

    class CMS_API ObjectMessage : public Message

    class CMS_API StreamMessage : public Message

    class CMS_API TextMessage : public Message

    BlobMessage

     

    实现

    class AMQCPP_API ActiveMQMessage : public ActiveMQMessageTemplate<cms::Message>

     

    class AMQCPP_API ActiveMQBlobMessage : public ActiveMQMessageTemplate< cms::Message >

    class AMQCPP_API ActiveMQBytesMessage : public ActiveMQMessageTemplate< cms::BytesMessage>

    class AMQCPP_API ActiveMQMapMessage : public ActiveMQMessageTemplate<cms::MapMessage>

    class AMQCPP_API ActiveMQObjectMessage : public ActiveMQMessageTemplate<cms::ObjectMessag>

    class AMQCPP_API ActiveMQStreamMessage : public ActiveMQMessageTemplate< cms::StreamMessag>

    class AMQCPP_API ActiveMQTextMessage : public ActiveMQMessageTemplate<cms::TextMessage>

     

    Marshaller 装配器

     

    结构

    CMS-specific headers, user-defined properties, and the body.

    CMS头,用户定义属性,消息体

     

    消息

    消息被创建的时候,或者调用clearBody的时候,消息体为只写模式。

    第一次调用reset之后,消息体进入只读模式。

    消息被发送之后,发送它的客户端可以取得并且修改它,而不会影响到已经被发送的消息。

    同一个消息对象可以被发送多次。当接收到一个消息的时候,提供者调用了reset,所以消息体对于客户端来说是只读的。

    如果在只读模式下调用clearBody,消息体会被清空并且进入只写模式。

     

    读写

         * A value written as the row type can be read as the column type.

         *

         * <PRE>

         *    |        | boolean byte short int long float double String

         *    |----------------------------------------------------------

         *    |boolean |    X                                       X

         *    |byte    |          X     X    X   X                  X

         *    |short   |                X    X   X                  X

         *    |int     |                     X   X                  X

         *    |long    |                         X                  X

         *    |float   |                               X     X      X

         *    |double  |                                     X      X

         *    |String  |    X     X     X    X   X     X     X      X

         *    |----------------------------------------------------------

         * </PRE>

     

     

    以BytesMessage 为例

     

    一般都会提供各个内置类型的读写方法

     

     

    有关DeliveryMode

    message->setCMSDeliveryMode( deliveryMode );

     

    客户端发送一个消息的时候可以标记其为持久或者非持久

    如果觉得消息在传输中不能被丢失的话可以标记为持久,否则如果允许消息偶尔丢失的话,可以标记为非持久。

    这允许提供者折衷平衡消息吞吐量。

     

    投递模式仅仅作用于发送客户端到目标的传输,而不会应用到接受消息的消费者。

    接收方可以去掉消息的基础配置,比如内存限制和消息过滤器。

     

    如果投递模式是持久模式并且消息消费者的设置允许的话,消息应该并且只能被投递一次。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值