MQCB_FUNCTION-回调函数
MQCB_FUNCTION 函数调用是用于事件处理和异步消息使用的回调函数。
仅提供 MQCB_FUNCTION 调用定义来描述传递到回调函数的参数。 队列管理器未提供名为 MQCB_FUNCTION 的入口点。
语法
MQCB_FUNCTION (Hconn, MsgDesc, GetMsgOpts, Buffer, Context)
参数
- Hconn
- 类型 :MQHCONN-输入
此句柄表示与队列管理器的连接。 先前的 MQCONN 或 MQCONNX 调用返回了
Hconn的值。 在 z/OS® for CICS® 应用程序上,可以省略 MQCONN 调用,并为 Hconn 指定以下值:MQHC_DEF_HCONN
缺省连接句柄。
- MsgDesc
- 类型 :MQMD-输入
此结构描述检索的消息的属性。
请参阅 MQMD-消息描述符 以获取详细信息。
传递的 MQMD 版本与定义使用者函数的 MQCB 调用上传递的版本相同。
如果使用版本 4 MQGMO 来请求返回消息句柄而不是 MQMD ,那么 MQMD 的地址将作为空字符传递。
这是消息使用者函数的输入字段; 它与事件处理程序函数无关。
- GetMsgOpts
- 类型 :MQGMO-输入
用于控制消息使用者的操作的选项。 此参数还包含有关返回的消息的其他信息。
请参阅 MQGMO 以获取详细信息。
传递的 MQGMO 版本是受支持的最新版本。
这是消息使用者函数的输入字段; 它与事件处理程序函数无关。
- 缓冲区
- 类型:MQBYTExBufferLength - 输入
这是包含消息数据的区域。
如果没有消息可用于此调用,或者如果消息不包含消息数据,那么会将
Buffer的地址作为空值传递。这是消息使用者函数的输入字段; 它与事件处理程序函数无关。
- Context
- 类型 :MQCBC-输入/输出
此结构向回调函数提供上下文信息。 请参阅 MQCBC-回调上下文 以获取详细信息。
使用说明
- 请注意,如果回调例程使用可能会延迟或阻塞线程的服务 (例如,带有 wait 的 MQGET) ,那么可能会延迟分派其他回调。
- 不会为回调例程的每次调用自动建立单独的工作单元,因此例程可以发出落实调用或延迟落实,直到处理逻辑工作批处理为止。 在落实批处理工作时,它将落实自上次同步点以来调用的所有回调函数的消息。
- 由 CICS LINK 或 CICS START 使用 CICS 服务通过称为通道容器的指定对象来调用的程序检索参数。 容器名称与参数名称相同。 有关更多信息,请参阅 CICS 文档。
- 回调例程可以发出 MQDISC 调用,但不能用于它们自己的连接。 例如,如果回调例程已创建连接,那么它还可以断开连接。
- 通常,回调例程不应依赖于每次从同一线程调用。 如果需要,请在启动连接时使用 MQCTLO_THREAD_AFFINITY。
- 当回调例程接收到非零原因码时,它必须执行相应的操作。
- 在 IMS 适配器中不支持 MQCB_FUNCTION。