輸入資料

本節說明從應用程式到本機節點的輸入資料流程。 描述之通訊協定的整體結構適用于系統服務控制點 (SSCP) 和主要邏輯單元 (PLU) 連線,但更複雜的層面 (例如使用延遲要求模式) 僅適用于 PLU 連線。

應用程式可以在任何連線上傳送輸入資料,如下所示:

  • 函式管理資料網路服務 (FMD NS) (會話服務) 和函式管理資料 (FMD) 字元編碼資料,應傳送至 SSCP 連線上的本機節點。

  • 適用于主機 PLU 的 FMD 資料應該傳送至 PLU 連線上的本機節點。

    應用程式無法使用 資料 訊息將資料流程控制傳送至主機 (DFC) 或會話控制要求訊息。 相反地,它必須使用 狀態控制 訊息。 (如需詳細資訊,請參閱 Status-Control Message.)

    對於所有連線,應用程式必須填入 資料 訊息標頭中的特定索引鍵欄位。 特別是必須:

  • 將訊息類型設定為 DATAFMI

  • 為此連線上的輸入 資料 訊息配置新的訊息金鑰。

  • 視需要設定 ACKRQD 欄位。

  • 設定應用程式旗標。 (如需詳細資訊,請參閱 Application Flags.)

    訊息標頭中的 nxtqptrhdreptrnumelts 欄位,以及訊息元素中的 elteptrstartd 欄位是由主機整合伺服器緩衝區管理常式所設定。 (如需詳細資訊,請參閱 DL-BASE/DMOD Interface.) 應用程式負責設定 結束 欄位。

    例如,如果應用程式無法存取這些常式 (,當作業環境不支援工作程序呼叫和共用記憶體) 時,標頭中的所有欄位都必須由應用程式設定。

    傳輸標頭 (TH) 和回應標頭 (RH) 指標不適用於應用程式輸入 資料 訊息。 應用程式應該在訊息標頭中設定適當的應用程式旗標,以控制鏈結、方向等等。 如需本節中可用應用程式旗標的描述,以及本節中稍後的主題,以取得如何使用旗標來控制輸入資料流程的描述,請參閱 應用程式旗標

    針對輸入資料,第一個位元組是標準函式管理介面的 RU[0], (FMI) 。

    本機節點會使用應用程式在輸入資料訊息標頭中提供的訊息索引鍵,以指出輸出狀態認可所參考的連線上的哪個資料訊息。 應用程式應該在與本機節點擁有的每個連線上維護輸入資料流程的唯一訊息索引鍵順序,讓應用程式可以使用訊息索引鍵,將連線上的輸入 資料 訊息和輸出 狀態通知 訊息相互關聯。 請注意,應用程式也必須在 狀態控制要求 訊息上提供訊息索引鍵,以區分多個 RQE LUSTAT 訊息。

    輸入資料通知通訊協定會反映會話上使用的次要鏈結回應通訊協定和要求模式,如下所示:

  • 標頭中設定ACKRQD的輸入資料訊息會產生RQD要求。

  • 標頭中未設定ACKRQD的輸入資料訊息,會根據鏈結回應通訊協定產生RQERQN要求。

  • 應用程式應該只在已設定結束鏈結指標的資料訊息上設定ACKRQD (ECI) 應用程式旗標集。

  • 如果會話指定次要伺服器使用立即要求模式,應用程式仍然可以在傳送具有ACKRQD集合的資料之後傳送進一步的資料訊息,即使它尚未收到該資料訊息的狀態認可訊息也一樣。 訊息會排入本機節點內,並隨著收到正面回應而逐漸傳送。

  • 如果會話指定次要伺服器使用延遲的要求模式,在傳送具有ACKRQD設定的資料訊息之後,應用程式可以繼續傳送資料訊息。

    如果應用程式在Data訊息的訊息標頭中設定ACKRQD欄位,表示它需要此資料訊息的通知。 本機節點會藉由將Status-Acknowledge訊息傳送至相同連線上的應用程式,並使用與資料訊息相同的訊息索引鍵來認可輸入資料訊息。 (如需圖例,請參閱本主題結尾的第一個圖。)

    本機節點會透過其內部狀態電腦處理來自應用程式的輸入 資料 訊息、為此流程指派正確的 SNA 序號或識別碼,並將要求中的資料傳送至主機。 要求的鏈結回應類型取決於資料訊息和會話參數中是否已設定ACKRQD

    本機節點會將主機的正面回應對應至 狀態認可 (Ack) 至應用程式。 應用程式可以使用 Status-Acknowledge 中的訊息索引鍵,將通知與原始 資料 訊息相互關聯。 因此,針對特定資料訊息收到Status-Acknowledge (Ack) ,表示本機節點已收到主機對輸入 SNA 要求的正 SNA 回應。 (如需圖例,請參閱本主題結尾的第二個圖。)

    請注意,回應會吸收在 SSCP-PU 會話上。

    請注意,輸出 狀態通知 (Ack) 訊息包含應用程式旗標和序號。 應用程式旗標會反映回應中的 RH 指標。 序號是回應中的 SNA 序號,並提供一種機制,讓應用程式使用傳輸服務設定檔 (TS 設定檔) 4 來追蹤對應至工作單位的 SNA 次要序號。

    本機節點會將主機的負回應對應至 狀態認可 (Nack-1) 訊息至應用程式。 應用程式可以使用 Status-Acknowledge 中的訊息索引鍵,將負通知與原始 資料 訊息相互關聯。 輸出 狀態通知 (Nack-1) 訊息包含負回應中的 SNA 感知碼和序號。 (如需圖例,請參閱本主題結尾的第三個和第四個圖。)

    如果本機節點偵測到輸入 資料 訊息格式的錯誤,或 資料 訊息不適合會話的目前狀態,則會將 Status-Acknowledge (Nack-2) 傳送至包含錯誤碼的應用程式。 (如需錯誤碼的清單,請參閱 Error and Sense Code.) 本機節點不會將要求傳送至對應至錯誤 資料 訊息的主機,也不會前進會話的 SNA 序號。 應用程式可以在下一個輸入 資料 訊息中使用任何訊息金鑰, (假設錯誤不會造成重大失敗) 。

    應用程式傳送具有ACKRQD但應用程式旗標中沒有 ECI的資料訊息的嚴重鏈結錯誤範例會顯示在本主題結尾的最後一個圖中。 請注意,偵測到此特定錯誤之後,本機節點會將應用程式的連線標示為嚴重失敗、關閉連線,並將 TERM-SELF 要求傳送至 SSCP 以產生 UNBIND。 (如需詳細資訊,請參閱 Recovery.)

    輸入 狀態控制 訊息,這會導致產生加速流程要求,可以隨時傳送,而且不會影響傳送對輸入 資料 訊息的正面或負面通知。 如需哪些 狀態控制 訊息對應至 SNA 加速流程要求的詳細資訊,請參閱 狀態控制訊息

    下圖說明輸入資料通知通訊協定 (的範例,以及不同鏈結回應類型和次要會話要求模式的基礎 SNA 通訊協定) 。

    此圖顯示:

  • 資料訊息上的ACKRQD欄位。

  • 資料訊息上的訊息索引鍵。

  • 資料訊息上的任何相關應用程式旗標。

  • 錯誤碼 (顯示為 [錯誤=...] ) 資料 訊息。

  • SNA 要求/回應的相關 RH 旗標。

  • SNA 要求/回應的序號。

  • 在 SNA 要求/回應上, (顯示為 「SENSE=....」) 。

    為了簡單起見,所有訊息都會假設在相同的 PLU 會話上流動。

    在下圖中,應用程式已成功傳送 資料 訊息。

    顯示應用程式如何成功傳送資料訊息的影像。
    應用程式已成功傳送資料訊息

    在下圖中,應用程式已成功傳送 資料 訊息鏈結。

    顯示應用程式如何成功傳送資料訊息鏈結的影像。
    應用程式已成功傳送資料訊息鏈結

    在下圖中,主機會拒絕 資料 訊息鏈結。

    顯示主機如何拒絕資料訊息鏈結的影像。
    主機會拒絕資料訊息鏈結

    在下圖中,主機會拒絕第一個明確回應鏈結,並在延遲的要求會話上拒絕第三個例外狀況回應鏈結。 請注意,對第三個鏈結的負回應表示對第二個鏈結的正面回應。

    顯示主機如何拒絕第一個明確回應鏈結的影像。
    主機會拒絕第一個明確回應鏈結

    在下圖中,本機節點會偵測應用程式在資料訊息上沒有 ECI 應用程式旗標的情況下,使用ACKRQD無效。 請注意,不會傳送任何資料給主機。 不過,因為錯誤很重要,所以本機節點會將 TERM-SELF 訊息傳送至 SSCP。

    顯示本機節點如何偵測應用程式在資料訊息上沒有 ECI 應用程式旗標的情況下,使用 ACKRDQ 不正確影像。
    本機節點偵測到應用程式在資料訊息上沒有 ECI 應用程式旗標的情況下,使用 ACKRDQ 無效

另請參閱

輸出資料
來自 LUA 應用程式的輸入資料