確認

CONFIRM動詞命令會將本機邏輯單元的 (LU 的內容傳送) 傳送緩衝區和確認要求至夥伴交易程式 (TP) 。

下列結構描述 CONFIRM 動詞命令所使用的動詞控制項區塊。

語法

  
struct confirm {  
    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;  
};   

備註

成員

opcode
提供的參數。 指定動詞作業程式碼 AP_B_CONFIRM。

opext
提供的參數。 指定動詞作業擴充功能,AP_BASIC_CONVERSATION。

reserv2
保留的欄位。

primary_rc
傳回的參數。 指定 APPC 在動詞命令完成時所設定的主要傳回碼。 有效的傳回碼會依發出的 APPC 動詞而有所不同。 請參閱傳回碼以取得此動詞命令的有效錯誤碼。

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

tp_id
提供的參數。 識別本機 TP。 TP_STARTED傳回這個參數的值。

conv_id
傳回的參數。 識別在這兩個 TPs 之間建立的交談。

rts_rcvd
傳回的參數。 指出夥伴 TP 是否發出 REQUEST_TO_SEND,這會要求本機 TP 將交談變更為「接收」狀態。

若要變更為在 Microsoft Windows 接收狀態,本地 TP 可以使用PREPARE_TO_RECEIVERECEIVE_AND_WAITRECEIVE_AND_POST

傳回碼

AP_OK
主要傳回碼;已成功執行動詞。

AP_PARAMETER_CHECK
主要傳回碼;因為參數錯誤,所以未執行此動詞。

AP_BAD_CONV_ID

次要傳回碼; conv_id 的值不符合 APPC 指派的交談識別碼。

AP_BAD_TP_ID

次要傳回碼; tp_id 的值與 APPC 所指派的 tp 識別碼不符。

AP_CONFIRM_ON_SYNC_LEVEL_NONE

次要傳回碼;本地 TP 嘗試在同步處理層級為 AP_NONE 的交談中使用 CONFIRM 。 同步處理層級(由 配置建立)必須是 AP_CONFIRM_SYNC_LEVEL。

AP_STATE_CHECK
主要傳回碼;因為發出的動作處於無效狀態,所以無法執行。

AP_CONFIRM_BAD_STATE

次要傳回碼;交談未處於傳送狀態。

AP_CONFIRM_NOT_LL_BDY

次要傳回碼;本機 TP 的交談處於傳送狀態,而本地 TP 未完成傳送邏輯記錄。

AP_ALLOCATION_ERROR
主要傳回碼;APPC 無法配置交談。 交談狀態設定為 [重設]。

您可以透過在 配置之後發出的動詞命令來傳回此程式碼。

AP_ALLOCATION_FAILURE_NO_RETRY

次要傳回碼;無法配置交談,因為發生永久狀況,例如設定錯誤或會話通訊協定錯誤。 若要判斷錯誤,系統管理員應該檢查錯誤記錄檔。 請勿重試配置,直到錯誤更正為止。

AP_ALLOCATION_FAILURE_RETRY

次要傳回碼;因為暫時性狀況(例如連結失敗),所以無法配置交談。 失敗的原因會記錄在系統錯誤記錄檔中。 重試配置。

AP_CONVERSATION_TYPE_MISMATCH

次要傳回碼;夥伴 LU 或 TP 不支援在配置要求中指定 (基本或對應) 的交談類型。

AP_PIP_NOT_ALLOWED

次要傳回碼;配置要求指定 PIP 資料,但夥伴 TP 不需要此資料,或夥伴 LU 不支援此資料。

AP_PIP_NOT_SPECIFIED_CORRECTLY

次要傳回碼;夥伴 TP 需要 PIP 資料,但配置要求指定的不是 PIP 資料或參數數目不正確。

AP_SECURITY_NOT_VALID

次要傳回碼;夥伴 LU 不接受配置要求中指定的使用者識別碼或密碼。

AP_SYNC_LEVEL_NOT_SUPPORTED

次要傳回碼;夥伴 TP 不支援配置要求中指定的 sync_level (AP_NONE、AP_CONFIRM_SYNC_LEVEL 或 AP_SYNCPT) ,或無法辨識 sync_level

AP_TP_NAME_NOT_RECOGNIZED

次要傳回碼;夥伴 LU 無法辨識配置要求中指定的 TP 名稱。

AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

次要傳回碼;遠端 LU 拒絕了配置要求,因為它無法啟動要求的夥伴 TP。 條件是永久性的。 錯誤的原因可能會記錄在遠端節點上。 請勿重試配置,直到錯誤更正為止。

AP_TRANS_PGM_NOT_AVAIL_RETRY

次要傳回碼;遠端 LU 拒絕了配置要求,因為它無法啟動要求的夥伴 TP。 此條件可能是暫時性的,例如超時時間。錯誤的原因可能會記錄在遠端節點上。 重試配置。

