リファレンス・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

ファイル・コンバータ

この章では、ソース・プラットフォーム(z/OS)のファイルをUnix/Linux Micro FocusファイルまたはOracle表に移行するために使用されるRehosting Workbenchファイル・コンバータと、生成される移行ツールについて説明します。変換の実行は、他のOracle Tuxedo Application Rehosting Workbenchツールによって変換または生成される他のコンポーネントと関連しています。

変換プロセスを開始する前に、いくつかの構成ファイルを設定する必要があります。「構成ファイルの説明」を参照してください。

生成される様々なオブジェクトについては、「出力ファイルの説明」で説明します。一部のオブジェクトは、VSAMファイルをOracle表に移行するときだけ生成されます(PCOプログラム、SQLファイル、リレーショナル・モジュール、論理モジュール、JCLとCOBOLの変換のためのユーティリティおよび構成ファイル)。

 


ファイル・コンバータの概要

目的

この項の目的は、次のようなRehosting Workbenchファイル・コンバータ・ツールのすべての機能を正確に説明することです。

構造

関連項目

データの変換は、COBOLプログラムの変換と密接に関連しています。次の項目を参照してください。

処理するファイル編成

z/OSソース・プラットフォームからターゲット・プラットフォームにファイルを移行するとき、VSAMが関係する場合は、ファイルを維持するかデータをOracle表に移行するかをまず確認します。

ターゲット・プラットフォームでのz/OSファイル編成の維持

Oracle Tuxedo Application Rehosting Workbenchファイル・コンバータは、ソース・プラットフォームの形式をターゲット・プラットフォームでも維持するファイル(シーケンシャル・ファイル、相対ファイルまたは索引付きファイル)についても使用できます。ターゲット・プラットフォームでは、これらのファイルはソース・プラットフォームでの編成に相当するMicro Focus COBOLのファイル編成を使用します。

次の表は、z/OSで扱われるファイル編成と、ターゲット・プラットフォームで提案される編成を示します。

表5-1 z/OSおよびUNIXでのファイル編成
z/OSソース・ファイル
UNIX ISAMターゲット・ファイル
QSAM
ライン・シーケンシャルISAM
VSAM KSDS
索引付きISAM
VSAM RRDS
相対ISAM
VSAM ESDS
ライン・シーケンシャルISAM

PDSファイル編成

PDSの一部であるファイルは、物理ファイル名(たとえばMETAW00.NIV1.ESSAI(FIC))によってそのように識別されます。

このケースでは、PDSに合せて調整されたアンロード用JCLが生成されます。前述の表に示したソースとターゲットのファイル編成が適用されます。

GDGファイル編成

世代別データ・グループ(GDG)ファイルは、その特殊性(アンロードおよび再ロードするGDGアーカイブの数)を維持するように、アンロード・コンポーネントおよび再ロード・コンポーネントによって特別に処理されます。その後、世代ファイルとしてOracle Tuxedo Application Runtime Batchで管理されます(Oracle Tuxedo Application Runtime Batchのリファレンス・ガイドを参照)。ターゲット・プラットフォームでは、これらのファイルはLINE SEQUENTIAL編成になります。

ターゲット・プラットフォームでのOracle表への移行

KSDS、RRDSおよびESDS VSAMファイルは、Oracle表に移行できます。

このためには、まず移行するすべてのVSAMファイルのリストを作成し、次にOracle表に変換する必要があるファイルを識別します。たとえば、後でOracleで使用される永続ファイルやレコード・レベルでのロックが必要なファイルです。

Oracle Tuxedo Application Rehosting Workbenchの構成名

構成名は、変換される一連のファイルに関連します。それぞれのファイルのセットは自由に組み合せることができます。たとえば、各構成はアプリケーションに関連させることも、テストが必要な一連のファイルに関連させることもできます。

ファイルの記述と同じ構造のファイルの管理

移行を予定している各ファイルについて、構造をCobol形式で記述する必要があります。この記述はRehosting Workbench CobolコンバータによってCobolコピーで使用されます。これは、「COBOLの記述」に記載されている制限の対象になります。

移行ファイル・リストがいったん作成されたら、同一構造のファイルをパージすることができます。これは、データのトランスコードと再ロードに必要なプログラム数を減らして、ファイルを移行する際の作業を減らすためです。

パージを行ったファイル・リストを使用し、最後のタスクとして次のファイルを作成します。

COBOLの記述

COBOLの記述は各ファイルに関連します。アプリケーション・プログラム内で使用される典型的なCOBOLの記述です。この記述は、すべてのCOBOLデータ型が使用され、OCCURSやREDEFINESの指定を含む複雑なCOBOL構造も指定できます。

多くの場合、このCOBOL記述はCOBOLファイル記述(FD)よりも発展させることができます。たとえば、FDフィールドはPIC X(364)と記述できますが、実際には定義された3倍の領域に相当し、COMP-3ベースの数値表や、いくつかの文字フィールドや数値フィールドなどの複雑な記述を含むことができます。

実際のアプリケーションを説明するのはこのような詳細なCOBOL記述です。このため、特定の物理ファイルを移行するための基盤として使用されます。

ファイル処理実行の品質は、このCOBOL記述の品質によって左右されます。この観点から、COBOL記述をファイルと切り離すことはできません。関与するファイルについて言及するときは、ファイルとそれについて説明するCOBOL記述の両方を意味します。記述は、次の名前のファイルにCOBOL形式で指定する必要があります。

<COPY name>.cpy
注: ソース・プラットフォームのコピー・ブックでファイルの詳細な記述が提供される場合、そのファイルはRehosting Workbenchで直接使用および宣言できます。

COBOL記述の形式

COBOL記述の形式は次のルールに従う必要があります。

COBOL記述と関連する識別ルール

1つのCOBOL記述内に、同じ領域を記述する方法がいくつかあります。つまり、異なる構造や記述のオブジェクトを同じ場所に格納できます。

同じゾーンが様々な記述のオブジェクトを含むことができるため、そのファイルを読み取るには、このデータ領域を正しく解釈するためにどの記述を使用すべきかを判別するメカニズムが必要です。

再定義領域の読取りに使用する記述を判別(識別)できる、なんらかの基準(一般的にはレコードの1つまたは複数のフィールドの内容)に基づくルールが必要です。

Rehosting Workbenchではこのルールは識別ルールと呼ばれます。

COBOL記述に再定義が含まれるが、識別ルールがない場合は、ファイルのトランスコード時に大きなリスクが発生します。そのため、等価でない再定義済フィールドは識別ルールをリクエストします。また、等価の再定義(技術的再定義)は、COBOL記述内で消去の対象にする必要があります(後で示す「COBOL記述形式」の例を参照)。

識別ルールはファイルごとに用意し、相違と識別される領域を明確に指定する必要があります。ファイルに関しては、ファイル記述の外部のフィールドを参照することはできません。

識別ルールはマッパー・ファイルに指定します。構文は、このドキュメントの「マッパー・ファイル」を参照してください。

Oracle表に移行するVSAMファイル

特別な移行ルールの適用

Picture句に適用されるルール

次のルールがCOBOL Picture句に適用されるのは、VSAMファイルのデータをOracle表に移行するときです。

表5-2 Picture句のリエンジニアリング
COBOL Picture
Oracleの形式
PIC 9(…)
NUMBER(…)
COMP-1
FLOAT(24)
COMP-2
FLOAT(53)
PIC X(…)
CHAR(長さが2000以下の場合)
VARCHAR2(長さが2000を超える場合)
パラメータfile:char_limit_until_varcharがdb-param.cfgファイルで設定されている場合は、これらの規則よりも優先されます。

環境変数

データを移行するプロセスを開始する前に、次の2つの環境変数を設定する必要があります。

 


入力コンポーネントの説明

ファイルの場所

file.shの場所

file.shツールは次のディレクトリにあります。

$REFINEDIR/convert-data/

db-param.cfgファイルの場所

db-param.cfg構成ファイルは、次の変数に指定されたディレクトリに配置されます。

$PARAM

構成ファイルの説明

ここでは、z/OSファイルのUNIX\LinuxファイルまたはOracle表への移行を制御するために使用できるファイルとパラメータを示します。

db-param.cfg

このファイルは、次の$PARAMディレクトリで指定されるディレクトリに作成されます。

$PARAM/db-param.cfg
リスト5-1 db-param.cfgテンプレート
#
# This configuration file is used by FILE & RDBMS converter
# Lines beginning by "#" are ignored
# write information in lower case
#
# common parameters for FILE and RDBMS
#
# source information is written into system descriptor file (DBMS=, DBMS-VERSION=)
target_rdbms_name:<target_rdbms_name>
target_rdbms_version:<target_rdbms_version>
target_os:<target_os>
#
# specific parameters for FILE to RDBMS conversion
file:char_limit_until_varchar:<char_limit>
パラメータと構文

表5-3 db-param.cfgのパラメータ
パラメータ
説明
一般的なパラメータ
<target_rdbms_name>
ターゲットRDBMSの名前
oracle
<target_rdbms_version>
ターゲットRDBMSのバージョン
11
<target_os>
ターゲット・オペレーティング・システムの名前
unixまたはlinux
file-to-oracle変換固有のパラメータ
<char_limit>
  • フィールド・サイズが2000以上の場合、COBOL英数字フィールドはORACLEにCHARとして移行されます。
  • フィールド・サイズが2000を超える場合はVARCHAR2として移行されます(パラメータfile:char_limit_until_varcharが使用される場合以外)。
このパラメータは、フィールドがORACLE VARCHAR2データ型に変換される前の、COBOLの英数字(PIC X)フィールドの最大長を指定します。
パラメータにfile:char_limit_until_varchar:29が含まれるとします。
この場合、29文字を超えるフィールドはVARCHAR2になり、30文字より少ないフィールドはCHARフィールドになります。
 

生成されるコンポーネントを変更するファイル

生成されるコンポーネントは、プロジェクトの独自のスクリプトを使用して変更できます。これらのスクリプト(sed、awk、perl、…)は次のファイルに含める必要があります。

$PARAM/file/file-modif-source.sh

このファイルが存在している場合、生成プロセスの最後に自動的に実行されます。このファイルは、引数として<configuration name>を使用して呼び出されます。

file-template.txt

このファイルは、Rehosting Workbenchのインストール時に配置されます。様々な移行ツールの生成を実行するテンプレートが含まれます。このファイルは次の場所にあります。

