MQ C++API编程

MQ C++API编程

ID:37848777

大小:123.00 KB

页数:11页

时间:2019-06-01

MQ C++API编程_第1页
MQ C++API编程_第2页
MQ C++API编程_第3页
MQ C++API编程_第4页
MQ C++API编程_第5页
资源描述:

《MQ C++API编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、11.5用C++API编程现在,我们将阐述如何利用上述API来实现基本的WebSphereMQ操作,如连接到队列管理器、打开一个队列或发送/接收消息。11.5.1连接到队列管理器为了连接到队列管理器,我们将使用ImqQueueManager类(它包括WebSphereMQ队列管理器对象)。队列管理器名可以由构造器调用提供,也可以用ImqQueueManager类的setName方法来提供。ImqQueueManagerqmanager;qmanager.setName(name);或者ImqQueueManager*pmanager=newImqQueu

2、eManager(name);提示:我们在本章其余部分中都将用到qmanager对象。而后,我们可以利用ImqQueueManager的连接方法来建立连接。qmanager.connect();队列管理器的信息可以利用ImqQueueManager类来访问。11.5.2打开WebSphereMQ对象我们可以根据对象是队列还是其他类型的对象,然后利用ImqObject或ImqQueue类来打开WebSphereMQ对象。一般来说,我们都会使用ImqQueue类,除非必须要查询或设定某些对象属性。l打开队列ImqQueue类包括WebSphereMQ队列对象

3、,并向队列对象行为添加了某些信息。在可以对队列进行任何放置或获取操作前,必须利用ImqQueue类的setConnectionReference方法将包含队列的队列管理器分配给ImqQueue对象。ImqQueuepqueue;pqueue.setConnectionReference(pmanager);可在对象构建过程中提供队列名,也可以利用ImqObject类的setName方法提供队列名。pqueue.setName(queuename);当发出放置或获取调用时,将自动采用要求的选项打开队列,也就是说,不需要进行显式打开操作。如果实际的打开选项不

4、符合在队列上进行操作的要求的话,那么ImqQueue对象就会关闭并重新打开队列。在某些情况下,根据被打开队列的类型,将会导致一些额外的开销或某些问题。为了避免自动关闭和重新打开队列,我们必须利用ImqObject类的openFor方法或setOpenOptions直接设置打开选项。我们也可以利用ImqObject类的打开方法显式打开队列,但是如果打开选项已经指定的话,那么较之于这种接口提供的隐式打开,它并不能提供什么重大优势。pqueue.setOpenOptions(MQOO_OUTPUT

5、MQOO_INPUT_SHARED);或者pqueue.ope

6、nFor(MQOO_OUTPUT

7、MQOO_INPUT_SHARED);openFor方法不断添加指定的打开选项到实际分配给对象的选项。ImqQueue对象的默认打开选项是MQOO_INQUIRE。l打开动态队列动态队列不能通过重新打开方式自动关闭,因为对动态队列进行关闭操作会删除该队列。因此,打开动态队列时,我们必须指定打开选项。队列模型的名由ImqObject类的setName方法指定,动态队列名或其前缀可以用ImqQueue类的setDynamicQueueName方法确定。动态队列的实际名可以在队列打开后用dynamicQueueName方法获得

8、。pqueue.setDynamicQueueName(dynamicqueuename);l打开分布列表分布列表由ImqDistributionList类进行管理,它继承自ImqQueue类。可以利用ImqQueue类的setDistributionReference方法将任意数量的ImqQueue对象和一个ImqDistributionList对象关联起来。在打开分布列表之前,相关联的队列必须分配到队列名和包含队列的队列管理器,下面提供了一个打开分布列表的例子:ImqDistributionListdlist;ImqQueuequeueA,queue

9、B;ImqStringqueueManagerName(pmanager.name());queueA.setConnectionReference(pmanager);queueB.setConnectionReference(pmanager);queueA.setName(queuename1);queueB.setName(queuename2);queueA.setQueueManagerName(queueManagerName);queueB.setQueueManagerName(queueManagerName);queueA.setD

10、istributionListReference(dlist);queueB.s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。