APPC 谓词摘要

本部分简要介绍按函数分组的每个 APPC 谓词。

用于启动对话的谓词

ALLOCATEMC_ALLOCATE
由本地事务程序 (TP) 颁发。 此谓词在本地逻辑单元 (LU) 和伙伴 LU 之间分配会话,并在本地 TP 与伙伴 TP 之间建立会话。

ALLOCATE 可以建立基本对话或映射对话。 MC_ALLOCATE 只能启动映射对话。 分配会话后,APPC 使用此谓词 (conv_id) 返回 会话标识符。

RECEIVE_ALLOCATE
由合作伙伴 TP 颁发。 此谓词确认合作伙伴 TP 已准备好与发出 ALLOCATEMC_ALLOCATE的本地 TP 开始对话。 成功执行后,此谓词将返回合作伙伴 TP 和 conv_id tp_id) ( TP 标识符。

TP_STARTED
由本地 TP 颁发。 此谓词通知 APPC 本地 TP 正在启动。 成功执行后,此谓词将返回本地 TP 的tp_id

用于发送数据的谓词

CONFIRMMC_CONFIRM
将本地 LU 的发送缓冲区的内容和确认请求发送到合作伙伴 TP。

FLUSHMC_FLUSH
刷新本地 LU 的发送缓冲区,并将缓冲区的内容发送到伙伴 LU 和 TP。 如果发送缓冲区为空,则不执行任何操作。

PREPARE_TO_RECEIVEMC_PREPARE_TO_RECEIVE
将会话的状态从 SEND 更改为 RECEIVE。 在更改聊天状态之前,此谓词执行 FLUSHMC_FLUSHCONFIRMMC_CONFIRM 的等效项。 成功执行此谓词后,本地 TP 可以接收数据。

REQUEST_TO_SENDMC_REQUEST_TO_SEND
通知合作伙伴 TP 本地 TP 要发送数据。 本地 TP 必须等到合作伙伴 TP 发出PREPARE_TO_RECEIVEMC_PREPARE_TO_RECEIVERECEIVE_AND_WAITMC_RECEIVE_AND_WAIT,并且合作伙伴 TP 的会话状态更改为 RECEIVE,然后本地 TP 才开始发送数据。

SEND_DATAMC_SEND_DATA
将数据放入本地 LU 的发送缓冲区中,以便传输到合作伙伴 TP。

发生以下情况之一时,本地 LU 的发送缓冲区中收集的数据将传输到合作伙伴 LU 和合作伙伴 TP:

  • 发送缓冲区将填满。

  • 本地 TP 发出 FLUSHMC_FLUSHCONFIRMMC_CONFIRMDEALLOCATEMC_DEALLOCATE或其他刷新本地 LU 发送缓冲区的谓词。

用于接收数据的谓词

POST_ON_RECEIPT或 MC_POST_ON_RECEIPT
发出此谓词允许应用程序注册以在数据或状态到达本地 LU 时接收通知,而无需同时实际接收通知。 此谓词只能在处于 RECEIVE 状态时发出,并且它永远不会导致会话状态的更改。

当 TP 发出此谓词时,APPC 会立即将控制权返回到 TP。 满足指定条件时,将发出指定为参数的 Win32® 事件信号,谓词完成。 然后,TP 查看谓词控制块中的返回代码,以确定任何数据或状态通知是否已到达本地 LU,并发出 RECEIVE_IMMEDIATERECEIVE_AND_WAIT 谓词来实际接收数据或状态通知。

RECEIVE_AND_POSTMC_RECEIVE_AND_POST
在会话处于 RECEIVE 状态时发出此谓词会将会话状态更改为PENDING_POST,并导致本地 TP 异步接收数据。 这样,当数据仍到达本地 LU 时,本地 TP 就可以继续处理。

在会话处于 SEND 状态时发出此谓词会刷新 LU 的发送缓冲区,并将会话状态更改为PENDING_POST。 然后,本地 TP 开始异步接收数据。

RECEIVE_AND_WAITMC_RECEIVE_AND_WAIT
在会话处于 RECEIVE 状态时发出此谓词会导致本地 TP 接收当前可从合作伙伴 TP 获取的任何数据。 如果没有可用的数据,则本地 TP 将等待数据到达。

在会话处于 SEND 状态时发出此谓词会刷新 LU 的发送缓冲区,并将会话状态更改为 RECEIVE。 然后,本地 TP 开始接收数据。

RECEIVE_IMMEDIATEMC_RECEIVE_IMMEDIATE
接收合作伙伴 TP 当前提供的任何数据。 如果没有可用的数据,则本地 TP 不会等待。

TEST_RTSMC_TEST_RTS
确定是否已收到REQUEST_TO_SEND、MC_REQUEST_TO_SEND或通知。

用于确认数据或报告错误的谓词

CONFIRMEDMC_CONFIRMED
回复来自合作伙伴 TP 的确认请求。 它会通知合作伙伴 TP 本地 TP 已接收并处理了数据,而不会出错。

RECEIVE_LOG_DATAMC_RECEIVE_LOG_DATA
发出此谓词允许用户注册以接收与入站函数管理标头 7 关联的日志数据, (FMH7) 错误报告。 谓词将缓冲区传递给 APPC,接收的任何日志数据都放置在该缓冲区中。 当连续 FMH7 到达时,APPC 会继续使用此缓冲区,直到提供另一个缓冲区 (,即,直到 TP 发出另一 个RECEIVE_LOG_DATAMC_RECEIVE_LOG_DATA 指定其他缓冲区,或者) 根本没有任何缓冲区。

SEND_CONVERSATIONMC_SEND_CONVERSATION
此谓词由调用 TP 发出,在本地 LU 和伙伴 LU 之间分配会话,发送会话上的数据,然后解除分配会话。

SEND_ERRORMC_SEND_ERROR
通知合作伙伴 TP 本地 TP 遇到应用程序级错误。

用于获取和设置信息的谓词

GET_ATTRIBUTESMC_GET_ATTRIBUTES
由 TP 用于获取会话的属性。

GET_LU_STATUS
用于报告特定远程 LU 的状态。

GET_STATE
由 TP 用来询问特定会话的状态。

GET_TP_PROPERTIES
返回 TP 和当前事务的属性。

GET_TYPE
由 TP 用于确定对话类型 (特定会话的基本或映射) 。 利用此信息,TP 可以决定是发出基本对话谓词还是映射对话谓词。

SET_TP_PROPERTIES
用于设置 TP 和当前事务的属性。

提供管理功能的谓词

ACTIVATE_SESSION
使用指定的模式激活本地 LU 与指定伙伴 LU 之间的会话。

CNOS (更改会话数)
建立 APPC LU 6.2 会话限制。

DEACTIVATE_SESSION
停用特定会话或特定模式下的所有会话。

DISPLAY
返回 SNA 节点的配置信息和当前操作值。

结束对话的谓词

DEALLOCATEMC_DEALLOCATE
解除分配两个TP 之间的对话。 在解除分配会话之前,此谓词执行 FLUSHMC_FLUSHCONFIRMMC_CONFIRM 的等效项。

TP_ENDED
由本地和合作伙伴 TP 颁发。 它通知 APPC TP 即将结束。 发出此谓词也会终止任何活动对话。