MQCB_FUNCTION-回调函数

MQCB_FUNCTION 函数调用是用于事件处理和异步消息使用的回调函数。

仅提供 MQCB_FUNCTION 调用定义来描述传递到回调函数的参数。 队列管理器未提供名为 MQCB_FUNCTION 的入口点。

要调用的实际函数的规范是 MQCB 调用的输入,并通过 MQCBD 结构传入。

语法

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-回调上下文 以获取详细信息。

使用说明

  1. 请注意,如果回调例程使用可能会延迟或阻塞线程的服务 (例如,带有 wait 的 MQGET) ,那么可能会延迟分派其他回调。
  2. 不会为回调例程的每次调用自动建立单独的工作单元,因此例程可以发出落实调用或延迟落实,直到处理逻辑工作批处理为止。 在落实批处理工作时,它将落实自上次同步点以来调用的所有回调函数的消息。
  3. CICS LINK 或 CICS START 使用 CICS 服务通过称为通道容器的指定对象来调用的程序检索参数。 容器名称与参数名称相同。 有关更多信息,请参阅 CICS 文档。
  4. 回调例程可以发出 MQDISC 调用,但不能用于它们自己的连接。 例如,如果回调例程已创建连接,那么它还可以断开连接。
  5. 通常,回调例程不应依赖于每次从同一线程调用。 如果需要,请在启动连接时使用 MQCTLO_THREAD_AFFINITY。
  6. 当回调例程接收到非零原因码时,它必须执行相应的操作。
  7. IMS 适配器中不支持 MQCB_FUNCTION。