RECEIVE_ALLOCATE
RECEIVE_ALLOCATE谓词由调用的事务程序 (TP) 发出,以确认调用的 TP 已准备好开始与发出 ALLOCATE 或MC_ALLOCATE的调用 TP 的会话。
以下结构描述RECEIVE_ALLOCATE谓词使用的谓词控制块 (VCB) 。
语法
struct receive_allocate {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char tp_name[64];
unsigned char tp_id[8];
unsigned long conv_id;
unsigned char sync_level;
unsigned char conv_type;
unsigned char user_id[10];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char mode_name[8];
unsigned char reserv3[2];
unsigned long conv_group_id;
unsigned char fqplu_name[17];
unsigned char pip_incoming;
unsigned char syncpoint_rqd;
unsigned char reserv4[3];
};
成员
opcode
提供的参数。 指定谓词操作代码,AP_RECEIVE_ALLOCATE。
opext
提供的参数。 指定谓词操作扩展,AP_BASIC_CONVERSATION。
reserv2
一个保留字段。
primary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的主要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
secondary_rc
返回的参数。 指定在谓词完成时由 APPC 设置的次要返回代码。 有效的返回代码因发出的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅“返回代码”。
tp_name
提供的参数。 提供本地 TP 的名称。 tp_name 的值必须与通过注册表或环境变量配置的 TP 名称匹配。 APPC 将 RECEIVE_ALLOCATE 谓词的 tp_name 参数与传入分配指定的 TP 名称匹配,该名称由调用 TP 中的 MC_ALLOCATE 或 ALLOCATE 生成。
此参数是一个 64 字节 EBCDIC 字符串,区分大小写。 tp_name 参数可以包含类型为 AE EBCDIC 字符集的字符:
大写和小写字母
数字 0 到 9
特殊字符 $、#和句点 (.)
如果 tp_name 小于 64 个字节,请使用 EBCDIC 空格 (0x40) 将其填充在右侧。
SNA 约定是服务 TP 名称最多可以包含四个字符。 第一个字符是介于 0x00 和 0x3F 之间的十六进制字节。 其他字符来自类型 AE EBCDIC 字符集。
tp_id
返回的参数。 标识本地 TP。conv_id
返回的参数。 提供会话标识符。 它标识 APPC 在两个合作伙伴 TP 之间建立的对话。sync_level
返回的参数。 指定会话的同步级别。 它确定 TP 是否可以请求确认接收数据并确认接收数据。AP_NONE指定不会在此会话中使用确认处理。
AP_CONFIRM_SYNC_LEVEL指定 TP 可以使用此会话中的确认处理。
AP_SYNCPT指定 TP 可以使用此会话中的同步点级别 2 确认处理。
conv_type
返回的参数。 使用 MC_ALLOCATE 或 ALLOCATE 指定合作伙伴 TP 选择的对话类型。 以下列出的是可能的值:AP_BASIC_CONVERSATION
AP_MAPPED_CONVERSATION
user_id
返回的参数。 如果合作伙伴 TP 将 MC_ALLOCATE 或 ALLOCATE 谓词的安全参数设置为AP_PGM或AP_SAME) ,则使用 MC_ALLOCATE 或 ALLOCATE (提供合作伙伴 TP 指定的用户标识符。 它是 AE EBCDIC 字符串类型。lu_alias
返回的参数。 提供本地 TP (LU) 本地逻辑单元的别名。 它是 ASCII 字符串。plu_alias
返回的参数。 提供本地 TP 知道发起传入分配) 的伙伴 LU (别名。 它是 ASCII 字符串。mode_name
返回的参数。 提供由合作伙伴 TP 中的 MC_ALLOCATE 或 ALLOCATE 指定的模式名称。 它是配置期间定义的一组网络特征的名称。 mode_name类型为 A EBCDIC 字符串。reserv3
一个保留字段。conv_group_id
会话组标识符。fqplu_name
此返回的参数提供完全限定的 LU 名称。pip_incoming
仅当需要 Sync Point 服务时,提供并返回的可选参数才适用。对于提供的参数:
如果 TP 接受 PIP 数据,AP_YES。
如果 TP 不接受 PIP 数据,则AP_NO。
对于返回的参数:
AP_YES PIP 数据是否可用。
如果 PIP 数据不可用,AP_NO。
syncpoint_rqd
此参数指示是否需要 Sync Point 服务。如果需要同步点,则此参数的值为 AP_YES。
如果不需要同步点,则此参数的值为 AP_NO。
reserv4
一个保留字段。
返回代码
AP_OK
主要返回代码;谓词已成功执行。
AP_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。
AP_UNDEFINED_TP_NAME
辅助返回代码;未正确配置 TP 名称。
AP_STATE_CHECK
主要返回代码;谓词未执行,因为它是在无效状态下发出的。
AP_ALLOCATE_NOT_PENDING
辅助返回代码;APPC 没有从调用 TP) 找到与 RECEIVE_ALLOCATE 提供的 tp_name 值匹配的传入分配 (。 RECEIVE_ALLOCATE 已等待该传入 allocate,但最终超时。
AP_INVALID_PROCESS
辅助返回代码;发出 RECEIVE_ALLOCATE 的过程与 APPC 启动的过程不同。
AP_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示以下状况之一:
此对话使用的节点遇到了 ABEND。
TP 与 PU 2.1 节点之间的连接已断开(LAN 错误)。
TP 计算机上的 SnaBase 遇到了 ABEND。
系统管理员应检查错误日志以确定发生 ABEND 的原因。
AP_CONV_BUSY
主返回代码;任何对话一次只能有一个未完成的对话谓词。AP_THREAD_BLOCKING
主要返回代码;调用线程已在某个阻塞调用中。AP_COMM_SUBSYSTEM_NOT_LOADED
主要返回代码;处理谓词时无法加载或终止某个必需的组件。 因此无法通信。 请联系系统管理员以执行纠正措施。AP_INVALID_VERB_SEGMENT
主要返回代码;VCB 超出了数据段的末尾。AP_STACK_TOO_SMALL
主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。AP_UNEXPECTED_DOS_ERROR
主要返回代码;操作系统在处理来自本地 TP 的 APPC 调用时向 APPC 返回了错误。 已通过 secondary_rc 返回了操作系统返回代码。 此返回代码是以 Intel 字节交换顺序显示的。 如果问题持续出现,请咨询系统管理员。
备注
这必须是调用的 TP 发出的第一个 APPC 谓词。 初始状态为 RESET。 如果谓词成功执行 (primary_rc AP_OK) ,则状态将更改为 RECEIVE。
为了响应此谓词,APPC 在两个TP之间建立会话,并为调用的 TP 和会话标识符生成 TP 标识符。 这些标识符是后续 APPC 谓词的必需参数。
如果调用的 TP 问题 RECEIVE_ALLOCATE 并且调用 TP) 发出的 MC_ALLOCATE 或 ALLOCATE 导致的相应传入分配 (不存在,则调用的 TP 将等待传入分配到达或谓词超时。超时值由系统管理员设置。
Host Integration Server 还支持 APPC RECEIVE_ALLOCATE_EX和RECEIVE_ALLOCATE_EX_END函数,以简化一些可调用事务程序的设计和实现。 此函数允许 APPC 应用程序接收主机集成服务器通过特定本地 APPC LU 接收的所有传入 FMH-5 附加请求,从而允许应用程序充当“附加管理器”。附加管理器是一个程序,用于处理传入的 FMH-5 附加请求以启动 LU6.2 会话。 当 APPC 应用程序调用RECEIVE_ALLOCATE (而不是RECEIVE_ALLOCATE_EX) 时,Host Integration Server 将处理附加管理器功能。
有关附加管理器的详细信息,请参阅 RECEIVE_ALLOCATE_EX。