Allocate (CPI-C)
分配调用 (函数名称 cmallc) 由调用程序发出,以使用当前会话特征分配与合作伙伴程序的对话。 CPI-C 还可以在本地逻辑单元 (LU) 和伙伴 LU 之间分配会话(如果尚不存在)。
语法
CM_ENTRY Allocate(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *return_code
);
参数
conversation_ID
提供的参数。 指定会话标识符。 此参数的值由 Initialize_Conversation 返回。
return_code
此调用返回的代码。 本主题稍后将列出有效的返回代码。
返回代码
CM_OK
主返回代码;已成功执行的调用。
CM_OPERATION_NOT_ACCEPTED
主返回代码;此值指示对此会话的上一个操作不完整。
CM_OPERATION_INCOMPLETE
主返回代码;已在会话上启动非阻止操作,但尚未完成。 程序可以发出 Wait_For_Conversation 等待操作完成或 Cancel_Conversation 取消操作和对话。
CM_PARAMETER_ERROR
主返回代码;发生了以下情况之一:
从端信息派生或由 Set_Mode_Name 设置的模式名称无效。
模式名称由 SNA 服务事务程序 (TP) 使用;调用程序无权使用此模式名称。 例如 SNASVCMG。
从端信息派生的合作伙伴计划是 SNA 服务 TP;本地程序没有将会话分配给 SNA 服务 TP 所需的权限。
合作伙伴计划是参与基本对话的服务 TP,但会话设置为CM_MAPPED_CONVERSATION。
从边信息派生或由 Set_Partner_LU_Name 设置的伙伴 LU 名称无效。
CM_PROGRAM_PARAMETER_CHECK
主返回代码; conversation_ID 指定的值无效,或者变量的地址无效。CM_PROGRAM_STATE_CHECK
主返回代码;会话未处于 INITIALIZE 状态。CM_PRODUCT_SPECIFIC_ERROR
主返回代码;发生特定于产品的错误,并且已记录在产品错误日志中。CM_UNSUCCESSFUL
主返回代码;对话返回控制特征设置为CM_IMMEDIATE并且本地 LU 没有可用的争用方会话。如果将会话返回控件类型设置为 CM_WHEN_SESSION_ALLOCATED,则可以生成以下返回代码。
CM_ALLOCATE_FAILURE_NO_RETRY
主返回代码;由于配置错误或会话协议错误等永久性条件,无法分配会话。 若要确定发生了哪种错误,系统管理员应检查错误日志文件。 请仅在更正错误之后才重试分配。CM_ALLOCATE_FAILURE_RETRY
主返回代码;由于临时条件(例如链接失败),无法分配会话。 失败的原因已记录在系统错误日志中。 重试分配。状态更改
发出 分配 时,会话必须处于 INITIALIZE 状态。
下表中汇总的状态更改基于 return_code 参数的值。
return_code | 新状态 |
---|---|
CM_OK | SEND |
CM_ALLOCATE_FAILURE_NO_RETRY | RESET |
CM_ALLOCATE_FAILURE_RETRY | RESET |
所有其他 | 没有变化 |
注解
分配的会话类型基于对话类型特征:映射或基本。
如果此调用分配了会话,则无法更改以下会话特征: