マップのコンパイルとデプロイ

本章では、作成されたマップ・ソースコードを使用してマップをコンパイルし、シンボリック・マップと物理マップを作成して、システムで使用できるように適切な場所にデプロイする方法について説明します。

1. マップのコンパイル

マップ・ソースコードからアプリケーションが使用するシンボリック・マップとOSCアプリケーション・サーバーが使用する物理マップを取得するには、マップ・ソースコードをコンパイルする必要があります。

マップのコンパイルに関連するツールは、mscasmcおよびmscmapcです。

コンパイル・ツール 説明

mscasmc

マップに存在するダンプ用のアセンブラー・マクロを前処理します。

mscmapc

マップ・ソースコードをコンパイルしてシンボリック・マップと物理マップ・ファイルを作成します。

マップのコンパイル例は、マップの作成を参照してください。

1.1. mscasmc

mscasmcは、マップのダンプ用アセンブラー・マクロ命令を前処理するツールです。画面に影響を及ぼしマップを定義するマクロの他にダンプ用のマクロがありますが、このようなマクロ、例えばPRINT ON、NOGEN、TITLEなどのマクロを前処理します。

使用方法

以下は、mscasmcツールの実行方法です。

Usage: mscasmc [options] file
     | mscasmc -o output_file file
  • [options]

    オプション 説明

    [-d]

    コンパイルするファイルの前処理プロセスを表示します。ソースの処理方法やエラーの発生時点がすぐに確認できます。

    [-h]

    ツールのヘルプを表示します。

    [-v]

    ツールのバージョン情報を表示します。

  • 入力項目

    項目 説明

    file

    前処理するマップ・ファイルの名前を指定します。

    -o output_file

    前処理の結果を保存する出力ファイルを指定します。

使用例

以下は、SCSOW03.mapファイルのダンプ用のアセンブラー・マクロ命令を前処理する例です。

$ mscasmc SCSOW03.map

上記のコマンドを実行すると、以下のようなメッセージが表示され、コンパイルが行われます。

MSCASMC : input map : SCSOW03.map
MSCASMC : file[SCSOW03.map.atm] create ok.

1.2. mscmapc

mscmapcは、マップ・ソースコードをコンパイルして、シンボリック・マップ・ファイルと物理マップ・ファイルを作成するツールです。

シンボリック・マップ・ファイルは、アプリケーションが使用するデータの構造が定義されているCOBOLコピーブック・ファイルであり、物理マップ・ファイルは、マップを構成する各フィールドの属性とデータ変換に必要な情報を保存しているバイナリ・ファイルです。

使用方法

以下は、mscmapcツールの実行方法です。

Usage: mscmapc [options1] file
     | mscmapc [options2] dir file
オプション 説明

[-d]

コンパイルするソースの前処理プロセスを表示します。コンパイル時に前処理プロセスが確認できるため、エラーを容易に見つけることができます。

[-o dir]

シンボリック・マップと物理マップが作成されるディレクトリを指定します。

[-p 1 | 2]

エミュレーターに表示される画面のプレビューを表示します。

  • 1: 2バイト文字が存在しない場合

  • 2: 2バイト文字が存在する場合

[-r region]

シンボリック・マップと物理マップを作成するリージョン名を指定します。

正常に動作するには、指定したリージョンのosc.{servername}サブジェクト、GENERALセクションのMAPDIRキーのVALUE項目に設定されているディレクトリの配下に、PhysicalとSymbolicの2つのディレクトリが作成されている必要があります。

[-s file]

作成するシンボリック・マップ・ファイルの名前を指定します。

[-h]

ツールのヘルプを表示します。

[-v]

ツールのバージョン情報を表示します。

使用例

以下は、CESN.mapファイルをコンパイルして、シンボリック・マップ・ファイルおよび物理マップ・ファイルを現在のディレクトリに作成する例です。

$ mscmapc CESN.map

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 * input map : CESN.map

 * Copybook :
   [./CESN.cpy] create.
 *  binary image :
   [./CESN.phm] create.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

2つのファイルが正常に作成されたというメッセージが表示されたら、コンパイルに成功したことを意味します。

以下は、[-o]オプションを使用してCESN.mapファイルをコンパイルして、シンボリック・マップ・ファイルおよび物理マップ・ファイルを指定のディレクトリに作成する例です。

