CNOS

CNOS(Change Number of Sessions,Change Number of Sessions)動詞建立了APPC LU 6.2的會話限制。

以下結構描述了 CNOS 動詞所使用的動詞控制區塊。

語法

  
typedef struct cnos {  
    unsigned short  opcode;  
    unsigned char   reserv2[2];  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   key[8];  
    unsigned char   lu_alias[8];  
    unsigned char   plu_alias[8];  
    unsigned char   fqplu_name[17];  
    unsigned char   reserv3;  
    unsigned char   mode_name[8];  
    unsigned int    mode_name_select:1;  
    unsigned int    set_negotiable:1;  
    unsigned int    reserv4:6;  
    unsigned int    reserv5:8;  
    unsigned short  plu_mode_sess_lim;  
    unsigned short  min_conwinners_source;  
    unsigned short  min_conwinners_target;  
    unsigned short  auto_act;  
    unsigned int    drain_target:1;  
    unsigned int    drain_source:1;  
    unsigned int    responsible:1;  
    unsigned int    reserv6:5;  
    unsigned int    reserv7:8;  
} CNOS;   

成員

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

後備隊2
保留欄位。

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

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

Key
提供的參數。 若鍵鎖功能已被保護,則指定 ASCII 中的主金鑰或服務金鑰。

lu_alias
提供的參數。 提供本地使用的 8 位元組 ASCII 名稱。

plu_alias
提供的參數。 提供本地合作 LU 使用的 8 位元組 ASCII 名稱。

fqplu_name
提供的參數。 當本地節點未定義 plu_alias 名稱且夥伴 LU 位於不同節點時,提供 EBCDIC(類型 A)中的夥伴邏輯單元(LU)名稱。

mode_name
提供的參數。 指定當 mode_name_select 值AP_ONE時所用的 EBCDIC(類型 A)模式名稱。

mode_name_select
提供的參數。 指定程式設定或重置會話限制及爭奪勝者極性的模式名稱選擇。 允許的值為AP_ALL或AP_ONE。

set_negotiable
提供的參數。 規定 APPC 是否要更改目前最大可協商會話限制的設定。 允許的值有AP_YES和AP_NO。

後備區4
一個 6 位元的保留欄位。

後備隊5
一個 8 位元的保留欄位。

plu_mode_sess_lim
提供的參數。 當 set_negotiable 的值為 YES 時,指定會話限制。 允許的值為 0 到 32767。

min_conwinners_source
提供的參數。 指定 LU 保證在多少場次中成為爭論勝者。 允許的值為 0 到 32767。

min_conwinners_target
提供的參數。 指定目標 LU 保證為爭執勝出的最少會話數。 允許的值為 0 到 32767。

auto_act
提供的參數。 指定本地 LU 爭用勝出會話的數量,讓 APPC 自動啟動。 允許的值為 0 到 32767。 使用此參數前,請先參考本主題的備註區。

drain_target
提供的參數。 指定目標 LU 是否能耗盡其等待中的(出站)分配請求。 允許的值有AP_YES和AP_NO。

drain_source
提供的參數。 指定來源 LU 是否能耗盡其等待中的(出站)配置請求。 允許的值有AP_YES和AP_NO。

負責
提供的參數。 指定哪個 LU 負責因重設平行連線的會話限制而停用會話。 允許的值有AP_SOURCE和AP_TARGET。

後備隊
一個 5 位元的保留欄位。

後備區7
一個 8 位元的保留欄位。

返回碼

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

AP_CNOS_ACCEPTED
次要回傳代碼;APPC 接受指定的會話限制與責任。

AP_CNOS_NEGOTIATED
次要回傳代碼;APPC 接受會話限制與責任可由合作夥伴 LU 協商。 可協商的數值包括:

plu_mode_session_limit

min_conwinners_source

min_conwinners_target

負責任

drain_target

AP_ALLOCATION_ERROR
主要退稅代碼;APPC 未能安排對話。 對話狀態設定為 RESET。

此代碼可透過 ALLOCATE 或 MC_ALLOCATE 後的動詞返回。

AP_ALLOCATION_FAILURE_NO_RETRY
次要回傳代碼;由於永久性狀況,例如設定錯誤或會話協定錯誤,無法分配對話。 為了判斷錯誤,系統管理員應檢查錯誤日誌檔。 在錯誤修正前,請勿重新嘗試分配。

AP_ALLOCATION_FAILURE_RETRY
次要回傳代碼;由於暫時性狀況,例如連結故障,無法分配對話。 故障原因已記錄在系統錯誤日誌中。 重新嘗試分配。

AP_CNOS_LOCAL_RACE_REJECT
主要退稅代碼;APPC 目前正在處理由本地 LU 發出的 CNOS 動詞。

AP_CNOS_PARTNER_LU_REJECT
主要退稅代碼;合作夥伴 LU 拒絕了當地 LU 的 CNOS 請求。

AP_CNOS_MODE_CLOSED
次要回傳代碼;本地 LU 無法協商非零的會話限制,因為合作夥伴 LU 的本地最大會話限制為零。

