View a markdown version of this page

教程:在 NTT DATA 上部署 CardDemo 应用程序 - AWS Mainframe Modernization

AWS 大型机现代化自我管理体验不再向新客户开放。要获得与 AWS 大型机现代化自我管理体验相似的功能,请探索供应商直销产品和来自的功能。 AWS Transform现有客户可以继续正常使用该服务。有关更多信息,请参阅AWS 大型机现代化可用性变更。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS 大型机现代化服务(托管运行时环境体验)不再向新客户开放。要了解与 AWS 大型机现代化服务(托管运行时环境体验)类似的功能,请浏览 AWS 大型机现代化服务(Self-Managed体验)。现有客户可以继续正常使用该服务。有关更多信息,请参阅AWS 大型机现代化可用性变更。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:在 NTT DATA 上部署 CardDemo 应用程序

本页指导您逐步完成使用 NTT DATA Unikix 运行时在 AWS 大型机现代化改造平台上部署 CardDemo 示例应用程序的分步过程。

该 CardDemo 示例应用程序是一个简化的大型机应用程序,旨在测试和展示大型机迁移 AWS 和现代化用例的合作伙伴技术。

有关此应用程序的更多信息,请参见的GitHub存储库 CardDemo。

部署流程图

下图显示了在 NTT DATA Unikix 运行时上部署应用程序的工作流程中的每个步骤。

在 NTT DATA Unikix 运行时上部署应用程序的总体工作流程。

