MQCIH- CICS bridge 头
MQCIH 结构描述通过 CICS bridge发送到 CICS® 的消息的头信息。
对于任何 IBM® MQ 支持的平台,您可以创建和传输包含 MQCIH 结构的消息,但只有 IBM MQ for z/OS® 队列管理器才能使用 CICS bridge。 因此,要使消息从非z/OS 队列管理器到达 CICS ,队列管理器网络必须至少包含一个 z/OS 队列管理器,通过该队列管理器可以路由消息。
IBM MQ 9.0.0支持的所有 CICS 版本以及更高版本使用 CICS 提供的网桥版本。 有关配置 IBM MQ CICS 适配器和 IBM MQ CICS bridge 组件的更多信息,请参阅 CICS 文档的 配置与 MQ的连接 部分。
可用性
AIX®
HP-UX
Linux®
Solaris
Windows
z/OS
格式名
MQFMT_CICS
版本
MQCIH 的当前版本为 MQCIH_VERSION_2。 仅在结构的最新版本中存在的字段将在随后的描述中标识为此类字段。
为受支持的编程语言提供的头 COPY 和 INCLUDE 文件包含最新版本的 MQCIH ,并且 Version 字段的初始值设置为 MQCIH_VERSION_2。
字符集和编码
- 连接到拥有 CICS bridge 队列的队列管理器的应用程序必须提供队列管理器的字符集和编码中的 MQCIH 结构。 这是因为在这种情况下不会执行 MQCIH 结构的数据转换。
- 连接到其他队列管理器的应用程序可以提供 MQCIH 结构,该结构位于任何受支持的字符集和编码中; 连接到拥有 CICS bridge 队列的队列管理器的接收消息通道代理程序会转换 MQCIH 结构。
- 遵循 MQCIH 结构的应用程序消息数据必须采用与 MQCIH 结构相同的字符集和编码。 不能使用 MQCIH 结构中的
CodedCharSetId和Encoding字段来指定应用程序消息数据的字符集和编码。如果数据不是队列管理器支持的其中一种内置格式,那么必须提供数据转换出口以转换应用程序消息数据。
字段
| 字段名称和描述 | 常量的名称 | 常量的初始值 (如果有) |
|---|---|---|
| StrucId (结构标识) | MQCIH_STRUC_ID | 'CIH¬' |
| 版本 (结构版本号) | MQCIH_VERSION_2 | 2 |
| StrucLength (MQCIH 结构的长度) | MQCIH_LENGTH_2 | 180 |
| 编码 (保留) | None | 0 |
| CodedCharSetId(保留) | None | 0 |
| 格式 (MQCIH 之后的数据的MQ 格式名称) | MQFMT_NONE | 空白 |
| 标志 (标志) | MQCIH_NONE | 0 |
| ReturnCode (来自网桥的返回码) | MQCRC_OK | 0 |
| CompCode (MQ 完成代码或 CICS EIBRESP) | MQCC_OK | 0 |
| 原因 (MQ 原因或反馈代码,或 CICS EIBRESP2) | MQRC_NONE | 0 |
| UOWControl (工作单元控制) | MQCUOWC_ONLY | 273 |
| GetWaitInterval(桥接任务发出 MQGET 调用的等待时间间隔) | MQCGWI_DEFAULT | -2 |
| LinkType (链接类型) | MQCLT_PROGRAM | 1 |
| OutputDataLength(输出 COMMAREA 数据长度) | MQCODL_AS_INPUT | -1 |
| FacilityKeepTime(桥接设施释放时间) | None | 0 |
| ADSDescriptor (send/receive ADS 描述符) | MQCADSD_NONE | 0 |
| ConversationalTask (任务是否可以是会话式任务) | MQCCT_NO | 0 |
| TaskEndStatus结束状态(任务结束时的状态) | MQCTES_NOSYNC | 0 |
| Facility (网桥设施令牌) | MQCFAC_NONE | Null |
| 函数 (MQ 调用名称或 CICS EIBFN 函数) | MQCFUNC_NONE | 空白 |
| AbendCode (异常终止代码) | None | 空白 |
| 认证程序 (密码或通行票) | None | 空白 |
| Reserved1 (保留) | None | 空白 |
| ReplyToFormat (MQ format name of reply message) | MQFMT_NONE | 空白 |
| RemoteSysId(要使用的远程 "CICS系统 ID) | None | 空白 |
| RemoteTransId(使用CICSRTRANSID) | None | 空白 |
| TransactionId (要连接的事务) | None | 空白 |
| FacilityLike (终端仿真属性) | None | 空白 |
| AttentionId (AID 键) | None | 空白 |
| StartCode (事务启动代码) | MQCSC_NONE | 空白 |
| CancelCode (异常终止事务代码) | None | 空白 |
| NextTransactionId(要附加的下一个交易) | None | 空白 |
| Reserved2 (保留) | None | 空白 |
| Reserved3 (保留) | None | 空白 |
注: 如果
Version 小于 MQCIH_VERSION_2,那么其余字段不存在。 |
||
| CursorPosition (光标位置) | None | 0 |
| ErrorOffset (消息中错误的偏移量) | None | 0 |
| InputItem (输入项) | None | 0 |
| Reserved4 (保留) | None | 0 |
备注信息:
|
||
语言声明
MQCIH 的 C 声明
typedef struct tagMQCIH MQCIH;
struct tagMQCIH {
MQCHAR4 StrucId; /* Structure identifier */
MQLONG Version; /* Structure version number */
MQLONG StrucLength; /* Length of MQCIH structure */
MQLONG Encoding; /* Reserved */
MQLONG CodedCharSetId; /* Reserved */
MQCHAR8 Format; /* MQ format name of data that follows
MQCIH */
MQLONG Flags; /* Flags */
MQLONG ReturnCode; /* Return code from bridge */
MQLONG CompCode; /* MQ completion code or CICS EIBRESP */
MQLONG Reason; /* MQ reason or feedback code, or CICS
EIBRESP2 */
MQLONG UOWControl; /* Unit-of-work control */
MQLONG GetWaitInterval; /* Wait interval for MQGET call issued
by bridge task */
MQLONG LinkType; /* Link type */
MQLONG OutputDataLength; /* Output COMMAREA data length */
MQLONG FacilityKeepTime; /* Bridge facility release time */
MQLONG ADSDescriptor; /* Send/receive ADS descriptor */
MQLONG ConversationalTask; /* Whether task can be conversational */
MQLONG TaskEndStatus; /* Status at end of task */
MQBYTE8 Facility; /* Bridge facility token */
MQCHAR4 Function; /* MQ call name or CICS EIBFN
function */
MQCHAR4 AbendCode; /* Abend code */
MQCHAR8 Authenticator; /* Password or passticket */
MQCHAR8 Reserved1; /* Reserved */
MQCHAR8 ReplyToFormat; /* MQ format name of reply message */
MQCHAR4 RemoteSysId; /* Reserved */
MQCHAR4 RemoteTransId; /* Reserved */
MQCHAR4 TransactionId; /* Transaction to attach */
MQCHAR4 FacilityLike; /* Terminal emulated attributes */
MQCHAR4 AttentionId; /* AID key */
MQCHAR4 StartCode; /* Transaction start code */
MQCHAR4 CancelCode; /* Abend transaction code */
MQCHAR4 NextTransactionId; /* Next transaction to attach */
MQCHAR8 Reserved2; /* Reserved */
MQCHAR8 Reserved3; /* Reserved */
MQLONG CursorPosition; /* Cursor position */
MQLONG ErrorOffset; /* Offset of error in message */
MQLONG InputItem; /* Reserved */
MQLONG Reserved4; /* Reserved */
};
MQCIH 的 COBOL 声明
** MQCIH structure
10 MQCIH.
** Structure identifier
15 MQCIH-STRUCID PIC X(4).
** Structure version number
15 MQCIH-VERSION PIC S9(9) BINARY.
** Length of MQCIH structure
15 MQCIH-STRUCLENGTH PIC S9(9) BINARY.
** Reserved
15 MQCIH-ENCODING PIC S9(9) BINARY.
** Reserved
15 MQCIH-CODEDCHARSETID PIC S9(9) BINARY.
** MQ format name of data that follows MQCIH
15 MQCIH-FORMAT PIC X(8).
** Flags
15 MQCIH-FLAGS PIC S9(9) BINARY.
** Return code from bridge
15 MQCIH-RETURNCODE PIC S9(9) BINARY.
** MQ completion code or CICS EIBRESP
15 MQCIH-COMPCODE PIC S9(9) BINARY.
** MQ reason or feedback code, or CICS EIBRESP2
15 MQCIH-REASON PIC S9(9) BINARY.
** Unit-of-work control
15 MQCIH-UOWCONTROL PIC S9(9) BINARY.
** Wait interval for MQGET call issued by bridge task
15 MQCIH-GETWAITINTERVAL PIC S9(9) BINARY.
** Link type
15 MQCIH-LINKTYPE PIC S9(9) BINARY.
** Output COMMAREA data length
15 MQCIH-OUTPUTDATALENGTH PIC S9(9) BINARY.
** Bridge facility release time
15 MQCIH-FACILITYKEEPTIME PIC S9(9) BINARY.
** Send/receive ADS descriptor
15 MQCIH-ADSDESCRIPTOR PIC S9(9) BINARY.
** Whether task can be conversational
15 MQCIH-CONVERSATIONALTASK PIC S9(9) BINARY.
** Status at end of task
15 MQCIH-TASKENDSTATUS PIC S9(9) BINARY.
** Bridge facility token
15 MQCIH-FACILITY PIC X(8).
** MQ call name or CICS EIBFN function
15 MQCIH-FUNCTION PIC X(4).
** Abend code
15 MQCIH-ABENDCODE PIC X(4).
** Password or passticket
15 MQCIH-AUTHENTICATOR PIC X(8).
** Reserved
15 MQCIH-RESERVED1 PIC X(8).
** MQ format name of reply message
15 MQCIH-REPLYTOFORMAT PIC X(8).
** Reserved
15 MQCIH-REMOTESYSID PIC X(4).
** Reserved
15 MQCIH-REMOTETRANSID PIC X(4).
** Transaction to attach
15 MQCIH-TRANSACTIONID PIC X(4).
** Terminal emulated attributes
15 MQCIH-FACILITYLIKE PIC X(4).
** AID key
15 MQCIH-ATTENTIONID PIC X(4).
** Transaction start code
15 MQCIH-STARTCODE PIC X(4).
** Abend transaction code
15 MQCIH-CANCELCODE PIC X(4).
** Next transaction to attach
15 MQCIH-NEXTTRANSACTIONID PIC X(4).
** Reserved
15 MQCIH-RESERVED2 PIC X(8).
** Reserved
15 MQCIH-RESERVED3 PIC X(8).
** Cursor position
15 MQCIH-CURSORPOSITION PIC S9(9) BINARY.
** Offset of error in message
15 MQCIH-ERROROFFSET PIC S9(9) BINARY.
** Reserved
15 MQCIH-INPUTITEM PIC S9(9) BINARY.
** Reserved
15 MQCIH-RESERVED4 PIC S9(9) BINARY.
MQCIH 的 PL/I 声明
dcl
1 MQCIH based,
3 StrucId char(4), /* Structure identifier */
3 Version fixed bin(31), /* Structure version number */
3 StrucLength fixed bin(31), /* Length of MQCIH structure */
3 Encoding fixed bin(31), /* Reserved */
3 CodedCharSetId fixed bin(31), /* Reserved */
3 Format char(8), /* MQ format name of data that
follows MQCIH */
3 Flags fixed bin(31), /* Flags */
3 ReturnCode fixed bin(31), /* Return code from bridge */
3 CompCode fixed bin(31), /* MQ completion code or CICS
EIBRESP */
3 Reason fixed bin(31), /* MQ reason or feedback code, or
CICS EIBRESP2 */
3 UOWControl fixed bin(31), /* Unit-of-work control */
3 GetWaitInterval fixed bin(31), /* Wait interval for MQGET call
issued by bridge task */
3 LinkType fixed bin(31), /* Link type */
3 OutputDataLength fixed bin(31), /* Output COMMAREA data length */
3 FacilityKeepTime fixed bin(31), /* Bridge facility release time */
3 ADSDescriptor fixed bin(31), /* Send/receive ADS descriptor */
3 ConversationalTask fixed bin(31), /* Whether task can be
conversational */
3 TaskEndStatus fixed bin(31), /* Status at end of task */
3 Facility char(8), /* Bridge facility token */
3 Function char(4), /* MQ call name or CICS EIBFN
function */
3 AbendCode char(4), /* Abend code */
3 Authenticator char(8), /* Password or passticket */
3 Reserved1 char(8), /* Reserved */
3 ReplyToFormat char(8), /* MQ format name of reply
message */
3 RemoteSysId char(4), /* Reserved */
3 RemoteTransId char(4), /* Reserved */
3 TransactionId char(4), /* Transaction to attach */
3 FacilityLike char(4), /* Terminal emulated attributes */
3 AttentionId char(4), /* AID key */
3 StartCode char(4), /* Transaction start code */
3 CancelCode char(4), /* Abend transaction code */
3 NextTransactionId char(4), /* Next transaction to attach */
3 Reserved2 char(8), /* Reserved */
3 Reserved3 char(8), /* Reserved */
3 CursorPosition fixed bin(31), /* Cursor position */
3 ErrorOffset fixed bin(31), /* Offset of error in message */
3 InputItem fixed bin(31), /* Reserved */
3 Reserved4 fixed bin(31); /* Reserved */
MQCIH 的 High Level Assembler 声明
MQCIH DSECT
MQCIH_STRUCID DS CL4 Structure identifier
MQCIH_VERSION DS F Structure version number
MQCIH_STRUCLENGTH DS F Length of MQCIH structure
MQCIH_ENCODING DS F Reserved
MQCIH_CODEDCHARSETID DS F Reserved
MQCIH_FORMAT DS CL8 MQ format name of data that follows
* MQCIH
MQCIH_FLAGS DS F Flags
MQCIH_RETURNCODE DS F Return code from bridge
MQCIH_COMPCODE DS F MQ completion code or CICS EIBRESP
MQCIH_REASON DS F MQ reason or feedback code, or CICS
* EIBRESP2
MQCIH_UOWCONTROL DS F Unit-of-work control
MQCIH_GETWAITINTERVAL DS F Wait interval for MQGET call issued
* by bridge task
MQCIH_LINKTYPE DS F Link type
MQCIH_OUTPUTDATALENGTH DS F Output COMMAREA data length
MQCIH_FACILITYKEEPTIME DS F Bridge facility release time
MQCIH_ADSDESCRIPTOR DS F Send/receive ADS descriptor
MQCIH_CONVERSATIONALTASK DS F Whether task can be conversational
MQCIH_TASKENDSTATUS DS F Status at end of task
MQCIH_FACILITY DS XL8 Bridge facility token
MQCIH_FUNCTION DS CL4 MQ call name or CICS EIBFN function
MQCIH_ABENDCODE DS CL4 Abend code
MQCIH_AUTHENTICATOR DS CL8 Password or passticket
MQCIH_RESERVED1 DS CL8 Reserved
MQCIH_REPLYTOFORMAT DS CL8 MQ format name of reply message
MQCIH_REMOTESYSID DS CL4 Reserved
MQCIH_REMOTETRANSID DS CL4 Reserved
MQCIH_TRANSACTIONID DS CL4 Transaction to attach
MQCIH_FACILITYLIKE DS CL4 Terminal emulated attributes
MQCIH_ATTENTIONID DS CL4 AID key
MQCIH_STARTCODE DS CL4 Transaction start code
MQCIH_CANCELCODE DS CL4 Abend transaction code
MQCIH_NEXTTRANSACTIONID DS CL4 Next transaction to attach
MQCIH_RESERVED2 DS CL8 Reserved
MQCIH_RESERVED3 DS CL8 Reserved
MQCIH_CURSORPOSITION DS F Cursor position
MQCIH_ERROROFFSET DS F Offset of error in message
MQCIH_INPUTITEM DS F Reserved
MQCIH_RESERVED4 DS F Reserved
*
MQCIH_LENGTH EQU *-MQCIH
ORG MQCIH
MQCIH_AREA DS CL(MQCIH_LENGTH)
MQCIH 的 Visual Basic 声明
Type MQCIH
StrucId As String*4 'Structure identifier'
Version As Long 'Structure version number'
StrucLength As Long 'Length of MQCIH structure'
Encoding As Long 'Reserved'
CodedCharSetId As Long 'Reserved'
Format As String*8 'MQ format name of data that follows'
'MQCIH'
Flags As Long 'Flags'
ReturnCode As Long 'Return code from bridge'
CompCode As Long 'MQ completion code or CICS EIBRESP'
Reason As Long 'MQ reason or feedback code, or CICS'
'EIBRESP2'
UOWControl As Long 'Unit-of-work control'
GetWaitInterval As Long 'Wait interval for MQGET call issued'
'by bridge task'
LinkType As Long 'Link type'
OutputDataLength As Long 'Output COMMAREA data length'
FacilityKeepTime As Long 'Bridge facility release time'
ADSDescriptor As Long 'Send/receive ADS descriptor'
ConversationalTask As Long 'Whether task can be conversational'
TaskEndStatus As Long 'Status at end of task'
Facility As MQBYTE8 'Bridge facility token'
Function As String*4 'MQ call name or CICS EIBFN function'
AbendCode As String*4 'Abend code'
Authenticator As String*8 'Password or passticket'
Reserved1 As String*8 'Reserved'
ReplyToFormat As String*8 'MQ format name of reply message'
RemoteSysId As String*4 'Reserved'
RemoteTransId As String*4 'Reserved'
TransactionId As String*4 'Transaction to attach'
FacilityLike As String*4 'Terminal emulated attributes'
AttentionId As String*4 'AID key'
StartCode As String*4 'Transaction start code'
CancelCode As String*4 'Abend transaction code'
NextTransactionId As String*4 'Next transaction to attach'
Reserved2 As String*8 'Reserved'
Reserved3 As String*8 'Reserved'
CursorPosition As Long 'Cursor position'
ErrorOffset As Long 'Offset of error in message'
InputItem As Long 'Reserved'
Reserved4 As Long 'Reserved'
End Type
用法
网桥接受 version-1 或 version-2 MQCIH 结构,但对于 3270 事务,必须使用 version-2 结构。
应用程序必须确保记录为请求字段的字段在发送到网桥的消息中具有相应的值; 这些字段是对网桥的输入。
记录为响应字段的字段由网桥发送到应用程序的应答消息中的 CICS bridge 设置。 将在 ReturnCode, Function, CompCode, Reason和 AbendCode 字段中返回错误信息,但并非所有这些错误信息都是在所有情况下设置的。 下表显示了为 ReturnCode的不同值设置的字段。
ReturnCode |
Function |
CompCode |
Reason |
AbendCode |
|---|---|---|---|---|
| MQCRC_OK | - | - | - | - |
| MQCRC_BRIDGE_ERROR | - | - | MQFB_CICS_ * | - |
| MQCRC_MQ_API_ERROR MQCRC_BRIDGE_TIMEOUT | MQ 调用名称 | MQ CompCode |
MQ Reason |
- |
| MQCRC_CICS_EXEC_ERROR MQCRC_SECURITY_ERROR MQCRC_PROGRAM_NOT_AVAILABLE MQCRC_TRANSID_NOT_AVAILABLE | CICS EIBFN | CICS EIBRESP | CICS EIBRESP2 | - |
| MQCRC_BRIDGE_ABEND MQCRC_APPLICATION_ABEND | - | - | - | CICS ABCODE |