命令序列的不同处理

虽然可以对 APPC 映射对话和 MRO 对话使用类似的命令序列,但在某些情况下,相同的命令序列在每种对话类型中的操作方式不同。

APPC 映射对话和 MRO 对话之间的一些差异显示在 表 1中的命令序列中。
表 1. 同一命令序列在 APPC 映射对话和 MRO 对话中的操作方式不同
命令 映射的 APPC MRO
EXEC CICS SEND
  CONVID(REM1)               
  FROM(data1)
  LENGTH(251)
延迟发送 已发送 data1
EXEC CICS
  SYNCPOINT
将同步点请求添加到 data1,并同时发送这两个请求 发送包含空数据的同步点请求
EXEC CICS SEND
  CONVID(REM1)
  FROM(data2)
  LENGTH(251)
  INVITE
data2的发送 (带有 INVITE) 已延迟 已发送带有 INVITEdata2
EXEC CICS WAIT
  CONVID(REM1)
发送带有 INVITEdata2 (没有要发送的内容)
EXEC CICS RECEIVE
  CONVID(REM1)
        .
        .
(INVITE received)
   
EXEC CICS SEND
  CONVID(REM1)
  FROM(data3)
  LENGTH(251)
  LAST
延迟发送带有 LAST 指示符的 data3 已发送 data3 ,但没有 LAST 指示符
EXEC CICS
  SYNCPOINT
同步点请求和 LAST 指示符已添加到 data3 并已发送 同步点请求和 LAST 指示符与空数据一起发送
当然, WAIT 选项可以添加到 SEND 命令中,以便在 APPC 链路上立即传输; 例如:
  SEND CONVID(REM1)
       FROM(data2)
       LENGTH(251)
       INVITE
       WAIT
  RECEIVE SESSION(REM1)

此命令序列的 MRO 和 APPC 映射实现之间没有显着差异。 但是,对于 MRO ,带有 WAIT 选项的 SEND 命令会导致 CICS® 暂挂事务,直到伙伴系统收到数据为止。

与 APPC 不同, MRO 只允许传输一个未完成的 SEND。 这意味着当事务发出两个连续的 SEND 命令 (不带 WAIT 选项) 来传输数据时,在伙伴系统接收到第一个数据之前,第二个数据段不会流动。

对于包含隐式方向更改的命令序列, APPC 映射与 MRO 之间存在进一步的实现差异。 对于 MRO ,除非对话处于 接收状态 (状态 5) ,否则不得发出 RECEIVE 命令。