RECEIVE_ALLOCATE

RECEIVE_ALLOCATE谓词由调用的事务程序 (TP) 发出,以确认调用的 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

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

    如果 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_ALLOCATEALLOCATE 指定合作伙伴 TP 选择的对话类型。 以下列出的是可能的值:

    AP_BASIC_CONVERSATION

    AP_MAPPED_CONVERSATION

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

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

    plu_alias
    返回的参数。 提供本地 TP 知道发起传入分配) 的伙伴 LU (别名。 它是 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。

    对于返回的参数:

    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_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