SEND_CONVERSATION

SEND_CONVERSATION動詞會在本機邏輯單元 (LU) 和夥伴 LU 之間配置會話、在會話上傳送資料,然後解除配置會話。

下列結構描述動詞控制項區塊 (SEND_CONVERSATION動詞動詞所使用的 VCB )

語法

  
struct send_conversation {  
    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       reserv3[8];  
    unsigned char       rtn_ctl;  
    unsigned char       reserv4;  
    unsigned long       conv_group_id;  
    unsigned long       sense_data;  
    unsigned char       plu_alias[8];  
    unsigned char       mode_name[8];  
    unsigned char       tp_name[64];  
    unsigned char       security;  
    unsigned char       reserv6[11];  
    unsigned char       pwd[10];  
    unsigned char       user_id[10];  
    unsigned short      pip_dlen;  
    unsigned char FAR * pip_dptr;  
    unsigned char       reserv6;  
    unsigned char       fqplu_name[17];  
    unsigned char       reserv7[8];  
    unsigned short      dlen;  
    unsigned char FAR * dptr;  
};   

成員

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

opext
提供的 參數。 指定動詞作業延伸模組,AP_BASIC_CONVERSATION。

reserv2
保留字段。

primary_rc
傳回的參數。 指定 APPC 在動詞完成時所設定的主要傳回碼。 有效的傳回碼會隨著發出的 APPC 動詞而有所不同。 如需此動詞的有效錯誤碼,請參閱傳回碼。

secondary_rc
傳回的參數。 指定 APPC 在動詞完成時所設定的次要傳回碼。 有效的傳回碼會隨著發出的 APPC 動詞而有所不同。 如需此動詞的有效錯誤碼,請參閱傳回碼。

tp_id
提供的 參數。 識別本機交易程式 (TP) 。 此參數的值是由 TP_STARTED傳回。

conv_id
提供的 參數。 提供交談識別碼。

在叫用 TP 或叫用 TP 的RECEIVE_ALLOCATE,ALLOCATE會傳回此參數的值。

