このセクションでは、次のトピックを含む z/OS® および iSeries® 環境用の COBOL 生成に関連した COBOL 固有の情報が記載されています。
- COBOL 生成の概要 (本トピック)
- COBOL プログラムの制限事項
- COBOL 生成への入力
- COBOL 生成の出力
- z/OS 用のビルド・スクリプトの変更
- iSeries 用のビルド・スクリプトの変更
- デプロイメント用の出力の準備
COBOL 生成の概要
これは、COBOL 生成に適用される、生成プロセスのさまざまなフェーズを示す概要です。
COBOL コードの生成プロセスと EGL ソースからのその他出力は、実際にはいくつかのフェーズから構成されています。
これらのフェーズについては、トピック『EGL 生成の概要』で簡潔に説明されています。
ただし、COBOL の生成プロセスと Java™ の生成プロセスとの間には固有の違いがあります。
このトピックでは、特に COBOL に固有な詳細事項に重点を置きながら、COBOL 生成プロセスの概要を示します。
以下に、生成プロセスに含まれているフェーズと、各フェーズに必要なパーツを示します。
- ターゲット・ランタイム環境の検証
- 最初のフェーズは検証フェーズです。このフェーズに必要な入力は、次のとおりです。
- プログラムまたはライブラリーなどのメイン・パーツ。
- 以下の情報の一部またはすべてを含むビルド記述子パーツ
- ターゲット・ランタイム環境。これは、system ビルド記述子オプションで指定します。
- リンケージ・オプション・パーツの名前 (存在する場合)。
これは、linkage ビルド記述子オプションで指定します。
- リソース関連パーツの名前 (存在する場合)。
これは、resourceAssociation ビルド記述子オプションで指定します。
- 検証フェーズで使用するビルド記述子オプションのサブセット。例: validateSQLStatements ビルド記述子オプション。
生成の検証フェーズは、ターゲット・ランタイム環境に固有のものです。このフェーズでは、以下を行います。
- ソース・コードがターゲット・ランタイム環境に準拠していることを検証します。
例えば、sysLib.purge などのステートメントは、特定の環境でしか使用できません。
- リンケージ・オプション・パーツおよびリソース関連パーツのエントリーが、
ターゲット・ランタイム環境を基にして正しいことを検証します。
- validateSQLStatements ビルド記述子オプションに関連付け
られた要求など、特殊な要求に従って検証します。
- 生産フェーズ
- これは生成プロセスの 2 番目のフェーズで、実際の COBOL コードの生成が含まれます。このフェーズの入力は、以下の成果物です。
- 検査済みの EGL ソース・コード
- すべてのビルド記述子オプション (検証フェーズで検証されたものを含む)
- リンケージ・オプション・パーツ
- リソース関連パーツ
- z/OS 用ランタイム JCL テンプレート、または iSeries 用ランタイム CL テンプレート
- COBOL 予約語ファイル
- ターゲット環境が z/OS の場合は、次の追加入力があります。
生成後、このフェーズの結果出力は、以下の成果物から構成されています。- COBOL ソース・コード
- COBOL の準備フェーズを制御するビルド計画。ビルド計画は、
設定されたビルド記述子とシンボリック・パラメーターに基づいています。
- 生成される特定のパーツ、ターゲット・ランタイム環境、
および生成で設定された特定のビルド記述子オプションに基づく追加の出力。
エラー・メッセージはすべて「EGL 生成結果」ビューに表示されます。
- 準備フェーズ
- 生成プロセスの第 3 フェーズでは、生成の出力をターゲット・ランタイム環境で実行するために準備します。
一般に、準備プロセスは生産フェーズで作成されたビルド計画によって制御され、次のステップを含む可能性があります。
- 生成出力を、TCP/IP を使用してご使用のビルド・サーバー・システムに転送します。
- 生成出力をコンパイルしてリンクするために、ビルド・サーバー・システムでビルド・スクリプトを実行します。CICS® の場合は、ビルド・スクリプトに CICS 変換ステップが含まれています。
z/OS ではプログラムで SQL を使用する場合は、
ビルド・スクリプトに DB2® プリコンパイルおよびバインドのステップが含まれています。
- 準備フェーズの結果を TCP/IP を使用してワークステーションに戻す。
ビルド計画はリモート・ビルド・サーバーに出力を送信する順序を制御し、ビルド・サーバーで実行するスクリプトも制御します。