Status-Acknowledge(Ack)
Status-Acknowledge(Ack) 消息在节点与应用程序之间流动,用于系统服务控制点 (SSCP) 连接和主逻辑单元 (PLU) 连接。
以下结构显示了所有 SSCP 消息以及从节点流向应用程序的 PLU 消息的消息格式。
语法
struct Status-Acknowledge(Ack) {
PTRBFHDR nxtqptr;
PTRBFELT hdreptr;
CHAR numelts;
CHAR msgtype;
CHAR srcl;
CHAR srcp;
INTEGER srci;
CHAR destl;
CHAR destp;
INTEGER desti;
CHAR sfhdr.stackhdr.akstat;
CHAR sfhdr.stackhdr.akqual;
INTEGER sfhdr.stackhdr.akmsgkey;
CHAR sfhdr.stackhdr.akflags1;
CHAR sfhdr.stackhdr.akflags2;
INTEGER sfhdr.stackhdr.aknumb1;
INTEGER sfhdr.stackhdr.aknumb2;
INTEGER sfhdr.stackhdr.akseqno;
};
struct Status-Acknowledge(Ack) {
PTRBFELT hdreptr->elteptr;
INTEGER hdreptr->startd;
INTEGER hdreptr->endd;
CHAR hdreptr->trpad;
CHAR[268] hdreptr->dataru;
};
成员
nxtqptr
指向下一个缓冲区标头的指针。
hdreptr
指向缓冲区元素的指针(如果不使用 LUA,则为 NIL)。
numelts
缓冲区元素数(如果不使用 LUA,则为 0x00)。
msgtype
消息类型 STATFMI (0x21)。
srcl
源位置。
srcp
源伙伴。
srci
源索引。
destl
目标位置。
destp
目标伙伴。
desti
目标索引。
sfhdr.stackhdr.akstat
状态类型 ACK (0x01)。
sfhdr.stackhdr.akqual
确认类型 ACKPOS (0x02)。
sfhdr.stackhdr.akmsgkey
消息键。
sfhdr.stackhdr.akflags1
应用程序标志 1。
sfhdr.stackhdr.akflags2
应用程序标志 2。
sfhdr.stackhdr.aknumb1
未定义。
sfhdr.stackhdr.aknumb2
保留。
sfhdr.stackhdr.akseqno
SNA 序列号。
仅 LUA(请参阅“备注”):
元素
hdreptr-elteptr>
指向缓冲区元素 (NIL) 的指针。
hdreptr-startd>
数据在此缓冲区元素中的起点。
对于出站分段请求/响应单元 (RU) 的第二个段和后续段,值为 13 或 10
hdreptr-endd>
此缓冲区元素中的结束数据。
hdreptr-trpad>
保留。
hdreptr-dataru>
数据 RU。
从应用程序流向节点的 PLU 消息的消息格式与上述格式相同,只是不使用应用程序标志 1 和应用程序标志 2 字段。 这两个字段已替换为以下 INTEGER 字段:
sfhdr.stackhdr.akmsgtim
上次主机响应时间。
- (0xFFFF) 未测得响应时间。
- (0xnnnn) 上次测得的响应时间,以 0.1 秒为单位。
备注
消息键和应用程序标志反映了所确认的数据消息的消息键和应用程序标志。 (有关详细信息,请参阅下面有关 LUA 的说明。)
对于从本地节点流向应用程序的出站 Status-Acknowledge(Ack) 消息,SNA 序列号指定了所确认的入站数据消息的序列号。 (有关详细信息,请参阅下面有关 LUA 的说明。)它通常仅由传输服务配置文件(TS 配置文件)4 应用程序使用。
对于从应用程序流向本地节点的入站 Status-Acknowledge(Ack) 消息,SNA 序列号反映了所确认的出站数据消息的序列号。
如果主机指定了响应时间统计信息有待维护,则应用程序将负责使用此消息的 akmsgtim 字段来测量和报告对本地节点做出响应的时间。 (有关详细信息,请参阅 RTM 参数和响应时间监视器数据。)
如果应用程序使用函数管理接口 (FMI) 的 LUA 变体,则传输头 (TH) 和(如果适用)响应头 (RH) 将包含在数据中,并且 startd 字段将指向 TH。 akmsgkey、akflags1 和 akflags2 字段未定义,不应使用 。 应改用元素中的相应数据。 类似地,在从本地节点流向应用程序的消息中未定义 akseqno 字段。 在从应用程序流向本地节点的消息中必须设置该字段。 akseqno 字段用于保存所要确认的请求的序列号。 (有关 FMI 的详细信息,请参阅 FMI 概念。)
如果应用程序未使用 FMI 的 LUA 变体,则消息仅包含缓冲区头。 无缓冲区元素。