資料傳輸中的顯示標頭支援

對於基本對話,同步點指令透過呈現標頭(PS)在 LU 6.2 對話中傳送,使用 SEND_DATA 或 MC_SEND_DATA 動詞。 所有展示標頭都包含長度欄位,指定的長度為 1,這通常是不合法的。 為支援同步點對話,對主機整合伺服器呈現服務元件做了以下修改:

  • 在 synclevel 為 AP_SYNCPT 的基本對話中,指定一般資料流(GDS)變數長度為 1 的資料傳輸不會被拒絕。 若synclevel 不是 AP_SYNCPT,則會像之前一樣被拒絕。

  • 在映射對話中,PS 標頭在傳送時不會被包裝成映射對話應用程式資料邏輯記錄(帶有 GDS 識別碼 0x12FF),或在接收時 GDS 標頭被剝離。

  • 在映射對話中,應用程式負責提供完整的 PS 標頭,包括長度欄位。 同樣地,長度欄位也會包含在接收動詞回傳的 PS 標頭資料中。

    為了達成後者, MC_SEND_DATA 動詞與接收動詞(MC_RECEIVE_AND_POST、 MC_RECEIVE_AND_WAIT和 MC_RECEIVE_IMMEDIATE)需要進行以下修改:

  • MC_SEND_DATA動詞中加入了一個新參數 data_type。 當此設定為 AP_APPLICATION(預設值,0x00)時,資料會像往常一樣以應用程式資料(GDS 識別碼 0x12FF)形式傳送。 當設定為 AP_PS_HEADER 時,資料會依上述方式傳送。

  • 在接收動詞的 what_rcvd 成員中新增以下兩個新值,以指定接收的資料為 PS 標頭:

    AP_PS_HEADER_COMPLETE

    AP_PS_HEADER_INCOMPLETE

  • 若應用程式發出 rtn_status 為 AP_YES 的接收動詞,主機整合伺服器會與 AP_PS_HEADER_COMPLETE 一同回傳狀態,AP_DEALLOCATE_NORMAL 與 AP_CONFIRM_DEALLOCATE 除外。 這是為了防止當 COMMIT PS 標頭附帶對話結束的指示時,對話過早與 LU 6.2 會話斷線。

    廠商提供的 Sync Point 支援元件負責將這些 PS 標頭轉換為適當的 Sync Point 回傳碼(例如 TAKE_SYNCPT)。