处理重新连接事件
当重新连接活动时,它使用 RETRIEVE REATTACH EVENT 命令来发现导致重新连接的事件。 重新连接事件的名称将放置在重新连接队列上,从该队列开始,活动将处理这些事件。
关于此任务
如果导致其重新连接的事件是组合事件,那么活动可能还需要发出一个或多个 RETRIEVE SUBEVENT 命令以发现触发的一个或多个 subevent。
有时,由于触发了多个事件,可能会发生重新连接。 发生重新连接事件时,会将它们的名称放在队列上- 重新连接队列 -从中可以使用 RETRIEVE REATTACH EVENT 命令检索它们。 每个活动都有一个重新连接队列,该队列:
- 可能为空
- 仅包含已触发但未检索的那些重新连接事件的名称。
图 1 显示特定活动的事件池和重新连接队列。 重新连接队列包含名称 A1 和 C1。图 1。 重新连接队列。 队列包含名称 A1 和 C1。

重要信息: 除了一个例外,每次激活活动时,必须处理至少一个重新连接事件。 也就是说,它必须至少发出一条重新获取重新连接事件命令,并且(如果 CICS® 没有自动执行)将获取事件的触发状态重置为未触发--请参阅重置和删除重新连接事件。 未能执行此操作将导致活动异常终止,因为它未取得进展,未重置任何重新连接事件,因此存在进入无意循环的危险。
此一般规则的一个例外是如果活动程序发出 RETURN ENDACTIVITY 命令-在这种情况下,不需要在当前激活中发出 RETRIEVE REATTACH EVENT 命令。
如果在其重新连接队列上存在多个事件,那么一个活动可以通过发出多个 RETRIEVE REATTACH EVENT 命令来处理单个激活中的多个事件或所有事件。 或者,它可以单独处理这些事件,方法是每次激活仅发出一个 RETRIEVE REATTACH EVENT 命令并返回; 然后重新激活该命令以处理其重新连接队列上的下一个事件。 您选择哪种方法是程序设计问题。 请记住,如果处理同一激活中的多个重新连接事件,那么在激活返回之前不会发生同步点。