建立一個新的 LU0 會話。
語法
void CreateSession(
string connectionSTR,
short initType,
ref System.Array data,
int timeout,
out object sessionHandle
)
參數
| 參數 | 說明 |
|---|---|
connectionSTR |
NULL 終止字串,表示新工作階段的連線特性。 字串以「PROPERTY=VALUE」的空格區分格式呈現。 連線屬性名稱與值不區分大小寫。 欲了解更多連線屬性,請參閱 IcomLUO 會話屬性。 |
initType |
包含會話初始化類型。 更多資訊請參閱留言區。 |
data |
指標是一個類型為未符號字元的陣列,包含 INITSELF 或 SSCP 的登入訊息。 僅當 initType 包含 INIT_INITSELF 或 INIT_LOGON 時才使用。 |
timeout |
等待 BIND 和 SDT 指令到達所需的毫秒時間。 如果在 SDT 到達之前逾時到期,SNA 伺服器的 LU 將被釋放,並會返回錯誤。 將 0xfffffff輸入到timeout表示等待時間無限。 |
sessionHandle |
當此方法成功返回時,它會包含一個指向 IUnknown 介面的指標,此指標指向 comLU0 會話物件,該物件代表底層的 LU0 會話。 只要保留對此介面的參考,會話物件就會保持完整。 此介面可傳遞至 IcomLU0.Connect 方法,以連接 comLU0 物件與會話。 若未指定 LU 屬性,comLU0 會選擇分配給正在運行的使用者帳號的最佳可用 LU。 |
傳回值
下表說明了 CreateSession 的回傳代碼。
| 價值 | 說明 |
|---|---|
| S_OK | LU0 會話成功建立。 LU 會話處於啟動狀態,準備接收輸入。 |
| CLU0_S_SSCP_ACTIVE | LU0 會話成功建立。 SSCP 會話處於啟用狀態,準備接收輸入。 此回傳碼僅在 initType 被設定為 INIT_SSCP時有效。 |
| CLU0_E_NEG_RESPONSE (負回應) | 主機或 SNA 伺服器向 INITSELF 發送了否定回應。 或許主機或 SNA 伺服器會發送未格式化的登入指令。 這僅 initType 在 設為 INIT_INITSELF 或 INIT_LOGON時成立。 |
| CLU0_E_BADPARM |
connectionStr 包含一個無效的屬性設定。 |
| CLU0_E_NOFREELU |
luname 指定的 LU 是 SNA 伺服器的 LU 池。 目前該池沒有任何空閒的 LU。 |
| CLU0_E_LUINUSE | 所 luname 指定的 LU 是 SNA 伺服器 LU。 這個 LU 目前被另一個應用程式使用。 |
| CLU0_E_LUNOTFOUND | LU 或 pool 名稱不存在。 |
| CLU0_E_TIMEDOUT | 該場次未在指定的暫停時間內開始。 |
| CLU0_E_SESSION_FAILED | 該會話未能啟用,且未連接到任何 TSS LU0 會話。 應用程式應嘗試使用相同或不同的連線屬性建立新會話,或連接至不同的 TSS 會話帳號。 |
| CLU0_E_ACCESSDENIED | 客戶的使用者帳號沒有權限使用所請求的 LU 或資源池。 |
| CLU0_E_ALREADY_CONNECTED | comLU0 用戶端已經連接到另一個會話。 |
| CLU0_E_SYSERROR | 因內部錯誤而失敗。 |
備註
下表包含了 的 initType可能值。
| 名稱 | 價值 | 說明 |
|---|---|---|
| INIT_BIND | 0 | 等待來自PLU的未經請求的BIND和SDT。 |
| INIT_SSCP | 1 | 等待 BIND 和 SDT 抵達,但允許應用程式存取 SSCP 會話,以便傳送 SSCP 資料與指令。 |
| INIT_INITSELF | 2 | 在發送 INITSELF 指令 data後,等待 BIND 和 SDT 送達。 |
| INIT_LOGON | 3 | 在發送指定為未格式化的 SSCP 登入訊息 data後,等待 BIND 和 SDT 送達。 |