MQCBD-回调描述符

MQCBD 结构用于指定回调函数以及由队列管理器控制其使用的选项。 该结构是 MQCB 调用上的输入参数。

可用性

MQCBD 结构在以下平台上可用:
  • [AIX]AIX®
  • [HP-UX]HP-UX
  • [IBM i]IBM® i
  • [Linux]Linux®
  • [Solaris]Solaris
  • [Windows]Windows
  • [z/OS]z/OS®
以及用于连接到这些系统的 IBM MQ MQI clients

版本

MQCBD 的当前版本为 MQCBD_VERSION_1。

字符集和编码

MQCBD 中的数据必须包含由 MQENC_NATIVE 提供的本地队列管理器的 CodedCharSetId 队列管理器属性和编码提供的字符集。 但是,如果应用程序作为 MQ MQI 客户机运行,那么该结构必须采用客户机的字符集和编码。

字段

注: 在下表中,字段按用法 (而不是按字母顺序) 进行分组。 子主题遵循相同的顺序。
表 1. MQCBD 中的字段
字段名称和描述 常量的名称 常量的初始值 (如果有)
StrucID (结构标识) MQCBD_STRUC_ID 'CBD¬'
版本 (结构版本号) MQCBD_VERSION_1 1
CallbackType (回调函数的类型) MQCBT_MESSAGE_CONSUMER 1
选项 (用于控制消息使用情况的选项) MQCBDO_NONE 0
CallbackArea (要使用的回调函数的字段) None 空指针或空空白
CallbackFunction (是否将函数作为 API 调用调用) None 空指针或空空白
CallbackName (是否将函数作为动态链接的程序调用) None 空字符串或空白
MaxMsgLength(可读取的最长信息长度) MQCBD_FULL_MSG_LENGTH -1
备注信息:
  1. 符号 ¬ 表示单个空白字符。
  2. 值 "空字符串" 或 "空白" 表示 C 编程语言中的空字符串和其他编程语言中的空白字符。
  3. 在 C 编程语言中,宏变量 MQCBD_DEFAULT 包含表中列出的值。 通过以下方式使用它来为结构中的字段提供初始值:
    MQCBD MyCBD = {MQCBD_DEFAULT};
    

语言声明

MQCBD 的 C 声明

typedef struct tagMQCBD MQCBD;
 struct tagMQCBD {
   MQCHAR4    StrucId;                 /* Structure identifier */
   MQLONG     Version;                 /* Structure version number */
   MQLONG     CallBackType;            /* Callback function type */
   MQLONG     Options;                 /* Options controlling message
                                          consumption */
   MQPTR      CallbackArea;            /* User data passed to the function */
   MQPTR      CallbackFunction;        /* Callback function pointer */
   MQCHAR128  CallbackName;            /* Callback name */
   MQLONG     MaxMsgLength;            /* Maximum message length */
 };

MQCBD 的 COBOL 声明

** MQCBCD structure
 10  MQCBD.
** Structure Identifier
 15  MQCBD-STRUCID                      PIC X(4).
** Structure Version
 15  MQCBD-VERSION                      PIC S9(9) BINARY.
 ** Callback Type
 15  MQCBD-CALLBACKTYPE                 PIC S9(9) BINARY.
** Options
 15  MQCBD-OPTIONS                      PIC S9(9) BINARY.
** Callback User Area
 15  MQCBD-CALLBACKAREA                 POINTER
** Callback Function Pointer
 15  MQCBD-CALLBACKFUNCTION             FUNCTION-POINTER
** Callback Program Name
 15  MQCBD-CALLBACKNAME                 PIC X(128)
** Maximum Message Length
 15  MQCDB-MAXMSGLENGTH                 PIC S9(9) BINARY.

MQCBD 的 PL/I 声明

dcl
 1 MQCBD based,
  3 StrucId             char(4),       /* Structure identifier*/
  3 Version             fixed bin(31), /* Structure version*/
  3 CallbackType        fixed bin(31), /* Callback function type */
  3 Options             fixed bin(31), /* Options */
  3 CallbackArea        pointer,       /* User area passed to the function */
  3 CallbackFunction    pointer,       /* Callback Function Pointer */
  3 CallbackName        char(128),     /* Callback Program Name */
  3 MaxMsgLength        fixed bin(31); /* Maximum Message Length */