リファレンス・ガイド

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

File-to-Fileコンバータ

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

この章には次のトピックが含まれます:

 


File-to-Fileコンバータの概要

目的

この項の目的は、次のようなTuxedo ART Workbench File-to-Fileコンバータ・ツールのすべての機能を正確に説明することです。

構造

関連項目

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

前の章では、共通するすべての使用方法を説明しています。

処理するファイル編成

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

Tuxedo ART Workbench File-to-Fileコンバータは、ソース・プラットフォームの形式(順次、相対または索引付きファイル)をターゲット・プラットフォーム上で保持するファイル向けに使用されます。ターゲット・プラットフォームでは、これらのファイルはソース・プラットフォームでの編成に相当するMicro Focus COBOLまたはCOBOL-ITのファイル編成を使用します。

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

表6-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編成になります。

注: enable-buffer-converterがシステム記述ファイルに設定されている場合、データ・バッファに存在するソース・データが呼出し元プログラムから渡され、変換後の出力データが同じデータ・バッファを介して呼出し元のプログラムに送り返されます。
注: enable-reverse-converterがシステム記述ファイルに設定されている場合、ソース・ファイルはUNIX/Linuxプラットフォーム上にあり、ファイル形式はレコード・シーケンシャルのみに対応します。変換後の出力ファイル形式はz/OSシーケンシャルです。

Oracle Tuxedo Application Rehosting Workbenchの構成名

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

環境変数

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

 


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

ファイルの場所

file.shの場所

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

$REFINEDIR/convert-data/

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

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

$PARAM

構成ファイルの説明

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

db-param.cfg

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

$PARAM/db-param.cfg
リスト6-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>
# optional parameter 
target_cobol:<target_cobol>
hexa-map-file:<hexa-map-file>
#
# specific parameters for FILE to RDBMS conversion
file:char_limit_until_varchar:<char_limit>
パラメータと構文

表6-2 db-param.cfgのパラメータ
パラメータ
説明
一般的なパラメータ
<target_rdbms_name>
ターゲットRDBMSの名前
oracle
<target_rdbms_version>
ターゲットRDBMSのバージョン
11
<target_os>
ターゲット・オペレーティング・システムの名前
unixまたはlinux
オプションのパラメータ
<target_cobol>
COBOL言語の名前
デフォルト値はMicro Focus COBOLではcobol_mfです。
このCOBOL言語の選択は、アクセス機能の生成に影響します。
cobol_mf
cobol_it
<hexa-map-file>
EBCDIC (z/OSのコード・セット)とASCII (Linux/UNIXのコード・セット) 16進数値間のマッピング表ファイルを指定します。hexa-map-fileを指定しない場合は、警告がロギングされます。
 
file-to-oracle変換固有のパラメータ
<char_limit>
未適用
 

注: この項では、ファイル・コンバータ・ツールについて説明します。構成ファイルを使用して、z/OSファイルをUNIX/LinuxまたはRDBMS表に移行できます。

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

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

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

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

file-template.txt

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

$REFINEDIR/convert-data/default/file/file-templates.txt
リスト6-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
#VAR:TEMPLATES#/loading/unix-file/reload-reverse-files-ksh.pgm
#VAR:TEMPLATES#/loading/unix-file/reload-mono-rec.pgm
#VAR:TEMPLATES#/loading/unix-file/convert-buffer-zos-to-linux.pgm
#VAR:TEMPLATES#/loading/unix-file/convert-buffer-linux-to-zos.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の実行中にメッセージによって示されます。

リスト6-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.pgm

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

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

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

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

リスト6-4 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の両方の移行パラメータが含まれます。

データマップ・ファイル

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

「ファイル・コンバータ: はじめに」「データマップ・ファイル」を参照してください。

マッパー・ファイル

これは、移行する各ファイルを関連付けるためにTuxedo ART Workbench File-to-Fileコンバータによって使用される構成ファイルです。

「ファイル・コンバータ: はじめに」「マッパー・ファイル」を参照してください。

