MQSD-预订描述符
MQSD 结构用于指定有关正在进行的预订的详细信息。 此结构是 MQSUB 调用上的输入/输出参数。 有关更多信息,请参阅 MQSUB 使用说明。
可用性
MQSD 结构在以下平台上可用:
AIX®
IBM® i
Linux®
Windows
z/OS®
版本
MQSD 的当前版本为 MQSD_VERSION_1。
字符集和编码
MQSD 中的数据必须是由 MQENC_NATIVE 提供的本地队列管理器的 CodedCharSetId 队列管理器属性和编码提供的字符集。 但是,如果应用程序作为 MQ MQI 客户机运行,那么该结构必须采用客户机的字符集和编码。
受管预订
如果应用程序没有特定需要将特定队列用作与其预订匹配的发布的目标,那么它可以使用受管预订功能。 如果应用程序选择使用受管预订,那么队列管理器通过提供对象句柄作为 MQSUB 调用的输出,向订户通知发送已发布消息的目标。 有关更多信息,请参阅 Hobj (MQHOBJ)-输入/输出。
除去预订时,队列管理器还会在以下情况下承诺清除未从受管目标检索的消息:
- 通过将 MQCLOSE 与 MQCO_REMOVE_SUB 配合使用并关闭受管 Hobj 来除去预订时。
- 通过隐式方式,当使用非持久预订 (MQSO_NON_持久) 与应用程序断开连接时
- 在由于预订已到期且受管 Hobj 已关闭而将其除去时到期。
字段
注: 在下表中,字段按用法 (而不是按字母顺序) 进行分组。 子主题遵循相同的顺序。
| 字段名称和描述 | 常量的名称 | 常量的初始值 (如果有) |
|---|---|---|
| StrucId (结构标识) | MQSD_STRUC_ID | 'SD¬¬' |
| 版本 (结构版本号) | MQSD_VERSION_1 | 1 |
| 选项 (选项) | MQSO_non_持久 | 0 |
| ObjectName (对象名) | None | 空字符串或空白 |
| AlternateUserId(备用用户 ID) | None | 空字符串或空白 |
| AlternateSecurityId(备用安全标识) | MQSID_NONE | Null |
| SubExpiry (预订到期) | MQEI_UNLIMITED | -1 |
| ObjectString (对象字符串) | None | 为 MQCHARV 定义的名称和值 |
| SubName (预订名称) | None | 为 MQCHARV 定义的名称和值 |
| SubUserData(订阅用户数据) | None | 为 MQCHARV 定义的名称和值 |
| SubCorrelId(订阅相关 ID) | MQCI_NONE | Null |
| PubPriority (发布优先级) | MQPRI_PRIORITY_AS_Q_DEF | -3 |
| PubAccountingToken(出版会计令牌) | MQACT_NONE | Null |
| PubAppIdentityData(发布应用程序身份数据) | None | 空字符串或空白 |
| SelectionString (提供选择条件的字符串) | None | 为 MQCHARV 定义的名称和值 |
| SubLevel (预订级别) | None | 1 |
| ResObjectString(长对象名称) | None | 为 MQCHARV 定义的名称和值 |
备注信息:
|
||
语言声明
MQSD 的 C 声明
typedef struct tagMQSD MQSD;
struct tagMQSD {
MQCHAR4 StrucId; /* Structure identifier */
MQLONG Version; /* Structure version number */
MQLONG Options; /* Options associated with subscribing */
MQCHAR48 ObjectName; /* Object name */
MQCHAR12 AlternateUserId; /* Alternate user identifier */
MQBYTE40 AlternateSecurityId; /* Alternate security identifier */
MQLONG SubExpiry; /* Expiry of Subscription */
MQCHARV ObjectString; /* Object Long name */
MQCHARV SubName; /* Subscription name */
MQCHARV SubUserData; /* Subscription User data */
MQBYTE24 SubCorrelId; /* Correlation Id related to this subscription */
MQLONG PubPriority; /* Priority set in publications */
MQBYTE32 PubAccountingToken; /* Accounting Token set in publications */
MQCHAR32 PubApplIdentityData; /* Appl Identity Data set in publications */
MQCHARV SelectionString; /* Message selector structure */
MQLONG SubLevel; /* Subscription level */
MQCHARV ResObjectString; /* Resolved Long object name*/
/* Ver:1 */
};
MQSD 的 COBOL 声明
** Address of variable length string
20 MQSD-OBJECTSTRING-VSPTR POINTER.
** Offset of variable length string
20 MQSD-OBJECTSTRING-VSOFFSET PIC S9(9) BINARY.
** size of buffer
20 MQSD-OBJECTSTRING-VSBUFSIZE PIC S9(9) BINARY.
** Length of variable length string
20 MQSD-OBJECTSTRING-VSLENGTH PIC S9(9) BINARY.
** CCSID of variable length string
20 MQSD-OBJECTSTRING-VSCCSID PIC S9(9) BINARY.
** Subscription name
15 MQSD-SUBNAME.
** Address of variable length string
20 MQSD-SUBNAME-VSPTR POINTER.
** Offset of variable length string
20 MQSD-SUBNAME-VSOFFSET PIC S9(9) BINARY.
** size of buffer
20 MQSD-SUBNAME-VSBUFSIZE PIC S9(9) BINARY.
** Length of variable length string
20 MQSD-SUBNAME-VSLENGTH PIC S9(9) BINARY.
** CCSID of variable length string
20 MQSD-SUBNAME-VSCCSID PIC S9(9) BINARY.
** Subscription User data
15 MQSD-SUBUSERDATA.
** Address of variable length string
20 MQSD-SUBUSERDATA-VSPTR POINTER.
** Offset of variable length string
20 MQSD-SUBUSERDATA-VSOFFSET PIC S9(9) BINARY.
** size of buffer
20 MQSD-SUBUSERDATA-VSBUFSIZE PIC S9(9) BINARY.
** Length of variable length string
20 MQSD-SUBUSERDATA-VSLENGTH PIC S9(9) BINARY.
** CCSID of variable length string
20 MQSD-SUBUSERDATA-VSCCSID PIC S9(9) BINARY.
** Correlation Id related to this subscription
15 MQSD-SUBCORRELID PIC X(24).
** Priority set in publications
15 MQSD-PUBPRIORITY PIC S9(9) BINARY.
** Accounting Token set in publications
15 MQSD-PUBACCOUNTINGTOKEN PIC X(32).
** Appl Identity Data set in publications
15 MQSD-PUBAPPLIDENTITYDATA PIC X(32).
** Message Selector
15 MQSD-SELECTIONSTRING.
** Address of variable length string
20 MQSD-SELECTIONSTRING-VSPTR POINTER.
** Offset of variable length string
20 MQSD-SELECTIONSTRING-VSOFFSET PIC S9(9) BINARY.
** size of buffer
20 MQSD-SELECTIONSTRING-VSBUFSIZE PIC S9(9) BINARY.
** Length of variable length string
20 MQSD-SELECTIONSTRING-VSLENGTH PIC S9(9) BINARY.
** CCSID of variable length string
20 MQSD-SELECTIONSTRING-VSCCSID PIC S9(9) BINARY.
** Selection criteria
20 MQSD-SELECTIONSTRING-SUBLEVEL PIC S9(9) BINARY.
** Long object name
20 MQSD-SELECTIONSTRING-RESOBJSTRING PIC S9(9) BINARY.
MQSD 的 PL/I 声明
dcl
1 MQSD based,
3 StrucId char(4), /* Structure identifier */
3 Version fixed bin(31), /* Structure version number */
3 Options fixed bin(31), /* Options associated with subscribing */
3 ObjectName char(48), /* Object name */
3 AlternateUserId char(12), /* Alternate user identifier */
3 AlternateSecurityId char(40), /* Alternate security identifier */
3 SubExpiry fixed bin(31), /* Expiry of Subscription */
3 ObjectString, /* Object Long name */
5 VSPtr pointer, /* Address of variable length string */
5 VSOffset fixed bin(31), /* Offset of variable length string */
5 VSBufSize fixed bin(31), /* size of buffer */
5 VSLength fixed bin(31), /* Length of variable length string */
5 VSCCSID fixed bin(31); /* CCSID of variable length string */
3 SubName, /* Subscription name */
5 VSPtr pointer, /* Address of variable length string */
5 VSOffset fixed bin(31), /* Offset of variable length string */
5 VSBufSize fixed bin(31), /* size of buffer */
5 VSLength fixed bin(31), /* Length of variable length string */
5 VSCCSID fixed bin(31); /* CCSID of variable length string */
3 SubUserData, /* Subscription User data */
5 VSPtr pointer, /* Address of variable length string */
5 VSOffset fixed bin(31), /* Offset of variable length string */
5 VSBufSize fixed bin(31), /* size of buffer */
5 VSLength fixed bin(31), /* Length of variable length string */
5 VSCCSID fixed bin(31), /* CCSID of variable length string */
3 SubCorrelId char(24), /* Correlation Id related to this subscription */
3 PubPriority fixed bin(31), /* Priority set in publications */
3 PubAccountingToken char(32), /* Accounting Token set in publications */
3 PubApplIdentityData char(32), /* Appl Identity Data set in publications */
3 SelectionString, /* Message Selection */
5 VSPtr pointer, /* Address of variable length string */
5 VSOffset fixed bin(31), /* Offset of variable length string */
5 VSBufSize fixed bin(31), /* size of buffer */
5 VSLength fixed bin(31), /* Length of variable length string */
5 VSCCSID fixed bin(31), /* CCSID of variable length string */
3 SubLevel fixed bin(31), /* Subscription level */
3 ResObjectString, /* Resolved Long object name */
5 VSPtr pointer, /* Address of variable length string */
5 VSOffset fixed bin(31), /* Offset of variable length string */
5 VSBufSize fixed bin(31), /* size of buffer */
5 VSLength fixed bin(31), /* Length of variable length string */
5 VSCCSID fixed bin(31); /* CCSID of variable length string */
MQSD 的 High Level Assembler 声明
MQSD DSECT
MQSD_STRUCID DS CL4 Structure identifier
MQSD_VERSION DS F Structure version number
MQSD-OPTIONS DS F Options associated with subscribing
MQSD_OBJECTNAME DS CL48 Object name
MQSD_ALTERNATEUSERID DS CL12 Alternate user identifier
MQSD_ALTERNATESECURITYID DS CL40 Alternate security identifier
MQSD_SUBEXPIRY DS F Expiry of Subscription
MQSD_OBJECTSTRING DS 0F Object Long name
MQSD_OBJECTSTRING_VSPTR DS F Address of variable length string
MQSD_OBJECTSTRING_VSOFFSET DS F Offset of variable length string
MQSD_OBJECTSTRING_VSBUFSIZE DS F size of buffer
MQSD_OBJECTSTRING_VSLENGTH DS F Length of variable length string
MQSD_OBJECTSTRING_VSCCSID DS F CCSID of variable length string
MQSD_OBJECTSTRING_LENGTH EQU *-MQSD_OBJECTSTRING
ORG MQSD_OBJECTSTRING
MQSD_OBJECTSTRING_AREA DS CL(MQSD_OBJECTSTRING_LENGTH)
*
MQSD_SUBNAME DS 0F Subscription name
MQSD_SUBNAME_VSPTR DS F Address of variable length string
MQSD_SUBNAME_VSOFFSET DS F Offset of variable length string
MQSD_SUBNAME_VSBUFSIZE DS F size of buffer
MQSD_SUBNAME_VSLENGTH DS F Length of variable length string
MQSD_SUBNAME_VSCCSID DS F CCSID of variable length string
MQSD_SUBNAME_LENGTH EQU *-MQSD_SUBNAME
ORG MQSD_SUBNAME
MQSD_SUBNAME_AREA DS CL(MQSD_SUBNAME_LENGTH)
*
MQSD_SUBUSERDATA DS 0F Subscription User data
MQSD_SUBUSERDATA_VSPTR DS F Address of variable length string
MQSD_SUBUSERDATA_VSOFFSET DS F Offset of variable length string
MQSD_SUBUSERDATA_VSBUFSIZE DS F size of buffer
MQSD_SUBUSERDATA_VSLENGTH DS F Length of variable length string
MQSD_SUBUSERDATA_VSCCSID DS F CCSID of variable length string
MQSD_SUBUSERDATA_LENGTH EQU *-MQSD_SUBUSERDATA
ORG MQSD_SUBUSERDATA
MQSD_SUBUSERDATA_AREA DS CL(MQSD_SUBUSERDATA_LENGTH)
*
MQSD_SUBCORRELID DS CL24 Correlation Id related to this subscription
MQSD_PUBPRIORITY DS F Priority set in publications
MQSD_PUBACCOUNTINGTOKEN DS CL32 Accounting Token set in publications
MQSD_PUBAPPLIDENTITYDATA DS CL32 Appl Identity Data set in publications
*
MQSD_SELECTIONSTRING DS F Message Selector
MQSD_SELECTIONSTRING_VSPTR DS F Address of variable length string
MQSD_SELECTIONSTRING_VSOFFSET DS F Offset of variable length string
MQSD_SELECTIONSTRING_VSBUFSIZE DS F size of buffer
MQSD_SELECTIONSTRING_VSLENGTH DS F Length of variable length string
MQSD_SELECTIONSTRING_VSCCSID DS F CCSID of variable length string
MQSD_SELECTIONSTRING_LENGTH EQU *- MQSD_SELECTIONSTRING
ORG MQSD_SELECTIONSTRING
MQSD_SELECTIONSTRING_AREA DS CL(MQSD_SELECTIONSTRING_LENGTH)
*
MQSD-SUBLEVEL DS F Subscription level
*
MQSD_RESOBJECTSTRING DS F Resolved Long object name
MQSD_RESOBJECTSTRING_VSPTR DS F Address of variable length string
MQSD_RESOBJECTSTRING_VSOFFSET DS F Offset of variable length string
MQSD_RESOBJECTSTRING_VSBUFSIZE DS F size of buffer
MQSD_RESOBJECTSTRING_VSLENGTH DS F Length of variable length string
MQSD_RESOBJECTSTRING_VSCCSID DS F CCSID of variable length string
MQSD_RESOBJECTSTRING_LENGTH EQU *- MQSD_RESOBJECTSTRING
ORG MQSD_RESOBJECTSTRING
MQSD_RESOBJECTSTRING_AREA DS CL(MQSD_RESOBJECTSTRING_LENGTH)
*
MQSD_LENGTH EQU *-MQSD
ORG MQSD
MQSD_AREA DS CL(MQSD_LENGTH)