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的连接 部分。

可用性

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

格式名

MQFMT_CICS

版本

MQCIH 的当前版本为 MQCIH_VERSION_2。 仅在结构的最新版本中存在的字段将在随后的描述中标识为此类字段。

为受支持的编程语言提供的头 COPY 和 INCLUDE 文件包含最新版本的 MQCIH ,并且 Version 字段的初始值设置为 MQCIH_VERSION_2。

字符集和编码

特殊条件适用于用于 MQCIH 结构和应用程序消息数据的字符集和编码:
  • 连接到拥有 CICS bridge 队列的队列管理器的应用程序必须提供队列管理器的字符集和编码中的 MQCIH 结构。 这是因为在这种情况下不会执行 MQCIH 结构的数据转换。
  • 连接到其他队列管理器的应用程序可以提供 MQCIH 结构,该结构位于任何受支持的字符集和编码中; 连接到拥有 CICS bridge 队列的队列管理器的接收消息通道代理程序会转换 MQCIH 结构。
  • 遵循 MQCIH 结构的应用程序消息数据必须采用与 MQCIH 结构相同的字符集和编码。 不能使用 MQCIH 结构中的 CodedCharSetIdEncoding 字段来指定应用程序消息数据的字符集和编码。

    如果数据不是队列管理器支持的其中一种内置格式,那么必须提供数据转换出口以转换应用程序消息数据。

字段

注: 在下表中,字段按用法 (而不是按字母顺序) 进行分组。 子主题遵循相同的顺序。
表 1. MQCIH 的 MQCIH 中的字段
字段名称和描述 常量的名称 常量的初始值 (如果有)
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
备注信息:
  1. 符号 ¬ 表示单个空白字符。
  2. 在 C 编程语言中,宏变量 MQCIH_DEFAULT 包含表中列出的值。 通过以下方式使用它来为结构中的字段提供初始值:
    MQCIH MyCIH = {MQCIH_DEFAULT};
    

语言声明

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

用法

如果应用程序需要与 表 1中显示的初始值相同的值,并且网桥正在使用 AUTH=LOCAL 或 AUTH=IDENTIFY 运行,那么可以从消息中省略 MQCIH 结构。 在所有其他情况下,该结构必须存在。

网桥接受 version-1 或 version-2 MQCIH 结构,但对于 3270 事务,必须使用 version-2 结构。

应用程序必须确保记录为请求字段的字段在发送到网桥的消息中具有相应的值; 这些字段是对网桥的输入。

记录为响应字段的字段由网桥发送到应用程序的应答消息中的 CICS bridge 设置。 将在 ReturnCodeFunctionCompCodeReasonAbendCode 字段中返回错误信息,但并非所有这些错误信息都是在所有情况下设置的。 下表显示了为 ReturnCode的不同值设置的字段。

表 2. MQCIH 结构中 MQCIH 的错误信息字段的内容
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