AP_CNOS_MODE_NAME_REJECT
次要回傳代碼;合作夥伴 LU 不識別指定的模式名稱。

AP_CNOS_COMMAND_RACE_REJECT
次要回傳代碼;本地 LU 目前正在處理由合作夥伴 LU 發出的 CNOS 動詞。

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

此對話所用節點遇到 ABEND。

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

TP電腦旁的SnaBase遇到了ABEND。

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

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

AP_INVALID_KEY
主要退稅代碼;提供的鑰匙是錯誤的。

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

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

AP_ALL_MODE_MUST_RESET
次要回傳代碼;當 mode_name_select 參數表示 AP_ALL 時,APPC 不允許非零的會話限制。

AP_AUTOACT_EXCEEDS_SESSLIM
次要回傳代碼;在 CNOS 動詞中, auto_act 的價值大於 plu_mode_sess_lim。

AP_BAD_LU_ALIAS
次要回傳代碼;APPC 無法在定義的 lu_alias 中找到指定條件。

AP_BAD_PARTNER_LU_ALIAS
次要回傳代碼;APPC 無法辨識所提供的 plu_alias。

AP_BAD_SNASVCMG_LIMITS
次要回傳代碼;你的程式在提供mode_name時,指定了plu_mode_sess_lim、min_conwinners_source或min_conwinners_target的無效設定。

AP_CHANGE_SRC_DRAINS
次要回傳代碼;當指定模式目前生效drain_source(NO)時,APPC 不允許使用 mode_name_select(ONE)和drain_source(YES)。

AP_CNOS_IMPLICIT_PARALLEL
次要回傳代碼;APPC 不允許程式更改隱含夥伴範本中除 SNASVCMG 模式外的會話限制,當該範本指定平行會話時。 (使用「範本」一詞是因為許多實際數值尚未填補。)

AP_CPSVCMG_MODE_NOT_ALLOWED
次要回傳代碼;名為 CPSVCMG 的模式無法指定為停用會話動詞的 mode_name 。

AP_EXCEEDS_MAX_ALLOWED
次要回傳代碼;你的程式會發出 一個 CNOS 動詞,指定一個 plu_mode_sess_lim 號和 set_negotiable (AP_NO)。

AP_MIN_GT_TOTAL
次要回傳代碼; min_conwinners_source 與 min_conwinners_target 的和指定了一個大於 plu_mode_sess_lim 的數字。

AP_MODE_CLOSED
次要回傳代碼;本地 LU 無法協商非零的會話限制,因為合作夥伴 LU 的本地最大會話限制為零。

AP_RESET_SNA_DRAINS
次要回傳代碼;SNASVCMG 不支援漏極參數值。

AP_SINGLE_NOT_SRC_RESP
次要回傳代碼;對於單一會話的 CNOS 動詞,APPC 只允許本地(來源)LU 負責停用會話。

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

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

AP_CANT_RAISE_LIMITS
次要回傳代碼;APPC 不允許將會話限制設為非零值,除非目前的限制為零。

AP_LU_DETACHED
次要回傳代碼;一個指令在 CNOS 嘗試指定 LU 之前,已經重置了本地 LU 的定義。

AP_SNASVCMG_RESET_NOT_ALLOWED
次要回傳代碼;你的本地程式嘗試發出名為 SNASVCMG 的模式 CNOS 動詞,指定會話限制為零。

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

備註

CNOS 僅憑別名來識別 LU。 如果同一區域的本地 LU 別名在同一領域被多次使用(用於備份或其他用途),且該 LU 別名是透過 CNOS 指定,動詞可能會流向與預期不同的 LU。

若未在程式發出第一個 APPC ALLOCATE、 MC_ALLOCATE、 SEND_CONVERSATION 或 MC_SEND_CONVERSATION,或通訊通用程式介面(CPI-C) 分配 呼叫前,未發出 CNOS 以設定模式會話限制,APPC 將內部根據模式定義的值產生會話限制。

在設定平行會話連線的限制時,兩個 LU 會協商模式會話的限制、耗電設定及責任值。 APPC 會在 CNOS 中更新這些參數,以反映雙方 LU 在談判時達成的設定。 你的程式可以執行 DISPLAY ,取得協議好的模式會話限制值。

當設定單一會話的限制時,不會發生 CNOS 協商(也就是說,兩個 LU 不會協商排水設定或責任值)。 因此,透過在每個節點定義單一會話模式,來協調合作夥伴 LU 間的模式定義參數設定,使用單一會話連線。

作為設定初始限制的一部分, CNOS 也會設定保證(即最小)爭奪勝負會話數,並設定源 LU 爭奪勝出會話的自動啟動次數。 CNOS 的動作通常只影響來源 LU 與目標 LU 之間具有指定模式名稱的會話群組。 或者,一位 CNOS 可以重設合作夥伴 LU 所有模式的會話限制。

APPC 會強制執行新的模式會話限制及爭用勝者極性,直到一方透過發出後續 的 CNOS 動詞來改變。 無論目標 LU 是哪個 LU,CNOS 交易在目標 LU 的 API 上都是看不見的。 CNOS 交易的結果可透過 DISPLAY 取得。