ALLOCATE
ALLOCATE
叫用交易程式會發出動詞 (TP) 。 它會在本機邏輯單元 (LU) 和夥伴 LU 之間配置會話, (並與 RECEIVE_ALLOCATE) 建立叫用 TP 與叫用 TP 之間的交談。 成功執行此動詞之後,APPC 會產生交談標識碼 (conv_id) 。 conv_id是所有其他APPC交談動詞動詞的必要參數。
下列結構描述 ALLOCATE 動詞動詞所使用的動詞控件區塊。
語法
struct allocate {
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 conv_type;
unsigned char synclevel;
unsigned char reserv3[2];
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 reserv5[11];
unsigned char pwd[10];
unsigned char user_id[10];
unsigned short pip_dlen;
unsigned char FAR * pip_dptr;
unsigned char reserv7;
unsigned char fqplu_name[17];
unsigned char reserv8[8];
unsigned long proxy_user;
unsigned long proxy_domain;
unsigned char reserv9[16];
};
成員
opcode
提供的參數。 指定動詞作業程式代碼,AP_B_ALLOCATE。
opext
提供的參數。 指定動詞作業延伸模組,AP_BASIC_CONVERSATION。 如果已設定AP_EXTD_VCB位,這表示使用動詞控件區塊的擴充版本。 在此情況下, ALLOCATE 結構包含同步點支援或特殊許可權 Proxy 功能支援。
reserv2
保留欄位。
primary_rc
傳回的參數。 指定APPC在動詞完成時所設定的主要傳回碼。 有效的傳回碼會隨著發出的APPC動詞而有所不同。 如需此動詞的有效錯誤碼,請參閱傳回碼。
secondary_rc
傳回的參數。 指定APPC在動詞完成時所設定的次要傳回碼。 有效的傳回碼會隨著發出的APPC動詞而有所不同。 如需此動詞的有效錯誤碼,請參閱傳回碼。
tp_id
提供的參數。 識別本機 TP。 此參數的值是由 TP_STARTED 傳回。
conv_id
傳回的參數。 識別兩個 TP 之間建立的交談。
conv_type
提供的參數。 僅由 ALLOCATE 用來指定要配置的交談類型,而且是AP_BASIC_CONVERSATION或AP_MAPPED_CONVERSATION。
如果 ALLOCATE 建立對應的交談,本機 TP 必須發出基本交談動詞,並提供自己的對應層,以將數據記錄轉換成邏輯記錄,並將邏輯記錄轉換成數據記錄。 合作夥伴 TP 可以發出基本交談動詞並提供對應層,或者如果合作夥伴 TP 使用支援對應交談動詞) 的 APPC 實作,則可以使用對應交談動詞 (。 如需詳細資訊,請參閱 IBM SNA 手動 (s) 。
synclevel
提供的參數。 指定交談的同步處理層級。 它會判斷 TP 是否可以要求確認數據收據,以及確認數據回條。
AP_NONE指定不會在此交談中使用確認處理。
AP_CONFIRM_SYNC_LEVEL指定 TP 可以在此交談中使用確認處理。
AP_SYNCPT指定 TP 可以在此交談中使用同步點層級 2 確認處理。
reserv3
保留欄位。rtn_ctl
提供的參數。 指定在本機 TP 的工作階段要求上執行本機 LU 時,應該將控制權傳回至本機 TP。 如需會話的相關信息,請參閱 關於交易程式。AP_IMMEDIATE指定 LU 會配置競爭勝出工作階段,如果立即可用,並將控制權傳回給 TP。
AP_WHEN_SESSION_ALLOCATED指定 LU 在配置工作階段或遇到本主題傳回碼中所述的其中一個錯誤之前,LU 不會傳回控件給 TP。 (如果會話限制為零,LU 會立即傳回控件。) 如果會話無法使用,TP 會等候一個。
AP_WHEN_SESSION_FREE指定 LU 會配置爭用者-勝出者或爭用者會話,如果一個會話可用或能夠啟用,並將控制權傳回給 TP。 如果發生錯誤, (如本主題的傳回碼中所述,) 呼叫會立即傳回,並在 primary_rc 和 secondary_rc 欄位中傳回錯誤。
AP_WHEN_CONWINNER_ALLOCATED指定 LU 在配置競爭勝出工作階段之前不會傳回控件,或遇到本主題中傳回碼中所述的其中一個錯誤。 (如果會話限制為零,LU 會立即傳回控件。) 如果會話無法使用,TP 會等候一個。
AP_WHEN_CONV_GROUP_ALLOCATED指定 LU 不會傳回控件給 TP,直到它配置 conv_group_id指定的工作階段,或遇到本主題中傳回碼中所述的其中一個錯誤。 如果會話無法使用,TP 會等候它變成免費。
注意
AP_IMMEDIATE是唯一不會造成新會話啟動 之rtn_ctl 的值。 對於AP_IMMEDIATE以外的值,如果無法立即使用適當的會話,主機整合伺服器會嘗試啟動一個會話。 這會導致啟用隨選連線。
reserv4
保留欄位。
conv_group_id
提供/傳回的參數。 指定應該配置會話之交談群組的標識碼。 只有在rtn_ctl設為 WHEN_CONV_GROUP_ALLOC時,才需要conv_group_id。 當rtn_ctl指定不同的值,且primary_rc AP_OK時,這是傳回的值。
sense_data
傳回的參數。 指出 (重試或無重試) 的配置錯誤,並包含有意義的數據。
plu_alias
提供的參數。 指定本機 TP 已知合作夥伴 LU 的別名。
plu_alias必須符合在設定期間建立的夥伴 LU 名稱。
參數是8位元組的 ASCII 字元字串。 它可以包含下列 ASCII 字元:
大寫字母
數位 0 到 9
空格
特殊字元 $、#、% 和@
此字串的第一個字元不能是空格。
如果此參數的值少於 8 個字節,請使用 ASCII 空格 (0x20) 將其放在右邊。
如果您想要使用 fqplu_name 參數指定夥伴 LU,請使用二進位零填入此參數。
對於使用 TP、5250 模擬器和/或 APPC 應用程式的使用者或群組,系統管理員可以指派預設的本機和遠端 LU。 在此情況下,欄位會保留空白或 Null,而且當使用者或群組成員啟動 APPC 程式時,會存取預設的 RU。 如需預設 LU 的詳細資訊,請參閱 Microsoft Host Integration Server 說明。
mode_name
提供的參數。 指定組態期間定義的一組網路特性名稱。mode_name的值必須符合設定期間與夥伴 LU 相關聯的模式名稱。
參數是8位元組的EBCDIC字元字串。 它可以包含來自 EBCDIC 字元集類型的字元:
大寫字母
數位 0 到 9
特殊字元 $、#和@
字串中的第一個字元必須是大寫字母或特殊字元。
請勿在對應的交談中使用 SNASVCMG。 SNASVCMG 是 APPC 內部使用的保留 mode_name 。 不建議在基本交談中使用這個名稱。
tp_name
提供的參數。 指定叫用 TP 的名稱。 叫用 TP 中 ALLOCATE 所指定的tp_name值必須符合叫用 TP 中RECEIVE_ALLOCATE所指定的tp_name值。參數是64位元組的EBCDIC字元字串,而且區分大小寫。 tp_name參數可以包含下列 EBCDIC 字元:
大寫和小寫字母
數位 0 到 9
特殊字元 $、#、@和句号 (.)
如果 tp_name 小於 64 個字節,請使用 EBCDIC 空格 (0x40) 將它填補在右側。
SNA 慣例是服務 TP 名稱最多可以有四個字元。 第一個字元是0x00與0x3F之間的十六進位位元組。 其他字元則來自AE EBCDIC字元集類型。
安全
提供的參數。 提供合作夥伴 LU 驗證所叫用 TP 存取權所需的資訊。根據針對設定期間叫用的 TP 所建立的對話安全性,使用下列其中一個值:
AP_NONE未使用交談安全性的已叫用 TP。
AP_PGM使用交談安全性的叫用 TP,因此需要使用者標識碼和密碼。 透過 user_id 和 pwd 參數提供此資訊。
AP_PROXY_PGM具有特殊許可權 Proxy 且使用交談安全性的叫用 TP,因此需要使用者標識碼和密碼。 必須針對 proxy_user 和 proxy_domain 設定指標,以指向包含要模擬之用戶的用戶名稱和功能變數名稱的 Unicode 字串。 應用程式不需要設定 user_id 和 pwd 欄位。
AP_PROXY_SAME使用特殊許可權 Proxy 叫用的 TP,以及 Proxy 所提供的有效使用者識別碼和密碼,進而叫用另一個 TP。 必須針對 proxy_user 和 proxy_domain 設定指標,以指向包含要模擬之用戶的用戶名稱和功能變數名稱的 Unicode 字串。 應用程式不需要設定 user_id 和 pwd 欄位。
例如,假設 TP A 會使用特殊許可權 Proxy 所提供的有效使用者識別碼和密碼來叫用 TP B,而 TP B 接著會叫用 TP C。如果 TP B 指定值AP_PROXY_SAME,APPC 會將 TP C 的使用者識別碼從 TP A 和已驗證的指標傳送給 TP C 的 LU。 如果 TP C 設定為接受已驗證的指標) ,此指標會告知 TP C 不需要密碼 (。
AP_PROXY_STRONG具有特殊許可權 Proxy 且使用交談安全性的叫用 TP,因此需要特殊許可權 Proxy 機制所提供的使用者標識碼和密碼。 必須針對 proxy_user 和 proxy_domain 設定指標,以指向包含要模擬之用戶的用戶名稱和功能變數名稱的 Unicode 字串。 應用程式不需要設定 user_id 和 pwd 欄位。 AP_PROXY_STRONG與AP_PROXY_PGM不同,因為AP_PROXY_STRONG不允許純文本密碼。 如果遠端系統不支援加密的密碼 (強式交談安全性) ,則此呼叫會失敗。
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 不需要密碼 (。
在 ALLOCATE 動詞動詞中使用AP_SAME時,您的應用程式一律必須在動詞控制區塊中提供 user_id 和 pwd 參數的值。 根據 SNA 伺服器與對等 LU 之間交涉的屬性, ALLOCATE 動詞命令會以下列優先順序傳送三種 Attach (FMH-5) 訊息的其中一種:
如果 RU 已交涉「已驗證」安全性,則 SNA 伺服器所傳送的附加將不會包含 VCB 中指定的 pwd 參數位段內容。
如果 LU 已交涉「持續驗證」安全性,則 SNA 伺服器所傳送的 Attach 會包含 VCB 中指定的 pwd 參數,但只有在 Attach 是 LU-LU 會話開始時第一個指定 之 user_id 參數時,才會省略應用程式所發出之所有後續 (Attachs 的 pwd 參數,或使用此 LU-LU 模式三重) 的任何其他應用程式。
如果 LU 尚未交涉上述任一項,則 SNA 伺服器所傳送的 Attach 會同時省略所有 Attaches 上的 user_id 和 pwd 參數。
您的應用程式無法分辨 RU 之間已交涉的安全性模式,也無法判斷所發出的 ALLOCATE 動詞是否為該 LU-LU 模式三元組的第一個。 因此,當安全性設定為 AP_SAME 時,您的應用程式必須一律在 VCB 中設定user_id和 pwd 參數位段。
For more information on persistent verification and already verified security, see the SNA Formats Guide, section "FM Header 5: Attach (LU 6.2)".
AP_STRONG使用交談安全性的叫用 TP,因此需要使用者標識碼和密碼。 透過 user_id 和 pwd 參數提供此資訊。 AP_STRONG與AP_PGM不同,因為AP_STRONG不允許純文本密碼。 如果遠端系統不支援加密的密碼 (強式交談安全性) ,則此呼叫會失敗。
如果要使用APPC自動登入功能, 安全性 必須設定為AP_PGM。 如需詳細資訊,請參閱<備註>一節。
reserv5
保留欄位。pwd
提供的參數。 指定與 user_id相關聯的密碼。只有在安全性設定為 AP_PGM 或 AP_SAME 時,才需要 pwd 參數。 它必須符合設定期間所建立 user_id 的密碼。
pwd 參數是10位元組的EBCDIC字元字串,而且區分大小寫。 它可以包含下列 EBCDIC 字元:
大寫和小寫字母
數位 0 到 9
特殊字元 $、#、@和句号 (.)
如果密碼少於 10 個字節,請使用 EBCDIC 空格 (0x40) 在右側填補。
如果要使用 APPC 自動登入功能, pwd 字元字串必須硬式編碼為 MS$SAME。 如需詳細資訊,請參閱<備註>一節。
user_id
提供的參數。 指定存取合作夥伴 TP 所需的使用者識別碼。 只有在安全性參數設定為AP_PGM或AP_SAME時,才需要它。user_id參數是10位元組的EBCDIC字元字串,而且區分大小寫。 它必須符合為合作夥伴 TP 設定的其中一個使用者識別碼。
參數可以包含下列 EBCDIC 字元:
大寫和小寫字母
數位 0 到 9
特殊字元 $、#、@和句号 (.)
如果 user_id 小於 10 個字節,請使用 EBCDIC 空格 (0x40) 在右側填補。
如果要使用 APPC 自動登入功能, user_id 字元字串必須硬式編碼為 MS$SAME。 如需詳細資訊,請參閱<備註>一節。
pip_dlen
提供的參數。 指定要傳遞至合作夥伴 TP 的程式初始化參數 (PIP) 長度。 範圍是從 0 到 32767。pip_dptr
提供的參數。 指定包含 PIP 資料的緩衝區位址。 只有在 pip_dlen 大於零時,才使用此參數。PIP 資料可以包含夥伴 TP 或遠端作業系統所需的初始化參數或環境設定資訊。 PIP 數據必須遵循一般數據流 (GDS) 格式。 如需詳細資訊,請參閱 SNA LU6.2 參考:IBM 發佈的對等通訊協定 。
針對 Windows,數據緩衝區可以位於靜態數據區域或全域配置的區域中。 數據緩衝區必須完全符合此區域。
reserv7
保留欄位。fqplu_name
提供的參數。 指定夥伴 LU 的完整名稱。 這必須符合遠端節點中定義之本機 LU 的完整名稱。 參數包含兩種類型的 A EBCDIC 字元字串,用於 NETID 和夥伴 LU 的 LU 名稱。 名稱會以 EBCDIC 句號 (.) 分隔。如果未指定 任何plu_alias ,則必須提供此名稱。 它可以包含下列 EBCDIC 字元:
大寫字母
數位 0 到 9
特殊字元 $、#和@
如果此參數的值少於 17 個字節,請使用 EBCDIC 空格 (0x40) 將它填補在右側。
reserv8
保留欄位。proxy_user
提供的參數。 指定指向 Unicode 字串的 LPWSTR,其中包含要使用特殊許可權 Proxy 功能仿真的用戶名稱。 只有在 opext 欄位上設定AP_EXTD_VCB位時,才能使用此欄位,指出擴充的 VCB。proxy_domain
提供的參數。 指定指向 Unicode 字串的 LPWSTR,其中包含要使用特殊許可權 Proxy 功能模擬之使用者的功能變數名稱。 只有在 opext 欄位上設定AP_EXTD_VCB位時,才能使用此欄位,指出擴充的 VCB。reserv9
保留欄位。
傳回碼
AP_OK
主要傳回碼;已成功執行動詞。
AP_UNSUCCESSFUL
主要傳回碼;提供的參數 rtn_ctl 指定的立即 (AP_IMMEDIATE) 控制權傳回給 TP,而本機 LU 沒有可用的競爭勝出會話。
AP_PARAMETER_CHECK
主要傳回碼;動詞未執行,因為發生參數錯誤。
AP_BAD_RETURN_CONTROL
次要傳回碼;為 rtn_ctl 指定的值無效。
AP_BAD_SECURITY
次要傳回碼;為 安全性 指定的值無效。
AP_BAD_SYNC_LEVEL
次要傳回碼;為 sync_level 指定的值無效。
AP_BAD_TP_ID
次要傳回碼;為 tp_id 指定的值無效。
AP_PIP_LEN_INCORRECT
次要傳回碼; pip_dlen 的值大於 32767。
AP_UNKNOWN_PARTNER_MODE
次要傳回碼;為 mode_name 指定的值無效。
AP_BAD_PARTNER_LU_ALIAS
次要傳回碼;APPC 無法辨識提供的 partner_lu_alias。
基本交談AP_BAD_CONV_TYPE ()
次要傳回碼;為 conv_type 指定的值無效。
對應交談AP_NO_USE_OF_SNASVCMG ()
次要傳回碼;SNASVCMG 不是 mode_name的有效值。
AP_INVALID_DATA_SEGMENT
次要傳回碼;PIP 資料超過配置的數據區段,或 PIP 數據緩衝區的地址錯誤。
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_alias 或 mode_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 位元組交換的順序顯示。 如果問題持續發生,請洽詢系統管理員。
備註
ALLOCATE 可以建立基本或對應的交談。
當 TP 發出此動詞時,交談狀態為 RESET。 成功執行 (primary_rc AP_OK) 之后,狀態會變更為 SEND。 如果動詞未執行,狀態會保持不變。
ALLOCATE 的數個參數是 EBCDIC 或 ASCII 字串。 TP 可以使用一般服務動詞 (CSV) CONVERT ,將字串從一個字元集轉譯到另一個字元。
若要立即傳送 ALLOCATE 要求,叫用 TP 可以在 ALLOCATE 之後立即發出 FLUSH 或 CONFIRM。 否則, ALLOCATE 要求會隨著本機 LU 傳送緩衝區中的其他數據累積,直到緩衝區已滿為止。
藉由在 ALLOCATE 之後發出 CONFIRM,叫用 TP 可以立即判斷是否成功 (synclevel 是否設定為 AP_CONFIRM_SYNC_LEVEL) 。
一般而言, ALLOCATE 動詞 mode_name 參數的值必須符合為所叫用 TP 節點設定的模式名稱,並在設定期間與夥伴 LU 相關聯。
如果叫用 TP 節點上的其中一個與夥伴 LU 相關聯的模式是隱含模式,當與夥伴 LU 相關聯的模式名稱不符合 mode_name的值時,這兩個 RU 之間的會話將會是隱含模式。
主機整合伺服器支援稱為密碼替代的功能。 這是IBM i作業系統所支援的安全性功能,可加密連結訊息上兩個節點之間流動的任何密碼。 每當有人叫用指定使用者標識碼和密碼的 APPC 交易程式時,就會在 Attach 上流動密碼。 例如,每當任何人登入IBM i時,就會發生這種情況。
密碼替代的支持是藉由將BIND要求的位5位元組23設定為1 (,這表示支持密碼替代) 。 如果遠端系統在 BIND 回應中設定此位,SNA 伺服器會自動加密 FMH-5 附加訊息中包含的 LU 6.2 交談安全性密碼。 使用主機整合伺服器的APPC應用程式會自動利用這項功能,方法是將VCB的安全性欄位設定為 配置要求中的 AP_PGM或AP_STRONG。
如果 APPC 應用程式想要強制加密密碼流動,應用程式可以在 ALLOCATE 要求中為 VCB 中的安全性欄位指定AP_STRONG。 此選項會實作為 IBM i V3R1 中所定義,並記載於 IBM i CPI-C 程式設計人員參考中作為 CM_SECURITY_PROGRAM_STRONG,其中 LU 6.2 pwd (密碼) 字段會在實體網路流過之前加密。
目前只有IBM i V3R1 或更新版本支持密碼替代功能。 如果遠端系統不支援這項功能,SNA 伺服器將會解除系結會話,並具有10060006的感知程式代碼。 這兩個節點會交涉它們是否支援BIND交換中的這項功能。 主機整合伺服器會在 BIND 中設定位,也會在 BIND 上新增一些隨機數據以進行加密。 如果遠端節點支持密碼替代,它會在BIND回應中設定相同的位,並新增一些 (不同的) 隨機數據進行解密。
主機整合伺服器支援APPC應用程式的自動登入。 這項功能需要網路管理員的特定設定:APPC 應用程式必須從主機整合伺服器的用戶端在 LAN 端叫用。 客戶端必須登入 Windows 網域,但用戶端可以在主機整合伺服器 APPC API 支援的任何作業系統上執行。
用戶端應用程式會編碼為使用「程式」層級安全性,並具有特殊的硬式編碼 APPC 用戶名稱 MS$SAME 和密碼 MS$SAME。 當此工作階段配置從用戶端流向 SNA 伺服器時,伺服器會查閱與用戶端登入所在 Windows 帳戶對應的主機帳戶和密碼,並將主機帳戶資訊取代至它傳送至主機的 APPC 附加訊息。
注意
遠端節點無法設定指定密碼替代的位,而不會新增隨機數據。
根據IBM,LU 6.2密碼替代的實作不支持密碼替代,但會回應密碼替代位回到主機整合伺服器,而不需指定任何隨機數據。 當他們這樣做時,SNA 伺服器會解除系結具有感知程式代碼 10060006 的工作階段。此感知程式代碼會解譯為:
1006 = 遺漏必要字段或參數。
0006 = 省略控件向量的必要子字段。
主機整合伺服器也應該記錄事件 17 (APPC 會話啟用失敗:傳送) 系結負回應。
正確的解決方案是無法修正的實作。 不過,作為短期因應措施,可以設定下列主機整合伺服器服務登錄設定:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\snaservr\parameters\NOPWDSUB:REG_SZ:是
在登錄中指定此參數時,將會停用密碼替代支援。
主機整合伺服器已進行數個更新,可讓具特殊許可權的APPC應用程式代表任何定義的 Windows 使用者使用單一 Sign-On 功能開啟APPC交談。 這稱為特殊許可權 Proxy 功能。 已將擴充功能新增至 APPC ALLOCATE 動詞,以叫用此功能。
APPC 應用程式會在屬於特殊 Windows 群組成員的 Windows 使用者帳戶中啟動,以成為特殊許可權。 設定主機安全性網域時,SNA 管理員會定義第二個 Windows 群組,以搭配主機整合伺服器的主機安全性功能使用。 如果實際用戶端執行所在的使用者帳戶是這個第二個 Windows 群組的成員,則用戶端有權代表主機帳戶快取中定義的任何用戶帳戶起始 APPC 交談。
下列說明特殊許可權 Proxy 功能的運作方式:
主機整合伺服器管理員會建立名為 APP 的主機安全性網域。 SNA 管理員現在會建立兩個 Windows 群組。 第一個群組稱為APP,第二個群組稱為APP_PROXY此範例。 指派給APP群組的用戶已啟用單一登錄。 指派給APP_PROXY群組的使用者是具特殊許可權的 Proxy。 系統管理員會在 SNA 管理員的 [主機安全性網域] 屬性對話框中,使用 [使用者] 按鈕,將 Windows 使用者 AppcUser 新增至APP_PROXY群組。
系統管理員接著會在主機整合伺服器上設定APPC應用程式,以作為名為APPCAPP的 Windows 服務執行,且該服務已設定為在AppcUser用戶帳戶下運作。 當 APPCAPP 執行時,它會使用擴充的 VCB 格式透過 ALLOCATE 動詞來開啟 APPC 會話,並指定所需使用者的 Windows 使用者名稱 UserA (,例如) 。
SNA 服務會看到來自主機安全性網域應用程式成員連線的會話要求。 用戶端/伺服器介面會告訴 SNA 服務實際用戶端是 AppcUser。
SNA 服務會檢查 AppcUser 是否為APP_PROXY群組的成員。 因為 AppcUser 是 APP_PROXY 的成員,所以 SNA 服務會在 APPC Attach (FMH-5) 命令中插入 UserA 的使用者名稱/密碼,並將其傳送給合作夥伴 TP。
為了支援特殊許可權 Proxy 功能,APPC 應用程式必須實作下列程式邏輯:
APPC 應用程式必須判斷它想要仿真的 Windows 使用者識別碼和功能變數名稱。
APPC 應用程式必須先設定下列參數,才能呼叫 ALLOCATE 動詞:
在 opext 欄位中設定AP_EXTD_VCB旗標,以啟用擴充 ALLOCATE 動詞控件區塊結構的用法。
將安全性設定為 AP_PROXY_SAME、AP_PROXY_PGM 或 AP_PROXY_STRONG。
設定 proxy_user 和 proxy_domain 的指標,以指向包含要模擬之使用者的使用者名稱和功能變數名稱的 Unicode 字串。
注意
應用程式不需要在 ALLOCATE VCB 中設定user_id和 pwd 字段。
當 APPC 應用程式執行上述步驟併發出 ALLOCATE 動詞時,主機整合伺服器會在指定 Windows 使用者的主機安全性網域中執行查閱,並在 FMH-5 附加訊息中設定傳送至遠端系統的使用者識別符和密碼欄位。