$REFINEDIR/convert-data/default/file/file-templates.txt
リスト5-2 file-template.txt
% Unloading all File ********************
% All SAM file were transfered using FTP/Binary
% VSAM unloaded step:
#VAR:TEMPLATES#/unloading/jcl-unload-MVS-REPRO.pgm
%
% To create a specific template, copy this template into :
% -- #VAR:PARAM#/file/specific-templates/unloading/jcl-unload-customer.pgm
%
% Loading **********************************************
#VAR:TEMPLATES#/loading/file-reload-files-txt.pgm
% Loading File to File ***************************
#VAR:TEMPLATES#/loading/unix-file/reload-files-ksh.pgm
#VAR:TEMPLATES#/loading/unix-file/reload-mono-rec.pgm
% Loading File to Oracle *************************
#VAR:TEMPLATES#/loading/unix-oracle/load-tables-ksh.pgm
#VAR:TEMPLATES#/loading/unix-oracle/rel-mono-rec.pgm
#VAR:TEMPLATES#/dml/clean-tables-ksh.pgm
#VAR:TEMPLATES#/dml/drop-tables-ksh.pgm
#VAR:TEMPLATES#/dml/create-tables-ksh.pgm
#VAR:TEMPLATES#/dml/ifempty-tables-ksh.pgm
#VAR:TEMPLATES#/dml/ifexist-tables-ksh.pgm
%
% Generate Logical & Relational Module *****************
#VAR:TEMPLATES#/dml/module/open-multi-assign-free.pgm
#VAR:TEMPLATES#/dml/module/open-mono-rec-idx-perf.pgm
#VAR:TEMPLATES#/dml/module/open-mono-rec-sequential.pgm
#VAR:TEMPLATES#/dml/module/open-mono-rec-relative.pgm
%
% and utilities ****************************************
#VAR:TEMPLATES#/dml/module/decharge-mono-rec.pgm
#VAR:TEMPLATES#/dml/module/recharge-table.pgm
#VAR:TEMPLATES#/dml/module/close-all-files.pgm
#VAR:TEMPLATES#/dml/module/init-all-files.pgm
%
% configuration file for translation and runtime *******
#VAR:TEMPLATES#/dml/generate-config-wb-translator-jcl.pgm
#VAR:TEMPLATES#/dml/generate-rdb-txt.pgm
%
% included file to include into modified-components
#VAR:TEMPLATES#/dml/include-modified-components.pgm
%
% ***************************************
% MANDATORY
%  : used just after the generation
#VAR:TEMPLATES#/dml/generate-post-process.pgm
%  : used when using -i arguments
#VAR:DEFAULT#/file-move-assignation.pgm

必要な場合には、別のバージョンのfile-template.txtファイルを$PARAM/fileディレクトリに配置できます。代替ファイルの使用は、file.shの実行中にメッセージによって示されます。

リスト5-3 代替テンプレート・ファイルによる実行ログ
##########################################################################
Control of templates
   OK: Use Templates list file from current project:
       File name is /home2/wkb9/param/file/file-templates.txt
##########################################################################

file_move_assignation.txt

このファイルはRehosting Workbenchのインストール時に配置されます。様々なインストール・ディレクトリに生成されたコンポーネントの転送を制御します。このファイルは、file.sh -iを使用してfile.shが起動されたときに、インストール・フェーズでコピーする各コンポーネントの場所を指定します。

このファイルの場所は次のとおりです。

$REFINEDIR/convert-data/default/file/file-move-assignation.pgm

このファイルは、ファイル先頭にある指示に従って変更できます。

リスト5-4 file_move_assignation.txtの変更指示
[…]
*@ (c) Metaware:file-move-assignation.pgm. $Revision: 1.2 $
*release_format=2.3
*
* format is:
*   <typ>:<source_directory>:<file_name>:<target_directory>
*
*  typ:
*    O: optional copy: if the <file_name> is missing, it is ignored
*    M: Mandatory copy: abort if <file_name> is missing.
*    E: Execution: execute the mandatory script <file_name>.
*       Parameters for script to be executed are:
*           basedir:         directory of REFINEDIR/convert-data
*           targetoutputdir: value of "-i <targetdir>"
*           schema:          schema name
*           target_dir:      value written as 4th parameter in this file.
*    d: use this tag to display the word which follows
*
*  source_directory:
*    T: generated components written in <targetdir>/Templates/<schema>
*    O: components written in <targetdir>/outputs/<schema>
*    S: SQL requests (DDL) generated into <targetdir>/SQL/<schema> directory
*    F: fixed components present in REFINEDIR
*    s: used with -s arguments: indicates the target directory for DML utilities
*       (in REFINEDIR/modified-components/) which manipulate all schemas.
*
*  file_name: (except for typ:d)
*    name of the file in <source_directory>
*
*  target_directory: (except for typ:d, given at 4th argument for typ:E)
*    name of the target directory
*    if the 1st character is "/", component is copied using static directory and not in <td> directory
*
[…]

データマップ・ファイル

これは、システムの物理ファイルに関する情報を追加または変更するためにRehosting Workbenchファイル・コンバータによって使用される構成ファイルです。

移行する各ZOSファイルをこのファイルに指定する必要があります。このファイルには、移行するファイルのリストのみが含まれます。

データマップ・ファイルは、次の完全な名前を付けてディレクトリ$PARAM/fileに作成する必要があります。

Datamap-<configuration name>.re

<configuration name>は、使用される現在の構成の名前です。