AP_COMM_SUBSYSTEM_ABENDED
主要傳回碼;表示下列其中一個條件:

  • 此交談使用的節點發生 ABEND。

  • TP 和 PU 2.1 節點之間的連線已中斷 () 的 LAN 錯誤。

  • TP 電腦上的 SnaBase 遇到 ABEND。

    系統管理員應檢查錯誤記錄檔,以判斷 ABEND 的原因。

    AP_CONV_FAILURE_NO_RETRY
    主要傳回碼;交談已結束,因為發生永久狀況,例如會話通訊協定錯誤。 系統管理員應檢查系統錯誤記錄檔,以判斷錯誤的原因。 請勿重試交談,直到錯誤更正為止。

    AP_CONV_FAILURE_RETRY
    主要傳回碼;因為暫時性錯誤,所以已終止交談。 重新開機 TP 以查看是否發生問題。 如果有的話,系統管理員應該檢查錯誤記錄檔,以判斷錯誤的原因。

    AP_CONVERSATION_TYPE_MIXED
    主要傳回碼;TP 已發出基本和對應對話動詞。 只有一個類型可以在單一對話中發出。

    AP_INVALID_VERB_SEGMENT
    主要傳回碼;VCB 延伸超過資料區段的結尾。

    AP_PROG_ERROR_PURGING
    主要傳回碼;在 [接收]、[擱置]、[PENDING_POST]、[確認]、[CONFIRM_SEND] 或 [CONFIRM_DEALLOCATE 狀態中,夥伴 TP 發出 SEND_ERRORerr_type 設定為 [AP_PROG]。 已清除傳送但尚未接收的資料。

    AP_STACK_TOO_SMALL
    主要傳回碼;應用程式的堆疊大小太小,無法執行動詞。 增加應用程式的堆疊大小。

    AP_CONV_BUSY
    主要傳回碼;任何交談上一次只能有一個未處理的交談動詞。 如果本地 TP 有多個執行緒,而且有多個執行緒使用相同的 conv_id發出 APPC 呼叫,就會發生這種情況。

    AP_THREAD_BLOCKING
    主要傳回碼;呼叫執行緒已在封鎖呼叫中。

    AP_UNEXPECTED_DOS_ERROR
    主要傳回碼;作業系統在處理來自本地 TP 的 APPC 呼叫時,傳回錯誤給 APPC。 系統會透過 secondary_rc傳回作業系統傳回碼。 它會顯示在 Intel 位元組交換順序中。 如果問題仍然存在,請洽詢系統管理員。

    AP_DEALLOC_ABEND_PROG
    主要傳回碼;交談已因下列其中一個原因而解除配置:

  • 夥伴 TP 發出 解除配置dealloc_type設定為 AP_ABEND_PROG。

  • 夥伴 TP 發生 ABEND,導致夥伴 LU 傳送 解除配置 要求。

    AP_DEALLOC_ABEND_SVC
    主要傳回碼;交談已解除配置,因為夥伴 TP 發行了dealloc_type設定為 AP_ABEND_SVC 的解除配置

    AP_DEALLOC_ABEND_TIMER
    主要傳回碼;交談已解除配置,因為夥伴 TP 發行了dealloc_type設定為 AP_ABEND_TIMER 的解除配置

    AP_SVC_ERROR_PURGING
    主要傳回碼;夥伴 TP (或夥伴 LU) 發出 SEND_ERRORerr_type 在接收、AP_SVC、確認、PENDING_POST 或 CONFIRM_SEND 狀態中設定為 CONFIRM_DEALLOCATE。 傳送給夥伴 TP 的資料可能已被清除。

    備註

    為了回應 確認,夥伴 TP 通常 會發出確認的問題,以 確認它已收到資料而沒有錯誤。 (如果夥伴 TP 遇到錯誤,則會發出 SEND_ERROR 或異常地解除配置交談。 )

    只有在透過配置建立的交談同步處理層級 AP_CONFIRM_SYNC_LEVEL 時,TP 才能發出確認

    當 TP 發出此動詞時,對話必須處於傳送狀態。 下表中摘要說明的狀態變更是根據 primary_rc的值。

primary_rc 新狀態
AP_OK 沒有變更
AP_ALLOCATION_ERROR RESET
AP_COMM_SUBSYSTEM_ABENDED AP_COMM_SUBSYSTEM_NOT_LOADED 重設重設
AP_CONV_FAILURE_RETRY AP_CONV_FAILURE_NO_RETRY 重設重設
AP_DEALLOC_ABEND AP_DEALLOC_ABEND_PROG AP_DEALLOC_ABEND_SVC AP_DEALLOC_ABEND_TIMER 重設重設重設
AP_PROG_ERROR_PURGING AP_SVC_ERROR_PURGING 接收接收

確認 等待夥伴 TP 的回應。 回應是由夥伴 TP 中的下列其中一個動詞所產生:

  • 證實

  • SEND_ERROR

  • Dealloc_type設定為 AP_ABEND_PROG、AP_ABEND_SVC 或 AP_ABEND_TIMER 時解除配置

  • TP_ENDED

    藉由在配置之後發出確認,叫用 TP 可以立即判斷配置是否成功 (如果synclevel設為 AP_CONFIRM_SYNC_LEVEL) 。

    一般來說, 配置動詞mode_name 參數的值必須符合針對叫用 TP 節點所設定的模式名稱,並在設定期間與夥伴 LU 相關聯。

    如果與所叫用 TP 節點上的夥伴 LU 相關聯的其中一個模式是隱含模式,則當與夥伴 LU 相關聯的模式名稱與 mode_name的值不符時,在兩個 lu 之間建立的會話將會是隱含模式。 如需詳細資訊,請參閱 Host Integration Server 說明。

    配置的數個參數為 EBCDIC 或 ASCII 字串。 TP 可以使用 common service 動詞 (CSV) 轉換 成將字串從一個字元集轉譯成另一個字元集。

    若要立即傳送配置要求,叫用 TP 可以在配置立即發出排清或確認。 否則, 配置 要求會與本機 LU 傳送緩衝區中的其他資料累積,直到緩衝區已滿為止。