View a markdown version of this page

教學課程:在 NTT DATA 上部署 CardDemo 應用程式 - AWS 大型主機現代化

AWS Mainframe Modernization Service (受管執行期環境體驗) 不再向新客戶開放。對於與 AWS Mainframe Modernization Service (受管執行期環境體驗) 類似的功能,探索 AWS Mainframe Modernization Service (自我管理體驗)。現有客戶可以繼續正常使用該服務。如需詳細資訊,請參閱AWS 大型主機現代化可用性變更

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:在 NTT DATA 上部署 CardDemo 應用程式

此頁面會逐步引導您 step-by-step 透過 NTT DATA Unikix 執行時間,在 AWS 大型主機現代化平台部署 CardDemo 範例應用程式。

CardDemo 範例應用程式是一種簡化的大型主機應用程式,旨在測試和展示大型主機遷移和現代化使用案例的 AWS 合作夥伴技術。

如需此應用程式的詳細資訊,請參閱 CardDemo 的 GitHub 儲存庫

部署流程圖

下圖顯示工作流程中在 NTT DATA Unikix 執行時間部署應用程式的每個步驟。

在 NTT DATA Unikix 執行時間部署應用程式的整體工作流程。

先決條件

步驟 1:準備環境

完成先決條件後,第一步是準備要部署 CardDemo 應用程式的環境。

  1. 以 身分登入 UniKix 執行期 EC2 執行個體ec2-user

  2. 在 EC2 執行個體中使用下列命令,觀察 AMI 中預先封裝的 UniKix 軟體清單,例如 TPE、BPE 和 COBOL,以及其他來自 NTT DATA UniKix 產品位置的清單:

    ls -l /opt/software/
  3. 檢查遷移的 CardDemo 應用程式。您將會看到所有原始程式碼,包括:BMS 地圖、COBOL 程式、COBOL 複製手冊和 JCLs。您也可以執行下列動作,找到 BPE 和 TPE 目錄的匯出、CICS 資源定義,以及循序檔案和 VSAM 檔案等遷移資料:

    ls $HOME/migrated_app/*/*
  4. 使用以下命令執行create_project指令碼來建立資料夾結構:

    sh $HOME/bin/create_project
  5. 使用 來源carddemo.env設定檔案來啟用 CardDemo 環境:

    source $HOME/bin/carddemo.env

步驟 2:建立 TPE 區域

啟用要部署應用程式的環境後,您需要建立 TPE 區域。

  1. 使用 kixregion createRegion命令建立 TPE 區域,該命令需要輸入,例如 $KIXSYS$JAVA_HOME$KIXLICDIR。這些環境變數已在設定檔案中carddemo.env設定。

    kixregion createRegion $KIXSYS $JAVA_HOME $KIXLICDIR
  2. 使用 kixregion setAttr命令設定 TPE 區域。

    kixregion setAttr $KIXSYS server.tx.languages.cobol.enabled true kixregion setAttr $KIXSYS server.tx.languages.cobol.flavor vcobol kixregion setAttr $KIXSYS server.tx.languages.cobol.home $VCOBOL kixregion setAttr $KIXSYS maps.location $PROJECT_ROOT/maps kixregion setAttr $KIXSYS programs.location $PROJECT_ROOT/loadlib kixregion setAttr $KIXSYS environment.KIXDATA $KIXDATA kixregion setAttr $KIXSYS td.jobq.submission.node $EBMHOME kixregion setAttr $KIXSYS td.jobq.submission.subsys $EBMSYS
  3. 執行 kixregion createScript命令,產生此 TPE 區域特有的使用者環境檔案。此命令$KIXSYS/bin/userenv會根據 TPE 區域組態建立或更新。

    kixregion createScript $KIXSYS
  4. 透過來源使用者環境檔案 () 來啟用 TPE 區域$KIXSYS/bin/userenv

    source $KIXSYS/bin/userenv
  5. 執行 kixinstall2命令來建置 TPE 區域。

    kixinstall2

步驟 3:建立 BPE 節點和子系統

建立 TPE 區域之後,您需要依照下列步驟建立 BPE 節點和子系統。

  1. 變更 的擁有權和許可INSTEBM

    sudo chown root $INSTEBM sudo chmod 4755 $INSTEBM
  2. 使用 INSTEBM命令建立 BPE 節點。BPE 節點目錄做為輸入參數提供。

    $INSTEBM $EBMHOME
  3. 從新建立的 BPE 節點取得batchenv檔案,以啟用批次環境。

    source $EBMHOME/batchenv
  4. 使用 Batch Administration Manager (bam) 在此節點內建立 BPE 子系統。bam 命令將開啟 Batch Administration Manager 介面。

    bam
    1. 使用 BAM 介面啟動 BPE 節點。從主功能表中選擇選項 2,系統環境

      在批次管理員中,選擇選項 2 系統環境。
    2. 選擇選項 2、開始/(停止) 批次節點來啟動 BPE 節點。

      在系統環境中,選擇選項 2 開始/停止批次節點。
    3. 啟動後,按兩次 Return 鍵以返回 BAM 主功能表。

      批次節點啟動完成畫面。
    4. 若要建立 BPE 子系統,請選擇選項 3,應用程式和子系統

      在 Batch Administrator Manager 頁面上選取的選項 3 應用程式和子系統。
    5. 然後選擇選項 3,建立子系統

      選項 3 在應用程式和子系統畫面上建立選取的子系統。
    6. 將子系統名稱輸入為 sys1

      在建立畫面上輸入的 sys1。
    7. 選擇選項 3,資料管理

      在應用程式和子系統中的建立畫面上選擇選項 3 資料管理。
    8. 選擇選項 5,因為 CardDemo 應用程式同時涉及序列和 VSAM 檔案。

      選擇選項 5 以包含序列和 VSAM 檔案。
    9. (選用)。按 "R" 返回建立選單頁面,檢閱可用的不同組態選項。

    10. 建立頁面上,輸入 "C" 來建立子系統 sys1

      在鍵盤上按下「C」以建立子系統 sys1。
    11. 檢閱設定,然後輸入 "C" 以繼續其餘的環境設定。由於carddemo.env設定檔案中定義的必要環境變數和建議的資料夾結構已就位,這些環境設定會預先填入。

    12. 輸入「y」以確認並儲存目前的環境設定。

      顯示已完成的 sys1 子系統環境設定。另請輸入「y」來儲存目前的設定。
    13. 輸入「y」以在建置子系統時顯示日誌。

      在畫面上顯示建置 sys1 的 NTT DATA COBOL 執行期系統。
    14. 傳回鍵,直到您返回主功能表,然後選取結束選項以結束 BAM 介面。

      顯示已建立的 COBOL 執行期系統。也會提示按傳回以繼續。
      返回建立功能表,並顯示已建立子系統 sys1。且組態已更新。提示按傳回以繼續。
      批次管理員的主功能表。提示輸入 Q 以退出此功能表。
  5. 透過使用子系統名稱 來源 來啟用 BPE batchenv子系統sys1

    source $EBMHOME/batchenv sys1

步驟 4:編譯和部署 CardDemo 應用程式

在此步驟中,您將編譯 COBOL 程式並部署應用程式成品,例如 JCL、程序、資料檔案和 CICS 資源定義。

  1. 透過來源carddemo.env設定檔案再次啟用 CardDemo 環境。

    source $HOME/bin/carddemo.env
  2. 導覽至 COBOL 來源目錄。

    cd $MIGAPP_DIR/cbl
  3. CBACT01C.cbl 使用compile指令碼編譯 Cobol 程式。

    compile CBACT01C.cbl
  4. 使用compile.all指令碼編譯所有 Cobol 程式。

    compile.all
  5. 導覽至 BMS 映射來源目錄。

    cd $MIGAPP_DIR/bms
  6. COACTUP.bms 使用compbms指令碼編譯 BMS 映射。

    compbms COACTUP.bms
  7. 使用compbms.all指令碼編譯所有 BMS 映射。

    compbms.all
  8. 驗證 COBOL 和 BMS 映射的編譯二進位檔。

    ls $PROJECT_ROOT/loadlib ls $PROJECT_ROOT/maps
  9. 使用deploy_app指令碼部署其他應用程式成品,例如 JCL、程序、資料檔案和 CICS 資源定義。

    deploy_app
  10. 導覽至專案 JCL 目錄。

    cd $PROJECT_ROOT/jcl
  11. 將 JCL ACCTFILE 轉換為 BPE JCL Macro。使用 mvstrans命令,利用「-v」選項進行 JCL 驗證,並使用「-f」選項來建立巨集。

    mvstrans ACCTFILE -v mvstrans ACCTFILE -f
  12. 將 JCL 程序 REPROC 轉換為 BPE JCL 程序巨集。使用 mvstrans命令搭配 "-p" 選項以及用於驗證的 "-v" 選項,以及用於建立巨集的 "-f" 選項。

    mvstrans REPROC -v -p mvstrans REPROC -f -p
  13. 翻譯所有 JCLs和 JCL 程序。

    for file in "./jmvs/*"; do mvstrans $file -f; done > jmvs.out for file in "./mvsp/*"; do mvstrans $file -p -f; done > mvsp.out

步驟 5:匯入 BPE 和 TPE 目錄

在此步驟中,您會使用不同的命令匯入 BPE 和 TPE 目錄。

  1. 使用 loadcat命令匯入 BPE 目錄。

    loadcat $MIGAPP_DIR/catlg/bpe/BPECAT*
  2. 導覽至 $KIXSYS 目錄。

    cd $KIXSYS
  3. 使用 kiximpcat命令匯入 TPE 目錄。

    kiximpcat -c CATALOG -l CATALOG.lst
  4. 使用 kiximptbl 命令匯入 CICS 資源定義。

    kiximptbl

步驟 6:啟動並連接 TPE 與 BPE

在此步驟中,您需要啟動先前建立的 TPE 區域與 BPE 管理員,並連接這些區域,才能執行範例 CardDemo 應用程式。

  1. 針對所有 VSAM 檔案執行 kixverify命令,以確保它們已重設且任何先前開啟的檔案都已關閉。

    kixverify -r ALL
  2. 啟動 TPE 區域。

    kixregion start $KIXSYS
  3. 確定 BPE 和 TPE 都已連線。這很重要,因為 VSAM 檔案由 TPE 擁有,存取 VSAM 的任何批次操作都需要連線至 TPE。

    ebmsys -t
    將子系統名稱顯示為 sys1。TPE 已連線,且 TPE 使用者是 ec2-user。

步驟 7:執行 CardDemo 應用程式

在此步驟中,您會在 TN3270 終端機模擬器中執行 CardDemo 應用程式。

UniKix 執行期 AMI 隨附 TN3270 終端機模擬器,您可以直接從 UniKix EC2 執行個體啟動。

使用 TN3270 終端機模擬器連線至 TPE
  • 使用 kixterm命令啟動 TN3270 終端機。

    kixterm
    適用於大型主機的 TPE UniKix CardDemo 範例應用程式的主要畫面。

(選用)。如果您想要使用自己的終端機模擬器:

  1. 從 Amazon EC2 主控台取得 UniKix 執行時間執行個體的 IP 地址。

  2. 取得連接埠號碼,以使用 TN3270 終端機模擬器連線至 TPE 區域。您可以從 unikixrc.cfg 檔案的 TNServer ListenPort 找到此項目。

    cat $KIXSYS/unikixrc.cfg
    顯示 UniKix unikixrc.cfg 檔案的詳細資訊,接聽程式連接埠為 15440。
  3. 將 TN3270 終端機模擬器設定為使用 UniKix 執行時間執行個體的 IP 地址和連接埠號碼 15440。

線上交易

本節假設您已使用 kixterm命令連線至 TN3270 終端機模擬器。

  1. 從 TN3270 終端機模擬器連線後,按「Enter」鍵清除 TPE 畫面並輸入初始交易。

  2. 在初始交易 CC00 (登入畫面) 上,輸入USER001使用者名稱PASSWORD和密碼。

    CardDemo 的主畫面。顯示這是 Mainframe Modernization 的CardDemo應用程式。要求輸入您的使用者 ID 和密碼。
  3. 主功能表中選擇選項 “01” 以檢視帳戶。

    模擬器中 CardDemo 應用程式的主選單,選取選項為 1。
  4. 檢視帳戶畫面中,輸入帳戶號碼 (例如 00000000010)。您應該會看到從遷移資料填入的帳戶資訊。

    輸入帳號為 00000000010 的 CardDemo 應用程式詳細資訊。
  5. 按兩次「PF03」鍵返回登入畫面,然後按「Ctrl+C」(Windows) 或「Cmd+C」(Macbook) 結束 TN3270 終端機。

批次任務

  1. 導覽至 JCL 目錄。

    cd $MBMSUB
  2. 提交任務MFCATGL1並觀察任務日誌輸出。

    BPESUB READCARD
  3. 或者,您可以從 $SUBSYS_OUTDIR目錄檢視任務日誌。

    ls -lrt $SUBSYS_OUTDIR/*

您現在已成功將 CardDemo 應用程式部署到 NTT DATA UniKix 執行時間,並透過瀏覽幾個 CICS 線上畫面和批次任務來驗證執行中的應用程式。

疑難排解

以下是您在設定 CardDemo 應用程式時可能發現的一些常見錯誤。

錯誤:授權錯誤

如果您在遵循本教學課程期間收到授權失敗錯誤,可能是您的 ECIMDSv22。 EC2 您可以透過將執行個體中繼資料選項 IMDSv2 修改為選用來解決此問題,如《Amazon EC2 使用者指南》中的還原 IMDSv1 的使用所述。

錯誤:TPE 未連線至 BPE

如果 TPE 未連線至 BPE,請確定 VSAM 組態表已使用 BPE 節點目錄正確設定。若要存取 VSAM 組態表,請使用下列命令啟動 TN3270 終端機模擬器:

kixterm
  1. 將交易名稱輸入為 CTBL

  2. 資料表管理員功能表中,選擇標準資料表選項。

  3. 在標準資料表畫面上,選擇選項 VSAM 組態資料表

  4. 檢查是否連線至批次節點? 設定為「Y」且 Node Directory 正確。

TN3270 終端機模擬器中的 VSAM 組態表。顯示資料表中每個欄位的值。