この章では、ソース・プラットフォーム(z/OS)のファイルをOracle表に移行するために使用されるRehosting Workbench File-to-Oracleコンバータと、生成される移行ツールについて説明します。変換は、Oracle Tuxedo Application Rehosting Workbenchの他のツールによって変換または生成された他のコンポーネントと関連して行われます。
変換プロセスを開始する前に、いくつかの構成ファイルを設定する必要があります。「構成ファイルの説明」を参照してください。
この項は、「ファイル・コンバータ: はじめに」の項の説明の続きです。この項へのいくつかのリンクを含みます。たとえば、生成される様々なオブジェクトについては、「入力コンポーネントのリスト」で説明します。一部のオブジェクトは、VSAMファイルをOracle表に移行するときだけ生成されます(PCOプログラム、SQLファイル、リレーショナル・モジュール、論理モジュール、JCLとCOBOLの変換のためのユーティリティおよび構成ファイル)。
この項の目的は、次のようなRehosting Workbench File-to-Oracleコンバータ・ツールのすべての機能を正確に説明することです。
データの変換は、COBOLプログラムの変換と密接に関連しています。次の項目を参照してください。
z/OSソース・プラットフォームからターゲット・プラットフォームにファイルを移行するとき、VSAMが関係する場合は、ファイルを維持するかデータをOracle表に移行するかをまず確認します。
KSDS、RRDSおよびESDS VSAMファイルは、Oracle表に移行できます。
このためには、まず移行するすべてのVSAMファイルのリストを作成し、次にOracle表に変換する必要があるファイルを識別します。たとえば、後でOracleで使用される永続ファイルやレコード・レベルでのロックが必要なファイルです。
構成名は、変換される一連のファイルに関連します。それぞれのファイルのセットは自由に組み合せることができます。たとえば、各構成はアプリケーションに関連させることも、Oracle Tuxedo Application Runtimeに必要な一連のファイルに関連させることもできます。ファイルのセットは、両方のファイルまたはOracle表ターゲットを含むことができます。
VSAM ESDS
)の場合: Rehosting Workbenchによって技術列*_SEQ_NUM NUMBER
が追加されます。この列は、表に新しい行が追加されるたびに増分されます。表の主キーになります。
VSAM RRDS
)の場合: Rehosting Workbenchによって技術列*_RELATIVE_NUM
が追加されます。列のサイズはデータマップのパラメータ・ファイルで提供される情報から推測され、この列が表の主キーになります。
VSAM
ファイル(VSAM KSDS
)の場合: 重複キーが許可されないかぎり、Rehosting Workbenchによって技術列は追加されません。VSAM
ファイルの主キーは表の主キーになります。データをVSAMファイルからOracle表へ移行するときに、次のルールがCOBOL Picture句に適用されます。
データを移行するプロセスを開始する前に、次の2つの環境変数を設定する必要があります。
$REFINEDIR/convert-data/
db-param.cfg構成ファイルは、次の変数に指定されたディレクトリに配置されます。
$PARAM
ここでは、z/OSファイルのOracle表への移行を制御するために使用できるファイルとそのパラメータを示します。
このファイルは、次の$PARAM
ディレクトリで指定されるディレクトリに作成されます。
$PARAM/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>
# optional parameter
target_cobol:<target_cobol>
#
# specific parameters for FILE to RDBMS conversion
file:char_limit_until_varchar:<char_limit>
生成されるコンポーネントは、プロジェクトの独自のスクリプトを使用して変更できます。これらのスクリプト(sed、awk、perl、…)は次のファイルに含める必要があります。
$PARAM/file/file-modif-source.sh
このファイルが存在している場合、生成プロセスの最後に自動的に実行されます。このファイルは、引数として<configuration name
>を使用して呼び出されます。
このファイルは、Rehosting Workbenchのインストール時に所定の場所に配置され、様々な移行ツールの生成を実行するテンプレートが含まれます。このファイルの場所は次のとおりです。
$REFINEDIR/convert-data/default/file/file-templates.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-to-FileおよびFile-to-Oracleの両方の移行パラメータが含まれます。 |
必要な場合には、別のバージョンのfile-template.txt
ファイルを$PARAM/file
ディレクトリに配置できます。代替ファイルの使用は、file.sh
の実行中にメッセージによって示されます。
##########################################################################
Control of templates
OK: Use Templates list file from current project:
File name is /home2/wkb9/param/file/file-templates.txt
##########################################################################
このファイルはRehosting Workbenchのインストール時に配置され、様々なインストール・ディレクトリに生成されたコンポーネントの転送を制御します。このファイルは、file.sh -i
を使用してfile.sh
が起動されたときに、インストール・フェーズでコピーする各コンポーネントの場所を指定します。
$REFINEDIR/convert-data/default/file/file-move-assignation.pgm
このファイルは、ファイル先頭にある指示に従って変更できます。
[…]
*@ (c) Metaware:file-move-assignation.pgm. $Revision: 1.2 $
*release_format=2.4
*
* 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
* If the 1st character is "!", target directory contains both directory and
* target file name.
*
[…]
注意: | このファイルには、File-to-FileおよびFile-to-Oracleの両方の移行パラメータが含まれます。 |
これは、システムの物理ファイルに関する情報を追加または変更するためにRehosting Workbenchファイル・コンバータによって使用される構成ファイルです。
「ファイル・コンバータ: はじめに」の「データマップ・ファイル」を参照してください。
これは、移行する各ファイルを関連付けるためにRehosting Workbench File-to-Oracleコンバータによって使用される構成ファイルです。
「ファイル・コンバータ: はじめに」の「マッパー・ファイル」を参照してください。
注意: | マッパー・ファイルでは、converted 句をRDBMS表ターゲットに使用する必要があります。 |
「アクセス機能およびユーティリティ・プログラム」を参照してください。
|
|
「アクセス機能およびユーティリティ・プログラム」を参照してください。
|
|
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 File-to-OracleコンバータではフィールドNIV1 PIC 9(5)
のみが処理されます。サブフィールドを廃棄しないと、NIV1
フィールドは無視され、2つのフィールドNIV2A
とNIV2B
が処理されます。
このREDEFINESの例には特定のオプションは含まれません。
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).
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のすべての単一フィールドが処理されます)。
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)
);
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).
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フィールドのみが維持されます)。
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)
);
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).
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つずつ生成されます)。
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]
次の例では、フィールドDPODP-DMDCHQ、DPONO-PRDTIVおよびDP5CP-VALZONNUM
が再定義されています。
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).
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
が数値かどうかをテストします。
Oracle Tuxedo Application Rehosting Workbench File-to-Oracleコンバータは、各ファイルに関連付けられている記述が必要です。このため、最初の手順でCOBOLコピーの記述を作成します。
COBOL記述ファイルが用意されると、mapper-<configuration name>.re
ファイルに指定されているコピー・ファイルを$PARAM/file/recs-source
ディレクトリに配置する必要があります。
ソース・プラットフォームのCOBOLコピー・ブックを使用してファイルを記述する場合(「COBOL記述」を参照)、コピー・ブックの場所が直接使用されます。
Rehosting Workbench File-to-Oracleコンバータによって生成される一時オブジェクトは、次の場所に格納されます。
$TMPPROJECT
$TMPPROJECT/Template/<configuration name>
$TMPPROJECT/outputs/<configuration name>
注意: | $TMPPROJECT 変数は$HOME/tmp に設定されます。 |
-i $HOME/trf
オプションで生成されるアンロード・コンポーネントおよびロード・コンポーネントは、次の場所に配置されます。
RELTABLE-<target file name>.pco loadtable-<target file name>.ksh |
|
「戦略マッピング句の構文およびパラメータ」を参照してください。
|
注意: | <target table name >は、ターゲット・プラットフォームでのファイル名です。このファイル名はマッパー・ファイルで指定されます。 |
次の項では、z/OSファイルの移行中に生成されるオブジェクトと、それらのオブジェクトが配置されるディレクトリを示します。
ファイルのアンロードに使用されるJCLは、file.sh
コマンドの-g
オプションを使用して生成されます。その後、(-i
オプションを使用して)次の場所にインストールされます。
$HOME/trf/unload/file/<configuration name>
各JCLには、2つの手順が含まれ、z/OS IDCAMS REPRO
ユーティリティを使用して1つのファイルをアンロードします。JCLのリターン・コードは正常終了では0または4です。
JCLの名前は<file name>.jclunload
です。
注意: | .jclunload 拡張子は、z/OSで実行する場合には削除する必要があります。 |
生成されるJCLは、特定のサイトの制約に合せるために次のような調整が必要になることがあります。
<
cardjob_parameter_id>
<data>
//<crdjob> <cardjob_parameter_1>,'FIL QSAM',
// <cardjob_parameter_2>
// <cardjob_parameter_3>
// <cardjob_parameter_4>
//*@ (C) Metaware:jcl-unload-MVS-REPRO.pgm. $Revision: 1.6 $
//********************************************************
//* UNLOAD THE FILE:
//* <datain>.QSAM.CUSTOMER
//* INTO <data>.AV.QSAM
//* LENGTH=266
//******************************************************
//*------------------------------------------*
//* DELETE DATA AND LOG FILES
//*------------------------------------------*
//DEL EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
DELETE <data>.AV.QSAM.LOG
DELETE <data>.AV.QSAM
SET MAXCC=0
//*------------------------------------------*
//* LAUNCH REPRO UTILITY
//*------------------------------------------*
//COPYFILE EXEC PGM=IDCAMS
//SYSPRINT DD SPACE=(CYL,(150,150),RLSE),
// DISP=(NEW,CATLG),
// UNIT=SYSDA,
// DSN=<data>.AV.QSAM.LOG
//SYSOUT DD SYSOUT=*
//INDD DD DISP=SHR,
DSN=METAW00.QSAM.CUSTOMER
//OUTD DD SPACE=(CYL,(150,150),RLSE),
// DISP=(NEW,CATLG),
// UNIT=SYSDA,
// DCB=(LRECL=266,RECFM=FB),
// DSN=<data>.AV.QSAM
//SYSIN DD *
REPRO INFILE(INDD) OUTFILE(OUTD)
/*
COBOLトランスコード・プログラムは、file.sh
コマンドの-g
オプションを使用して生成されます。その後、(-i
オプションを使用して)次の場所にインストールされます。
$HOME/trf/reload/file/<configuration name>/src
プログラムの名前はRELTABLE-<logical file name>.pco
です。
プログラムは、「コンパイラ・オプション」で説明するターゲットCOBOLのコンパイル・オプションおよびOracleプリコンパイラ・オプションを使用してコンパイルする必要があります。
これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyコピー・ファイルの存在が必要です。このファイルについては、「コードセットの変換」で説明しています。
これらのファイルは、入力されるファイルを読み取り、SQL INSERT動詞を使用してOracle表に直接ロードします。
SELECT MW-ENTREE
ASSIGN TO "ENTREE"
ORGANIZATION IS RECORD SEQUENTIAL
ACCESS IS SEQUENTIAL
FILE STATUS IS IO-STATUS.
技術列のあるOracle表の場合、SEQUENCEオブジェクトが作成されます。
CREATE SEQUENCE <table_name>_<type>_SEQ START WITH <num_rows>
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シェル・スクリプトは、file.sh
コマンドの-g
オプションを使用して生成されます。その後、(-i
オプションを使用して)次の場所にインストールされます。
$HOME/trf/reload/file/<configuration name>
スクリプトの名前はloadtable-<logical file name>.ksh
です。
これらには、DDL作成フェーズ、トランスコード(またはロード)フェーズとチェック・フェーズが含まれます。これらの異なるフェーズは別に開始することができます。
スクリプトを実行すると、実行ログが$MT_LOG/<logical file name>.log
に生成されます。
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_ENTREE
およびDD_SORTIE
変数を設定します。
スクリプトの3つの実行フェーズでは様々なメッセージが生成されます。これらのメッセージの説明は、「Oracle Tuxedo Application Rehosting Workbenchのメッセージ」にあります。
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"
ORACLE DDLは、file.sh
コマンドの-g
オプションを使用して生成されます。その後、(-i
オプションを使用して)次の場所にインストールされます。
$HOME/trf/SQL/file/<schema name>
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>)
CONSTRAINT <fk_constraint_name> FOREIGN KEY (<target_column_name>)]
);
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
アクセス機能では、次の変数が使用されます。
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操作で、FILE-CODE-F
変数はキーワードOPENを含む必要があります。
FILE-OPEN-MODE
変数は、次のように実行するOPENのタイプを含む必要があります。
CLOSE操作では、FILE-CODE-F
変数はキーワードCLOSEを含む必要があります。
CLOSE LOCK操作では、FILE-CODE-F
変数はキーワードCLOSE-LOCKを含む必要があります。
ファイル・アクセス・モードに応じて、DELETE操作の対象は、現在のレコードまたはファイル・キーによって指定されるレコードになります。
機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。
注意: | INTO句が検出されると、指定されたフィールドの値を設定するために、呼出しの後でMOVE操作が追加されます。 |
機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。
注意: | FROM句が検出されると、指定されたフィールドの値を設定するために、呼出しの前にMOVE操作が追加されます。 |
相対ファイル、索引付きファイル、またはファイルの二次キーの有無にかかわらず、機能コードはSTARTの厳密なタイプによって異なります。
機能コードは、ファイル・アクセス・モードと必要な読取りタイプ(順次読取り、主キーの読取りまたは二次キーの読取り)によって異なります。
注意: | FROM句が検出されると、指定されたフィールドの値を設定するために、呼出しの前にMOVE操作が追加されます。 |
特定のアクセス機能によって次のコピー・ファイルが使用されます。これらは、Rehosting Workbenchをインストールするときに< installation platform>/fixed-copy/
ディレクトリに配置する必要があります。
これらのKSHスクリプトは、file.sh
の-g
オプションを使用して生成され、-i
オプションを使用して$HOME/trf/SQL/file/<configuration name>
にインストールされます。必要なときにOracle Tuxedo Application Runtime Batchによって使用されます。
VSAMファイルがOracle表に移行されると、desc.vsam
ファイルとenvfile_tux
ファイルが$HOME/trf/config/tux/
ディレクトリに生成されます。これらはOracle Tuxedo Application Runtime CICSによって使用されます。
これらのファイルが生成されるのは、file.sh
コマンドで-s
オプションを使用するときです。
このファイルは、オブジェクト名を変更するためにRehosting Workbench COBOLコンバータおよびJCLコンバータによって使用されます。
これらのファイルが作成されるのはVSAMファイルがOracle表に変換されるときです。これらは、ソース・プラットフォームのz/OSファイルとターゲット・プラットフォームの対応するOracle表の間の技術的な違いを調整するために、Oracle Tuxedo Application Runtime Batchによって使用されます。
名前は<source platform physical file name>.rdb
です。
${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>
次の例は、索引付きVSAMファイルをOracle表に移行するときに生成されます。ソース・プラットフォームでのVSAMファイルの名前はPJ01AAA.SS.VSAM.CUSTOMER
です。
${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
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
##########################################################################
Control of configuration STFILEORA
##############################
Control of templates
OK: Use Default Templates list file
File name is /Qarefine/release/M3_L3_6/convert-data/default/file/file-templates.txt
##############################
Control of Mapper
##############################
COMPONENTS GENERATION
CMD : /Qarefine/release/M3_L3_6/scripts/launch file-converter -s /home2/wkb4/param/system.desc -mf /home2/wkb4/tmp/mapper-STFILEORA.re.tmp -dmf /home2/wkb4/param/file/Datamap-STFILEORA.re -td /home2/wkb4/tmp -tmps /home2/wkb4/tmp/file-templates-STFILEORA.tmp -target-sgbd oracle11 -target-os unix -varchar2 29 -print-ddl -print-dml -abort
MetaWorld starter
Loading lib: /Qarefine/release/M3_L3_6/Linux64/lib64/localext.so
(funcall LOAD-THE-SYS-AND-APPLY-DMAP-AND-MAPPER)
FILE-0092: *File-Converter*: We are in BATCH mode
FILE-0087: * Comand line arguments: begining of analyze
FILE-0088: * recognized argument -s value: /home2/wkb4/param/system.desc
FILE-0088: * recognized argument -mf value: /home2/wkb4/tmp/mapper-STFILEORA.re.tmp
FILE-0088: * recognized argument -dmf value: /home2/wkb4/param/file/Datamap-STFILEORA.re
FILE-0088: * recognized argument -td value: /home2/wkb4/tmp
FILE-0088: * recognized argument -tmps value: /home2/wkb4/tmp/file-templates-STFILEORA.tmp
FILE-0088: * recognized argument -target-sgbd value: oracle11
FILE-0088: * recognized argument -target-os value: unix
FILE-0088: * recognized argument -varchar2 value: 29
FILE-0089: * recognized argument -print-ddl
FILE-0089: * recognized argument -print-dml
FILE-0089: * recognized argument -abort
FILE-0091: * End of Analyze
FILE-0094: * Parsing mapper file /home2/wkb4/tmp/mapper-STFILEORA.re.tmp ...
FILE-0095: * Parsing data-map file /home2/wkb4/param/file/Datamap-STFILEORA.re ...
FILE-0096: * Parsing system description file /home2/wkb4/param/system.desc ...
Warning! OS clause is absent, assuming OS is IBM
Current OS is IBM-MF
Loading /home2/wkb4/source/symtab-STFILEORA.pob at 16:38:42... done at 16:38:42
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
Loading /home2/wkb4/source/BATCH/pob/RSSABB01.cbl.shrec...
Loading /home2/wkb4/source/COPY/pob/ODCSF0.cpy.cdm...
Loading /home2/wkb4/source/COPY/pob/ODCSF0B.cpy.cdm...
Loading /home2/wkb4/source/COPY/pob/ODCSFU.cpy.cdm...
FILE-0001: * Point 1 !!
FILE-0002: * Point 2 !!
FILE-0010: * Parsing file /home2/wkb4/source/COPY/ODCSF0.cpy ...
*Parsed 22 lines*
FILE-0010: * Parsing file /home2/wkb4/source/COPY/MW_SYSOUT.cpy ...
*Parsed 8 lines*
FILE-0010: * Parsing file /home2/wkb4/source/COPY/ODCSFU.cpy ...
*Parsed 24 lines*
FILE-0010: * Parsing file /home2/wkb4/source/COPY/ODCSF0B.cpy ...
*Parsed 22 lines*
FILE-0003: * Point 3 !!
FILE-0004: * Point 4 !!
FILE-0005: * Point 5 !!
FILE-0052: * loading pob file /Qarefine/release/M3_L3_6/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm.pob
FILE-0085: * Expanding /Qarefine/release/M3_L3_6/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm ...
FILE-0054: * Writing MW-SYSOUT.jclunload
FILE-0054: * Writing ODCSFU.jclunload
FILE-0054: * Writing ODCSF0Q.jclunload
[...]
FILE-0052: * loading pob file /Qarefine/release/M3_L3_6/convert-data/templates/file/dml/generate-post-process.pgm.pob
FILE-0085: * Expanding /Qarefine/release/M3_L3_6/convert-data/templates/file/dml/generate-post-process.pgm ...
FILE-0054: * Writing post-process-file.sh
FILE-0053: * Parsing template file /Qarefine/release/M3_L3_6/convert-data/default/file/file-move-assignation.pgm
FILE-0085: * Expanding /Qarefine/release/M3_L3_6/convert-data/default/file/file-move-assignation.pgm ...
FILE-0054: * Writing file-move-assignation.lst
Rest in peace, Refine...
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Generated components are in /home2/wkb4/tmp/Template/STFILEORA
(Optionaly in /home2/wkb4/tmp/SQL/STFILEORA)
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
#########################################################################
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-to-Oracleコンバータで使用されるコマンドライン構文、およびプロセス・ステップのサマリーについて説明します。
ソース・プラットフォームとターゲット・プラットフォームで次の処理に関するプロセスが必要です。
file.sh
- ファイル移行コンポーネントを生成します。
file.sh [ [-g] [-m] [-i <installation directory>] <configuration name> | -s <installation directory> (<configuration name1>,<configuration name2>,...) ]
file.sh
は、z/OSファイルをOracleデータベースに移行するために使用されるRehosting Workbenchのコンポーネントを生成します。
file.sh -gmi $HOME/trf FTFIL001
file.sh
のオプションを一度に1つ使用する場合は、次の順序で使用する必要があります。
この項では、ソース・プラットフォームとターゲット・プラットフォームでの準備作業について説明します。
アンロードで使用されるコンポーネント($HOME/trf/unload/file
に生成される)は、ソースのz/OSプラットフォームにインストールする必要があります(生成されたJCLは、JOBカード、ライブラリ・アクセス・パス、入力ファイルおよび出力ファイルのアクセス・パスなど、特定のサイトの制約に合せた調整が必要な場合があります)。
再ロードで使用されるコンポーネント($HOME/trf/reload/file
に生成される)は、ターゲット・プラットフォームにインストールする必要があります。
次の環境変数をターゲット・プラットフォームに設定する必要があります。
また、次の変数は、『Oracle Tuxedo Application Rehosting Workbenchインストレーション・ガイド』の情報に従って設定する必要があります。
COBOLトランスコード・プログラムは、「コンパイラ・オプション」で指定されるオプションを使用してコンパイルする必要があります。
これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpy
の存在が必要です。
各ファイルをアンロードするために、IBM IDCAMS REPROユーティリティを使用するJCLが実行されます。IDCAMS REPROユーティリティによって各ファイルに対して次の2つのファイルが作成されます。
このようなアンロード用JCLの名前は<logical filename>.jclunload
です。
アンロードされたデータ・ファイルは、サイトで使用可能なファイル転送ツール(CFT、FTP、…)を使用して、ソースのz/OSプラットフォームからターゲットのUNIX/Linuxプラットフォームにバイナリ形式で転送する必要があります。
ターゲットのUNIX/Linuxプラットフォームに転送されたファイルは、$DATA_SOURCE
ディレクトリに格納する必要があります。
データのトランスコードおよび再ロードを可能にするスクリプトが次のディレクトリに生成されます。
$HOME/trf/reload/file/<configuration name>/
file-to-Oracle変換の場合、スクリプト名は次のフォーマットになります。
loadtable-<logical file name>.ksh
loadtable
によって、データのトランスコードと表への再ロードが行われます。
loadtable-<logical file name>.ksh [-t] [-l] [-c: <method>]
この確認は次のloadtable-<論理ファイル名>.ksh
のオプションを使用します。
-c ftp:<name of transferred physical file>:<name of FTP log under UNIX>
このオプションでは、再ロードの後で、z/OSから転送された物理ファイルとターゲット・プラットフォームで再ロードされたOracle表に同数のレコードが含まれることを確認します。このチェックは、FTPログと再ロード・プログラムの実行レポートを使用して実行されます。レコード数が異なる場合は、エラー・メッセージが生成されます。