开发 C++ 应用程序
IBM® MQ 提供了相当于 IBM MQ 对象的 C++ 类以及相当于数组数据类型的一些其他类。 它提供许多不能通过 MQI 使用的功能。
IBM WebSphere® MQ 7.0, IBM MQ 编程接口的增强功能不会应用于 C++ 类。
IBM MQ C++ 提供了以下功能:
- 自动初始化 IBM MQ 数据结构。
- 及时的队列管理器连接和队列开启。
- 隐式队列关闭和队列管理器断开连接。
- 死信消息头传输和接收。
- IMS 网桥头传输和接收。
- 参考消息头传输和接收。
- 触发器消息接收。
- CICS® bridge 头传输和接收。
- 工作头传输和接收。
- 客户机通道定义。
以下 Booch 类图显示了所有类与过程 MQI (例如使用 C) 中具有句柄或数据结构的那些 IBM MQ 实体大致平行。 所有类都继承自 ImqError 类 (请参阅 ImqError C++ 类 ) ,这允许将错误条件与每个对象相关联。


要正确解释 Booch 类图,请注意以下约定:
- 方法和需要注意的属性显示在类名称之下。
- 云内的小三角形表示抽象类。
- 继承由指向父类的箭头来表示。
- 云之间未加装饰的线表示类之间的协作关系。
- 使用数字装饰的线表示两个类之间的引用关系。 数字表示在任何一个时刻可以参与特定关系的对象数量。
在队列管理类的 C++ 方法特征符中使用以下类和数据类型 (请参阅 图 2 ) 和项处理类 (请参阅 图 1 ):
- ImqBinary 类 (请参阅 ImqBinary C++ 类 ) ,用于封装字节数组,例如 MQBYTE24。
- ImqBoolean 数据类型,定义为 typedef unsigned char ImqBoolean。
- ImqString 类 (请参阅 ImqString C++ 类 ) ,它封装了诸如 MQCHAR64之类的字符数组。
具有数据结构的实体包含在适当的对象类中。 个别数据结构字段 (请参阅 C++ 和 MQI 交叉引用 ) 使用方法进行访问。
具有句柄的实体位于 ImqObject 类层次结构下 (请参阅 ImqObject C++ 类 ) 并提供 MQI 的封装接口。 这些类的对象显示智能行为,可以减少相对于过程 MQI 所需的方法调用数量。 例如,您可以根据需要建立和丢弃队列管理器连接,也可以使用适当的选项打开队列,然后再将其关闭。
ImqMessage 类(请参阅 ImqMessage C++ 类 )封装了 MQMD 数据结构,并通过提供缓存缓冲设施,充当用户数据和项目的存放点(请参阅 C++ 中的读取消息 )。 您可以为用户数据提供固定长度的缓冲区,并多次使用缓冲区。 存在于缓冲区中的数据量会随着使用而变化。 或者,系统可以提供和管理灵活长度的缓冲区。 缓冲区的大小(可用于接收消息的量)和实际使用量(传输的字节数或实际接收的字节数)都是重要的考虑因素。