TCP 交易要求訊息連結

TCP 交易要求訊息 (TRM) Link 模型允許透過 COMMAREA 在 TI 與伺服器 TP 之間傳遞資料和參數。 此模型也允許並行伺服器連結至 CICS DPL 程式。 TCP/IP 的標準接聽程式會使用兩個網路交換來執行單一交易程式,並要求用戶端:

  • 將交易要求訊息傳送至標準接聽程式 (TRM) 。

  • 從應用程式收到 TRM 回復。

  • 將應用程式要求資料流程傳送至伺服器交易程式。

  • 從伺服器交易程式接收應用程式回復資料。

    TCP TRM 連結模型是以 CICS 並行伺服器模型為基礎。 TCP TRM Link 模型是一種 Microsoft 變體,可支援在 CICS 環境中執行 DPL 伺服器應用程式,並維持與 CICS LU6.2 Link 程式設計模型的相容性。

    下圖摘要說明用戶端、標準 CICS 接聽程式、並行伺服器和大型主機交易程式之間發生的工作流程。 括弧中的數位會指出事件發生的近似順序。 更詳細的事件描述會遵循此圖。

    Image that shows the process by which the client starts the default Listener.
    用戶端啟動預設接聽程式的程式,此接聽程式會將呼叫傳遞至並行伺服器,然後從用戶端傳送和接收資料,然後伺服器會傳遞至 CICS DPL 程式,以供商務邏輯處理