先决条件

  • 按照AWS 使用 NTT DATA 进行大型机现代化改造使用 NTT 数据 UniKix 市场 AMI 中提供的说明进行操作。

  • 将实例元数据选项 IMDSv2 修改为 Optional,如《Amazon EC2 用户指南》中的恢复使用 IMDSv1 中所述。

  • UniKix 从 NTT DATA 下载 CardDemo 运行时组件

    GitHub 存储库。

  • 以身份登录到 UniKix 运行时 EC2 实例ec2-user。

  • 使用以下链接提取下载的 CardDemo 运行时组件:UniKix_ CardDemo _runtime_v1.zip 。

    • 提取的目录应包含 bin 和 migrated_app 目录。

    • 将 bin 和 migrated_app 目录都移到您的 $HOME 目录下。该路径看起来如下:/home/ec2-user。

    • 您的 $HOME 中应具有以下目录:

      • /home/ec2-user/bin

      • /home/ec2-user/migrated_app

    • 使用以下命令将所有文件移HOME/bin 到 $ 目录中:

      • chmod +x $HOME/bin/*

步骤 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 副本和 JCL。您还可以通过运行以下命令,找到 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 区域的用户环境文件。该命令根据 TPE 区域配置创建或更新 $KIXSYS/bin/userenv。

    kixregion createScript $KIXSYS
  4. 通过获取用户环境文件($KIXSYS/bin/userenv)来激活 TPE 区域。

    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 System Environments。

      在 Batch Administrator Manager 中,选择选项 2“System Environments”。
    2. 选择选项 2 Start/(Stop) Batch Node 以启动 BPE 节点。

      在系统环境中,选择选项 2 Start/Stop 批处理节点。
    3. 启动后,按两次 Return 键返回 BAM 主菜单。

      批处理节点启动完成屏幕。
    4. 要创建 BPE 子系统,请选择选项 3 Applications & Subsystems。

      在“Batch Administrator Manager”页面上选择了选项 3“Applications & Subsystems”。
    5. 然后选择选项 3 Create a Subsystem。

      在“Applications & Subsystems”屏幕上选择了选项 3“Create a Subsystem”。
    6. 输入 sys1 作为子系统名称。

      在“Create”屏幕上输入了 sys1。
    7. 选择选项 3 Data Management。

      在“Applications & Subsystems”中的“Create”屏幕上选择选项 3“Data Management”。
    8. 选择选项 5,因为该 CardDemo 应用程序涉及顺序文件和 VSAM 文件。

      选择选项 5 以包括顺序文件和 VSAM 文件。
    9. (可选)。按“R”返回到 Create Menu 页面,查看可用的不同配置选项。

    10. 在 Create 页面上,输入“C”以创建子系统 sys1。

      在键盘上按“C”以创建子系统 sys1。
    11. 查看设置,然后输入“C”,继续执行其余的环境设置。由于 carddemo.env 安装文件中已经定义了必要的环境变量并且已存在建议的文件夹结构,这些环境设置已预先填充。

    12. 输入“y”以确认并保存当前的环境设置。

      显示 sys1 子系统的环境设置已完成。输入“y”以保存当前设置。
    13. 输入“y”以在构建子系统时显示日志。

      屏幕上显示正在构建 sys1 的 NTT DATA COBOL 运行时系统。
    14. 按 Return 键直到返回主菜单,然后选择 Quit 选项退出 BAM 界面。

      显示创建的 COBOL 运行时系统。同样提示按 Return 以继续。
      返回“Create”菜单并显示创建了子系统 sys1。并且配置已更新。提示按 Return 以继续。
      Batch Administrator 的主菜单。提示输入 Q 退出此菜单。
  5. 通过获取带有子系统名称 sys1 的 batchenv 来激活 BPE 子系统。

    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. 使用 compile 脚本编译 Cobol 程序 CBACT01C.cbl。

    compile CBACT01C.cbl
  4. 使用 compile.all 脚本编译所有 Cobol 程序。

    compile.all
  5. 导航到 BMS 映射源目录。

    cd $MIGAPP_DIR/bms
  6. 使用 compbms 脚本编译 BMS 映射 COACTUP.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 宏。使用 mvstrans 命令,结合“-v”选项进行 JCL 验证,结合“-f”选项创建宏。

    mvstrans ACCTFILE -v mvstrans ACCTFILE -f
  12. 将 JCL 过程 REPROC 转换为 BPE JCL 过程宏。使用 mvstrans 命令,结合“-p”选项和“-v”选项进行验证,结合“-p”选项和“-f”选项创建宏。

    mvstrans REPROC -v -p mvstrans REPROC -f -p
  13. 转换所有 JCL 和 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 区域的端口号。你可以在 TNServer 的 unikixrc.cfg 文件 ListenPort 中找到这个。

    cat $KIXSYS/unikixrc.cfg
    显示监听器端口为 15440 UniKix 的 unikixrc.cfg 文件的详细信息。
  3. 将您的 TN3270 终端仿真器配置为使用 UniKix 运行时实例的 IP 地址和端口号 15440。

在线事务

本节假设您已使用 kixterm 命令连接到 TN3270 终端模拟器。

  1. 连接到 TN3270 终端模拟器后,按“Enter”键清除 TPE 屏幕并进入初始事务。

  2. 在初始事务 CC00(登录屏幕)上,输入用户名 USER001 和密码 PASSWORD。

    的主屏幕 CardDemo. 显示这是大型机现代化的积分 CardDemo申请。要求输入您的用户 ID 和密码。
  3. 从 Main Menu 中选择“01”选项以查看账户。

    CardDemo 仿真器中应用程序的主菜单,所选选项为 1。
  4. 在 View Account 屏幕中,输入账号(例如 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 应用程序时可能会发现的一些常见错误。

错误:许可错误

如果您在学习本教程时收到许可证失败错误,则可能是您的 EC2 中启用了 IMDSv2。可通过以下方法解决此问题:将实例元数据选项 IMDSv2 修改为 Optional,如《Amazon EC2 用户指南》中的恢复使用 IMDSv1 中所述。

错误:TPE 未连接到 BPE

如果 TPE 未连接到 BPE,请确保使用 BPE 节点目录正确配置 VSAM Configuration Table。要访问“VSAM Configuration Table”,请使用以下命令启动 TN3270 终端模拟器:

kixterm
  1. 将事务名称输入为 CTBL。

  2. 在 Table Manager 菜单中,选择 Standard Tables 选项。

  3. 在“Standard Tables”屏幕上,选择 VSAM Configuration Table 选项。

  4. 检查 Connect to batch node? 是否设置为 Y 且节点目录正确。

TN3270 终端模拟器中的“VSAM Configuration Table”。显示表中每个字段的值。