已確認

CONFIRMED 動詞回應合作夥伴交易程式(TP)的確認請求。 它會通知合作夥伴 TP,本地 TP 尚未偵測到收到的資料錯誤。 由於發出確認請求的 TP 會等待確認, CONFIRMED 會同步兩個 TP 的處理。

以下結構描述了 CONFIRMED 動詞所使用的動詞控制區塊(VCB)。

語法


struct confirmed {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned long   conv_id;  
    unsigned char   rts_rcvd;  
};   

備註

成員

操作碼
提供的參數。 指定動詞操作代碼,AP_B_CONFIRMED。

Opext
提供的參數。 指定動詞運算延伸 AP_BASIC_CONVERSATION。

後備隊2
保留欄位。

primary_rc
回傳參數。 指定 APPC 在動詞結束時設定的主要回傳代碼。 有效的回傳代碼會依 APPC 所發出的動詞而有所不同。 請參閱返回代碼以了解此動詞的有效錯誤代碼。

secondary_rc
回傳參數。 指定 APPC 在動詞完成時設定的次要回傳碼。 有效的回傳代碼會依 APPC 所發出的動詞而有所不同。 請參閱返回代碼以了解此動詞的有效錯誤代碼。

tp_id
提供的參數。 辨識當地的衛生紙。 此參數的值由呼叫TP中的 TP_STARTED回傳,或在呼叫TP中以 RECEIVE_ALLOCATE 回傳。

conv_id
提供的參數。 識別兩位TP之間建立的對話。 此參數的值由呼叫TP中的 ALLOCATE 或呼叫TP中的 RECEIVE_ALLOCATE 回傳。

rts_rcvd
回傳參數。 顯示合作夥伴 TP 是否發出 MC_REQUEST_TO_SEND,請求本地 TP 將對話變更為 RECEIVE 狀態。

要切換為接收狀態,本地 TP 可以使用 MC_PREPARE_TO_RECEIVE、 MC_RECEIVE_AND_WAIT 或 MC_RECEIVE_AND_POST。

退回代碼

AP_OK
主要退稅代碼;動詞成功執行。

AP_PARAMETER_CHECK
主要退稅代碼;該動詞因參數錯誤而未執行。

AP_BAD_CONV_ID

次要回傳代碼; conv_id 的值與 APPC 分配的對話識別碼不符。

AP_BAD_TP_ID

次要回傳代碼; tp_id 的值與 APPC 分配的 TP 識別碼不符。

AP_STATE_CHECK
主要退稅代碼;該動詞未執行,因為它以無效狀態發出。

AP_CONFIRMED_BAD_STATE

次要回傳代碼;對話狀態不是確認、CONFIRM_SEND或CONFIRM_DEALLOCATE狀態。

AP_COMM_SUBSYSTEM_ABENDED
主要退稅代碼;表示以下條件之一:

  • 此對話所用節點遇到 ABEND。

  • TP 與 PU 2.1 節點之間的連線已中斷(區域網路錯誤)。

  • TP 電腦的 SnaBase 遇到了 ABEND。

    系統管理員應檢視錯誤日誌以判斷 ABEND 發生的原因。

    AP_COMM_SUBSYSTEM_NOT_LOADED
    主要退稅代碼;在處理動詞時,必須的元件無法被載入或終止。 因此,無法進行溝通。 請聯絡系統管理員以採取糾正措施。

    AP_CONVERSATION_TYPE_MIXED
    主要退稅代碼;TP 已發布基本與映射對話動詞。 一次對話只能發出一種類型。

    AP_INVALID_VERB_SEGMENT
    主要退稅代碼;VCB 的範圍超出資料區段的末端。

    AP_STACK_TOO_SMALL
    主要退稅代碼;應用程式的堆疊大小太小,無法執行該動詞。 增加你的應用程式堆疊大小。

    AP_CONV_BUSY
    主要退稅代碼;在任何對話中,一次只能有一個未完成的對話動詞。 如果本地 TP 有多條執行緒,且多個執行緒使用相同 conv_id發出 APPC 呼叫,這種情況就可能發生。

    AP_THREAD_BLOCKING
    主要退稅代碼;呼叫的執行緒已經在阻塞通話中。

    AP_UNEXPECTED_DOS_ERROR
    主要退稅代碼;作業系統在處理來自本地 TP 的 APPC 呼叫時,曾回傳錯誤給 APPC。 作業系統的回傳碼會透過 secondary_rc回傳。 它以英特爾位元組互換順序出現。 如果問題持續,請諮詢系統管理員。

    備註

    當 TP 發出此動詞時,對話必須處於以下其中一種狀態:

  • 確認

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    新狀態由舊狀態決定——當地 TP 發出 CONFIRMED 時的對話狀態。 舊狀態由前一個接收動詞的 what_rcvd 參數值表示。 以下狀態變更可能發生:

舊州 新國家
確認 RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE 重排

確認請求

確認請求由合作夥伴 TP 中的以下動詞之一發出:

  • 確認

  • PREPARE_TO_RECEIVE 如果 ptr_type 設為 AP_SYNC_LEVEL,且對話的同步程度(由 ALLOCATE 設定)為 AP_CONFIRM_SYNC_LEVEL

  • 若dealloc_type設為AP_SYNC_LEVEL且對話的同步等級(由 ALLOCATE 建立)為 AP_CONFIRM_SYNC_LEVEL 則 DEALLOCATE 進行

  • SEND_DATA 如果類型設為 AP_SEND_DATA_CONFIRM,且對話的同步等級(由 ALLOCATE 決定)為 AP_CONFIRM_SYNC_LEVEL

    本地 TP 透過以下動詞的 what_rcvd 參數接收確認請求:

  • RECEIVE_IMMEDIATE

  • RECEIVE_AND_WAIT

  • RECEIVE_AND_POST

    CONFIRMED 僅在本地TP包含以下值之一時 what_rcvd 才會發出:

  • AP_CONFIRM_WHAT_RECEIVED

  • AP_CONFIRM_SEND

  • AP_CONFIRM_DEALLOCATE

    若 rtn_status 參數設為 AP_YES,what_rcvd 也可以包含以下數值:

  • AP_DATA_COMPLETE_CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND

  • AP_DATA_COMPLETE_CONFIRM_DEALL

    對於基本對話, what_rcvd 也可以包含以下數值:

  • AP_DATA_CONFIRM

  • AP_DATA_CONFIRM_SEND

  • AP_DATA_CONFIRM_DEALLOCATE