rtn_ctl
提供的 參數。 指定 APPC 應該如何選取要配置給交談的會話,以及本機 LU 何時應該將控制權傳回本機 TP。 允許的值包括:

  • AP_IMMEDIATE指定 LU 會配置競爭勝出會話,如果立即可用,並將控制權傳回給 TP。

  • AP_WHEN_SESSION_ALLOCATED指定 LU 在配置會話或遇到本主題傳回碼中所述的其中一個錯誤之前,LU 不會將控制權傳回給 TP。 如果會話限制為零,LU 會立即傳回控制項。 請注意,如果會話無法使用,TP 會等候一個會話。

  • AP_WHEN_SESSION_FREE指定 LU 會配置爭用者-勝出者或爭用者會話,如果一個會話可用或能夠啟用,並將控制權傳回給 TP。 如果發生錯誤 (,如本主題中的傳回碼所述,) 呼叫會立即傳回,並在 primary_rcsecondary_rc 欄位中傳回錯誤。

  • AP_WHEN_CONWINNER_ALLOC指定 LU 在配置競爭勝出會話之前不會傳回控制項,或遇到本主題中傳回碼中所述的其中一個錯誤。 如果會話限制為零,LU 會立即傳回控制項。 請注意,如果會話無法使用,TP 會等候一個會話。

  • AP_WHEN_CONV_GROUP_ALLOC指定 LU 在配置 由 conv_group_id 指定的會話,或遇到本主題中傳回碼中所述的其中一個錯誤之前,LU 不會傳回控制項給 TP。 如果會話無法使用,TP 會等候它變成免費。

    conv_group_id
    提供/傳回的參數。 當 rtn_ctl WHEN_CONV_GROUP_ALLOC指定應該配置會話之交談群組的身分識別時,用來做為提供的參數。 當rtn_ctl指定不同的值,而primary_rc AP_OK時,這是傳回的值。 此參數的目的是要提供 TP,以確保會重新配置相同的會話,因此透過會話進行的交談將會以起始的相同順序進行。

    sense_data
    傳回的參數。 如果主要和次要傳回碼指出配置錯誤 (重試或無重試) ,則會傳回 SNA 定義的感知碼。

    plu_alias
    提供的 參數。 指定本機 TP 已知合作夥伴 LU 的別名。 此參數必須符合在設定期間建立的夥伴 LU 名稱。 參數是 8 位元組,類型 G ASCII 字元集,包括:

  • 大寫字母

  • 數位 0 到 9

  • 空格

  • 特殊字元 $、#、% 和@

    如果此參數的值少於 8 個位元組,請使用 ASCII 空格 (0x20) 將其放在右邊。

    mode_name
    提供的 參數。 指定組態期間定義的一組網路特性名稱。 此參數必須符合設定期間與夥伴 LU 相關聯的模式名稱。

    參數是 8 位元組的 EBCDIC 字元字串。 它可以包含來自 EBCDIC 字元集類型的字元,包括所有 EBCDIC 空格。 這些字元包括:

  • 大寫字母

  • 數位 0 到 9

  • 特殊字元 $、#和@

    字串中的第一個字元必須是大寫字母或特殊字元。

    不建議在基本交談中使用 SNASVCMG (APPC) 內部使用的保留模式名稱。

    tp_name
    提供的 參數。 指定所叫用 TP 的名稱。 叫用 TP 中ALLOCATE所指定的tp_name值必須符合叫用 TP 中RECEIVE_ALLOCATE所指定的tp_name值。

    參數是 64 位元組、區分大小寫、EBCDIC 字元字串。 此參數可以包含來自 AE EBCDIC 字元集類型的字元。 這些字元包括:

  • 大寫和小寫字母

  • 數位 0 到 9

  • 特殊字元 $、#、@和 period (.)

    如果 TP 名稱少於 64 個位元組,請使用 EBCDIC 空格 (0x40) 將它放在右邊。

    命名服務 TP 的 SNA 慣例最多為四個字元。 第一個字元是0x00與0x3F之間的十六進位位元組。 其他字元來自 EBCDIC AE 字元集。

    安全
    提供的 參數。 指定合作夥伴 LU 所需的資訊,以驗證對所叫用 TP 的存取權。

  • AP_NONE指定叫用的 TP 不會使用交談安全性。

  • AP_PGM指定叫用的 TP 使用交談安全性,而且需要使用者識別碼和密碼。 使用 user_idpwd 來提供此資訊。

  • AP_SAME指定叫用的 TP,以有效的使用者識別碼和密碼叫用,接著會叫用另一個 TP。

    例如,假設 TP A 會叫用具有有效使用者識別碼和密碼的 TP B,而 TP B 接著會叫用 TP C。如果 TP B 指定值AP_SAME,APPC 會將 TP A 的使用者識別碼和已驗證的指標傳送給 TP C 的 LU。 如果 TP C 設定為接受已驗證的指標) ,則此指標表示 TP C 不需要密碼 (。

    pwd
    提供的參數。 指定與 user_id相關聯的密碼。 只有在安全性參數設定為 AP_PGM 且必須符合設定期間所建立 user_id 的密碼時,才需要此參數。

    此參數是 10 位元組、區分大小寫的 EBCDIC 字元字串。 它可以由 AE EBCDIC 字元集類型的字元組成。 這些字元包括:

  • 大寫和小寫字母

  • 數位 0 到 9

  • 特殊字元 $、#、@和句號 (.)

    如果密碼少於 10 個位元組,請使用 EBCDIC 空格 (0x40) 在右側填補。

    user_id
    提供的參數。 指定存取合作夥伴 TP 所需的使用者識別碼。 只有在安全性參數設定為 AP_PGM,且必須符合為合作夥伴 TP 設定的其中一個使用者識別碼時,才需要此參數。

    參數可以包含來自 AE EBCDIC 字元集類型的字元。 這些字元包括:

  • 大寫和小寫字母

  • 數位 0 到 9

  • 特殊字元 $、#、@和句號 (.)

    如果使用者識別碼少於 10 個位元組,請使用 EBCDIC 空格 (0x40) 在右側填補。

    pip_dlen
    提供的參數。 指定要傳遞至合作夥伴 TP 的 PIP 長度。 此參數的範圍是從 0 到 32767。

    pip_dptr
    提供的參數。 指定包含 PIP 資料的緩衝區位址。 只有在 pip_dlen 大於零時,才使用此參數。

    PIP 資料可以包含夥伴 TP 或遠端作業系統所需的初始化參數或環境設定資訊。 PIP 資料必須遵循 GDS 格式。 如需詳細資訊,請參閱 IBM SNA 手動 (s) 。

    對於 Microsoft Windows 作業系統,資料緩衝區可以位於靜態資料區域或全域配置的區域中。

    fqplu_name
    提供的參數。 指定本機 LU 的完整名稱。 此參數必須符合遠端節點中定義之本機 LU 的完整名稱。 參數是由兩種類型的 EBCDIC 字元字串所組成, (最多八個字元) ,也就是網路名稱 (NETID) 和夥伴 LU 的 LU 名稱。 名稱會以 EBCDIC 句號 (.) 分隔。 您可以省略 NETID,如果發生這種情況,也應該省略句點。

    如果未提供 任何plu_alias ,則必須提供此名稱。

    輸入 EBCDIC 字元包含:

  • 大寫字母

  • 數位 0 到 9

  • 特殊字元 $、#和@

    如果此參數的值少於 17 個位元組,請使用 EBCDIC 空格 (0x40) 將它填補在右側。

    dlen
    提供的參數。 指定要放入本機 LU 傳送緩衝區的資料位元組數目。 此參數的範圍是從 0 到 65535。

    dptr
    提供的參數。 指定要放入本機 LU 傳送緩衝區之資料的緩衝區位址。

    針對 Windows 作業系統,資料緩衝區可以位於靜態資料區域或全域配置的區域中。 資料緩衝區必須完全符合此區域。

傳回碼

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

AP_UNSUCCESSFUL
主要傳回碼;提供的 參數 rtn_ctl 指定將控制項立即傳回給 TP (AP_IMMEDIATE) ,而本機 LU 沒有可用的爭用勝者會話。

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

AP_BAD_RETURN_CONTROL

次要傳回碼;為 rtn_ctl 指定的值無效。

AP_BAD_SECURITY

次要傳回碼;為 安全性 指定的值無效。

AP_BAD_TP_ID

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

AP_PIP_LEN_INCORRECT

次要傳回碼; pip_dlen 的值大於 32767。

AP_UNKNOWN_PARTNER_MODE

次要傳回碼;為 mode_name 指定的值無效。

AP_BAD_PARTNER_LU_ALIAS

次要傳回碼;APPC 無法辨識提供的 partner_lu_alias

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

此程式碼可以透過 ALLOCATE之後發出的動詞來傳回。

AP_ALLOCATION_FAILURE_NO_RETRY

次要傳回碼;因為有永久條件,例如設定錯誤或會話通訊協定錯誤,所以無法配置交談。 若要判斷錯誤,系統管理員應該檢查錯誤記錄檔。 在更正錯誤之前,請勿重試配置。

AP_ALLOCATION_FAILURE_RETRY

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

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

  • 此交談所使用的節點遇到 ABEND。

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

  • TP 電腦上的 SnaBase 遇到 ABEND。

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

    AP_COMM_SUBSYSTEM_NOT_LOADED
    主要傳回碼;無法載入必要的元件,或已在處理動詞時終止。 因此,無法進行通訊。 請連絡系統管理員以取得更正動作。

    當此傳回碼與 ALLOCATE搭配使用時,可能表示找不到任何通訊系統來支援本機 LU。 (例如,以 TP_STARTED 指定的本機 LU 別名不正確或尚未設定。) 請注意,如果 lu_aliasmode_name 少於八個字元,您必須確定這些欄位會填入右邊的空格。 如果這些參數未填入空格,就會傳回此錯誤,因為沒有任何節點可以滿足 ALLOCATE 要求。

    ALLOCATE 針對以多個節點設定的主機整合伺服器用戶端系統產生此傳回碼時,有兩個次要傳回碼,如下所示:

    0xF0000001

    次要傳回碼;尚未啟動任何節點。

    0xF0000002

    次要傳回碼;至少有一個節點已啟動,但未在任何作用中節點上設定TP_STARTED發出 ) 時,本機 LU (。 問題可能是下列其中一項:

  • 未啟動具有本機 LU 的節點。

  • 未設定本機 LU。

    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傳回。 它會以 Intel 位元組交換的順序顯示。 如果問題持續發生,請洽詢系統管理員。

備註

叫用 TP 以與遠端 TP 進行整個交談時,會發出這個動詞。 如果遠端 TP 拒絕交談起始或資料,則叫用 TP 將不會收到拒絕的通知。

當 TP 發出此動詞時,交談狀態為 RESET。 沒有狀態變更。

SEND_CONVERSATION的數個參數是 EBCDIC 或 ASCII 字串。 TP 可以使用 CSV CONVERT 將字串從一個字元集轉譯到另一個字元。

一般而言, mode_name 的值必須符合針對所叫用 TP 節點所設定的模式名稱,並在設定期間與夥伴 LU 相關聯。 如果叫用 TP 節點上的其中一個與夥伴 LU 相關聯的模式是隱含模式,當與夥伴 LU 相關聯的模式名稱不符合 mode_name的值時,這兩個 RU 之間的會話將會是隱含模式。