可以使用介于代码与 MQSeries® 之间的一组已安装 EGL 函数,如 MQSeries 支持中所述。
下表列示可用的函数并标识必需的自变量。例如,MQBACK (MQSTATE) 指示在调用 MQBACK 时需要传递基于 MQSTATE 记录部件的自变量。稍后会描述记录部件。
与 MQSeries 相关的 EGL 函数调用 | 作用 |
---|---|
MQBACK (MQSTATE) | 调用系统函数 sysLib.rollback 以回滚逻辑工作单元。回滚会影响程序正在访问的所有可恢复的资源,包括数据库、消息队列和可恢复的文件。 |
MQBEGIN (MQSTATE, MQBO) | 开始逻辑工作单元。 |
MQCHECK_COMPLETION (MQSTATE) | 设置基于 MQSTATE 的记录的 mqdescription 字段。设置是根据最新返回的原因码进行的。将从 EGL 函数 MQBEGIN、MQCLOSE、MQCONN、 MQCONNX、MQDISC、MQGET、MQINQ、 MQOPEN、MQPUT、MQPUT1 和 MQSET 自动调用函数 MQCHECK_COMPLETION。 |
MQCLOSE (MQSTATE) | 关闭 MQSTATE.hobj 引用的消息队列。 |
MQCMIT (MQSTATE) | 调用系统函数 sysLib.commit 以落实逻辑工作单元。落实将影响程序正访问的所有可恢复的 资源,包括数据库、消息队列和可恢复的文件。 |
MQCONN (MQSTATE, qManagerName) | 连接至队列管理器,它由 qManagerName(一个最长可达 48 个字符的字符串)标识。MQSeries 设置连接句柄(MQSTATE.hconn)以供后续调用使用。 注: 可以将代码以每次连接至一个队列管理器的方式来连接至队列管理器。
|
MQCONNX(MQSTATE, qManagerName, MQCNO) | 使用用于控制调用工作方式的选项来连接至队列管理器。队列管理器由 qManagerName(一个最长可达 48 个字符的字符串)标识。MQSeries 设置连接句柄(MQSTATE.hconn)以供后续调用使用。 |
MQDISC (MQSTATE) | 与队列管理器断开连接。 |
MQGET(MQSTATE, MQMD, MQGMO, BUFFER) | 从队列中读取然后除去消息。缓冲区不能超过 32767 个字节,但是如果您正在使用 EGL get next 语句,则该限制不适用。 |
MQINQ(MQSTATE, MQATTRIBUTES) | 请求队列属性。 |
MQNOOP() | 只由 EGL 使用。 |
MQOPEN(MQSTATE, MQOD) | 打开消息队列。MQSeries 设置队列句柄(MQSTATE.hobj)以供后续调用使用。 |
MQPUT(MQSTATE, MQMD, MQPMO, BUFFER) | 将消息添加至队列。缓冲区不能超过 32767 个字节,但是如果您正在使用 EGL add 语句,则该限制不适用。 |
MQPUT1(MQSTATE, MQOD, MQMD, MQPMO, BUFFER) | 打开队列,写入一条消息,然后关闭队列。 |
MQSET(MQSTATE, MQATTRIBUTES) | 设置队列的属性。 |
下表列示在调用与 MQSeries 相关的 EGL 函数时用作自变量的选项记录。还列示了应该对给定自变量调用的初始化函数。
MQSTATE_INIT(MQSTATE);
自变量(记录部件名) | 初始化函数 | 描述 |
---|---|---|
MQATTRIBUTES | 无 | 属性和属性选择器的数组以及在命令 MQINQ 或 MQSET 中使用的其它信息 |
MQBO | MQBO_INIT (MQBO) | 开始选项 |
MQCNO | MQCNO_INIT (MQCNO) | 连接选项 |
MQGMO | MQGMO_INIT (MQGMO) | 获取消息选项 |
MQIIH | MQIIH_INIT (MQIIH) | IMS™ 信息头;描述在发送至 IMS 的 MQSeries 消息的开头所需的信息(MQSeries 文档指示在 Windows® 2000/NT/XP 上不支持使用此信息头) |
MQINTATTRS | 无 | 整数属性的数组,用于命令 MQINQ 或 MQSET 中 |
MQMD | MQMD_INIT (MQMD, MQSTATE) | 消息描述符(MQSeries V2) |
MQMDE | MQMDE_INIT (MQMDE, MQSTATE) | 消息描述符扩展(仅使用 MQSeries V2 中的字段) |
MQOD | MQOD_INIT (MQOD) | 对象描述符 |
MQOO | MQOO_INIT (MQOO) | 打开选项 |
MQPMO | MQPMO_INIT (MQPMO) | 放置消息选项 |
MQSELECTORS | 无 | 属性选择器的数组,仅当您希望在不使用 EGL 函数的情况下访问 MQSeries 时才使用 |
MQSTATE | MQSTATE_INIT (MQSTATE) | 在对 MQSeries 的一个或多个调用中使用的自变量的集合;例如,当使用 EGL 函数 MQCONN 或 MQCONNX 进行连接时,MQSeries 设置连接句柄(MQSTATE.hconn)以供后续调用使用 |
MQXQH | MQXQH_INIT (MQXQH, MQSTATE) | 传输队列头 |
每个结构部件的名称都是记录部件的名称后跟 _S;例如,记录部件 MQGMO 使用名为 MQGMO_S 的结构部件。
相关参考
get next
commit()
rollback()