RECEIVE_ALLOCATE

调用的事务程序(TP)发出 RECEIVE_ALLOCATE 谓词,以确认已调用的 TP 已准备好开始与发出 ALLOCATEMC_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_ALLOCATEALLOCATE 生成。

此参数是 64 字节 EBCDIC 字符串,区分大小写。 tp_name参数可以包含 AE EBCDIC 字符集中的字符:

  • 大写和小写字母

  • 数字 0 到 9

  • 特殊字符 $、#和 period (.)

    如果 tp_name 小于 64 个字节,请使用 EBCDIC 空格(0x40)将其放在右侧。

    SNA 约定是服务 TP 名称最多可以有四个字符。 第一个字符是0x00和0x3F之间的十六进制字节。 其他字符来自 AE EBCDIC 字符集的类型。

    tp_id
    返回的参数。 标识本地 TP。

    conv_id
    返回的参数。 提供会话标识符。 它标识两个合作伙伴 TP 之间已建立的对话 APPC。

    sync_level
    返回的参数。 指定会话的同步级别。 它确定 TP 是否可以请求确认接收数据并确认接收数据。

  • AP_NONE指定不会在此会话中使用确认处理。

  • AP_CONFIRM_SYNC_LEVEL指定 TP 可以在此会话中使用确认处理。

  • AP_SYNCPT指定 TP 可以在此会话中使用同步点级别 2 确认处理。

    conv_type
    返回的参数。 使用 MC_ALLOCATEALLOCATE 指定合作伙伴 TP 选择的对话类型。 以下是可能的值:

    AP_BASIC_CONVERSATION

    AP_MAPPED_CONVERSATION

    user_id
    返回的参数。 使用 MC_ALLOCATEALLOCATE 提供合作伙伴 TP 指定的用户标识符(如果合作伙伴 TP 将 MC_ALLOCATEALLOCATE 谓词的安全参数设置为AP_PGM或AP_SAME)。 它是 AE EBCDIC 字符串类型。

    lu_alias
    返回的参数。 提供本地逻辑单元(LU)已知到本地 TP 的别名。 它是 ASCII 字符串。

    plu_alias
    返回的参数。 提供合作伙伴 LU(已启动传入分配)已知到本地 TP 的别名。 它是 ASCII 字符串。

    mode_name
    返回的参数。 在合作伙伴 TP 中提供 由MC_ALLOCATEALLOCATE 指定的模式名称。 它是配置期间定义的一组网络特征的名称。 mode_name是类型 A EBCDIC 字符串。

    reserv3
    保留字段。

    conv_group_id
    对话组标识符。

    fqplu_name
    此返回的参数提供完全限定的 LU 名称。

    pip_incoming
    仅当需要 Sync Point 服务时,此可选提供的和返回的参数才适用。

    对于提供的参数:

    如果 TP 接受 PIP 数据,AP_YES。

    如果 TP 不接受 PIP 数据,AP_NO。

    对于返回的参数:

    如果 PIP 数据可用,则AP_YES。

    如果 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 等待传入分配,并最终超时。

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_ALLOCATEALLOCATE 导致)不存在,则调用的 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