IBM MQ 对象模型
IBM® MQ 对象模型由类,方法和属性组成。
IBM MQ 对象模型由以下部分组成:
- 类 表示熟悉的 IBM MQ 概念,例如队列管理器,队列和消息。
- 与 MQI 调用对应的每个类上的方法。
- 对应于 IBM MQ 对象的属性的每个类上的 属性 。
使用 IBM MQ 对象模型创建 IBM MQ 应用程序时,将在应用程序中创建这些类的实例。 面向对象的编程中的类的实例称为对象。 创建对象后,可以通过检查或设置对象属性的值(相当于发出 MQINQ 或 MQSET 调用)以及通过针对对象进行方法调用(相当于发出其他 MQI 调用)来与该对象交互。
类
IBM MQ 对象模型提供以下基本类集。
模型的实际实施在所支持的不同面向对象的环境之间略有变化。
- MQQueueManager
- MQQueueManager 类的对象表示与队列管理器的连接。 它具有 Connect()、Disconnect()、Commit() 和 Backout() 的方法(相当于 MQCONN 或 MQCONNX、MQDISC、MQCMIT 和 MQBACK)。 它具有与队列管理器的属性对应的属性。 访问队列管理器属性会隐式连接到队列管理器(如果还未连接)。 销毁 MQQueueManager 对象会隐式与队列管理器断开连接。
- MQQueue
- MQQueue 类的对象表示队列。 它具有从队列 Put() 和 Get() 消息的方法(相当于 MQPUT 和 MQGET)。 它具有与队列的属性对应的属性。 访问队列属性特性或者发出 Put() 或 Get() 方法调用会隐式打开队列(相当于 MQOPEN)。 销毁 MQQueue 对象会隐式关闭队列(相当于 MQCLOSE)。
- MQTopic
- MQTopic 类的对象表示主题。 它具有从主题 Put()(发布)和 Get()(接收或预订)消息的方法(相当于 MQPUT 和 MQGET)。 它具有与主题的属性对应的属性。 只能为发布或预订目的访问 MQTopic 对象,不能同时为两种目的进行访问。 当用于接收消息时,MQTopic 对象可以使用非受管或受管预订进行创建并创建为持久或非持久订户 - 对于这些不同方案提供了多个超负荷构造方法。
- MQMessage
- MQMessage 类的对象表示要放到队列或从队列获取的消息。 它包含缓冲区,并且封装应用程序数据和 MQMD。 它具有与 MQMD 字段对应的属性,以及使您能够向缓冲区写入和从中读取不同类型(例如、字符串、长整数、短整数、单字节)的用户数据的方法。
- MQPutMessageOptions
- MQPutMessageOptions 类的对象表示 MQPMO 结构。 它具有与 MQPMO 字段对应的属性。
- MQGetMessageOptions
- MQGetMessageOptions 类的对象表示 MQGMO 结构。 它具有与 MQGMO 字段对应的属性。
- MQProcess
- MQProcess 类的对象表示进程定义(通过触发进行使用)。 它具有表示进程定义的属性的属性。
MQDistributionList- MQDistributionList 类的对象表示分发列表(用于通过单个 MQPUT 发送多条消息)。 它包含 MQDistributionListItem 对象的列表。
MQDistributionListItem- MQDistributionListItem 类的对象表示单个分发列表目标。 它封装 MQOR、MQRR 和 MQPMR 结构,并且具有与这些结构的字段对应的属性。
对象引用
在使用 MQI 的 IBM MQ 程序中, IBM MQ 将连接句柄和对象句柄返回到该程序。
这些句柄必须作为后续 IBM MQ 调用的参数传递。 通过 IBM MQ 对象模型,将对应用程序隐藏这些句柄。 而从类创建对象会导致将对象引用返回到应用程序。 这是在针对对象进行方法调用和属性访问时所使用的对象引用。
返回码
发出方法调用或设置属性值会导致设置返回码。
这些返回码是完成代码或原因码,并且其本身是对象的属性。 完成代码和原因码的值与为 MQI 定义的值相同,其中一些额外的值特定于面向对象的环境。