注: マッパー・ファイルでは、converted句は、RDBMS表ターゲットのみに関連付けられます。この句をFile-to-Fileコンバータで使用しないでください。

表6-3 File-to-Fileコンバータ用のマッパー・ファイル固有のパラメータ
パラメータ
説明
file <physical filename>
ZOS物理ファイル名。データマップ・ファイルで使用される名前です。
converted
attributes LOGICAL_MODULE_ONLY句とともに使用して、このファイルをMicro Focus COBOLまたはCOBOL-ITファイルとして保持することを指定します。これには、Oracle Tuxedo Application Runtime CICSによる論理アクセスCOBOL関数でアクセスします。
前述のattributes句がない場合、このファイルはRDBMS表に変換されることを示します。このファイルをファイルに変換するように示すには、この句を無視する必要があります。
converted句とtransferred句を組み合せることができます。
transferred
ファイルがロードおよび再ロードされることを指定します(converted句と組み合せることができます)。
include “<path/COPY name>”
移行するファイルの記述コピーのアクセス・パスと名前。
map record <record name> defined in <“path/COPY name”>
  • record name: コピー記述におけるレベル01のフィールド名に対応します。
  • path/COPY name: 移行するファイルの記述コピーのアクセス・パスと名前に対応します。
注: map recordパラメータとsource recordパラメータでは、同じrecord namedescriptive copyを使用する必要があります。これらは前方互換性の確保のために使用されます。
source record <record names> defined in <"path/COPY name">
  • record name: 移行するファイルのコピー記述におけるレベル01のフィールド名に対応します。
  • path/COPY name: 移行するファイルの記述コピーのアクセス・パスと名前に対応します。

注: map recordパラメータとsource recordパラメータでは、同じrecord namedescriptive copyを使用する必要があります。これらは前方互換性の確保のために使用されます。

Logical name <logical file name>
論理ファイル名は最大8文字でユーザーが選択します。この名前は、Tuxedo ART Workbenchの様々なツールにより作成されるオブジェクト(COBOL、JCL)に名前を付けるために使用されます。
Converter name <program name>
論理ファイル名と同じ名前および用途。
attributes <attribute clause>
File-to-Fileコンバータでは、このオプション句を使用して、論理モジュール・アクセス機能を生成できます。attribute句は次のようになります。
  • LOGICAL_MODULE_ONLY
この場合は、ASG_<logical file name>アクセス機能のみが生成されます。

識別ルール

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

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

表6-4 識別ルール
構文
説明
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が再定義されています。

リスト6-5 識別ルールの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).

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

リスト6-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が数値かどうかをテストします。

COBOL記述

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

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

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

 


出力ファイルの説明

ファイルの場所

一時ファイルの場所

Tuxedo ART Workbench File-to-Fileコンバータによって生成される一時オブジェクトは、次の場所に格納されます。

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

ログ・ファイルの場所

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

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

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

表6-5 コンポーネントの場所
「場所」
内容
$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
世代別データ・グループ・ファイルの移行では、プログラムとKSHの名前は次のとおりです。
RELFILE-<target file name>.cbl
loadgdg-<target file name>.ksh
loadgds-<target file name>.ksh
enable-buffer-converterがシステム記述ファイルに設定されている場合、追加で2つのプログラムが生成され、次の名前が付けられます。
<target file name>1.cbl
<target file name>2.cbl
enable-reverse-converterがシステム記述ファイルに設定されている場合、追加で1つのプログラムと1つのスクリプト・ファイルが生成され、次の名前が付けられます。
RELFILE-R-<target file ame>.cbl
Loadfile-R-<target file name>.ksh
$HOME/trf/DML
マッパー・ファイルでattributes句を使用した場合、アクセス機能が生成されます。
ASG_<target file name>.cbl

注: <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
特にGDGファイルの場合、各VERSIONの1つのSTEP

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

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

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