データマップの構文およびパラメータ
リスト5-5 データマップ・ファイル
data map <configuration name>-map system cat::<project name>
file <physical file name>
   	organization <organization>
	[is-gdg limit <p> [scratch/noscratch] [empty/noempty]
  	[keys offset <n> bytes length <m> bytes primary]
	[relkey size <m> bytes]

パラメータ
<configuration name>
処理する構成の名前。
<project name>
システム記述ファイルに指定されるプロジェクト名。
<physical file name>
z/OS物理ファイル名。
<organization>
ファイル編成: 索引付き、シーケンシャルまたは相対。
is-gdg limit <p> [scratch/noscratch] [empty/noempty]
  • pパラメータ値は、GDGに含めることができる世代の合計数を指定するために使用されます。
  • scratch/noscratchパラメータは相互排他的です。scratchパラメータは、GDGのエントリが索引から削除されるときは常に、物理的に削除してカタログ化を解除する必要があることを指定します。noscratchパラメータは、GDGのエントリが索引から削除されるときは常に、カタログ化を解除する必要があるが、物理的には削除しないことを指定します。
  • empty/noemptyパラメータは相互排他的です。emptyは、GDGの世代数が最大制限に到達したとき、GDGの既存のすべての世代がカタログ化解除されることを指定します。noemptyは、制限に到達したときにGDGの一番古い世代のみがカタログ化解除されることを指定します。
keys clause …<n> … <m> …
索引付きファイルで、この句はキーを記述するために使用されます。<n>は開始位置、<m>はキーの長さです。
relkey clause …<m>
相対ファイルで、この句はキーを記述するために使用されます。<m>はキーの長さです。
% text
コメント。Rehosting Workbenchでは無視されます。

リスト5-6 データマップの例
data map STFILEORA-map system cat::STFILEORA
%% Datamap File PJ01AAA.SS.QSAM.CUSTOMER
file PJ01AAA.SS.QSAM.CUSTOMER
organization Sequential
%% Datamap File PJ01AAA.SS.VSAM.CUSTOMER
file PJ01AAA.SS.VSAM.CUSTOMER
  organization Indexed
  keys offset 1 bytes length 6 bytes primary

マッパー・ファイル

これは、移行する各ファイルを次の項目と関連付けるためにRehosting Workbenchファイル・コンバータによって使用される構成ファイルです。

データマップ・ファイルにリストされている各z/OSファイルは、マッパー・ファイルに指定する必要があります。

マッピングのためのFile句

ファイルのマッピングでは、処理する物理ファイルごとに、関連するCOBOL記述と識別ルールを選択します。

リスト5-7 マッパーのfile句の構造
file <Physical file name>
		[converted] [transferred]
		table name     <Table Name>
		include        <"path/Copy name">
	 	map record     <record name> defined in <"path/Copy name">
  		source record  <record name> defined in <"path/Copy name">
		logical name   <logical file name>
		converter name <converter name>
		[attributes    <attribute clause>]
		  
		[mapping strategies clauses]

表5-4 マッパー・ファイルのパラメータ
file <physical filename>
ZOS物理ファイル名。データマップ・ファイルで使用される名前です。
converted
ファイルがOracle表に変換されることを指定します(convertedとtransferredを組み合せることができます)。
transferred
ファイルがロードおよび再ロードされることを指定します(convertedと組み合せることができます)。
table name
Oracleの表名。
include “<path/COPY name>”
移行するファイルの記述コピーのアクセス・パスと名前。
map record <record name> defined in <“path/COPY name”>
  • record name: コピー記述におけるレベル01のフィールド名に対応します。
  • path/COPY name: 移行するファイルの記述コピーのアクセス・パスと名前に対応します。
source record <record names> defined in <"path/COPY name">
  • record name: 移行するファイルのコピー記述におけるレベル01のフィールド名に対応します。
  • path/COPY name: 移行するファイルの記述コピーのアクセス・パスと名前に対応します。
Logical name <logical file name>
論理ファイル名は最大8文字でユーザーが選択します。この名前は、Rehosting Workbenchの様々なツールによって選択されるオブジェクト(COBOL、JCL)に名前を付けるために使用されます。
Converter name <program name>
論理ファイル名と同じ名前および用途。
attributes <attribute clause>
次の2つの属性を使用できます。
  • LOGICAL_MODULE_IN_ADDITION
  • LOGICAL_MODULE_ONLY
これらのアクションは次の表に示します。

表5-5 マッパー・ファイルの属性
attributes <attribute clause>
ロール
属性句なし
この場合は、次のアクセス機能が生成されます。
  • RM_<logical file name>
  • UL_<logical file name>
  • DL_<logical file name>
およびKornシェル・ユーティリティ。
LOGICAL_MODULE_IN_ADDITION
この場合は、次のアクセス機能が生成されます。
  • ASG_<logical file name>
  • RM_<logical file name>
  • UL_<logical file name>
  • DL_<logical file name>
また、Kornシェル・ユーティリティも生成されます。
LOGICAL_MODULE_ONLY
この場合は、ASG_<logical file name>アクセス機能のみが生成されます。

リスト5-8 マッパー・ファイルの例
ufas mapper STFILEORA
file PJ01AAA.SS.VSAM.CUSTOMER converted transferred
   table name CUSTOMER
   include "COPY/ODCSF0B.cpy"
   map record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   source record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   logical name ODCSF0B
   converter name ODCSF0B
   attributes LOGICAL_MODULE_IN_ADDITION

この例では、マッパー・ファイルの名前はSTFILEORA です。このファイルで処理するのは、変換オプションを使用してOracle表に移行されるPJ01AAA.SS.VSAM.CUSTOMERという名前の1ファイルのみです。このファイルを記述するために使用されるODCSF0B.cpyコピー・ファイルは、ソース・コピー・ファイルの1つです。

戦略マッピング句

[ field <field_name>
	[ use detail table ]
	[ use opaque field <field name> ]
	[ table name <target table name> ]
	[ mapped type <target data type> ]
	[ discard field <field name> ]
	[ discard subfields <field name> ]
	
	[ discrimination rule ] ]

戦略マッピング句の構文およびパラメータ

OCCURS句およびREDEFINES句については、識別ルールを使用した次の3つのリエンジニアリングの可能性が提案されます。

戦略のマッピングの例

サブフィールド廃棄の例
05 NIV1.
   10 NIV2A PIC 99.
   10 NIV2B PIC 999.

レベルNIV1のサブフィールドを廃棄すると、Rehosting Workbenchファイル・コンバータではフィールドNIV1 PIC 9(5)のみが処理されます。サブフィールドを廃棄しないと、NIV1フィールドは無視され、2つのフィールドNIV2ANIV2Bが処理されます。

デフォルト・オプションのREDEFINESの例

このREDEFINESの例には特定のオプションは含まれません。

リスト5-9 ファイルPJ01AAA.SS.VSAM.CUSTOMERの記述コピー
01 VS-ODCSF0-RECORD.
    05 VS-CUSTIDENT           PIC 9(006).
    05 VS-CUSTLNAME           PIC X(030).
    05 VS-CUSTFNAME           PIC X(020).
    05 VS-CUSTADDRS           PIC X(030).
    05 VS-CUSTCITY            PIC X(020).
    05 VS-CUSTSTATE           PIC X(002).
    05 VS-CUSTBDATE           PIC 9(008).
    05 VS-CUSTBDATE-G         REDEFINES VS-CUSTBDATE.
     10 VS-CUSTBDATE-CC PIC 9(002).
     10 VS-CUSTBDATE-YY PIC 9(002).
     10 VS-CUSTBDATE-MM PIC 9(002).
     10 VS-CUSTBDATE-DD PIC 9(002).
    05 VS-CUSTEMAIL           PIC X(040).
    05 VS-CUSTPHONE           PIC 9(010).
    05 VS-FILLER           PIC X(100).

マッパー・ファイルは次のように実装されます。

リスト5-10 ファイルPJ01AAA.SS.VSAM.CUSTOMERのマッパー・ファイル
ufas mapper STFILEORA
file PJ01AAA.SS.VSAM.CUSTOMER converted transferred
   table name CUSTOMER
   include "COPY/ODCSF0B.cpy"
   map record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   source record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   logical name ODCSF0B
   converter name ODCSF0B
   attributes LOGICAL_MODULE_IN_ADDITION
   field VS-CUSTBDATE
   rule if VS-CUSTSTATE = "02" then VS-CUSTBDATE
   else VS-CUSTBDATE-G

表が次のように生成されます(REDEFINESのすべての単一フィールドが処理されます)。

リスト5-11 ファイルPJ01AAA.SS.VSAM.CUSTOMERの表生成
WHENEVER SQLERROR CONTINUE;
DROP TABLE CUSTOMER CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE CUSTOMER (
     VS_CUSTIDENT               NUMBER(6) NOT NULL,
     VS_CUSTLNAME               VARCHAR2(30),
     VS_CUSTFNAME               CHAR  (20),
     VS_CUSTADDRS               VARCHAR2(30),
     VS_CUSTCITY                CHAR  (20),
     VS_CUSTSTATE               CHAR  (2),
     VS_CUSTBDATE               NUMBER(8),
     VS_CUSTBDATE_CC            NUMBER(2),
     VS_CUSTBDATE_YY            NUMBER(2),
     VS_CUSTBDATE_MM            NUMBER(2),
     VS_CUSTBDATE_DD            NUMBER(2),
     VS_CUSTEMAIL               VARCHAR2(40),
     VS_CUSTPHONE               NUMBER(10),
     VS_FILLER                  VARCHAR2(100),
CONSTRAINT PK_CUSTOMER PRIMARY KEY (
        VS_CUSTIDENT)
); 
OPAQUE FIELDオプションのREDEFINESの例
リスト5-12 ファイルPJ01AAA.SS.VSAM.CUSTOMERの記述コピー
01 VS-ODCSF0-RECORD.
    05 VS-CUSTIDENT           PIC 9(006).
    05 VS-CUSTLNAME           PIC X(030).
    05 VS-CUSTFNAME           PIC X(020).
    05 VS-CUSTADDRS           PIC X(030).
    05 VS-CUSTCITY            PIC X(020).
    05 VS-CUSTSTATE           PIC X(002).
    05 VS-CUSTBDATE           PIC 9(008).
    05 VS-CUSTBDATE-G         REDEFINES VS-CUSTBDATE.
     10 VS-CUSTBDATE-CC PIC 9(002).
     10 VS-CUSTBDATE-YY PIC 9(002).
     10 VS-CUSTBDATE-MM PIC 9(002).
     10 VS-CUSTBDATE-DD PIC 9(002).
    05 VS-CUSTEMAIL           PIC X(040).
    05 VS-CUSTPHONE           PIC 9(010).
    05 VS-FILLER           PIC X(100).

マッパー・ファイルは次のように実装されます。

リスト5-13 ファイルPJ01AAA.SS.VSAM.CUSTOMERのマッパー・ファイル
ufas mapper STFILEORA
file PJ01AAA.SS.VSAM.CUSTOMER converted transferred
   table name CUSTOMER
   include "COPY/ODCSF0B.cpy"
   map record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   source record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   logical name ODCSF0B
   converter name ODCSF0B
   attributes LOGICAL_MODULE_IN_ADDITION
   field VS-CUSTBDATE
   use opaque field
   rule if VS-CUSTSTATE = "02" then VS-CUSTBDATE
   else VS-CUSTBDATE-G

表が次のように生成されます(VS_CUSTBDATEフィールドのみが維持されます)。

リスト5-14 ファイルPJ01AAA.SS.VSAM.CUSTOMERの表生成
WHENEVER SQLERROR CONTINUE;
DROP TABLE CUSTOMER CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE CUSTOMER (
     VS_CUSTIDENT               NUMBER(6) NOT NULL,
     VS_CUSTLNAME               VARCHAR2(30),
     VS_CUSTFNAME               CHAR  (20),
     VS_CUSTADDRS               VARCHAR2(30),
     VS_CUSTCITY                CHAR  (20),
     VS_CUSTSTATE               CHAR  (2),
     VS_CUSTBDATE               RAW   (8),
     VS_CUSTEMAIL               VARCHAR2(40),
     VS_CUSTPHONE               NUMBER(10),
     VS_FILLER                  VARCHAR2(100),
CONSTRAINT PK_CUSTOMER PRIMARY KEY (
        VS_CUSTIDENT)
);

DETAIL TABLEオプションのREDEFINESの例
リスト5-15 ファイルPJ01AAA.SS.VSAM.CUSTOMERの記述コピー
01 VS-ODCSF0-RECORD.
    05 VS-CUSTIDENT           PIC 9(006).
    05 VS-CUSTLNAME           PIC X(030).
    05 VS-CUSTFNAME           PIC X(020).
    05 VS-CUSTADDRS           PIC X(030).
    05 VS-CUSTCITY            PIC X(020).
    05 VS-CUSTSTATE           PIC X(002).
    05 VS-CUSTBDATE           PIC 9(008).
    05 VS-CUSTBDATE-G         REDEFINES VS-CUSTBDATE.
     10 VS-CUSTBDATE-CC PIC 9(002).
     10 VS-CUSTBDATE-YY PIC 9(002).
     10 VS-CUSTBDATE-MM PIC 9(002).
     10 VS-CUSTBDATE-DD PIC 9(002).
    05 VS-CUSTEMAIL           PIC X(040).
    05 VS-CUSTPHONE           PIC 9(010).
    05 VS-FILLER           PIC X(100).

マッパー・ファイルは次のように実装されます。

リスト5-16 ファイルPJ01AAA.SS.VSAM.CUSTOMERのマッパー・ファイル
ufas mapper STFILEORA
file PJ01AAA.SS.VSAM.CUSTOMER converted transferred
   table name CUSTOMER
   include "COPY/ODCSF0B.cpy"
   map record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   source record VS-ODCSF0-RECORD defined in "COPY/ODCSF0B.cpy"
   logical name ODCSF0B
   converter name ODCSF0B
   attributes LOGICAL_MODULE_IN_ADDITION
   field VS-CUSTBDATE
   use detail table
   rule if VS-CUSTSTATE = "02" then VS-CUSTBDATE
   else VS-CUSTBDATE-G

表が次のように生成されます(親表はREDEFINESに含まれないフィールドを使用して生成され、2つの子表はREDEFINES記述ごとに1つずつ生成されます)。

リスト5-17 ファイルPJ01AAA.SS.VSAM.CUSTOMERの表生成
WHENEVER SQLERROR CONTINUE;
DROP TABLE CUSTOMER CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE CUSTOMER (
     VS_CUSTIDENT               NUMBER(6) NOT NULL,
     VS_CUSTLNAME               VARCHAR2(30),
     VS_CUSTFNAME               CHAR  (20),
     VS_CUSTADDRS               VARCHAR2(30),
     VS_CUSTCITY                CHAR  (20),
     VS_CUSTSTATE               CHAR  (2),
     VS_CUSTEMAIL               VARCHAR2(40),
     VS_CUSTPHONE               NUMBER(10),
     VS_FILLER                  VARCHAR2(100),
CONSTRAINT PK_CUSTOMER PRIMARY KEY (
        VS_CUSTIDENT)
);
WHENEVER SQLERROR CONTINUE;
DROP TABLE VS_CUSTBDATE CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE VS_CUSTBDATE (
     VS_CUSTBDATE_CUSTIDENT     NUMBER(6) NOT NULL,
     VS_CUSTBDATE               NUMBER(8),
CONSTRAINT FK_VS_CUSTBDATE_CUSTOMER FOREIGN KEY (
        VS_CUSTBDATE_CUSTIDENT) REFERENCES CUSTOMER (
        VS_CUSTIDENT),
CONSTRAINT PK_VS_CUSTBDATE PRIMARY KEY (
        VS_CUSTBDATE_CUSTIDENT)
);
WHENEVER SQLERROR CONTINUE;
DROP TABLE VS_CUSTBDATE_G CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE VS_CUSTBDATE_G (
     VS_CUSTBDATE_G_CUSTIDENT   NUMBER(6) NOT NULL,
     VS_CUSTBDATE_CC            NUMBER(2),
     VS_CUSTBDATE_YY            NUMBER(2),
     VS_CUSTBDATE_MM            NUMBER(2),
     VS_CUSTBDATE_DD            NUMBER(2),
CONSTRAINT FK_VS_CUSTBDATE_G_CUSTOMER FOREIGN KEY (
        VS_CUSTBDATE_G_CUSTIDENT) REFERENCES CUSTOMER (
        VS_CUSTIDENT),
CONSTRAINT PK_VS_CUSTBDATE_G PRIMARY KEY (
        VS_CUSTBDATE_G_CUSTIDENT)); 

識別ルール

識別ルールを再定義フィールドに対して設定する必要があります。これにより、REDEFINESの記述のどちらをいつ使用するかを判別するためのコードが指定されます。

[field <field_name>]
  […]
rule if <condition> then Field_Name_x
[elseif <condition> then field_Name_y]
[else Field_Name_z]
識別ルールの構文およびパラメータ

表5-7 識別ルール
構文
説明
Field_Name_{X,Y,Z}
これは、対応する条件が検証されたときに使用されるフィールドです。このフィールドは再定義フィールドの一方です。
条件
フィールド名、演算子およびCOBOL定数で構成される条件式です。
  • 論理演算子: not、and、or
  • 比較演算子: = <> < >
  • 特殊な演算子: is numeric、is all SPACE
  • 使用可能なCOBOL定数: spaces、zeros、high-value、low-value

注: これらの条件はカッコで囲んで指定できます。

識別ルールの例

次の例では、フィールドDPODP-DMDCHQ、DPONO-PRDTIVおよびDP5CP-VALZONNUMが再定義されています。

リスト5-18 識別ルールのCOBOL記述
01 ZART1.
  05 DPODP PIC X(20).
  05 DPODP-RDCRPHY PIC 9.
  05 DPODP-DMDCHQ PIC X(6).
  05 DPODP-REMCHQ REDEFINES DPODP-DMDCHQ.
    10 DPODP-REMCHQ1 PIC 999.
    10 DPODP-REMCHQ2 PIC 999.
  05 DPODP-VIREXT REDEFINES DPODP-DMDCHQ.
    10 DPODP-VIREXT1 PIC S9(11) COMP-3.
  05 DPONO-NPDT PIC X(5).
  05 DPONO-PRDTIV PIC 9(8)V99.
  05 DPONO-PRDPS REDEFINES DPONO-PRDTIV PIC X(10).
  05 DP5CP-VALZONNUM PIC 9(6).
  05 DP5CP-VALZON REDEFINES DP5CP-VALZONNUM PIC X(6).

次の識別ルールが適用されます。

リスト5-19 識別ルール
     field DPODP-DMDCHQ
rule if      DPODP-RDCRPHY = 1 then DPODP-DMDCHQ
      elseif DPODP-RDCRPHY = 2 then DPODP-REMCHQ
      elseif DPODP-RDCRPHY = 3 then DPODP-VIREXT
      else DPODP-DMDCHQ,
field DPONO-PRDTIV
rule  if     DPONO-NPDT (1:2) = "01"  then DPONO-PRDTIV
      elseif DPONO-NPDT (1:2) = "02"  then DPONO-PRDPS,
field DP5CP-VALZONNUM
rule if      DPODP-RDCRPHY is numeric then DP5CP-VALZONNUM
     else DP5CP-VALZON

最初のルールは、数値フィールドDPODP-RDCRPHYの値をテストします。

2番目のルールは、英数字フィールドDPONO-NPDTの最初の2文字をテストします。値01および02のみが許可されます。

3番目のルールは、フィールドDPODP-RDCRPHYが数値かどうかをテストします。

COBOLコピーへのリンク

例のfile句のように、マッパー・ファイルはCOBOLコピー・ファイルにリンクされます。このCOBOLコピーではアンロードされるデータ・ファイルが記述されます。つまり、列の記述と技術フィールドが含まれます。このアンロードされるファイルはDSNTIAULユーティリティによって作成され、列データとNULLインジケータ値を含みます。

列ごとに、1つのフィールド名と、次の属性の2つの値が生成されます。

それぞれ、列がNULLフラグを受け入れるとき、または列にNOT NULL属性が設定されているときに使用されます。

技術フィールドごとに、ファイル・コンバータにより次のフィールドが生成されます。

COBOLの記述

Oracle Tuxedo Application Rehosting Workbenchファイル・コンバータは、各表に関連付けられている記述が必要です。このため、最初の手順でCOBOLコピーの記述を生成します。

COBOL記述ファイルが用意されると、mapper-<configuration name>.reファイルに指定されているコピー・ファイルを$PARAM/file/recs-sourceディレクトリに配置する必要があります。

ソース・プラットフォームのCOBOLコピー・ブックを使用してファイルを記述する場合(「COBOLの記述」を参照)、コピー・ブックの場所が直接使用されます。

POBファイル

これらのファイルはカタログ化の際に使用されます。詳細は、「ASTのPOBファイル」を参照してください。

Symtabファイル
symtab-<schema name>.pob

このファイルはカタログ化の際に作成されます。ファイル・コンバータがDB2オブジェクトをOracleに移行するためには、このファイルが更新されて最新状態を保つ必要があります。「カタロガSymtabおよびその他のファイル」を参照してください。

 


出力ファイルの説明

ファイルの場所

一時ファイルの場所

Rehosting Workbenchファイル・コンバータによって生成される一時オブジェクトは、次の場所に格納されます。

$TMPPROJECT
$TMPPROJECT/Template/<configuration name>
$TMPPROJECT/outputs/<configuration name>
注: $TMPPROJECT変数は$HOME/tmpに設定されます。

ログ・ファイルの場所

実行ログ・ファイルは次の場所に格納されます。

生成されるファイルの場所

-i $HOME/trfオプションで生成されるアンロード・コンポーネントおよびロード・コンポーネントは、次の場所に配置されます。

表5-8 コンポーネントの場所
「場所」
フィールド値
$HOME/trf/unload/file/<configuration name>
アンロードする各表で使用されるJCLは、各<configuration name>に対して生成されます。
これらのJCLの名前は次のとおりです。
<file name>.jclunload
$HOME/trf/reload/file/<configuration name>
COBOLプログラムと各ロードで使用されるKSHの各<configuration name>の場所。
ファイルからファイルへの移行では、プログラムとKSHの名前は次のとおりです。
RELFILE-<target file name>.cbl
loadfile-<target file name>.ksh
ファイルからOracleへの移行では、プログラムとKSHの名前は次のとおりです。
MOD-<target file name>.cbl
loadtable-<target file name>.ksh
$HOME/trf/SQL/file/<configuration name>
(ファイルをOracle表に移行する場合)
Oracleオブジェクトを作成するために使用されるSQLスクリプトの各<configuration name>の場所。
$HOME/trf/config/tux
表に移行されるファイルについてOracle Tuxedo Application Runtime CICSで使用される構成ファイルの場所。

注: <target table name>は、ターゲット・プラットフォームでのファイル名です。このファイル名はマッパー・ファイルで指定されます。

生成されるオブジェクト

次の項では、z/OSファイルの移行中に生成されるオブジェクトと、それらのオブジェクトが配置されるディレクトリを示します。

アンロード用JCL

ファイルのアンロードに使用されるJCLは、file.shコマンドの-gオプションを使用して生成されます。その後、(-iオプションを使用して)次の場所にインストールされます。

$HOME/trf/unload/file/<configuration name>

各JCLには、2つの手順が含まれ、z/OS IDCAMS REPROユーティリティを使用して1つのファイルをアンロードします。JCLのリターン・コードは正常終了では0または4です。

ステップ1
DEL
IDCAMSでのファイルのDELETE(ログおよびデータ・ファイルの削除)
ステップ2
UNLOAD
指定されたファイルのIDCAMS REPRO

JCLの名前は<file name>.jclunloadです。

注: .jclunload拡張子は、z/OSで実行する場合には削除する必要があります。

生成されるJCLは、特定のサイトの制約に合せるために次のような調整が必要になることがあります。

COBOLトランスコード・プログラム

z/OSファイルのUNIX/Linuxファイルへの移行

COBOLトランスコード・プログラムは、file.shコマンドの-gオプションを使用して生成されます。その後、(-iオプションを使用して)次の場所にインストールされます。

$HOME/trf/reload/file/<configuration name>/src 

プログラムの名前はRELFILE_<logical file name>.cblです。

プログラムは、「コンパイラ・オプション」で説明するMicrofocus COBOLコンパイル・オプションを使用してコンパイルする必要があります。

これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyコピー・ファイルの存在が必要です。

これらのファイルは、入力されるファイルを読み取り、z/OSと同じ編成の出力ファイル(シーケンシャル、相対、索引付き)を書き込みます。シーケンシャル・ファイルの場合、UNIX/Linux Micro Focus環境での編成はライン・シーケンシャルです。

リスト5-21 FILE CONTROLセクション - トランスコード・プログラム用
SELECT MW-ENTREE
              ASSIGN TO "ENTREE"
              ORGANIZATION IS SEQUENTIAL
              ACCESS IS SEQUENTIAL
              FILE STATUS IS IO-STATUS.
SELECT MW-SORTIE
              ASSIGN TO "SORTIE"
              ORGANIZATION IS LINE SEQUENTIAL
              FILE STATUS IS IO-STATUS.

レコード・カウントが出力ファイルに書き込まれ、処理の終了時に次のように表示されます。

DISPLAY "RELOADING TERMINATED OK".
DISPLAY "Nb rows reloaded: " D-NB-RECS.
DISPLAY " ".
DISPLAY "NUMERIC MOVED WHEN USING CHAR FORMAT: "
DISPLAY "  NUMERIC-BCD : " MW-COUNT-NUMERIC-BCD-USE-X.
DISPLAY "  NUMERIC-DISP: " MW-COUNT-NUMERIC-DISP-USE-X.

表示される最後の2行は、COBOL記述が入力ファイルの内容と一致していないフィールドへのデータの移動を示します(非数値データを含むパック数値フィールドと非数値データを含む数値DISPLAYフィールド)。このようなケースが出現すると、各フィールドの名前と値が表示されます。

注: Intelハードウェアを使用するターゲット・プラットフォームに移行するときは、メッセージPROCESSOR UNIT IS INTELがトランスコードの開始時に出力されます。
z/OSファイルのOracle表への移行

COBOLトランスコード・プログラムは、file.shコマンドの-gオプションを使用して生成されます。その後、(-iオプションを使用して)次の場所にインストールされます。

$HOME/trf/reload/file/<configuration name>/src 

プログラムの名前はRELTABLE_<logical file name>.cblです。

プログラムは、「コンパイラ・オプション」で説明するMicrofocus COBOLコンパイル・オプションを使用してコンパイルする必要があります。

これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyコピー・ファイルの存在が必要です。

これらのファイルは、入力されるファイルを読み取り、SQL INSERT動詞を使用してOracle表に直接ロードします。

リスト5-22 FILE CONTROLセクション - トランスコード・プログラム用
SELECT MW-ENTREE
           ASSIGN TO "ENTREE"
           ORGANIZATION IS RECORD SEQUENTIAL
           ACCESS IS SEQUENTIAL
           FILE STATUS IS IO-STATUS.

次のように1000レコードずつコミットされます。

IF MW-NB-INSERT >= 1000
CALL "do_commit"
注: do_commitモジュールはOracle Tuxedo Application Runtime Batchの一部です。

レコード・カウントが出力ファイルに書き込まれ、処理の終了時に次のように表示されます。

DISPLAY "RELOADING TERMINATED OK".
         	DISPLAY "Nb rows reloaded: " D-NB-RECS.
           	DISPLAY " ".
           	DISPLAY "NUMERIC MOVED WHEN USING CHAR FORMAT : "
           	DISPLAY "  NUMERIC-BCD : " MW-COUNT-NUMERIC-BCD-USE-X.
           	DISPLAY "  NUMERIC-DISP: " MW-COUNT-NUMERIC-DISP-USE-X.

表示される最後の2行は、COBOL記述が入力ファイルの内容と一致していないフィールドへのデータの移動を示します(非数値データを含むパック数値フィールドと非数値データを含む数値DISPLAYフィールド)。このようなケースが出現すると、各エラーが表示されます。

注: Intelハードウェアを使用するターゲット・プラットフォームに移行するときは、メッセージPROCESSOR UNIT IS INTELがトランスコードの開始時に出力されます。

再ロード用Kornシェル・スクリプト

再ロード用Kornシェル・スクリプトは、file.shコマンドの-gオプションを使用して生成されます。その後、(-iオプションを使用して)次の場所にインストールされます。

$HOME/trf/reload/file/<configuration name>
z/OSファイルをUNIX/Linuxファイルに移行するための再ロード用Kornシェル・スクリプト

スクリプトの名前はloadfile-<logical file name>.kshです。

これらには、トランスコード(またはロード)フェーズとチェック・フェーズが含まれます。これらの異なるフェーズは別に開始することができます。

スクリプトを実行すると、実行ログが$MT_LOG/<logical file name>.logに生成されます。

次の変数が各スクリプトで最初に設定されます。

リスト5-23 ファイル再ロード用スクリプトの変数
f="@ (c) Metaware:reload-files-ksh.pgm. $Revision: 1.9 $null"
echo "Reloading file ODCSFU ODCSFU"
export DD_ENTREE=${DD_ENTREE:-${DATA_SOURCE}/ODCSFU}
export DD_SORTIE=${DD_SORTIE:-${DATA}/ODCSFU}
logfile=${MT_LOG}/ODCSFU.log
reportfile=${MT_LOG}/ODCSFU.rpt
[…]
注: ファイル名を変更するには、スクリプトを呼び出す前にDD_*変数を設定します。

スクリプトの実行フェーズでは様々なメッセージが生成されます。これらのメッセージの説明は、「Oracle Tuxedo Application Rehosting Workbenchのメッセージ」にあります。

正常終了では、リターン・コード0が返されます。

トランスコード・フェーズおよびロード・フェーズ

これらの手順では、処理されるファイルに関連付けられたCOBOLトランスコード・プログラムの実行を開始します。

cobrun RELFILE-ODCSFU >> $logfile

正常終了では次のメッセージが表示されます。

echo "File ${DD_ENTREE} successfully transcoded and reloaded into ${DD_SORTIE}"
チェック・フェーズ

この手順では、再ロードの後で、再ロードされたOracle表にz/OSソース・プラットフォームから転送されたのと同数のレコードが含まれることを確認します。レコード数が異なる場合は、エラー・メッセージが生成されます。

if [[ "$recsreloaded" != "$recstransferred" ]];

レコード数が等しい場合は、次のメッセージが生成されます。

echo "Number of rows written in output file is equal to number calculated using the log file: OK"
注: この手順を実行するには、z/OS IDCAMSログ・ファイルをターゲット環境に転送する必要があります。
z/OSファイルをOracle表に移行するための再ロード用Kornシェル・スクリプト

スクリプトの名前はloadtable-<logical file name>.kshです。

これらには、DDL作成フェーズ、トランスコード(またはロード)フェーズとチェック・フェーズが含まれます。これらの異なるフェーズは別に開始することができます。

スクリプトを実行すると、実行ログが$MT_LOG/<logical file name>.logに生成されます。

次の変数が各スクリプトで最初に設定されます。

リスト5-24 表の再ロード用スクリプトの変数
f="@ (c) Metaware:load-tables-ksh.pgm. $Revision: 1.14 $null"
echo "reloading ODCSF0B into ORACLE"
export DD_ENTREE=${DD_ENTREE:-${DATA_SOURCE}/ODCSF0B}
logfile=$MT_LOG/ODCSF0B.log
reportfile=${MT_LOG}/ODCSF0B.rpt
ddlfile=${DDL}/STFILEORA/ODCSF0B.sql
[…]

ファイル名を変更するには、スクリプトを呼び出す前にDD_*変数を設定します。

スクリプトの3つの実行フェーズでは様々なメッセージが生成されます。これらのメッセージの説明は、「Oracle Tuxedo Application Rehosting Workbenchのメッセージ」にあります。

正常終了では、リターン・コード0が返されます。

Oracle DDL作成フェーズ

Oracleオブジェクトは${DDL}/STFILEORA/ODCSF0B.sqlを使用してSQLPLUSに作成されます。

sqlplus $MT_DB_LOGIN >>$logfile 2>&1 <<!EOF
WHENEVER SQLERROR EXIT 3;
start ${ddlfile}
exit
!EOF

正常終了では次のメッセージが表示されます。

echo "Table(s) created"
トランスコード・フェーズおよびロード・フェーズ

これらの手順では、処理されるファイルに関連付けられたCOBOLトランスコード・プログラムの実行を開始します。

runb RELTABLE-ODCSF0B >> $logfile 2>&1

正常終了では次のメッセージが表示されます。

echo "File ${DD_ENTREE} successfully transcoded and reloaded into ORACLE"
チェック・フェーズ

この手順では、再ロードの後で、ターゲット・プラットフォームの再ロードされたOracle表にZOSから転送されたのと同数のレコードが含まれることを確認します。レコード数が異なる場合は、エラー・メッセージが生成されます。

"Number of rows written in output file is equal to number calculated using the log file: OK"

ターゲットDDL

ORACLE DDLは、file.shコマンドの-gオプションを使用して生成されます。その後、(-iオプションを使用して)次の場所にインストールされます。

$HOME/trf/SQL/file/<schema name> 

名前は<target file name>.ddl.です。

使用される形式は次のとおりです。

WHENEVER SQLERROR CONTINUE;
DROP TABLE <target_table_name> CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE <target_table_name> (
  <target_column_name> <column_data_type> <attribute>[, …]
          CONSTRAINT <constraint_name> PRIMARY KEY (<target_column_name>) 
);

説明:

<target_table_name>
Oracleの表名。
<target_column_name>
Oracleの列名。
<column_data_type>
Oracleのデータ型(CHAR、VARCHAR2、NUMBERまたはFLOAT)。
<attribute>
主キーの場合はNOT NULLです。
<constraint_name>
主キーの制約名(PK_<Oracle table name>)。

リスト5-25 DDL生成のためのsqlの例
WHENEVER SQLERROR CONTINUE;
DROP TABLE CUSTOMER CASCADE CONSTRAINTS;
WHENEVER SQLERROR EXIT 3;
CREATE TABLE CUSTOMER (
     VS_CUSTIDENT               NUMBER(6) NOT NULL,
     VS_CUSTLNAME               VARCHAR2(30),
     VS_CUSTFNAME               CHAR  (20),
     VS_CUSTADDRS               VARCHAR2(30),
     VS_CUSTCITY                CHAR  (20),
     VS_CUSTSTATE               CHAR  (2),
     VS_CUSTBDATE               NUMBER(8),
     VS_CUSTEMAIL               VARCHAR2(40),
     VS_CUSTPHONE               NUMBER(10),
     VS_FILLER                  VARCHAR2(100),
CONSTRAINT PK_CUSTOMER PRIMARY KEY (
        VS_CUSTIDENT)
);

アクセス機能およびユーティリティ・プログラム

アクセス機能

これらのアクセス機能は、file.sh-gオプションを使用して生成され、-iおよび-sオプションを使用して$HOME/trf/DMLにインストールされます。

アクセス機能の呼出し引数

RM_<logical file name>.pcoアクセス機能およびASG_<logical file name>.cblアクセス機能では、次の変数が使用されます。

表5-10 アクセス呼出しに実装される変数
変数
説明および由来
機能コード
実行する操作のタイプを指定します(たとえば、OPEN、WRITEなど)。コードはMWFITECHコピー・ファイルのFILE-CODE-F変数を使用して渡されます。
ファイル・オープン・モード
ファイルは様々なモードで開くことができます(INPUT、OUTPUT、I O、EXTEND)。モードはMWFITECHコピー・ファイルのFILE-OPEN-MODE変数を使用して渡されます。
IO-STATUS
IO-STATUS変数は各ファイルにリンクされ、直前のリレーショナル・モジュール操作の実行ステータスを提供します。
送信または受信するレコード
送信するレコードは、書込み操作のためのアクセス機能またはアクセスのためのキーを備えています。受信するレコードには読取りアクセス機能があります。これらは、LINKAGE SECTIONに指定します。
使用する二次キーの名前
二次キーを含む索引付きファイル用。この編成のファイルについてのみ、START操作で使用する二次キーを指定するために別の変数が必要です。

二次キーの名前はMWFITECHコピー・ファイルのFILE-ALT-KEY-NAME変数を使用して渡されます。

二次キーを含まないファイルではこの引数は必要ありません。

相対キー
相対ファイルでは、相対キーの値は、アクセス・モジュールとの間でMWFITECHコピー・ファイルのFILE-REL-KEY変数を使用して渡されます。

リスト5-26 LINKAGE SECTIONの構造
LINKAGE SECTION.
       01  IO-STATUS  PIC XX.
       COPY MWFITECH.
*     *COBOL Record Description
       01  VS-ODCSF0-RECORD.
           06 X-VS-CUSTIDENT.
                07 VS-CUSTIDENT       PIC 9(006).
           06 VS-CUSTLNAME            PIC X(030).
           06 VS-CUSTFNAME            PIC X(020).
           06 VS-CUSTADDRS            PIC X(030).
           06 VS-CUSTCITY             PIC X(020).
           06 VS-CUSTSTATE            PIC X(002).
           06 X-VS-CUSTBDATE.
                07 VS-CUSTBDATE       PIC 9(008).
           06 VS-CUSTBDATE-G          REDEFINES VS-CUSTBDATE.
             11 X-VS-CUSTBDATE-CC.
                  12 VS-CUSTBDATE-CC  PIC 9(002).
             11 X-VS-CUSTBDATE-YY.
                  12 VS-CUSTBDATE-YY  PIC 9(002).
             11 X-VS-CUSTBDATE-MM.
                  12 VS-CUSTBDATE-MM  PIC 9(002).
             11 X-VS-CUSTBDATE-DD.
                  12 VS-CUSTBDATE-DD  PIC 9(002).
           06 VS-CUSTEMAIL            PIC X(040).
           06 X-VS-CUSTPHONE.
                07 VS-CUSTPHONE       PIC 9(010).
           06 VS-FILLER               PIC X(100).
	PROCEDURE DIVISION USING IO-STATUS
                                MW-FILE-TECH
                                VS-ODCSF0-RECORD.

使用される呼出し引数

OPEN

すべてのOPEN操作で、FILE-CODE-F変数はキーワードOPENを含む必要があります。

FILE-OPEN-MODE変数は、次のように実行するOPENのタイプを含む必要があります。

表5-11 呼出し引数のファイル・オープン・モード
ソース
ターゲット
OPEN INPUT filename1
INPUT => FILE-OPEN-MODE
OPEN OUTPUT filename1
OUTPUT => FILE-OPEN-MODE
OPEN I-O filename1
I-O => FILE-OPEN-MODE
OPEN EXTEND filename1
EXTEND => FILE-OPEN-MODE

CLOSE

CLOSE操作では、FILE-CODE-F変数はキーワードCLOSEを含む必要があります。

CLOSE-LOCK

CLOSE LOCK操作では、FILE-CODE-F変数はキーワードCLOSE-LOCKを含む必要があります。

DELETE

ファイル・アクセス・モードに応じて、DELETE操作の対象は、現在のレコードまたはファイル・キーによって指定されるレコードになります。

対応する機能コードは次のように指定されます。

表5-12 呼出し引数の削除モード
アクセス
ソース
ターゲット
順次
DELETE filename1
DELETE-CUR => FILE-CODE-F
ランダムまたは動的
DELETE filename1
DELETE-KEY => FILE-CODE-F

READ

機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。

表5-13 引数によって異なる読取り操作の値
アクセス
ソース
ターゲット
順次
READ filename1 [NEXT]
READ-NEXT => FILE-CODE-F
ランダム
READ filename1
READ-KEY => FILE-CODE-F
動的
READ filename1 NEXT
READ-NEXT => FILE-CODE-F
READ filename1
READ-KEY => FILE-CODE-F
READ filename1 PREVIOUS
READ-PREV => FILE-CODE-F
DataName1がkeyAltKey1に対応する変数の場合
READ filename1 KEY DataName1
READ-ALT-KEY => FILE-CODE-F "AltKey1" => FILE-ALT-KEY-NAME
DataName1が相対キーを表す場合
READ filename1
KEY DataName1
READ-REL-KEY => FILE-CODE-F "RelKeyVar" => FILE-REL-KEY

注: INTO句が検出されると、指定されたフィールドの値を設定するために、呼出しの後でMOVE操作が追加されます。
REWRITE

機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。

表5-14 引数によって異なる再書込み操作の値
アクセス
ソース
ターゲット
順次
REWRITE RecName1
REWRITE-CUR => FILE-CODE-F
ランダムまたは動的
REWRITE RecName1
REWRITE-KEY => FILE-CODE-F

注: FROM句が検出されると、指定されたフィールドの値を設定するために、呼出しの前にMOVE操作が追加されます。
START

相対ファイル、索引付きファイル、またはファイルの二次キーの有無にかかわらず、機能コードはSTARTの厳密なタイプによって異なります。

表5-15 引数によって異なる再書込み操作の値
発生状況
ソース
ターゲット
 
START file1
START-EQUAL => FILE-CODE-F
DataName1がfile1の相対キーまたは主キーを表す場合
START file1 KEY {EQUAL| = |EQUALS} DataName1
START-EQUAL => FILE-CODE-F
START file1 KEY {EXCEEDS| > |GREATER} DataName1
START-SUP => FILE-CODE-F
START file1 KEY {NOT LESS |GREATER OR EQUAL | NOT < | >= } DataName1
START-SUPEQ => FILE-CODE-F
START file1 KEY {< |LESS} DataName1
START-INF => FILE-CODE-F
START file1 KEY {NOT GREATER |LESS OR EQUAL | NOT > | <= } DataName1
START-INFEQ => FILE-CODE-F
DataName1がAltKey1キーに対応する変数の場合
START file1 KEY {EQUAL| = |EQUALS} DataName1
AltKey1 => FILE-ALT-KEY-NAME
START-ALT-EQUAL => FILE-CODE-F
START file1 KEY {EXCEEDS| > |GREATER} DataName1
AltKey1 => FILE-ALT-KEY-NAME
START-ALT-SUP => FILE-CODE-F
START file1 KEY {NOT LESS| GREATER OR EQUAL | NOT < | >=} DataName1
AltKey1 => FILE-ALT-KEY-NAME
START-ALT-SUPEQ => FILE-CODE-F
START file1 KEY
{< |LESS} DataName1
AltKey1 => FILE-ALT-KEY-NAME
START-ALT-INF => FILE-CODE-F
START file1 KEY {NOT GREATER |LESS OR EQUAL | NOT > | <= } DataName1
AltKey1 => FILE-ALT-KEY-NAME
START-ALT-INFEQ => FILE-CODE-F

WRITE

機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。

表5-16 引数によって異なる書込み操作の値
アクセス
ソース
ターゲット
順次
WRITE RecName1
WRITE-SEQ => FILE-CODE-F
ランダムまたは動的
WRITE RecName1
WRITE-KEY => FILE-CODE-F

注: FROM句が検出されると、指定されたフィールドの値を設定するために、呼出しの前にMOVE操作が追加されます。

実装されるコピー・ファイル

特定のアクセス機能によって次のコピー・ファイルが使用されます。これらは、Rehosting Workbenchをインストールするときに< installation platform>/fixed-copy/ディレクトリに配置する必要があります。

Kornシェル・ユーティリティ

これらのKSHスクリプトは、file.sh-gオプションを使用して生成され、-iオプションを使用して$HOME/trf/SQL/file/<configuration name>にインストールされます。必要なときにOracle Tuxedo Application Runtime Batchによって使用されます。

表5-17 Kornシェル・ユーティリティ
Kornシェル・スクリプト名
ロール
cleantable-<logical file name>.ksh
このファイルに関連付けられているすべての表を消去(CLEAN)するスクリプト・ファイル。
createtable-<logical file name>.ksh
このファイルに関連付けられているすべての表、制約および索引を作成(CREATE)するスクリプト・ファイル。
droptable-<logical file name>.ksh
このファイルに関連付けられているすべての表を削除(DROP)するスクリプト・ファイル。
ifemptytable-<logical file name>.ksh
すべての表が空かどうかをチェックするスクリプト・ファイル。
ifexisttable-<logical file name>.ksh
すべての表が存在するかどうかをチェックするスクリプト・ファイル。

Oracle Tuxedo Application Runtime for CICSの構成ファイル

VSAMファイルがOracle表に移行されると、desc.vsamファイルとenvfile_tuxファイルが$HOME/trf/config/tux/ディレクトリに生成されます。これらはOracle Tuxedo Application Runtime CICSによって使用されます。

COBOLおよびJCL変換ガイド・ファイル

これらのファイルが生成されるのは、file.shコマンドで-sオプションを使用するときです。

このファイルは、オブジェクト名を変更するためにRehosting Workbench CobolコンバータおよびJCLコンバータによって使用されます。

表5-18 変換ファイル名

File-in-table-<configuration name>
Rehosting Workbench JCLコンバータによって使用されます。
File-in-table.txt
Rehosting Workbench JCLコンバータによって使用されます。
Conv-ctrl.txt
Rehosting Workbench COBOLコンバータによって使用されます。
Conv-ctrl-<configuration name>
Rehosting Workbench COBOLコンバータによって使用されます。

.rdbファイル

これらのファイルが作成されるのはVSAMファイルがOracle表に変換されるときです。これらは、ソース・プラットフォームのz/OSファイルとターゲット・プラットフォームの対応するOracle表の間の技術的な違いを調整するために、Oracle Tuxedo Application Runtime Batchによって使用されます。

ファイルは$HOME/trf/dataに生成されます。

名前は<source platform physical file name>.rdbです。

ファイルには次の項で説明する2つの行が含まれます。

パラメータと構文

${DATA}/<source platform physical file name> <max> <org> <form> UL_<logical file name> <asgn_in> DL_<logical file name> <asgn_out> RM_<logical file name> <target table name> ${DDL}/<configuration name/cleantable-<target table name>.ksh ${DDL}/<configuration name>/droptable-<target table name>.ksh  ${DDL}/<configuration name>/createtable-<target table name>.ksh ${DDL}/<configuration name>/ifemptytable-<target table name>.ksh ${DDL}/<configuration name>/ifexisttable-<target table name>.ksh
IDX_KEY <column name> <n m>
REL_KEY - <m>

表5-19 .rdbファイルのパラメータ
パラメータ
説明
1行目:
<source platform physical file name>
物理ファイル名
<max>
最大レコード・サイズ(COBOL記述)
<org>
ファイル編成:
  • IDX: 索引付き(代替キーなし)
  • IDX_ALT: 索引付き(代替キー)
  • SEQ: シーケンシャル
  • REL: 相対
<form>
レコード形式:
  • FIX: 固定ファイル
  • VAR: 最小サイズの<min>可変ファイル。<min>がない場合、最小サイズは1になります。
UL_<logical file name>
Oracle Tuxedo Application Runtime Batchで使用されるアップロード用コンポーネントの名前。
<asgn_in>
アップロード用コンポーネントで使用される割当てファイル名。
DL_<logical file name>
Runtimeで使用されるダウンロード用コンポーネントの名前。
<asgn_out>
ダウンロード用コンポーネントで使用される割当てファイル名。
RM_<logical file name>
リレーショナル・モジュール名。
<target table name>
最初の表の名前(マスター表名または複数レコードでは最初の表の名前)。
${DDL}/<configuration name/cleantable-<target table name>.ksh
このファイルに関連付けられているすべての表を消去(CLEAN)するスクリプト・ファイルの名前。
${DDL}/<configuration name/droptable-<target table name>.ksh
このファイルに関連付けられているすべての表を削除(DROP)するスクリプト・ファイルの名前。
${DDL}/<configuration name>/createtable-<target table name>.ksh
このファイルに関連付けられているすべての表とそのオブジェクト(制約および索引)を作成(CREATE)するスクリプト・ファイルの名前。
${DDL}/<configuration name>/ifemptytable-<target table name>.ksh
すべての表が空かどうかをチェックするスクリプト・ファイルの名前。
${DDL}/<configuration name>/ifexisttable-<target table name>.ksh
すべての表が存在するかどうかをチェックするスクリプト・ファイルの名前。
2行目(索引付きファイルおよび代替キーのある索引付きファイルのみ):
IDX_KEY
定数。
<VS-column name>
索引付きキー名(COBOL記述で指定されているグループ・ゾーン名または基本フィールド名)。
<n m>
  • n: 索引キーのオフセット(COBOL記述)。
  • m: 索引キーの長さ(COBOL記述)。
2行目(相対ファイル):
REL_KEY
定数。
-
定数。
<m>
  • m: 相対キーの長さ(COBOL記述)。

.rdbファイルの例

次の例は、索引付きVSAMファイルをOracle表に移行するときに生成されます。ソース・プラットフォームでのVSAMファイルの名前はPJ01AAA.SS.VSAM.CUSTOMERです。

リスト5-27 索引付きVSAMの.rdbの例
${DATA}/PJ01AAA.SS.VSAM.CUSTOMER 266 IDX FIX UL_ODCSF0B ENTREE DL_ODCSF0B SORTIE RM_ODCSF0B CUSTOMER ${DDL}/STFILEORA/cleantable-ODCSF0B.ksh ${DDL}/STFILEORA/droptable-ODCSF0B.ksh  ${DDL}/STFILEORA/createtable-ODCSF0B.ksh ${DDL}/STFILEORA/ifemptytable-ODCSF0B.ksh ${DDL}/STFILEORA/ifexisttable-ODCSF0B.ksh
IDX_KEY VS-CUSTIDENT 1 6

実行レポート

file.shでは、選択したオプションに応じて様々な実行レポートが作成されます。次の例では次のコマンドが使用されます。

file.sh -gmi $HOME/trf STFILEORA
リスト5-28 file.shでオプション-gを使用したとき(ステップ1)に生成されるメッセージ
#########################################################################
Control of configuration STFILEORA
#########################################################################
Control of templates
   Project Templates list file is missing /home2/wkb9/param/file/file-templates.txt
   OK: Use Default Templates list file
     File name is /Qarefine/release/M2_L4_1/convert-data/default/file/file-templates.txt
##########################################################################
Control of Mapper
##########################################################################
COMPONENTS GENERATION
CMD : /Qarefine/release/M2_L4_1/scripts/launch file-converter  -s /home2/wkb9/param/system.desc -mf /home2/wkb9/tmp/mapper-STFILEORA.re.tmp -dmf /home2/wkb9/param/file/Datamap-STFILEORA.re -td /home2/wkb9/tmp -tmps /home2/wkb9/tmp/file-templates-STFILEORA.tmp -target-sgbd oracle11 -target-os unix -varchar2 29 -print-ddl -print-dml -abort
MetaWorld starter
Loading lib: /Qarefine/release/M2_L4_1/Linux64/lib64/localext.so
(funcall LOAD-THE-SYS-AND-APPLY-DMAP-AND-MAPPER)
*File-Converter*: We are in BATCH mode
Comand line arguments: begining of analyze
recognized argument -s value: /home2/wkb9/param/system.desc
recognized argument -mf value: /home2/wkb9/tmp/mapper-STFILEORA.re.tmp
recognized argument -dmf value: /home2/wkb9/param/file/Datamap-STFILEORA.re
recognized argument -td value: /home2/wkb9/tmp
recognized argument -tmps value: /home2/wkb9/tmp/file-templates-STFILEORA.tmp
recognized argument -target-sgbd value: oracle11
recognized argument -target-os value: unix
recognized argument -varchar2 value: 29
recognized argument -print-ddl
recognized argument -print-dml
recognized argument -abort
End of Analyze
Parsing mapper file /home2/wkb9/tmp/mapper-STFILEORA.re.tmp ...
Parsing data-map file /home2/wkb9/param/file/Datamap-STFILEORA.re ...
Parsing system description file /home2/wkb9/param/system.desc ...
Warning! OS clause is absent, assuming OS is IBM
Current OS is IBM-MF
Loading /home2/wkb9/source/symtab-STFILEORA.pob at 10:19:32... done at 10:19:32
Build-Symtab-DL1 #1<a SYMTAB-DL1>
   ... Postanalyze-System-RPL...
sym=#2<a SYMTAB>
PostAnalyze-Common #2<a SYMTAB>
    0 classes
    0 classes
    0 classes
    0 classes
    1 classes
    13 classes
 Point 1 !!
 Point 2 !!
Parsing file /home2/wkb9/source/COPY/ODCSF0.cpy ...
*Parsed 22 lines*
Parsing file /home2/wkb9/source/COPY/MW_SYSOUT.cpy ...
*Parsed 8 lines*
Parsing file /home2/wkb9/source/COPY/ODCSFU.cpy ...
*Parsed 24 lines*
Parsing file /home2/wkb9/source/COPY/ODCSF0B.cpy ...
*Parsed 22 lines*
 Point 3 !!
 Point 4 !!
 Point 5 !!
loading pob file /Qarefine/release/M2_L4_1/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm.pob
Expanding /Qarefine/release/M2_L4_1/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm ...
Writing ODCSF0B.jclunload
Writing MW-SYSOUT.jclunload
Writing ODCSFU.jclunload
Writing ODCSF0.jclunload
[…]
loading pob file /Qarefine/release/M2_L4_1/convert-data/templates/file/dml/generate-post-process.pgm.pob
Expanding /Qarefine/release/M2_L4_1/convert-data/templates/file/dml/generate-post-process.pgm ...
Writing post-process-file.sh
Parsing template file /Qarefine/release/M2_L4_1/convert-data/default/file/file-move-assignation.pgm
Expanding /Qarefine/release/M2_L4_1/convert-data/default/file/file-move-assignation.pgm ...
Writing file-move-assignation.lst
Rest in peace, Refine...
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Generated components are in /home2/wkb9/tmp/Template/STFILEORA
(Optionally in /home2/wkb9/tmp/SQL/STFILEORA)
リスト5-29 file.shでオプション-mを使用したとき(ステップ2)に生成されるメッセージ
#########################################################################
 FORMATTING COBOL LINES
########################################################################
 CHANGE ATTRIBUTE TO KSH or SH scripts
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Components are modified into /home2/wkb9/tmp directory
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Messages produced using the -i option in file.sh (step 3)
INSTALL COMPONENTS INTO SPECIFIC DIRECTORY USING file-move-assignation.lst
===================================================
==_PJ01AAA.SS.VSAM.CUSTOMER_==
 Copied   <Templates>:ODCSF0B.jclunload to <td>/unloading/file/STFILEORA/ODCSF0B.jclunload
 Copied   <Templates>:loadtable-ODCSF0B.ksh to <td>/reload/file/STFILEORA/loadtable-ODCSF0B.ksh
 Copied   <Templates>:RELTABLE-ODCSF0B.pco to <td>/reload/file/STFILEORA/RELTABLE-ODCSF0B.pco
 Copied   <Templates>:ASG_ODCSF0B.cbl to <td>/DML/ASG_ODCSF0B.cbl
 Copied   <Templates>:RM_ODCSF0B.pco to <td>/DML/RM_ODCSF0B.pco
 Copied   <Templates>:DL_ODCSF0B.cbl to <td>/DML/DL_ODCSF0B.cbl
 Copied   <Templates>:UL_ODCSF0B.cbl to <td>/DML/UL_ODCSF0B.cbl
 Copied   <Templates>:PJ01AAA.SS.VSAM.CUSTOMER.rdb to <td>/data/PJ01AAA.SS.VSAM.CUSTOMER.rdb
 Copied   <SQL>:ODCSF0B.sql to <td>/SQL/file/STFILEORA/ODCSF0B.sql
 Copied   <Templates>:cleantable-ODCSF0B.ksh to <td>/SQL/file/STFILEORA/cleantable-ODCSF0B.ksh
 Copied   <Templates>:droptable-ODCSF0B.ksh to <td>/SQL/file/STFILEORA/droptable-ODCSF0B.ksh
 Copied   <Templates>:createtable-ODCSF0B.ksh to <td>/SQL/file/STFILEORA/createtable-ODCSF0B.ksh
 Copied   <Templates>:ifemptytable-ODCSF0B.ksh to <td>/SQL/file/STFILEORA/ifemptytable-ODCSF0B.ksh
 Copied   <Templates>:ifexisttable-ODCSF0B.ksh to <td>/SQL/file/STFILEORA/ifexisttable-ODCSF0B.ksh
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER.REPORT_==
 Copied   <Templates>:loadfile-MW-SYSOUT.ksh to <td>/reload/file/STFILEORA/loadfile-MW-SYSOUT.ksh
 Copied   <Templates>:RELFILE-MW-SYSOUT.cbl to <td>/reload/file/STFILEORA/RELFILE-MW-SYSOUT.cbl
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER.UPDATE_==
 Copied   <Templates>:loadfile-ODCSFU.ksh to <td>/reload/file/STFILEORA/loadfile-ODCSFU.ksh
 Copied   <Templates>:RELFILE-ODCSFU.cbl to <td>/reload/file/STFILEORA/RELFILE-ODCSFU.cbl
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER_==
 Copied   <Templates>:loadfile-ODCSF0.ksh to <td>/reload/file/STFILEORA/loadfile-ODCSF0.ksh
 Copied   <Templates>:RELFILE-ODCSF0.cbl to <td>/reload/file/STFILEORA/RELFILE-ODCSF0.cbl
===================================================
 Copied   <Templates>:close_all_files_STFILEORA.cbl to <td>/DML/close_all_files_STFILEORA.cbl
 Copied   <Templates>:init_all_files_STFILEORA.cbl to <td>/DML/init_all_files_STFILEORA.cbl
 Copied   <Templates>:reload-files.txt to <td>/reload/file/STFILEORA/reload-files.txt
 Copied   <fixed-components>:getfileinfo.cbl to <td>/DML/getfileinfo.cbl
 Copied   <fixed-components>:MWFITECH.cpy to <td>/fixed-copy/MWFITECH.cpy
 Copied   <fixed-components>:MW-PARAM-ERROR.cpy to <td>/fixed-copy/MW-PARAM-ERROR.cpy
 Copied   <fixed-components>:MW-PARAM-ERROR-VAR.cpy to <td>/fixed-copy/MW-PARAM-ERROR-VAR.cpy
 Copied   <fixed-components>:MW-PARAM-TRACE.cpy to <td>/fixed-copy/MW-PARAM-TRACE.cpy
Copied   <fixed-components>:MW-PARAM-TRACE-VAR.cpy to <td>/fixed-copy/MW-PARAM-TRACE-VAR.cpy
 Copied   <fixed-components>:MW-PARAM-GETFILEINFO.cpy to <td>/fixed-copy/MW-PARAM-GETFILEINFO.cpy
 Copied   <fixed-components>:MW-PARAM-GETFILEINFO-VAR.cpy to <td>/fixed-copy/MW-PARAM-GETFILEINFO-VAR.cpy
 Copied   <fixed-components>:MW-PARAM-DML-LOCKING.cpy to <td>/fixed-copy/MW-PARAM-DML-LOCKING.cpy
 Copied   <fixed-components>:ERROR-SQLCODE.cpy to <td>/fixed-copy/ERROR-SQLCODE.cpy
 Copied   <fixed-components>:RunSqlLoader.sh to <td>/reload/bin/RunSqlLoader.sh
 Copied   <fixed-components>:CreateReportFromMVS.sh to <td>/reload/bin/CreateReportFromMVS.sh
===================================================
Dynamic_configuration
 Copied   <Templates>:File-in-table-STFILEORA to /home2/wkb9/param/dynamic-config/File-in-table-STFILEORA
 Copied   <Templates>:../../Conv-ctrl-STFILEORA to /home2/wkb9/param/dynamic-config/Conv-ctrl-STFILEORA
===================================================
post-process
 executed <Templates>:post-process-file.sh
  /home2/wkb9/param/dynamic-config/Conv-ctrl-STFILEORA treated
 =====
 Number of copied files:     37
 Number of executed scripts: 1
 Number of ignored files:    0
######################################################################
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Components are copied into /home2/wkb9/trf directory
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 


詳細処理

この項では、ファイル・コンバータで使用されるコマンドライン構文およびプロセス・ステップのサマリーについて説明します。

ソース・プラットフォームとターゲット・プラットフォームで次の処理に関するプロセスが必要です。

コマンドライン構文

file.sh

名前

file.sh - ファイル移行コンポーネントを生成します。

概要

file.sh [ [-g] [-m] [-i <installation directory>] <configuration name> | -s <installation directory> (<configuration name1>,<configuration name2>,...) ] 

説明

file.shは、z/OSファイルをUNIX Micro FocusファイルおよびOracleデータベースに移行するために使用されるRehosting Workbenchのコンポーネントを生成します。

オプション

生成のオプション

-g <configuration name>

指定された構成に関して$TMPPROJECTでのアンロード用およびロード用コンポーネントの生成をトリガーします。生成内容は、構成ファイルで検出される情報によって異なります。
変更のオプション

-m <configuration name>

生成されたSHELLスクリプトを実行可能にします。COBOLプログラムは、Micro Focus COBOL固定フォーマットに合うように調整されます。「生成されたコンポーネントを変更するファイル」で説明されているシェル・スクリプトが存在している場合は実行されます。
インストールのオプション

-i <installation directory> <configuration name>

インストール・ディレクトリにコンポーネントを配置します。この処理では、file_move_assignation.txtファイルに含まれる情報が使用されます。
最後のオプション

-s <installation directory> (<configuration name 1>, <configuration name 2>, …)

COBOLコンバータとJCLコンバータの構成ファイルを生成できます。このファイルは、プロジェクトのすべての単一ファイルを扱います。
これらすべてのファイルは$PARAM/dynamic-configに作成されます。

file.sh -gmi $HOME/trf FTFIL001

単一使用順序

file.shのオプションを一度に1つ使用する場合は、次の順序で使用する必要があります。

  1. => -g
  2. => -m
  3. => -i
  4. => -s(ステップ1 - 3をすべての構成について実行した後で1回実行する必要があります)

プロセス・ステップ

環境の構成およびコンポーネントのインストール

この項では、ソース・プラットフォームとターゲット・プラットフォームでの準備作業について説明します。

z/OSでのアンロード用コンポーネントのインストール

アンロードで使用されるコンポーネント($HOME/trf/unload/fileに生成される)は、ソースのz/OSプラットフォームにインストールする必要があります(生成されたJCLは、JOBカード、ライブラリ・アクセス・パス、入力ファイルおよび出力ファイルのアクセス・パスなど、特定のサイトの制約に合せた調整が必要な場合があります)。

ターゲット・プラットフォームでの再ロード用コンポーネントのインストール

再ロードで使用されるコンポーネント($HOME/trf/reload/fileに生成される)は、ターゲット・プラットフォームにインストールする必要があります。

次の環境変数をターゲット・プラットフォームで設定する必要があります。

表5-20 ターゲット・プラットフォームの環境変数
変数
DATA_SOURCE
z/OSから転送されてOracle表に再ロードされる、アンロード済ファイルを含むディレクトリの名前。
DATA
ASCII形式に変換されてアプリケーションで使用できる状態になった物理ファイルを含むディレクトリの名前。
BIN
一般的な再ロードと制御のスクリプトの場所($HOME/trf/reload/bin)。
TMPPROJECT
一時ディレクトリ。
MT_LOG
実行ログを含むディレクトリ。
DATA_TRANSCODE
バイナリ・データ・トランスコード・スクリプトで使用される一時ディレクトリ(ASCII形式の一時ファイルを含みます)。
DDL
Oracleオブジェクトの使用に作成されるSQLスクリプトの場所
($HOME/trf/SQL/file/<configuration name>)。
NLS_LANG
Oracle Databaseのグローバリゼーション・サポート・ガイドの指示に従って設定します。

また、次の変数は、『Oracle Tuxedo Application Rehosting Workbenchインストレーション・ガイド』の情報に従って設定する必要があります。

COBOLトランスコード・プログラムのコンパイル

COBOLトランスコード・プログラムは、「コンパイラ・オプション」で指定されるオプションを使用してコンパイルする必要があります。

これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyの存在が必要です。

データのアンロード

各ファイルをアンロードするために、IBM IDCAMS REPROユーティリティを使用するJCLが実行されます。IDCAMS REPROユーティリティによって各ファイルに対して次の2つのファイルが作成されます。

このようなアンロード用JCLの名前は<logical filename>.jclunloadです。

ジョブが正常に終了するとリターン・コード0が送られます。

データの転送

アンロードされたデータ・ファイルは、サイトで使用可能なファイル転送ツール(CFT、FTP、…)を使用して、ソースのz/OSプラットフォームからターゲットのUNIX/Linuxプラットフォームにバイナリ形式で転送する必要があります。

ターゲットのUNIX/Linuxプラットフォームに転送されたファイルは、$DATA_SOURCEディレクトリに格納する必要があります。

データの再ロード

データのトランスコードと再ロードのためのスクリプトが、次のディレクトリに生成されます。

$HOME/trf/reload/file/<configuration name>/.ksh

スクリプト名の形式は次のとおりです。

loadfile-<logical file name>.ksh
loadgdg-<logical file name>.ksh and loadgds-<logical file name>.ksh
注: loadgdg-<logical file name>.kshスクリプトによって、様々なloadgds-<logical file name>.kshスクリプトの実行が可能になります。各loadgdsスクリプトは、1つの単一世代のファイルを再ロードするために使用されます(GDG内の各データセットは、世代またはGeneration Data Set (GDS)と呼ばれます)。

file-to-Oracle変換の場合、スクリプト名は次のフォーマットになります。

loadtable-<logical file name>.ksh
ファイルおよび表のトランスコードと再ロードのコマンド
名前

loadfileまたはloadtableによって、ファイルまたは表のデータのトランスコードと再ロードが行われます。

概要
loadfile-<logical file name>.ksh [-t] [-l] [-c: <method>]
loadtable-<logical file name>.ksh [-t] [-l] [-c: <method>]
オプション

-t

ファイルをトランスコードして再ロードします。

-l

ファイルをトランスコードして再ロードします(-tパラメータと同じアクション)。

-c ftp:<…>:<…>

転送のチェックを実装します(「転送のチェック」を参照)。

GDGファイルのトランスコードと再ロードのコマンド

名前

loadgdgおよびloadgdsによって、データのトランスコードとファイルへの再ロードが行われます。

概要
loadgdg-<logical file name>.ksh [-t] [-l] [-c: <method>]
loadgds-<logical file name>.ksh [-t] [-l] [-c: <method>] 
オプション

-t

GDGのメンバー・ファイルをトランスコードします。

-l

Oracle Tuxedo Application Runtime for Batchユーティリティを使用してGDGのメンバー・ファイルを再ロードします。

-c ftp:<…>:<…>

転送のチェックを実装します(「転送のチェック」を参照)。

転送のチェック

このチェックでは、loadfile-<logical file name>.kshまたはloadtable-<logical file name>.kshの次のオプションを使用します。

-c ftp:<name of transferred physical file>:<name of FTP log under UNIX>

このオプションでは、再ロードの後で、z/OSから転送された物理ファイルとターゲット・プラットフォームで再ロードされたファイルに同数のレコードが含まれることを確認します。このチェックは、FTPログと再ロード・プログラムの実行レポートを使用して実行されます。レコード数が違う場合は、エラー・メッセージが生成されます。


  先頭に戻る       前  次