$ mscmapc -o $OPENFRAME_HOME/osc/map CESN.map

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 * input map : CESN.map

 * Copybook :
   [/home/oframe/OpenFrame/osc/map/CESN.cpy] create.
 *  binary image :
   [/home/oframe/OpenFrame/osc/map/CESN.phm] create.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

以下は、[-r]オプションを使用してCESN.mapファイルをコンパイルして、シンボリック・マップ・ファイルおよび物理マップ・ファイルをリージョン・ディレクトリに作成する例です。

$ mscmapc -r OSC00001 CESN.map

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 * input map : CESN.map

 * Copybook :
   [/home/oframe/OpenFrame/osc/region/OSC00001/map/symbolic/CESN.cpy] create.
 *  binary image
   [/home/oframe/OpenFrame/osc/region/OSC00001/map/physical/CESN.phm] create.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

2. マップのデプロイ

mscmapcツールによって作成されたシンボリック・マップおよび物理マップをアプリケーションのコンパイルやOSCアプリケーション・サーバーで使用するには、作成されたファイルを適切な場所にデプロイする必要があります。本節では、実際のシステムで使用できるようにそれぞれのマップ・ファイルをデプロイする方法について説明します。

2.1. シンボリック・マップのデプロイ

シンボリック・マップはマップに対応するアプリケーションが使用するデータ構造を宣言するファイルです。コピーブック形式のこのファイルは、アプリケーション・プログラムのコンパイル時に使用されます。したがってシンボリック・マップは、COBOLコンパイラーが参照できるコピーブック・ディレクトリに存在する必要があります。

マップ・ソースコードをmscmapcツールでコンパイルする際に、[–o]オプションや[–r]オプションの有無によってシンボリック・マップの場所が異なります。

  • いずれのオプションも指定しない場合

    mscmapcを実行したパスに、マップ・ソースコードに宣言されたそれぞれのマップ・セット名と一致する、.cpy拡張子を持つシンボリック・マップ・ファイルが作成されます。作成されたシンボリック・マップを実際に利用するには、COBOLコンパイラーが参照できるコピーブック・ディレクトリに配置させる必要があります。複数のマップ・ソースコードに同じマップ・セット名がある場合、同じパスでマップをコンパイルすると、後で作成されたシンボリック・マップ・ファイルが以前作成されたファイルを上書きするので注意が必要です。

  • オプションを指定する場合

    • [–o]オプションを指定する場合

      マップ・ソースコードに宣言されたそれぞれのマップ・セット名と一致する、.cpy拡張子を持つシンボリック・マップ・ファイルがこのオプションで指定したパスに作成されます。作成されたシンボリック・マップを実際に利用するには、COBOLコンパイラーが参照できるコピーブック・ディレクトリに配置させる必要があります。複数のマップ・ソースコードに同じマップ・セット名がある場合、同じパスでマップをコンパイルすると、後で作成されたシンボリック・マップ・ファイルが以前作成されたファイルを上書きするので注意が必要です。

    • [–r]オプションを指定する場合

      OpenFrame環境設定のosc.{servername}サブジェクト、GENERALセクションのMAPDIRキーのVALUE項目が設定されている場合は、MAPDIRディレクトリ配下のsymbolicディレクトリにシンボリック・マップ・ファイルがデプロイされ、MAPDIR項目が設定されていない場合は、${OPENFRAME_HOME}/osc/region/リージョン名/map/symbolicパスにデプロイされます。

      [-r]オプションを指定して作成されたシンボリック・マップは、次の2つの方法で使用することを推奨します。

      • 環境変数の設定を利用する方法

        COBOLアプリケーションをコンパイルするスクリプトで、COBOLコンパイラーのコピーブックのパスを設定する環境変数にシンボリック・マップ・ファイルのパスを指定します。MF COBOLの場合は、$COBCPYという環境変数にコピーブック・ファイルのパスを指定します。

      • プリプロセッサーのオプションを利用する方法

        osccobprepツールの[–f]オプションと[–p]オプションを利用してシンボリック・マップ・ファイルのパスを指定して、シンボリック・マップ・ファイルの内容がアプリケーション・プログラムのソースコードに含まれるように前処理します。

上述した方法以外に、事前に指定されたコンパイラーのコピーブック・ファイルのパスに作成されたシンボリック・マップ・ファイルをコピーすることもできます。しかし、この方法は[–o]オプションを使用した場合と同じ問題が発生する可能性があるため、お勧めしません。