TCP TRM 連結程式設計模型的運作方式如下:

  1. 應用程式會在元件服務或.NET Framework中設定的 TI 元件中叫用方法。

  2. TI 執行時間會呼叫 TI 自動化 Proxy。

  3. 如果應用程式是 COM+ 元件,TI 自動化 Proxy:

    1. 讀取先前由 TI 設計工具所建立的型別程式庫。

    2. 地圖自動化資料類型至 COBOL 資料類型。

      如果應用程式是.NET Framework元件,TI 自動化 Proxy:

    3. 讀取先前由 TI 設計工具建立的元件和中繼資料。

    4. 地圖.NET Framework資料類型至 COBOL 資料類型。

      TI 自動化 Proxy 接著:

    5. 呼叫轉換常式,將應用程式資料轉換成大型主機 COBOL 類型。

    6. 建置代表 COBOL 宣告或 copybook 的扁平化資料流程緩衝區。

    7. 將資料流程傳遞至 TCP 傳輸元件。

  4. TI TCP 傳輸會使用大型主機電腦的 (IP) 位址和接聽程式的埠位址,將連線要求傳送至標準接聽程式。

  5. 標準接聽程式接受連線要求,並告知 TI 執行時間傳送 TRM。 然後,標準接聽程式會等候 TRM。

    TRM 是格式化的資料記錄,可識別要使用其 TRANID 叫用的伺服器 TP。 接聽程式 TP 是特殊的大型主機 TP,其主要功能是接收執行 TCP/IP 的用戶端應用程式所傳送的伺服器 TP 調用。

    IBM 提供的標準接聽程式 TP 的 TRANID 是 CSKL。 接聽程式 TP 的 TP 名稱,因為它出現在 CICS 程式控制資料表中, (PCT) 為 EZACIC02。

  6. TI 執行時間會格式化標準或自訂 TRM,並將其傳送至標準接聽程式。 TI 執行時間接著會等候 TRM 回復。

  7. 標準接聽程式會接收 TRM、傳送 TI 執行時間接收確認,然後讀取 TRM 的內容。 接聽程式會解譯 TRM 中的資訊,並擷取要服務要求的並行伺服器程式交易識別碼。

  8. 標準接聽程式會啟動並行伺服器 TP 程式 (Mscmtics.cbl 範例應用程式,) 使用 EXEC CICS Start 在 TRM 中識別的 TRANID。

    Mscmtics.cbl 是 Microsoft 範例 TP 檔案,可用來使用 COMMAREA 在 TI 與伺服器 TP 之間傳遞資料。 Mscmtics.cbl 範例 TP 是由 Microsoft 所開發,並在Host Integration Server軟體中提供。 它位於 $\Microsoft Host Integration Server\SDK\Samples\Comti\ProgrammingSpecifics\Tcp 中。 使用此模型之前,必須先在大型主機電腦上編譯、連結及安裝程式碼。

    注意

    如果標準接聽程式無法啟動並行伺服器,接聽程式會格式化錯誤訊息,並將它傳回 COMTI TCP 傳輸。 接聽程式可能無法啟動的原因包括:

    例如,由於 CICS 資源有限 (而拒絕連線,例如,超過 CICS 工作數目上限或並行伺服器工作)

    並行伺服器的無效或停用 TRANID

    與交易識別碼相關聯的無效、停用或無法使用並行伺服器程式

    注意

    CICS 接聽程式的錯誤訊息是以字元為基礎,且一律以 EZY 字母開頭。 錯誤訊息的長度是可變的,而訊息結尾是由 CICS 接聽程式所關閉的通訊端所決定。 標準接聽程式會在主機環境中呼叫通訊端應用程式通訊協定介面 (API) 。 標準接聽程式無法傳送 TRM 回復。 TRM 回復代表同步處理常式,允許在用戶端傳送應用程式要求資料之前啟動交易程式的時間。 由於內部 CICS 架構考慮,因此需要此同步處理常式, (在要求) 之後啟動交易程式時並不保證。

    在標準 CICS 接聽程式發出並行伺服器交易的 start 命令之後,就不再需要標準接聽程式來處理應用程式,而且可以接聽另一個傳入要求。

  9. 並行伺服器執行之後,它會讀取由標準接聽程式傳送的交易初始訊息 (TIM) 。

    TIM 描述伺服器執行所在的 TCP/IP 環境,並包含並行伺服器用來與 COMTI TCP 傳輸通訊的 TCP/IP 通訊端資訊,以及並行伺服器用來自訂其執行行為的用戶端訊息標頭。 標頭包含要連結的伺服器程式名稱。

  10. 並行伺服器:

    1. 格式化標準或自訂 TRM 回復。

    2. 傳送 TRM 回復 TI TCP 傳輸,以通知它現在可以傳送應用程式要求資料。

    3. 發出接收並等候應用程式要求資料。

      傳送 TRM 回復會完成標準接聽程式交換順序的第 1 部分。

  11. TI 執行時間會評估 TRM,並使用標準 EXEC CICS Link 呼叫,透過 CICS COMMAREA 將資料傳遞至並行伺服器程式。 TI 執行時間也會傳送通訊端 (,也就是 2 個位元組) 關機,然後等候回復資料。

  12. 在並行伺服器收到應用程式要求資料之後,它會連結到 TRMs 用戶端訊息標頭中指定的服務應用程式程式。 CICS EXEC CICS LINK 命令可用來啟動實際的伺服器應用程式。 Link 命令會將從 COMTI TCP 傳輸收到的應用程式資料傳遞至記憶體的通用區域, (COMMAREA) ,並針對資料執行商務邏輯。 所有商務邏輯都會定義于伺服器 TP 中。

  13. 在伺服器應用程式程式完成處理要求並制定回復之後,它會發出 EXEC CICS RETURN 命令,將控制權傳回並行伺服器 (mscmtics.cbl) 程式。 伺服器 TP 會準備回復資料以及標準或自訂 TRM、接受來自 COMMAREA 的資料,然後透過 COMMAREA 將應用程式回復資料傳回 TI TCP 傳輸。 完成應用程式資料的處理會向第 2 個交換序列的結尾發出訊號。

  14. 並行伺服器會關閉通訊端。

  15. TI 自動化 Proxy 會接收回複數據並處理回復。 TI 自動化 Proxy:

    1. 從 TCP 傳輸元件接收訊息。

    2. 讀取訊息緩衝區。

      如果應用程式是 COM+ 元件,TI 自動化 Proxy:

    3. 地圖 COBOL 資料類型至自動化資料。

    4. 呼叫轉換常式,將大型主機 COBOL 類型轉換成應用程式資料。

      如果應用程式是.NET Framework元件,TI 自動化 Proxy:

    5. 地圖 COBOL 資料類型至.NET Framework資料類型。

    6. 呼叫轉換常式,將大型主機 COBOL 類型轉換成應用程式資料。

  16. TI 執行時間會將已轉換的資料傳回 COM 或.NET Framework叫用 方法的應用程式。

    若要實作此模型,您必須提供 TI 的 IP 位址、埠號碼和 CICS 程式名稱,以執行並行伺服器程式所傳遞的應用程式 (Mscmtics.cbl) 。 此模型需要在 CICS 內安裝 IBM 提供的預設接聽程式 (EZACIC02) 。 CICS IBM 預設接聽程式會使用 IBM 提供的預設設定。

    Host Integration Server包含示範如何實作 TCP TRM 連結程式設計模型的範例程式碼。 範例程式碼位於 \安裝目錄\SDK\Samples\AppInt。 開始Microsoft Visual Studio,開啟您選擇的教學課程,並遵循讀我檔案中的指示。

    如需設定大型主機和撰寫 TCP/IP 伺服器應用程式的相關資訊,請參閱適用于 MVS 的 TCP/IP V3R2:CICS TCP/IP 通訊端介面指南 (IBM 檔 #SC31-7131) 。

另請參閱

交易整合器元件
交易要求訊息
將資料類型從自動化轉換為 OS/390 COBOL]
將資料類型從 OS/390 COBOL 轉換成自動化
CICS 元件
選擇適當的程式設計模型
程式設計模型