ResponseRecOffset (MQLONG)
这是从 MQOD 结构开始的第一个 MQRR 响应记录的偏移量 (以字节为单位)。 偏移可以是正数或负数。 仅当正在打开分发列表时,才会使用 ResponseRecOffset 。 如果 RecsPresent 为零,那么将忽略该字段。
打开分发列表时,可以提供一个或多个 MQRR 响应记录的数组,以标识未能打开的队列 (MQRR 中的CompCode 字段) 以及每次失败的原因 (MQRR 中的Reason 字段)。 数据在响应记录数组中返回的顺序与队列名称在对象记录数组中出现的顺序相同。 仅当调用结果混合时,队列管理器才会设置响应记录 (即,某些队列已成功打开,而其他队列失败,或者所有队列都失败,但原因不同); 来自调用的原因码 MQRC_MULTIPLE_REASON 指示此情况。 如果相同原因码适用于所有队列,那么将在 MQOPEN 或 MQPUT1 调用的 Reason 参数中返回该原因,并且不会设置响应记录。 响应记录是可选的,但如果提供了这些记录,那么其中必须有 RecsPresent 个记录。
响应记录的提供方式与对象记录相同,可以在 ResponseRecOffset 中指定偏移量,或在 ResponseRecPtr 中指定地址;有关操作详情,请参阅 ObjectRecOffset (MQLONG )。 但是,不能使用多个 ResponseRecOffset 和 ResponseRecPtr ; 如果两者都非零,那么调用将失败,原因码为 MQRC_RESPONSE_RECORDS_ERROR。
对于 MQPUT1 调用,这些响应记录用于返回有关将消息发送到分发列表中的队列时发生的错误以及打开队列时发生的错误的信息。 仅当来自队列的完成代码为 MQCC_OK 或 MQCC_WARNING 时,来自队列的放置操作的完成代码和原因码才会替换来自该队列的打开操作的完成代码和原因码。
这是一个输入字段。 此字段的初始值为 0。 如果 Version 小于 MQOD_VERSION_2,那么将忽略此字段。