翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
メインフレームソースアーティファクトコレクション
このトピックでは、 AWS Transform を使用してメインフレームのモダナイゼーションイニシアチブをサポートするために、メインフレームのソースコードと関連アーティファクトを収集するプロセスの概要を説明します。分析、移行計画、実装を成功させるには、ソースアーティファクトの適切な収集と準備が不可欠です。
ソースコードインベントリ
アプリケーションのソースコードタイプ
次のアプリケーションソースコードタイプがサポートされています。
COBOL プログラム
JCL スクリプト
アセンブラプログラム
PL/I プログラム
CICS トランザクション
自然プログラム
REXX スクリプト
Easytrieve プログラム
コピーブックと を含む
Proc ライブラリ
データベースアセット
次のデータベースアセットがサポートされています。
DB2 DCLGEN スクリプトと DDL スクリプト
IMS データベース定義 (PSBsと DBDs)
VSAM ファイル定義
物理データベーススキーマと論理データベーススキーマ
データベースの手順とトリガー
ソースコードファイルの拡張子
拡張機能が不明な場合は、空白または .txt のままにすると、 AWS 変換によって自動的に分類されます。
次の表に、メインフレームソースアーティファクトの一般的なファイル拡張子を示します。
| 言語/タイプ | 一般的な拡張機能 | 説明 |
|---|---|---|
| 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 | IMS MFS (メッセージ形式サービス) |
| PSB | .psb | IMS PSB (プログラム仕様ブロック) |
| DBD | .dbd | IMS データベースの定義 |
| JCL Proc | .prc、.proc | JCL プロシージャライブラリ |
| JCL に含まれるもの | .inc | JCL ファイルを含める |
| マクロ | .mac | アセンブラマクロ |
| コントロールカード | .ctl | JCL ユーティリティコントロールカード |
収集方法
ソースコードの抽出
メインフレーム PDS ライブラリからのインタラクティブなソースコード抽出には、セキュア FTP クライアント (WinSCP/FileZilla) を使用します。
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 レポートに含まれています。LIST=NODD パラメータで LJOB ユーティリティを使用して、メインフレームでレポートを生成します。レポートには.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、3、4 を持つサブタイプ 1)。
SMF レコードの形式要件:
レコードタイプ 30 および 110 を含める必要があります (最低)
RDW (Record Descriptor Word) バイトを含む raw バイナリ EBCDIC 形式である必要があります
次のいずれかとして指定する必要があります。
.zip 形式で圧縮された最大 600 MB のファイル
.tar.gz または .gz 形式で圧縮された最大 5 GB のファイル
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 で次の値をカスタマイズします。
ジョブカード: アカウント、クラス、msgclass を更新する
DUMPIN: SMF データセットを指す
DUMPOUT: 出力データセット名と HLQ を指定する
タイプ: レコードタイプ (14、15、30、110 など) を選択する
DATE: 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 レポートのアップロード
また、Sub-Capacity Reporting Tool (SCRT) レポートを AWS Transform にアップロードすることもできます。
アプリケーションインベントリのアップロード
すべてのアーティファクトを収集したら、次の手順を実行します。
アーティファクトタイプ (/cobol、/jcl、/copybooks、/db2、/ims、/cics、/ca7 など) でファイルをサブフォルダに整理します。
最上位フォルダを 1 つの .zip ファイルに圧縮します。
AWS 変換ワークスペースに接続されている Amazon S3 バケットに .zip ファイルをアップロードします。
注記
SMF レコードは、Amazon S3 バケット内のソースコードとは別のフォルダに配置し、.tar.gz または .gz 形式である必要があります。
Amazon S3 バケットを AWS 変換に接続する詳細な手順については、「」を参照してくださいコネクタのセットアップ。