ACTIVATE_SESSION

ACTIVATE_SESSION谓词请求Microsoft® Host Integration Server,以使用指定模式激活本地逻辑单元(LU)和指定伙伴 LU 之间的会话。 当指定的会话处于活动状态或失败时,此谓词将完成。

以下结构描述了 ACTIVATE_SESSION 谓词使用的谓词控制块。

语法

  
typedef struct activate_session {  
    unsigned short  opcode;  
    unsigned char   reserv2[2];  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   reserv3[8];  
    unsigned char   lu_alias[8];  
    unsigned char   plu_alias[8];  
    unsigned char   mode_name[8];  
    unsigned char   fqplu_name[17];  
    unsigned char   polarity;  
    unsigned char   session_id[8];  
    unsigned long   conv_group_id;  
    unsigned char   reserv4[1];  
    unsigned char   type;  
    HANDLE          deactivation_event;  
    unsigned short* p_deactivation_status;  
    unsigned char   reserv5[10];  
} ACTIVATE_SESSION;   

成员

opcode
提供的参数。 指定谓词作代码,AP_ACTIVATE_SESSION。

reserv2
保留字段。

primary_rc
返回的参数。 指定 APPC 在谓词完成时设置的主要返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。

secondary_rc
返回的参数。 指定 APPC 在谓词完成时设置的辅助返回代码。 有效的返回代码因发布的 APPC 谓词而异。 有关此谓词的有效错误代码,请参阅返回代码。

reserv3
保留字段。

lu_alias
提供的参数。 提供本地用于 LU 的 8 字节 ASCII 名称。 如果要使用默认的本地 LU,请使用空格填充此参数。

plu_alias
提供的参数。 提供本地用于合作伙伴 LU 的 8 字节 ASCII 名称。 如果要使用默认远程 LU,请使用空格填充此参数。 如果要使用 fqplu_name 参数指定伙伴 LU,请使用二进制零填充此参数。

mode_name
提供的参数。 指定 EBCDIC (类型 A) 模式名称。

fqplu_name
提供的参数。 当本地节点未定义 任何plu_alias 名称并且合作伙伴 LU 位于其他节点时,请在 EBCDIC 中提供合作伙伴 LU 名称(类型 A)。 如果指定 了plu_alias ,则忽略此参数。

极性
提供的参数。 指定会话的极性。 可能的值为:

AP_POL_EITHER
如果设置了AP_POL_EITHER,ACTIVATE_SESSION激活第一个演讲者会话(如果可用);否则,将激活投标人会话。

AP_POL_FIRST_SPEAKER
如果设置了AP_POL_FIRST_SPEAKER,则仅当请求的极性会话可用时,ACTIVATE_SESSION才会成功。

AP_POL_BIDDER
如果设置了AP_POL_BIDDER,则仅当请求的极性会话可用时,ACTIVATE_SESSION才会成功。

会话ID (session_id)
返回的参数。 提供激活会话的 8 字节标识符。

conv_group_id
返回的参数。 提供会话组标识符。 可以在 ALLOCATE 上指定此参数, 并MC_ALLOCATE 谓词来启动此特定会话上的对话。

reserv4
保留字段。

类型
提供的参数。 指定激活的类型。 可能的值为:

AP_ACT_ACTIVE
如果指定了AP_ACT_ACTIVE,则 Host Integration Server 将尝试启动所需的会话(通过发送 BIND 或 INIT-SELF)。

AP_ACT_PASSIVE
如果指定了AP_ACT_PASSIVE,则 Host Integration Server 不会尝试启动会话,当合作伙伴启动会话时,谓词将完成。

deactivation_event
提供的参数。 提供 APPC 在停用会话时发出信号的事件句柄。 应通过调用 CreateEventOpenEvent Win32® 函数来获取事件句柄。

p_deactivation_status
返回的参数。 指向在发出停用事件信号以提供完成状态时设置的值的指针。 可以返回以下值。

AP_SESSION_DEACTIVATED
AP_COMM_SUBSYSTEM_ABENDED
reserv5
保留字段。

返回代码

AP_OK
主要返回代码;已成功执行谓词。 辅助返回代码指示已建立会话的极性。 可以返回以下值。

AP_POL_FIRST_SPEAKER
AP_POL_BIDDER
AP_PARAMETER_CHECK
主要返回代码;由于参数错误,谓词未执行。

AP_INVALID_LU_ALIAS
辅助返回代码;APPC 在定义的lu_alias中找不到指定的 lu_alias

AP_INVALID_PLU_ALIAS
辅助返回代码;APPC 无法识别指定的 plu_alias

AP_INVALID_MODE_NAME
辅助返回代码;APPC 无法识别指定的 mode_name

AP_INVALID_FQPLU_NAME
辅助返回代码;APPC 无法识别指定的 fqplu_name

AP_INVALID_POLARITY
辅助返回代码;APPC 无法识别指定的 极性

AP_INVALID_TYPE
辅助返回代码;APPC 无法识别指定的 类型

AP_ACTIVATION_FAIL_NO_RETRY
主要返回代码;由于需要作的条件(例如配置不匹配或会话协议错误),无法激活会话。

AP_ACTIVATION_FAIL_RETRY
主要返回代码;由于临时条件(如链接失败),无法激活会话。

AP_SESSION_LIMITS_EXCEEDED
主要返回代码;无法激活会话,因为已超出会话限制。

AP_SESSION_LIMITS_CLOSED
主要返回代码;无法激活会话,因为会话限制已关闭(即零)。

AP_COMM_SUBSYSTEM_ABENDED
主要返回代码;指示发生以下情况之一:

此会话使用的节点遇到 ABEND。

TP 与 PU 2.1 节点之间的连接已中断(发生局域网错误)。

TP 计算机上的 SnaBase 遇到 ABEND。

系统管理员应检查错误日志以确定 ABEND 的原因。

AP_COMM_SUBSYSTEM_NOT_LOADED
主要返回代码;处理谓词时,无法加载或终止所需的组件。 因此,无法进行通信。 请联系系统管理员以采取纠正措施。

AP_STACK_TOO_SMALL
主要返回代码;应用程序的堆栈大小太小,无法执行谓词。 增加应用程序的堆栈大小。

AP_THREAD_BLOCKING
主要返回代码;调用线程已在阻塞调用中。

注解

此谓词支持主动激活和被动激活。

此谓词的活动形式导致 Host Integration Server 尝试启动会话(通过为独立 LU 发送 BIND 或依赖 LU 的 INIT-SELF)。 此谓词的活动形式也会导致以下行为:

  • 如果与合作伙伴 LU 的连接处于非活动状态,并且配置为按需连接,则节点将尝试启动连接。

  • 如果使用动态伙伴,节点将设置 LU-LU/MODE 合作关系。

  • 如果 CNOS 尚未运行,节点将启动 CNOS(但不会更改任何会话限制)。

    被动形式不会尝试启动会话,但当 LU 由其合作伙伴 LU 的 BIND 启动时完成。 对于独立的 LU,多个被动 ACTIVATE_SESSION 谓词可以排队等待相同的 LU-LU/MODE,并在启动新会话时依次完成。

    此谓词还包括停用事件,该事件在会话被 除DEACTIVATE_SESSION 谓词以外的任何方法停用时发布(例如,来自其伙伴 LU 的未请求 UNBIND 会导致发布此事件)。