アプリケーション・マイグレーション

本章では、OpenFrame XSPまたはOpenFrame MSP環境にAIMオンライン・アプリケーションと一般的なバッチ・アプリケーションをマイグレーションする方法について説明します。

1. アプリケーション・マイグレーションのための準備

OpenFrame AIM環境で動作するアプリケーションは、簡単なAPIを利用して通信とデータベース機能を利用することができます。通信とデータベース機能を使用するには、アプリケーション・プログラムの作成以外に、以下の準備作業が必要です。

  1. PSAMマップからデータ・スキーマを作成

    端末と通信するデータ型をPSAMマップから作成します。

  2. サブスキーマからデータ・スキーマを作成

    NDBで読み書きするデータ型をADLのサブスキーマから作成します。

EBCDIC文字をASCII文字に変換するプロセスや変換するときに発生する問題点については、EBCDICからASCIIへの変換EBCDICからASCIIへの変換時の注意点を参照してください。

1.1. PSAMマップからデータ・スキーマを作成

PSAMマップは、端末の画面に基本的に表示する内容、アプリケーションから画面に出力する内容、そして端末から入力を受けてアプリケーションに送信する内容をすべて定義します。PSAMマップは一般的なプログラミング言語ではないため、アプリケーションの作成者はPSAMマップをそのまま使用することができません。

アプリケーションの作成者が、端末から入出力する形式でアプリケーションに直接作成する場合、画面を修正したときにアプリケーションも修正しなければならないというメンテナンス上の問題が生じます。

AIMでは、PSAMマップから入出力のデータ型をCOBOL文法で作成できる機能を提供します。アプリケーションの作成者は、アプリケーション内にそれをコピーブックの形式で格納しておくだけで十分です。

以下は、PSAMマップから入出力のデータ型を作成するツールであるjybfg000の使用方法と例です。

Usage: jybfg000 [OPTION]... FILE
    -h     : display this help and exit
    -d     : enable debug mode in jybfg000
    -p     : preview generated FID
    -v     : variable length record format
    -l     : record length (only for fixed length record. default:80)

Examples:
$ jybfg000 OIVPFID0.fmt

 *  copybook :
   [/home/OpenFrame cobcpy/mapcpy/MENUREC.cbl] create.
 *  binary image :
   [/home/OpenFrame psambin/OIVPFID0.BIN] create.

jybfg000はPSAMマップのコンパイルとコピーブックの作成を同時に行います。コピーブックは、PSAMマップ内で指定したレコード名で作成され、aim設定のPSAMセクションのPSAMCPYキーに指定した場所に作成されます。

  1. PSAMCPYの設定は、COBOLコンパイラーでコピーブックの場所を指定する環境変数にも同様に追加する必要があります。

  2. jybfg000ツールの詳細については、OpenFrame AIM『ツールリファレンスガイド』を参照してください。

1.2. ADLサブスキーマからデータ・スキーマを作成

AIMアプリケーションで使用するデータベースは、ADLのサブスキーマを利用して定義します。

サブスキーマには、レコード間の関係と個別レコードの定義を記述します。アプリケーションで各レコードの個別フィールドにアクセスするには、このレコード定義が必要です。OpenFrame NDBでは、サブスキーマから簡単にデータ構造を抽出してCOBOL文法で出力するsubsc ツールを提供します。

以下は、subscの使用方法と例です。

$ subsc -h
== Subschema Copybook Generator ===
Usage: subsc subschema_name ...
Example: subsc SUBS4160

$ subsc SUBS0001
 * subschema copybook
   [/home/OpenFrame cobcpy/copy/SUBS0001.cbl] create.
subschema copybook generation success (SUBS0001)

コピーブックは、OpenFrame環境設定のndbサブジェクトのMETAセクションのSUBSCPYキーに指定した場所に作成されます。

  1. SUBSCPYの設定は、COBOLコンパイラーでコピーブックの場所を指定する環境変数にも同様に追加する必要があります。

  2. subscツールの詳細については、OpenFrame NDB『ツールリファレンスガイド』を参照してください。

2. アプリケーションの前処理とコンパイル

OpenFrameでアプリケーションを実行するためには、実行環境に適した前処理とコンパイルが必要です。

2.1. 前処理

メインフレームのアプリケーション・プログラムはOpenFrame環境では動作環境が異なるため、次のような理由でそのまま実行することができません。

  1. コンパイル・エラー

    オープン環境でサポートしない文法や機能を使用する場合、コンパイル段階でエラーが発生します。代表的なものには、NDBを使用する構文などがあります。この場合、前処理の際に別の構文に置き換えるか、不要な場合は削除します。

  2. 環境エラー

    メインフレームとはコンパイルと実行環境が異なるために発生するエラーです。たとえば、サブスキーマから抽出したNDBのレコード構造に関する記述が別途存在しないことが挙げられます。前処理の際に構文を置き換えるか、必要な内容を追加します。

  3. 実行エラー

    文法上には同様ですが、実際の実行結果が異なるエラーが発生します。ENVIRONMENT DIVISIONで宣言するSPECIAL-NAMES文を例として挙げられます。この場合は、前処理の際に該当する構文をOpenFrameで提供する構文に置き換えます。

OpenFrameではOpenFrame COBOL製品に含まれているofcbppfツールを使用して前処理を行います。ofcbppfツールについての詳細は、OpenFrame COBOL『ユーザーガイド』を参照してください。

2.2. コンパイル

OpenFrameでは現在前処理ツールのみサポートしています。ofcbppfを使用して前処理が終わったアプリケーション・プログラムのソースは、COBOLコンパイラーを使用して共有オブジェクトとして作成します。既存のアプリケーション・プログラムのCOBOL文法の特性に合わせてオプションを適用します。

コンパイラーを使用した共有オブジェクトの作成については、COBOLコンパイラー・ベンダーのマニュアルを参照してください。

3. アプリケーションのデプロイ

コンパイルが正常に完了したアプリケーションを実行するには、プログラムをOpenFrameで検索できる場所にデプロイします。プログラムの実行場所は、すべてジョブを実行するJCL内に指定します。

OpenFrameでは、以下のFD文またはDD文を参照してアプリケーションを検索します。

FD 説明

PRGLIB FD

XSP JCLの場合はPRGLIB FD、MSP JCLの場合はJOBLIBまたはSTEPLIB DDを使用して、アプリケーションが存在するライブラリ・データセットを指定できます。