共用方式為


Allocate (CPI-C)

叫用程式會使用目前的交談特性,發出 Allocate 呼叫 (函式名稱 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
All others 沒有變更

備註

配置的交談類型是以交談類型特性為基礎:對應或基本。

當此呼叫已配置交談時,無法變更下列交談特性:

  • 交談類型

  • 模式名稱

  • 合作夥伴 LU 名稱

  • 合作夥伴計畫名稱

  • 傳回控制項

  • 同步處理層級

  • 交談安全性

  • 使用者識別碼

  • 密碼

    若要立即傳送配置要求,叫用程式可以在Allocate之後立即發出FlushConfirm。 否則,配置要求會與本機 LU 傳送緩衝區中的其他資料一起累積,直到緩衝區已滿為止。

    藉由在配置之後發出Confirm,叫用程式可以立即判斷配置是否成功, (對話同步處理層級是否設定為CM_CONFIRM) 。

    如果合作夥伴 LU 拒絕 Allocate所產生的配置要求,則會在後續呼叫時將錯誤傳回至叫用程式。