2.2. 物理マップのデプロイ

物理マップ・ファイルはOSCアプリケーション・サーバーによって使用されます。特定のリージョンで使用される物理マップ・ファイルは、リージョンごとに指定されたパスにデプロイされる必要があります。

物理マップ・ファイルのデプロイ場所は、リージョン設定ファイルのGENERALセクションのMAPDIRキーのVALUE項目が設定されている場合は、MAPDIRディレクトリ配下のphysicalディレクトリ・パスに設定されます。MAPDIRキーのVALUE項目が設定されていない場合は、$(OPENFRAME_HOME)/osc/region/リージョン名/map/physicalディレクトリ・パスに設定されます。システムでマップを使用するには、コンパイルされた物理マップを上記のパスに配置する必要があります。

物理マップもシンボリック・マップと同様に、マップ・ソースコードをコンパイル時にmscmapcツールの[–o]オプションと[–r]オプションの有無によってマップ・ファイルの場所が異なります。

  • いずれのオプションも指定しない場合

    mscmapcを実行したパスに、マップ・セット名で物理マップ・ファイルが作成されます。作成されたファイルを正常に利用するには、当該マップを使用するOSCリージョンの物理マップ・ディレクトリにファイルを移す必要があります。

  • オプションを指定する場合

    • [–o]オプションを指定する場合

      このオプションで指定したパスに、マップ・セット名と同じ名前の物理マップ・ファイルが作成されます。作成されたファイルを正常に利用するには、当該マップを使用するOSCリージョンの物理マップ・ディレクトリにファイルを移す必要があります。

    • [–r]オプションを指定する場合

      マップ・セット名と同じ名前の物理マップ・ファイルが当該リージョンの物理マップ・ディレクトリに作成されます。物理マップ・ファイルのデプロイが同時に行われるため、ファイルを他のパスに移す必要はありません。他のリージョンで使用するには、作成されたファイルを他のリージョンの物理マップ・ディレクトリにコピーします。

3. マップの動的更新

OSCシステムの運用中にマップの更新が必要な場合があります。こうした場合のために、OpenFrame OSCはmscmapupdateというマップの動的管理ツールを提供します。

3.1. mscmapupdate

mscmapupdateは、OSCリージョンが使用するマップ・セット情報を動的に管理するツールです。ユーザーがアプリケーションを実行中にマップ情報を変更して即時に反映したり、追加でロードしたりすることができます。また、現在メモリに保存されているマップ・セットの閲覧・削除機能も提供します。マルチクラスタリング環境でも動的に管理が可能です。

使用方法

以下は、mscmapupdateツールの実行方法です。

Usage:  mscmapupdate [options]
 |  mscmapupdate region
 |  mscmapupdate region -f filename
 |  mscmapupdate region -l mapset [-n]
 |  mscmapupdate region -r mapset [-n]
  • [options]

    オプション 説明

    [-h]

    ツールのヘルプを表示します。

    [-v]

    ツールのバージョン情報を表示します。

    [-n]

    マップ・セットを更新する場合に、同じリージョンが起動しているすべてのノードに反映します。

  • 入力項目

    項目 説明

    region

    指定するOSCリージョンに登録されているマップ・セット情報を表示します。

    -f filename

    更新する物理マップ・ファイル名を指定します。このファイルはOSCリージョンのメモリにロードされます。すでに同じファイルがロードされている場合は、新しいファイルで更新します。

    -l mapset

    更新するマップ・セット名を指定します。このマップ・セットはOSCリージョンのメモリにロードされます。すでに同じマップ・セットがロードされている場合は、新しいマップ・セットで更新します。

    -r mapset

    指定するマップ・セットをOSCリージョンから削除します。

使用例

以下は、OSC00001リージョンに登録されているマップ・セット情報を表示する例です。

$  mscmapupdate OSC00001
* loaded mapset list
0001 : mapset[CESN]
0002 : mapset[OIVPMS1]

以下は、OSC00001リージョンのOIVPMS1マップ・セットを更新する例です。マップ・セットを削除する場合は、[-r]オプションを使用して同じように記述します。

$  mscmapupdate OSC00001 -l OIVPMS1

以下は、OSC00001リージョンが起動しているすべてのノードのOIVPMS1マップ・セットを更新する例です。マップ・セットを削除する場合は、[-r]オプションを使用して同じように記述します。

$  mscmapupdate OSC00001 -l OIVPMS1 -n