本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
大型主機來源成品集合
本主題概述了收集大型主機原始程式碼和相關成品的程序,以支援使用 AWS Transform 的大型主機現代化計畫。正確收集和準備來源成品對於成功分析、遷移規劃和實作至關重要。
原始程式碼庫存
應用程式原始碼類型
支援下列應用程式原始碼類型:
COBOL 程式
JCL 指令碼
組裝器程式
PL/I 程式
CICS 交易
自然程式
REXX 指令碼
Easytrieve 程式
複製手冊和 包含
Proc 程式庫
資料庫資產
支援下列資料庫資產:
DB2 DCLGEN 和 DDL 指令碼
IMS 資料庫定義 (PSBs和 DBDs)
VSAM 檔案定義
實體和邏輯資料庫結構描述
資料庫程序和觸發條件
原始程式碼副檔名
如果您不確定延伸模組,請將它保留為空白或 .txt,且 AWS Transform 會為您分類。
下表列出大型主機來源成品的常見副檔名。
| 語言/類型 | 常見延伸模組 | 說明 |
|---|---|---|
| COBOL | .cbl、.cob、.cobol | COBOL 來源程式 |
| JCL | .jcl | 任務控制語言指令碼 |
| 組裝器 | .asm | 組合語言程式 |
| PL/I | .pl1 | PL/I 語言程式 |
| CICS 定義 | .csd | CICS 系統定義 (CSD) |
| 自然 | .nat | 自然程式 |
| REXX | .rex、.rexx | REXX 指令碼 |
| Easytrieve | .ezt | Easytrieve 報告程式 |
| 複製手冊 | .cpy | COBOL 複製手冊 |
| BMS | .bms | 基本映射支援 (BMS) |
| PL/I 複製手冊 | .pl1_copy | PL/I 複製手冊 |
| Db2 DCLGEN | .dcl | Db2 宣告產生器 |
| Db2 定義 | .sql、.ddl | Db2 資料庫定義 |
| IMS 定義 | .ims | IMS 資源定義資料集 (IMS 階段 1) |
| MFS | .mfs | IMSMFS (訊息格式服務) |
| PSB | .psb | IMS PSB (程式規格區塊) |
| DBD | .dbd | IMS 資料庫定義 |
| JCL 處理 | .prc、.proc | JCL 程序程式庫 |
| JCL 包括 | .inc | JCL 包含檔案 |
| 巨集 | .mac | 組裝器巨集 |
| 控制卡 | .ctl | JCL 公用程式控制卡 |
收集方法
原始程式碼擷取
使用安全 FTP 用戶端 (WinSCP/FileZilla) 從大型主機 PDS 程式庫中擷取互動式原始程式碼。
DB2 結構描述擷取
DB2 LUW (Linux、UNIX 和 Windows) 用戶端軟體包含 db2look公用程式做為其安裝套件的一部分。db2look 公用程式會從 DB2 資料庫擷取 DDL (資料定義語言) 陳述式。
執行以下命令:
db2look -dDATABASE_NAME-iuserid-wpassword-a -e -m -l -x -f -createdb -printdbcfg -oDATABASE_NAME.sql
下列清單說明參數:
-d:指定要從中擷取結構描述的資料庫名稱DATABASE_NAME-i:資料庫身分驗證的使用者 IDuserid-w:資料庫身分驗證的密碼password-a:擷取授權資訊 (授與)-e:擷取所有資料庫物件 (資料表、檢視、索引等)-m:擷取統計資料和實體特性-l:擷取資料表和資料欄註解-x:擷取說明資料表-f:格式化輸出以提高可讀性-createdb:包括資料庫建立陳述式-printdbcfg:包括資料庫組態參數-o:指定輸出檔案名稱DATABASE_NAME.sql
從大型主機擷取目錄資訊
IDCAMS 中的 LISTCAT 命令是一種公用程式,用於擷取大型主機上資料集的目錄資訊。這在大型主機現代化專案期間非常有用,可清查資料集並了解其特性。
//LSTCATJ JOB 'LISTCAT',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* //STEP1 EXEC PGM=IDCAMS //* //SYSPRINT DD DSN=AWS.M2.CATALOG.LIST, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0) //* //SYSIN DD * LISTCAT ENT('AWS.M2.CARDDEMO.*') ALL LISTCAT ENT('SYS1.*') ALL /*
擷取 CICS 定義
IBM 提供的 DFHCSDUP 公用程式可以從 CICS 系統定義 (CSD) 檔案擷取 CICS 資源定義。
使用下列 JCL 從 DFHCSD 卸載現有定義:
//CSDEXTJ JOB 'EXTRACT CSD',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* //STEP1 EXEC PGM=DFHCSDUP,REGION=0M, // PARM='CSD(READONLY),PAGESIZE(60),NOCOMPAT' //* //STEPLIB DD DSN=your-hlq.SDFHLOAD,DISP=SHR //DFHCSD DD DSN=your-hlq.DFHCSD,DISP=SHR //* //CBDOUT DD DSN=your-hlq.CSD, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0) //SYSPRINT DD SYSOUT=* //SYSIN DD * EXTRACT GROUP(cics-group) USERPROGRAM(DFH0CBDC) OBJECTS /*
擷取 IMS 定義
若要擷取 IMS 定義,您可以使用 DFSURDD0 公用程式產生 IMS 交易檔案。此公用程式會建立階段 1 巨集陳述式,可用於遷移。目前僅支援 IMS 階段 1。
使用下列 JCL 擷取 IMS 定義:
//IMSEXTJ JOB 'IMS STAGE 1',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID //* //STEP1 EXEC PGM=DFSURDD0,MEMLIMIT=12G //* //STEPLIB DD DISP=SHR,DSN=your-hlq.SDFSRESL //* //RDDSDSN DD DISP=SHR,DSN=your-rdds//* //SYSOUT DD DSN=your-hlq.STAGE1.IMS, // DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=0) //SYSPRINT DD SYSOUT=* //SYSIN DD * OUTPUT=MAC /*
擷取 CA-7 排程器資訊
CA-7 任務排程資訊包含在 LJOB 報告中。使用 LJOB 公用程式搭配 LIST=NODD 參數來產生大型主機的報告。報告必須具有.ca7副檔名。每個報告在資料欄 1 中都必須有 ANSI 換行控制字元。您可以在用來執行 LJOB 公用程式的 JCL 中指定 DCB=RECFM=FBA(或 FA),在資料欄 1 中建立包含換行控制字元的報告。
例如:LJOB,JOB=ZBN*,LIST=ALL
如需詳細資訊,請參閱 Broadcom 文件
擷取 SMF 資料
System Management Facility (SMF) 記錄提供 AWS Transform 用來分析批次任務和 CICS 交易用量的活動指標。支援下列 SMF 記錄類型:14、15、30 (子類型 5)、64、102、110 (子類型 1 搭配資料類別 1、3 和 4)。
SMF 記錄的格式需求:
必須包含記錄類型 30 和 110 (至少)
必須是包含 RDW (Record Descriptor Word) 位元組的原始二進位 EBCDIC 格式
必須以下列其中一種方式提供:
高達 600 MB 的檔案,以 .zip 格式壓縮
最多 5 GB 的檔案,以 .tar.gz 或 .gz 格式壓縮
必須與 Amazon S3 中的原始程式碼存放在不同的資料夾中
提供至少 13 個月的 SMF 記錄,以擷取較短時間範圍可能遺漏的年度批次週期和季節性模式。
選項 1:擷取和排序 SMF 記錄
使用下列範例 JCL 來擷取和排序 SMF 記錄:
//SMFEXTR JOB (ACCT),'EXTRACT SMF',CLASS=A, // MSGCLASS=X,NOTIFY=&SYSUID //*-------------------------------------------------------------------* //* SMF RECORD EXTRACTION TEMPLATE //* CUSTOMIZE: Job card, dataset names, date range, record types //*-------------------------------------------------------------------* //* //* STEP 1: EXTRACT SMF RECORDS //* //EXTRACT EXEC PGM=IFASMFDP //SYSPRINT DD SYSOUT=* //* //* INPUT: Specify your SMF datasets (MAN files or GDG) //* //DUMPIN DD DISP=SHR,DSN=SYS1.MAN1// DD DISP=SHR,DSN=SYS1.MAN2// DD DISP=SHR,DSN=SYS1.MAN3//* //* OUTPUT: Extracted SMF records //* //DUMPOUT DD DSN=your.hlq.SMF.EXTRACT, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(500,100),RLSE), // DCB=(RECFM=VBS,LRECL=32760,BLKSIZE=27998) //* //* CONTROL CARDS //* //SYSIN DD * INDD(DUMPIN,OPTIONS(DUMP)) OUTDD(DUMPOUT,TYPE(14,15,30,110)) DATE(yyyy/ddd,yyyy/ddd) START(0000) END(2359) /* //* //* STEP 2: SORT EXTRACTED RECORDS (OPTIONAL) //* //SORT EXEC PGM=SORT //SORTIN DD DISP=SHR,DSN=your.hlq.SMF.EXTRACT //SORTOUT DD DSN=your.hlq.SMF.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(CYL,(500,100),RLSE), // DCB=(RECFM=VBS,LRECL=32760) //SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(50)) //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(50)) //SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(50)) //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSIN DD * SORT FIELDS=(11,4,CH,A,7,4,CH,A,15,4,CH,A),EQUALS /*
在上述 JCL 中自訂下列值:
工作卡:更新帳戶、類別和訊息類別
DUMPIN:指向您的 SMF 資料集
DUMPOUT:指定輸出資料集名稱和 HLQ
TYPE:選取記錄類型 (14、15、30、110 或其他)
日期:格式 yyyy/ddd (例如 2026/055、2026/056)
SPACE:根據預期的資料量調整
如果不需要,請移除 SORT 步驟
選項 2:使用 DFSORT 擷取 SMF 資料
您可以使用 DFSORT 來合併和報告歷史 SMF 資料。如果您依日或週將 SMF 記錄存放在 GDG 中,這會很有幫助。下列任務使用 DFSORT 從 SORTIN 檔案合併 SMF 記錄,並根據 INCLUDE COND 參數中指定的記錄進行篩選。
//EXTRSMF JOB 'EXTRACT SMF RECORDS',CLASS=S,MSGCLASS=H, // MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID,TIME=1440 //SORTJES2 EXEC PGM=SORT,REGION=0M //SYSOUT DD SYSOUT=* //SORTMSG DD SYSOUT=* //SORTIN DD DISP=SHR,DSN=your.hlq.SMF.EXTRACT //SORTOUT DD DSN=your.hlq.SMF.OUTPUT, // DISP=(MOD,CATLG,DELETE), // DCB=(BUFNO=20, // RECFM=VBS,LRECL=32760,BLKSIZE=27998), // SPACE=(CYL,(1400,900),RLSE) //SORTWK1 DD UNIT=SYSDA,SPACE=(CYL,(30,50)) //SORTWK2 DD UNIT=SYSDA,SPACE=(CYL,(30,50)) //SORTWK3 DD UNIT=SYSDA,SPACE=(CYL,(30,50)) //SORTWK4 DD UNIT=SYSDA,SPACE=(CYL,(30,50)) //SYSIN DD * OPTION COPY INCLUDE COND=(6,1,BI,EQ,X'0E',OR,6,1,BI,EQ,X'0F',OR, 6,1,BI,EQ,X'1E',OR,6,1,BI,EQ,X'40',OR, 6,1,BI,EQ,X'50',OR,6,1,BI,EQ,X'59',OR, 6,1,BI,EQ,X'5C',OR,6,1,BI,EQ,X'65',OR, 6,1,BI,EQ,X'66',OR,6,1,BI,EQ,X'6E')
若要在保留 RDW 資料的同時下載資料,您可以使用 FTP 伺服器來接收解壓縮的檔案。確保以二進位格式傳輸資料,並使用 RDW 選項,以便將 RDW 包含在資料傳輸中。下列任務顯示傳輸此檔案的 FTP 任務範例。
//EXTRSMF JOB 'EXTRACT SMF RECORDS',CLASS=A,MSGCLASS=H, // MSGLEVEL=(1,1),REGION=0M,NOTIFY=&SYSUID,TIME=1440 //STEP1 EXEC PGM=FTP,REGION=2048K //SYSIN DD *10.10.10.10useridpasswordtype i LOCSITE RDW put 'your.hlq.SMF.OUTPUT'SMFREQS.SMFquit
上傳 SCRT 報告
您也可以將子容量報告工具 (SCRT) 報告上傳至 AWS 轉換。
應用程式庫存上傳
收集所有成品之後,請完成下列步驟:
依成品類型將檔案整理成子資料夾 (例如 /cobol、/jcl、/copybooks、/db2、/ims、/cics、/ca7)。
將頂層資料夾壓縮為單一 .zip 檔案。
將 .zip 檔案上傳至連接到 AWS 轉換工作區的 Amazon S3 儲存貯體。
注意
SMF 記錄必須放置在與 Amazon S3 儲存貯體中原始碼不同的資料夾中,且必須是 .tar.gz 或 .gz 格式。
如需將 Amazon S3 儲存貯體連線至 AWS 轉換的詳細說明,請參閱 設定連接器。