QSAMおよびVSAMファイルのアンロード用JCL
リスト6-7 アンロード用JCLの例
//<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)
/*

世代別データ・グループのアンロード用JCL

世代別データ・グループ編成の世代別データ・セットのアンロードに使用されるJCLは、file.shコマンドの-gオプションを使用しても生成されます。

このJCLでは、各VERSIONの2つのファイルが作成されます(バージョンの数は、LIMIT句で指定されます)。

作成されるファイルの名前は次のとおりです。

この場合の<id>は、すべてのバージョンを識別する数値です(0: 現在のバージョン、1: 1つ前のバージョン、2: ...)

リスト6-8 GDGのアンロード用JCLの例
//<crdjob> <cardjob_parameter_1>,'GDG GDG',
//         <cardjob_parameter_2>
//         <cardjob_parameter_3>
//         <cardjob_parameter_4>
//*@ (C) Metaware:jcl-unload-GDG-MVS-REPRO.pgm. $Revision: 1.5 $
//******************************************************
//* UNLOAD GDS FILES
//*      <datain>.PJ01DDD.TEST.GDG
//* INTO <data>.M2L3.GDG.DAT<ID>
//* CURRENT FILE HAS <ID>=0
//* OLDEST FILE HAS GREATEST <ID>.
//*      LENGTH=266
//*      LIMIT=5
//*      NOEMPTY
//*      SCRATCH
//******************************************************
//*------------------------------------------*
//* DELETE DATA AND LOG FILES
//*------------------------------------------*
//DEL       EXEC PGM=IDCAMS
//SYSPRINT  DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//SYSIN     DD *
  DELETE <data>.M2L3.GDG.LOG0
  DELETE <data>.M2L3.GDG.DAT0
  DELETE <data>.M2L3.GDG.LOG1
  DELETE <data>.M2L3.GDG.DAT1
  DELETE <data>.M2L3.GDG.LOG2
  DELETE <data>.M2L3.GDG.DAT2
  DELETE <data>.M2L3.GDG.LOG3
  DELETE <data>.M2L3.GDG.DAT3
  DELETE <data>.M2L3.GDG.LOG4
  DELETE <data>.M2L3.GDG.DAT4
  SET MAXCC=0
//*------------------------------------------*
//* LAUNCH REPRO UTILITY
//*------------------------------------------*
//*** 0 ***
//COPYFI0  EXEC PGM=IDCAMS
//SYSPRINT DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DSN=<data>.M2L3.GDG.LOG0
//SYSOUT   DD SYSOUT=*
//INDD     DD DISP=SHR,
//            DSN=PJ01DDD.TEST.GDG(0)
//OUTD     DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DCB=(LRECL=266,RECFM=FB),
//            DSN=<data>.M2L3.GDG.DAT0
//SYSIN    DD *
   REPRO INFILE(INDD) OUTFILE(OUTD)
/*
//*** 1 ***
//COPYFI1  EXEC PGM=IDCAMS
//SYSPRINT DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DSN=<data>.M2L3.GDG.LOG1
//SYSOUT   DD SYSOUT=*
//INDD     DD DISP=SHR,
//            DSN=PJ01DDD.TEST.GDG(-1)
//OUTD     DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DCB=(LRECL=266,RECFM=FB),
//            DSN=<data>.M2L3.GDG.DAT1
//SYSIN    DD *
   REPRO INFILE(INDD) OUTFILE(OUTD)
/*
//*** 2 ***
[...]
/*
//*** 3 ***
[...]
/*
//*** 4 ***
//COPYFI4  EXEC PGM=IDCAMS
//SYSPRINT DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DSN=<data>.M2L3.GDG.LOG4
//SYSOUT   DD SYSOUT=*
//INDD     DD DISP=SHR,
//            DSN=PJ01DDD.TEST.GDG(-4)
//OUTD     DD SPACE=(CYL,(150,150),RLSE),
//            DISP=(NEW,CATLG),
//            UNIT=SYSDA,
//            DCB=(LRECL=266,RECFM=FB),
//            DSN=<data>.M2L3.GDG.DAT4
//SYSIN    DD *
   REPRO INFILE(INDD) OUTFILE(OUTD)
/*

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

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

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

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

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

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

これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyコピー・ファイルの存在が必要です。このファイルについては、「コードセットの変換」の章で説明しています。

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

リスト6-9 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がトランスコードの開始時に出力されます。
リスト6-10 FILE CONTROLセクション - トランスコード・プログラム用
SELECT MW-ENTREE
           ASSIGN TO "ENTREE"
           ORGANIZATION IS RECORD SEQUENTIAL
           ACCESS IS SEQUENTIAL
           FILE STATUS IS IO-STATUS.
z/OS形式とUNIX/Linux形式間のデータ変換

「z/OSファイルのUNIX/Linuxファイルへの移行」の前述の構成に基づき、enable-buffer-converterがシステム記述ファイルに構成されている場合は、別の2つのCOBOLプログラムが同じディレクトリ内に生成されます。

これらの2つのCOBOLプログラムは、別のプログラム/アプリケーション(IMSアプリケーションなど)によって起動でき、これらを起動するためにスクリプト・ファイルが生成されることはありません。

これらを呼び出すためのインタフェースは同じです。

  1. バッファ・アドレス:
  2. 変換する必要があるデータを含んでおり、変換後のデータを含む出力パラメータとしても機能します。バッファ内にあるデータは常に、関連するコピー・ブックの最初からマッピングされます。

  3. 長さ(PIC S9(8) COMP-5):
  4. 変換されるデータの長さを示します。このパラメータのロジックは次のとおりです。

    If Length = 0 then

    出力値としてLengthをコピー・ブックの長さに設定し、変換を行いません。

    Else If Length > コピー・ブックの長さ

    警告を表示し、出力値としてLengthをコピー・ブックの長さに設定して、変換を行いません。

    Else

    バッファ内のデータを変換し、Lengthパラメータは変更しません。

これらのプログラムのコンパイルには、プロジェクトのために調整されたCONVERTMW.cpyコピー・ファイルの存在が必要です。このファイルについては、「コピーセットの変換」の章で説明しています。このCONVERTMW.cpyは、「z/OSファイルのUNIX/Linuxファイルへの移行」で使用するものとは異なるので注意してください。

プログラムは、「コンパイラ・オプション」で説明するターゲットCOBOLコンパイル・オプションを使用してコンパイルする必要があります。さらに、<logical file name>1.cblおよび<logical file name>2.cbl.を正しくコンパイルするためには、次のコンパイル・オプションを追加する必要があります。

Micro Focus COBOLの場合、コンパイル・オプションIBMCOMPおよびNOTRUNCを追加する必要があります。COBOL-ITの場合、コンパイル・オプションvariable-rec-pad-mf:yesを追加する必要があります。

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

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

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

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

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

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

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

リスト6-11 ファイル再ロード用スクリプトの変数
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_ENTREEおよびDD_SORTIE変数を設定します。
注: use-file-catalogがシステム記述ファイルに設定されている場合、生成されたスクリプト・ファイルのDD_SORTIEから"${DATA}が削除されます。DD_SORTIEの名前を変更する場合は、スクリプトを呼び出す前に、${DATA}を含まないファイル名を使用してDD_SORTIE変数を設定します。

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

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

UNIX/Linuxファイルをz/OSファイルに移行するための再ロード用Kornシェル・スクリプト

enable-reverse-converterがシステム記述ファイルに設定されている場合、スクリプト・ファイルが生成され、loadfile-R-<logical file name>.kshという名前が付けられます。これらには、トランスコード(またはロード)フェーズとチェック・フェーズが含まれます。これらの異なるフェーズは別に開始することができます。

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

各スクリプトの最初に変数が設定されます。この形式は、「z/OS QSAM/VSAMファイルをUNIX/Linux Filesファイルに移行するための再ロード用Kornシェル・スクリプト」の章に示されているものとほとんど同じです。

注: ファイル名を変更するには、スクリプトを呼び出す前にDD_ENTREEおよびDD_SORTIE変数を設定します。
注: use-file-catalogがシステム記述ファイルに設定されている場合でも、生成されたスクリプト・ファイルのDD_SORTIEから${DATA}は削除されません。DD_SORTIEの名前を変更する場合は、スクリプトを呼び出す前に、常に${DATA}を含むファイル名を使用してDD_SORTIE変数を設定します。
z/OS世代別データ・セットをUNIX/Linuxファイルに移行するための再ロード用Kornシェル・スクリプト

マスター・スクリプトの名前はloadgdg-<logical file name>.kshです。

各バージョン、つまり各世代別データ・セットでは、スクリプト: loadgds-<logical file name>.kshを呼び出し、フェーズをチェックしません。loadgdg-*kshスクリプトには、トランスコード(またはロード)フェーズが含まれます。これらの異なるフェーズは別に開始することができます。

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

リスト6-12は、各スクリプトの最初に設定される変数を示しています。

リスト6-12 ファイル再ロード用スクリプトの変数
f="@ (c) Metaware:reload-GDG-files-ksh.pgm. $Revision: 1.6 $null"
echo "Reloading GDG file GDG GDG"
# Remarks:
#   DD_ENTREE* contains only filename prefix! This script add .DAT<ID> prefix
#   DD_SORTIE* contains GDG file name
# Per default, file name transferred from MVS should be :
#   $DATA_SOURCE/GDG.DAT<ID>
export DD_ENTREE_ORIGDG=${DD_ENTREE:-${DATA_SOURCE}/GDG}
export DD_SORTIE_ORIGDG=${DD_SORTIE:-${DATA}/PJ01DDD.TEST.GDG}
logfile=${MT_LOG}/GDG.log
tmpfile=${TMPPROJECT}/GDG.tmp
ksh4ejr=${DATA_TRANSCODE}/GDG.ksh
[…]
注: 接頭辞ファイル名を変更するには、スクリプトを呼び出す前にDD_ENTREEおよびDD_SORTIE変数を設定します。
注: use-file-catalogがシステム記述ファイルに設定されている場合、生成されたスクリプト・ファイルのDD_SORTIEから${DATA}が削除されます。DD_SORTIEの名前を変更する場合は、スクリプトを呼び出す前に、${DATA}を含まないファイル名を使用してDD_SORTIE変数を設定します。

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

正常終了すると、リターン・コード0が戻されます。

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

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

EJR -v ${ksh4ejr} >> $logfile 2>&1

EJRは、Oracle Tuxedo Application Runtime Batchの一部です。詳細は、Oracle Tuxedo Application Runtime for Batchリファレンス・ガイドを参照してください。削除手順および再ロード手順が記載されています。

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

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

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

FILELD-0106: the number of rows written in file <f> is not equal to the
number calculated using the log file (see created report <rf>) !
	File  : <recsreloaded>
Report: <recstransferred>

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

echo "Number of rows written in output file is equal to number calculated using the log file: OK"
注: この手順を実行するには、z/OS IDCAMSログ・ファイルをターゲット環境に転送する必要があります。

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

アクセス機能

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

表6-6 アクセス機能
アクセス機能
ロール
ASG_<logical file name>.cbl
複数の割当てがある場合に生成されるオプションのモジュール。File-to-Fileコンバータ・ツールを使用する際に、attributes句がマッパー構成ファイルに存在すると、このモジュールが生成されます。
getfileinfo.cbl
このプログラムは、入力引数として指定されたassign-nameに関連付けられた<logical file name>.rdbが存在するかどうかをチェックします。この機能は、ASG_<logical file name>.cblによって呼び出されます。
init_all_files.cbl
すべてのinit_all_files_<configuration name>.cblを呼び出します(Oracle Tuxedo Application Runtime Batchで使用される機能)。
init_all_files_<configuration name>.cbl
トランザクションを初期化します。リストされた構成名に対するリレーショナル・モジュールおよびASG_<logical file name>モジュールで使用されるすべての変数が初期化されます(Oracle Tuxedo Application Runtime Batchで使用される機能)。
dml_locking.cbl
このプログラムは、すべての構成ファイルのロックを管理します(Oracle Tuxedo Application Runtime Batchで使用される機能)。
close_all_files_<configuration name>.cbl
トランザクションを閉じます。このプログラムは、リストされた構成の表で開かれたすべてのカーソルを閉じ、論理アクセサASG_<logical file name>で開かれたすべてのファイルのロックを解除します(Oracle Tuxedo Application Runtime Batchで使用される機能)。
close_all_files.cbl
すべてのclose_all_files_<configuration name>.cblを呼び出します(Oracle Tuxedo Application Runtime Batchで使用される機能)。

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

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

表6-7 アクセス呼出しに実装される変数
変数
説明および由来
機能コード
実行する操作のタイプを指定します(たとえば、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変数を使用して渡されます。

リスト6-13 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のタイプを含む必要があります。

表6-8 呼出し引数のファイル・オープン・モード
ソース
ターゲット
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操作の対象は、現在のレコードか、ファイル・キーまたはRBA値によって指定されるレコードになります(Micro Focus COBOLコンパイラのみ)

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

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

READ

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

表6-10 引数によって異なる読取り操作の値
アクセス
ソース
ターゲット
順次
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
Oracle Tuxedo Application Runtime CICSによって使用されるロック
READ filename1
UPDATE
READ-UPDATE => FILE-CODE-F

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

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

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

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

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

表6-12 引数によって異なる再書込み操作の値
発生状況
ソース
ターゲット
 
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
START file1 KEY {EQUAL| = |EQUALS} DataName1 GENERIC
START-GENEQ => 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

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

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

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

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

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

次のコンパイラ内部コピー・ファイルはアクセス関数によって使用されるため、アクセス関数をコンパイルする前に、コンパイラのCOBCPY環境に配置する必要があります。

このコピー・ファイルのディレクトリはコンパイラ固有です。次に例を示します。

実行レポート

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

file.sh -gmi $HOME/trf STFILEFILE
リスト6-14 file.shでオプション-gを使用したとき(ステップ1)に生成されるメッセージ
##########################################################################
Control of configuration STFILEFILE
##############################
Control of templates
OK: Use Default Templates list file
       File name is /Qarefine/release/M3_L3_5/convert-data/default/file/file-templates.txt
##############################
Control of Mapper
##############################
COMPONENTS GENERATION
CMD : /Qarefine/release/M3_L3_5/scripts/launch file-converter  -s /home2/wkb4/param/system.desc -mf  /home2/wkb4/tmp/mapper-STFILEFILE.re.tmp -dmf /home2/wkb4/param/file/Datamap-STFILEFILE.re -td /home2/wkb4/tmp  -tmps /home2/wkb4/tmp/file-templates-STFILEFILE.tmp -target-sgbd oracle11 -target-os unix -varchar2 29 -print-ddl  -print-dml -abort 
MetaWorld starter
Loading lib: /Qarefine/release/M3_L3_5/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-STFILEFILE.re.tmp
FILE-0088: * recognized argument -dmf value: /home2/wkb4/param/file/Datamap-STFILEFILE.re
FILE-0088: * recognized argument -td value: /home2/wkb4/tmp
FILE-0088: * recognized argument -tmps value: /home2/wkb4/tmp/file-templates-STFILEFILE.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-STFILEFILE.re.tmp
FILE-0095: * Parsing data-map file /home2/wkb4/param/file/Datamap-STFILEFILE.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-STFILEFILE.pob at 12:10:27... done at 12:10:27
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/../param/file/rec-source/ODCSFR.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_5/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm.pob
FILE-0085: * Expanding /Qarefine/release/M3_L3_5/convert-data/templates/file/unloading/jcl-unload-MVS-REPRO.pgm  ...
FILE-0054: * Writing ODCSFR.jclunload
FILE-0054: * Writing ODCSFU.jclunload
FILE-0054: * Writing ODCSF0Q.jclunload
[...]
FILE-0052: * loading pob file  /Qarefine/release/M3_L3_5/convert-data/templates/file/dml/generate-post-process.pgm.pob
FILE-0085: * Expanding /Qarefine/release/M3_L3_5/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_5/convert-data/default/file/file-move-assignation.pgm
FILE-0085: * Expanding /Qarefine/release/M3_L3_5/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/STFILEFILE 
(Optionaly in /home2/wkb4/tmp/SQL/STFILEFILE)
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
リスト6-15 file.shでオプション-mを使用したとき(ステップ2)に生成されるメッセージ
##########################################################################
FORMATTING COBOL LINES
##########################################################################
CHANGE ATTRIBUTE TO KSH or SH scripts
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-
Components are modified into /home2/wkb4/tmp directory
*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=- 
##########################################################################
INSTALL COMPONENTS INTO SPECIFIC DIRECTORY USING file-move-assignation.lst
===================================================
==_PJ01AAA.SS.VSAM.CUSTOMER_==
 Copied   <Templates>:ASG_ODCSF0.cbl to <td>/DML/ASG_ODCSF0.cbl
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER.REPORT_==
 Copied   <Templates>:ODCSFR.jclunload to <td>/unload/file/STFILEFILE/ODCSFR.jclunload
 Copied   <Templates>:loadfile-ODCSFR.ksh to <td>/reload/file/STFILEFILE/loadfile-ODCSFR.ksh
 Copied   <Templates>:RELFILE-ODCSFR.cbl to <td>/reload/file/STFILEFILE/RELFILE-ODCSFR.cbl
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER.UPDATE_==
 Copied   <Templates>:ODCSFU.jclunload to <td>/unload/file/STFILEFILE/ODCSFU.jclunload
 Copied   <Templates>:loadfile-ODCSFU.ksh to <td>/reload/file/STFILEFILE/loadfile-ODCSFU.ksh
 Copied   <Templates>:RELFILE-ODCSFU.cbl to <td>/reload/file/STFILEFILE/RELFILE-ODCSFU.cbl
===================================================
==_PJ01AAA.SS.QSAM.CUSTOMER_==
 Copied   <Templates>:ODCSF0Q.jclunload to <td>/unload/file/STFILEFILE/ODCSF0Q.jclunload
 Copied   <Templates>:loadfile-ODCSF0Q.ksh to <td>/reload/file/STFILEFILE/loadfile-ODCSF0Q.ksh
 Copied   <Templates>:RELFILE-ODCSF0Q.cbl to <td>/reload/file/STFILEFILE/RELFILE-ODCSF0Q.cbl
===================================================
 Copied   <Templates>:close_all_files_STFILEFILE.cbl to <td>/DML/close_all_files_STFILEFILE.cbl
 Copied   <Templates>:init_all_files_STFILEFILE.cbl to <td>/DML/init_all_files_STFILEFILE.cbl
 Copied   <Templates>:reload-files.txt to <td>/reload/file/STFILEFILE/reload-files.txt
 Copied   <fixed-components>:getfileinfo.cbl to <td>/DML/getfileinfo.cbl
 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-STFILEFILE to /home2/wkb4/param/dynamic-config/File-in-table-STFILEFILE (is  empty)
 Copied   <Templates>:../../Conv-ctrl-STFILEFILE to /home2/wkb4/param/dynamic-config/Conv-ctrl-STFILEFILE
===================================================
post-process
 executed <Templates>:post-process-file.sh
  /home2/wkb4/param/dynamic-config/Conv-ctrl-STFILEFILE treated
=====
 Number of copied files:     18
 Number of executed scripts: 1
 Number of ignored files:    0
##########################################################################

 


詳細処理

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

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

注: enable-buffer-converterがシステム記述ファイルに設定されている場合、z/OS形式とUNIX/Linux形式間のバッファ内のデータ変換に、「データのアンロード」、「データの再ロード」、「転送のチェック」という手順は含まれません。
注: enable-reverse-converterがシステム記述ファイルに設定されている場合、UNIX/Linuxレコード・シーケンシャル・ファイルからz/OSシーケンシャル・データセットへの移行に「データのアンロード」手順は含まれません。ターゲット・ファイルはUNIX/Linuxプラットフォームに配置され、ファイル形式はz/OSシーケンシャル・データセットの形式に適合しています。ターゲット・ファイルのz/OSへのアップロードは実行されません。

コマンド行の構文

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 COBOL/COBOL-ITファイルに移行するために使用されるTuxedo ART Workbenchのコンポーネントを生成します。

オプション

生成オプション

-g <configuration name>

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

-m <configuration name>

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

-i <installation directory> <configuration name>

インストール・ディレクトリにコンポーネントを配置します。この操作は file-move-assignation.pgmファイル内の情報を使用します。
最後のオプション

-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に生成される)は、ターゲット・プラットフォームにインストールする必要があります。

表6-14は、ターゲット・プラットフォームに設定する必要がある環境変数を示しています。

表6-14 ターゲット・プラットフォームの環境変数
変数
DATA_SOURCE
z/OSから転送されてMicro Focus COBOLまたはCOBOL-ITファイルに再ロードされる、アンロード済ファイルを含むディレクトリの名前。
DATA
ASCII形式に変換されてアプリケーションで使用できる状態になった物理ファイルを含むディレクトリの名前。
BIN
一般的な再ロードと制御のスクリプトの場所($HOME/trf/reload/bin)。
TMPPROJECT
一時ディレクトリ。
MT_LOG
実行ログを含むディレクトリ。
DATA_TRANSCODE
ファイル・バイナリ・データ・トランスコード・スクリプトにより使用される一時ディレクトリ(ASCII形式の一時ファイルを含む)。
PATH
このUNIX/Linux変数は、Oracle Tuxedo Application Runtime for Batchユーティリティのディレクトリを含む必要があります。
COB_EXTFH_INDEXED COB_EXTFH_LIB
ターゲットのCOBOLコンパイラとしてCOBOL-ITを選択し、オープン・システムでISAMファイルとしてBDBを使用する場合は、これら2つの環境変数を設定することで、BatchRTがBDB形式のファイルを生成できるようにする必要があります。そうでない場合は、Micro Focus COBOL互換ファイルが生成されます。
export COB_EXTFH_INDEXED=BDBEXTFH
export COB_EXTFH_LIB=/path_to_Cobol-IT/lib/libbdbextfh.so
例:
export COB_EXTFH_LIB=/opt/cobol-it-64/lib/libbdbextfh.so

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ディレクトリに格納する必要があります。

enable-buffer-converterがシステム記述ファイルに設定されている場合、変換されるデータは呼出し元プログラムから渡されたバッファ内に存在しています。たとえば、データ・バッファがIMSアプリケーションから渡された場合、変換後の出力データは同じデータ・バッファに存在し、呼出し元プログラムに戻されます。

データの再ロード

データのトランスコードおよび再ロードを可能にするスクリプトが次のディレクトリに生成されます。

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

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

loadfile-<logical file name>.ksh
loadfile-R-<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)と呼ばれます)。
ファイルのトランスコードおよび再ロード・コマンド

名前

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

形式

loadfile-<logical file name>.ksh [-t] [-l] [-c: <method>]
loadfile-R-<logical file name>.ksh [-t] [-l] [-c: <method>]

オプション

-t

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

-l

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

-c ftp:<…>:<…>

転送の検証を実装します(「転送のチェック」を参照)。
世代別データ・グループ・ファイルのトランスコードおよび再ロードのコマンド

名前

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:<…>:<…>

転送の検証を実装します(「転送のチェック」を参照)。
注: loadgdg-<logical file name>.kshスクリプトは、各世代別データ・セットのloadgds-<logical file name>.kshスクリプトを呼び出します。

転送のチェック

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

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

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


  先頭に戻る       前  次