ImageVerifierCode 换一换
格式:DOC , 页数:56 ,大小:181KB ,
资源ID:13031991      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13031991.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(activemq-cpp开发手册Word格式文档下载.doc)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

activemq-cpp开发手册Word格式文档下载.doc

1、消息在broker上的目的地Queue :消息队列 Topic :主题 Message :消息 Producer :消息产生者 Consumer :消息消费者Client :客户端,生产者和消费者都在客户端上 Server :Activemq服务器BrokerUri :客户端访问服务器上broker时的Uri2 其它资料请参考开发前准备在开发前必须先安装activemq-cpp及winkeemq-cpp库,具体步骤参考activemq-cpp安装及使用文档.doc3 CMS 3.1 概述CMS(stands for C+ Messaging Service)是一组C+应用程序接口(C+ API

2、),它提供创建、发送、接收、读取消息的服务。定义了一组和Sun公司和它的合作伙伴设计的CMS API相同的公共应用程序接口和相应语法,使得C+程序能够和其他消息组件进行通信。 CMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC (Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 CMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。CMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 CMS 客户机向另一个客户机发送消息。消息是 CMS 中的一种类型对象,由两部分组成:报头和消

3、息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本 (TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。 消息收发系统是异步的,也就是说,CMS 客户机可以发送消息而不必等待回应。比较可知,这完全不同于基于 RPC 的(基于远程过程的)系统,如 EJB 、CORBA 和 Java RMI 的引用实现。在

4、 RPC 中,客户机调用服务器上某个分布式对象的一个方法。在方法调用返回之前,该客户机被阻塞;该客户机在可以执行下一条指令之前,必须等待方法调用结束。在 CMS 中,客户机将消息发送给一个虚拟通道(主题或队列),而其它 CMS 客户机则预订或监听这个虚拟通道。当 CMS 客户机发送消息时,它并不等待回应。它执行发送操作,然后继续执行下一条指令。消息可能最终转发到一个或许多个客户机,这些客户机都不需要作出回应。CMS的通用接口集合以异步方式发送或接收消息。异步方式接收消息显然是使用间断网络连接的客户 机,诸如移动电话和PDA的最好的选择。另外, CMS采用一种宽松结合方式整合企业系统的方法,其主

5、要的目的就是创建能够使用跨平台数据信息的、可移植的企业级应用程序,而把开发人力解放出来。CMS消息服务支持两种消息模型:Point-to-Point消息(P2P)和发布订阅消息(Publish Subscribe messaging,简称Pub/Sub)。CMS规范并不要求供应商同时支持这两种消息模型,但开发者应该熟悉这两种消息模型的优势与缺点。P2P消息模型是在点对点之间传递消息时使用。如果应用程序开发者希望每一条消息都能够被处理,那么应该使用P2P消息模型。与Pub/Sub消息模型不同,P2P消息总是能够被传送到指定的位置。Pub/Sub模型在一到多的消息广播时使用。如果一定程度的消息传递

6、的不可靠性可以被接受的话,那么应用程序开发者也可以使用Pub/Sub消息模型。换句话说,它适用于所有的消息消费程序并不要求能够收到所有的信息或者消息消费程序并不想接收到任何消息的情况。CMS通过允许创建持久订阅来简化时间相关性,即使消息预订者未激活也可以接收到消息。此外,使用 持久订阅还可通过队列提供灵活性和可靠性,而仍然允许消息被发给许多的接收者。 Topic Subscriber topic Subscriber = (topic, subscriptionName); Connection对象表示了到两种消息模型中的任一种的消息系统的连接。服务器端和客户机端对象要求管理创建的CMS连接的

7、状态。连接是由 Connection Factory创建的并且通过JNDI查寻定位。stop (); stop ();应用需要用到的属性; 2. 消息头中原有的一些可选属性; 3. CMS Provider 需要用到的属性。 标准的CMS 消息头包含以下属性: CMSDestination -消息发送的目的地 CMSDeliveryMode -传递模式, 有两种模式: PERSISTENT 和NON_PERSISTENT,PERSISTENT 表示该消息一定要被送到目的地,否则会导致应用错误。NON_PERSISTENT 表示偶然丢失该消息是被允许的,这两种模式使开发者可以在消息传递的可靠性和

8、吞吐量之间找到平衡点。 CMSMessageID 唯一识别每个消息的标识,由CMS Provider 产生。 CMSTimestamp 一个消息被提交给CMS Provider 到消息被发出的时间。 CMSCorrelationID 用来连接到另外一个消息,典型的应用是在回复消息中连接到原消息。 CMSReplyTo 提供本消息回复消息的目的地址。 CMSRedelivered 如果一个客户端收到一个设置了CMSRedelivered 属性的消息,则表示可能该客户端曾经在早些时候收到过该消息,但并没有签收(acknowledged)。 CMSType 消息类型的识别符。 CMSExpirati

9、on 消息过期时间,等于QueueSender 的send 方法中的timeToLive 值或TopicPublisher 的publish 方法中的timeToLive 值加上发送时刻的GMT 时间值。如果timeToLive值等于零,则CMSExpiration 被设为零,表示该消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地,则该消息被清除。 CMSPriority 消息优先级,从0-9 十个级别,0-4 是普通消息,5-9 是加急消息。CMS 不要求CMS Provider 严格按照这十个优先级发送消息,但必须保证加急消息要先于普通消息到达。 消息体(Body) -

10、 CMS API 定义了4种消息体格式,也叫消息类型,你可以使用不同形式发送接收数据并可以兼容现有的消息格式,下面描述这4种类型:消息类型消息体TextMessagestring对象,如xml文件内容MapMessage名/值对的集合,名是string对象,值类型可以是c+任何基本类型BytesMessage字节流ObjectMessage对象类型Message没有消息体,只有消息头和属性。下例演示创建并发送一个TextMessage到一个队列:TextMessage message = ();(msg_text); 构造函数SimpleProducer( const std:string&

11、brokerURI, unsigned int numMessages, const std: destURI, bool useTopic = false, bool clientAck = false ) connection = NULL; session = NULL; destination = NULL; producer = NULL; this-numMessages = numMessages;useTopic = useTopic;brokerURI = brokerURI;destURI = destURI;clientAck = clientAck;initialize

12、();virtual SimpleProducer() cleanup();3.1.1 初始化及销毁 try if( destination != NULL ) delete destination; catch ( CMSException& e ) (); destination = NULL; if( producer != NULL ) delete producer; producer = NULL; try if( session != NULL ) session-close(); if( connection != NULL ) connection-= NULL ) delete session; session = NULL;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1