リソース・マイグレーション
本章では、PSAMフォーマット定義、AIMシステム定義、XSPまたはMSP JCLなどのリソースをマイグレーションする方法について説明します。
1. EBCDICからASCIIへの変換
OpenFrameマイグレーション・プロセスはリソースの種類によって異なりますが、メインフレームのEBCDIC文字コードで作成されたリソースをOpenFrameで使用できるASCII文字コードのリソースに変換する作業は、すべてのマイグレーション・プロセスにおいて共通して必要です。メインフレームの基本文字セットとオープン環境の文字セットが異なるため文字コードの変換が必要であり、リホストのマイグレーション・プロセスにおいては欠かせない作業です。
本節では、メインフレーム・システムでユーザーが作成したJCL、ADL、COBOLなどのソースコードを、EBCDICからASCII文字コードに変換する方法を説明します。
EBCDICからASCIIへの変換プロセスは、すべてのリソースのマイグレーションにおいて共通のプロセスですが、変換時に指定するオプションや変換後のリソースのインポート作業はリソースのタイプによって異なります。 |
-
変換方法
テキスト・データを含む非VSAMデータセットのレコードは、1つのEBCDIC文字列フィールドで構成されているといえるため、別途の変換スキーマ(変換作業に必要なレコード構造の情報)は不要です。つまり、各レコードに対してEBCDICデータをASCIIデータに変換するだけで十分です。OpenFrameのdsmiginツールを使って、このような変換作業が行えます。
EBCDIC(JEF)文字コードを使用するメインフレームにおいて、固定長80バイト構造で作成されたEBCFILEという名前のファイルをASCIIテキスト・ファイルのASCFILEに変換し、変換後に不要となるSOSI文字を空白文字(white space)で代替します。また、固定長で区分されるEBCFILEの各レコードを、各行が改行文字(newline)で区分されるASCIIテキスト・ファイルに変換する場合は、以下のようなオプションを指定して処理します。
JCL、ADL、COBOLなどのテキストで構成されたソース・ファイルをマイグレーションするときに主に使用されるdsmiginツールの使用方法は、以下のとおりです。
$ dsmigin EBCFILE ASCFILE -e JAK -l 80 -sosi 2 -C -S -n
以下は、dsmiginオプションに関する説明です。
オプション 説明 –e、--encoding
変換するEBCDICデータ・ファイルの言語を指定します。
(US、KR、JP、JAKをサポート)
–l、--lrecl
変換するEBCDICデータ・ファイルが固定長レコード形式である場合、1レコードのサイズを指定します。
–sosi、--sosi-type
変換するEBCDICデータ・ファイルに存在するSOSI文字の処理オプションを指定します。ASCII文字コードで変換後のレコード長の変更などを避けるために空白で置き換えるか、削除するなどの詳細オプションを指定することができます。
–C、--convert-only
リソースの変換のみを行うオプションです。EBCDICデータ・ファイルをASCIIデータ・ファイルに変換するだけで、OpenFrameのデータセットは作成しません。
このオプションを指定しない場合、変換作業の結果ファイルはOpenFrameデータセットとして作成されます。オプションを指定した場合は、単にOSファイルとして作成されます。
したがって、--convert-onlyオプションは、最終的なリソース・マイグレーションの前にテスト目的で使用するか、変換結果ファイルに対して追加的なマイグレーション・ツールを実行する必要がある場合に、中間結果物を取得するために利用できます。
–S、--source
EBCDIC文字コードのシステムにおいてテキストで作成された様々なリソースを、ASCII文字コードのテキストに変換することができます。
変換するEBCDICデータ・ファイルが単純な構造のテキスト・ファイル(ソースコードなど)である場合に使用します。つまり、ソース・データ・ファイルのレコードが1つのテキスト・フィールドで構成されていると仮定して、EBCDIC→ASCIIの変換のみ実行されます。フィールド・タイプ別のバイナリー・データは考慮されません。
–n、--newline
変換結果レコードの区切り文字として改行文字(Newline)を使用します。
dsmiginツールでサポートする多様なオプションについては、OpenFrame Base『ツールリファレンスガイド』を参照してください。 |
-
変換例
以下は、COBOLコピーブック・ファイルを変換する例です。
$ dsmigin SAMPCPY SAMPCPY.cpy -e JAK -l 80 -S -C -sosi 7 130856 M MIG0001M =====< DSMIGIN START >===== source file : SAMPCPY dataset name: SAMPCPY.cpy member name : unit: volume: schema file : encoding type: JAK record length: 80 record format: L dsorg: delimiter: DSMIGIN: (record count = 16, conversion error count = 0) 130856 M MIG0002M =====< DSMIGIN FINISH >====
以下は、変換前のファイルの内容です。EBCDIC(JEF)コードで作成されているため、正常に出力されていません。
<SAMPCPY>
\@@@@@@@テヨラ錙簔ヤラモナ@@@@@@モナ蠻モ~@@@@トチ翡~KK@@@@@@@@@@@@ \`````````````````````````````````````````````````````````@@@@@@@@ @@@@@@(サ睥セ・ォ・ハ)@@@@@@@@@ラノテ@蹼]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@(サ睥セエチサ・@@@@@@@@@ラノテ@ユM]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@(タクヌッキ鏆・K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ヌッケ・@@@@@@@@@ラノテ@蹼]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ヌッ)@@@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(キ・@@@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ニ・@@@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@(タュハフ)@@@@@@@@@@@@@ラノテ@蹼]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@(スサス・ウ。シ・ノ)K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ケサイシ・ウ。シ・ノ)@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(マ「ネヨ)@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@(ヘケハリネヨケ・K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ヒワネヨ)@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@(ザネヨ)@@@@@@@@@ラノテ@]K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
以下は、変換後のファイルの内容です。ASCII(Shift-JIS)コードに変換され、正常に出力されています。
<SAMPCPY.cpy>
000100* COPY SAMPLE00 LEVEL=1 DATE=2012.11.12 00010000 000200*--------------------------------------------------------- 00020000 000300 03 氏名カナ PIC X(40). 00030000 000400 03 氏名漢字 PIC N(50). 00040000 000500 03 生年月日. 00050000 000600 05 年号 PIC X(01). 00060000 000700 05 年 PIC 9(02). 00070000 000800 05 月 PIC 9(02). 00080000 000900 05 日 PIC 9(02). 00090000 001000 03 性別 PIC X(01). 00100000 001100 03 住所コード. 00110000 001200 05 校下コード PIC 9(04). 00120000 001300 05 連番 PIC 9(02). 00130000 001400 03 郵便番号. 00140000 001500 05 本番 PIC 9(03). 00150000 001600 05 枝番 PIC 9(04). 00160000
2. PSAMフォーマット定義のマイグレーション
AIMアプリケーション・プログラムはPSAMを利用して端末にデータを入出力することができますが、PSAMフォーマット定義は、画面上に表現される情報の位置と属性を定義するマークアップ(mark up)といえます。PSAMを使用するAIMアプリケーション・プログラムをOpenFrame AIM環境にマイグレーションするときは、アプリケーション・プログラムのソース・プログラム以外にPSAMフォーマット定義情報を同時にマイグレーションする必要があります。
-
変換方法
メインフレームのEBCDICで作成されたPSAMフォーマット定義ファイルを取得し、dsmiginを使用してASCIIファイルに変換します。PSAMフォーマット定義はEBCDICテキスト・ファイルなので、dsmiginツールの--sourceオプションを使って変換します。
-
変換例
以下は、ASCIIに変換されたPSAMフォーマット定義の例です。
<PSAMLOGO.fmt>
PSAMLOGO FID TYPE=DSP TEST0000 RECORD TYPE=IN @I000001 DATA NAME=AID01 USAGE=AID @I000002 DATA NAME=LOGON USAGE=CTRL1 PIC=(X,30) TEST0001 RECORD @O000001 DATA NAME=SYMD-01 USAGE=CTRL1 PIC=(X,60) DEVICE DVK=DP10 FRAME PART SIZE=(24,80) FIELD POS=(17,38) ATTR=OUL VALUE='COPYRIGHT 2000-2006 TMAX SORT CO.,LTD.' FIELD POS=(20,24) ATTR=OUL VALUE='LOGON COMMAND :' FIELD POS=(20,44) ATTR=(IUL CUR) DATAIN=@I000002 FIELD POS=(2,2) ATTR=(OUL RED) VALUE=@O000001 END
以下は、jybfg000を使用してPSAMフォーマット定義をコンパイルする例です。-p (preview)オプションを指定して、処理するPSAMフォーマットの内容を確認できます。
$ jybfg000 -p PSAMLOGO.fmt * preview : ---------------------------------------------------------------(begin)- MAP : [PSAMLOGO] 123456789+123456789+123456789+123456789+123456789+123456789+123456789+123456789+ ------------------------------------------------------------------------------>S 01| 02|@____________________________________________________________ 03| 04| 05| 06| 07| 08| 09| 10| 11| 12| 13| 14| 15| 16| 17| @COPYRIGHT 2000-2006 TMAX SORT CO.,LTD. 18| 19| 20| @LOGON COMMAND : @______________________________@ 21| 22| 23| 24| ------------------------------------------------------------------------------<E * ---------------------------------------------------------------------------(end)- * copybook : [/home/o5aim/cobcpy/mapcpy/TEST0000.cbl] create. [/home/o5aim/cobcpy/mapcpy/TEST0001.cbl] create. * binary image : [/home/o5aim/psambin/PSAMLOGO.BIN] create.
|
3. AIM定義リソース(ADL)のマイグレーション
OpenFrame AIMシステムは、富士通メインフレームのAIMシステムで提供していた多様な機能をサポートします。
富士通メインフレームのAIMシステムと同様、OpenFrame AIMシステムでもAIM記述言語であるADL(AIM Description Language)を使用してシステムで使われる様々なリソースと環境を定義します。AIMシステムを定義するためにADLで記述されたリソースをAIM定義リソースといいます。
AIMではADLを使用して、業務システムを構成する多様な構成要素とリソースなどの動作環境を定義します。ADLは、定義する対象の種類別に以下のような構文で構成されます。
-
AIMシステム環境の定義 : SIS、APG、SG
-
AIMオンライン環境の定義 : DCMS、WORKSTATION、DTPF、LD、PROCEDURE
-
AIMアプリケーション・プログラム環境の定義 : PED、MQN
-
AIMデータセットの定義 : SCHEMA(DS)、SCHEMA(VSAM)
-
AIM NDBデータベースの定義 : SCHEMA(DB)、XIFSCHEMA、SUBSCHEMA
AIM定義リソースのうち、AIM NDBデータベース定義以外のリソースは、jxdddms ツールでOpenFrame/AIM環境にインポートします。jxdddmsは指定したADLの構文を分析し、OpenFrame AIMの内部構造に変換してOpenframe/AIMシステム・テーブルに保存します。
AIM定義リソースのうち、AIM NDBデータベース定義リソースは、ndbadlgen ツールでOpenFrame/NDB環境にインポートします。ndbadlgenは指定したADLの構文を分析し、OpenFrame NDBの内部構造に変換してOpenFrame/NDBシステム・テーブルに保存します。
-
変換方法
メインフレームのEBCDICで作成されたADLリソース・ファイルを、dsmiginツールを使用してASCIIファイルに変換します。ADLリソースはEBCDICテキスト・ファイルなので、dsmiginツールの--sourceオプションを使って変換します。jxdddmsツールを実行して、ASCIIに変換されたADLリソース・ファイルをOpenFrame/AIM環境にインポートします。
-
変換例
以下は、メインフレームのEBCDICで作成されたADLリソースを、dsmiginの--sourceオプションを使ってASCIIに変換した例を示しています。
<SMPLPED.adl>
PED NAME IS SMPLPED ; ACP NAME IS JXGIJSM. AP NAME IS JXGIJSM ; TRANSACTION-POINT IS PROGRAM ; I-O ERROR SCHEDULE IS REJECT. AP NAME IS JXGIAPM0 OCCURS 1 TIMES ; TRANSACTION-POINT IS SYSTEM ; I-O ERROR SCHEDULE IS REJECT. MQN NAME IS SMPLMQN FOR DDSMPL. END.
以下は、jxdddmsを使用して上記のSMPLPED.adlをAIMディレクトリにインポートする例です。
$ jxdddms store -p SMPLPED.adl >> [PED :SMPLPED] store done
個別ADLリソース定義の中には、OpenFrame AIMシステムでサポートしていない構文や属性が含まれている可能性があります。
|
4. JCLのマイグレーション
JCLのマイグレーションは、メインフレームのEBCDICコードで作成されたJCLファイルをOpenFrameで使用できるASCIIコードに変換する作業です。
-
変換方法
JCLファイルは他のリソース・マイグレーションと同様、dsmiginツールの--sourceオプションを使ってASCIIファイルに変換できます。ASCIIに変換されたJCLファイルは、pdsgenツールで作成したPDSデータセットのJCLLIBにインポートします。
4.1. ユーティリティの連携
OpenFrameはメインフレームのJCLと同じ文法を使用するため、EBCDICからASCIIに変換すること以外に追加的に必要なマイグレーション作業はありません。JCLのマイグレーションにおいて注意することは、JCLそのものの変換ではなく、JCLで呼び出して使用するユーティリティのうち、OpenFrameで提供していないユーティリティやサード・パーティー・ユーティリティがないかをマイグレーション作業の初期に確認することが重要です。
標準ユーティリティのうち、OpenFrameで対応するユーティリティを提供しない場合は、OpenFrameが動作するオープン環境では不要なユーティリティである可能性があります。ただし、必要と判断される場合には、TmaxSoftにユーティリティの実装および提供をリクエストしてください。
一部のサード・パーティー・ユーティリティの場合、オープン環境のUNIXシステム用の製品がある場合でも、メインフレームとUNIXシステムの違いによって、JCLに記述されているSYSINやパラメータの送信方法が異なり、一部のJCLを修正する必要があることもあります。
JCLで呼び出すプログラムのほとんどは、COBOLなどで作成したアプリケーションです。これらのプログラムは、アプリケーション・マイグレーションで説明するプロセスに従って、アプリケーション・プログラムをコンパイルして使用します。
以下は、OpenFrame Batch for XSPおよびMSPとOpenFrame AIMで提供しているユーティリティ・プログラムの一覧です。
-
データセット管理ユーティリティ
ユーティリティ 説明 CTFE
カタログ編集を行います。(XSP)
FCHK
直接アクセス・ボリュームに存在するすべてのファイルの属性を印刷します。(XSP)
FCPY
直接アクセス・ボリューム、または磁気テープ・ボリュームのファイルをコピーします。(XSP)
FDLT
直接アクセス・ボリュームに存在するファイルを削除します。(XSP)
FDMP
直接アクセス・ボリューム、または磁気テープ・ボリュームに存在するファイルの内容を編集し、印刷するファイルをダンプします。(XSP)
GDGM
システム/マスター・カタログに登録されているGDGのGDSを管理します。(XSP)
ISFG
一般の非VSAMファイルを使用して、直接アクセス・ボリュームに存在する索引ファイルを作成します。(XSP)
JSDGENER
順次データセットまたはPDSのメンバーをコピーする場合に使用します。(MSP)
JSGPROGM
非VSAMデータセットの管理に使用します。(MSP)
KBKARCS
BACKUPコマンドとRESTOREコマンドを使用して、主に自然災害によるシステム破損への対応や重要なデータの保護といった目的のためにデータセットやボリュームのバックアップおよびリカバリ機能をサポートします。(XSP、MSP)
KQCAMS
VSAMおよび非VSAMデータセットとカタログ情報を管理します。(XSP、MSP)
-
データセット処理ユーティリティ
ユーティリティ 説明 ADAPT
簡単なスクリプトを使ってデータセットの内容を変更・操作できるユーティリティです。(XSP、MSP)
DFSORT
データセットをソート、マージして出力データセットに結果を保存します。(XSP、MSP)
ICETOOL
SORTユーティリティ・プログラムを利用して、1つのジョブ・ステップで複数のデータセットを様々な方法で出力するために使用します。(MSP)
EZTPA00
レポートを作成するためのユーティリティです。(XSP、MSP)
-
OpenFrame AIMユーティリティ
ユーティリティ 説明 JXGIJSM
OpenFrame AIMでACP機能を提供するユーティリティです。(XSP、MSP)
JYQDDUTY
データベースの作成、削除などのデータセットの内容をデータベースにロード、アンロードします。(XSP)
OSAMFRUN
JCLでCOBOLプログラム・モジュールが実行されるときに内部で実行されるユーティリティです。バッチとオンラインの両方で同様に動作します。(XSP、MSP)
-
OpenFrame NDBユーティリティ
ユーティリティ 説明 JXKUNLOD
データベースを読み込んで、データセット・ファイルの形式で抽出します。(XSP、MSP)
JXKRELOD
JXKUNLODユーティリティで作成された結果ファイルをNDBにインポートします。(XSP、MSP)
JXKSORT
AIM DBメンテナンス・ユーティリティで作成した中間結果をソートします。(XSP、MSP)
-
その他のユーティリティ
ユーティリティ 説明 DSDIFF
2つのデータセットの相違点をレコード別に出力します。(XSP、MSP)
KEQEFT01
CLISTまたはTSOコマンドを実行します。(XSP、MSP)
KDJBR14
JCLに記述されている内容が正常に実行されているかを確認するために使用します。(XSP、MSP)
LIBE
直接アクセス・ボリュームのデータセットをコピーします。(XSP)