リファレンス・ガイド

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

JCLトランスレータ

 


概要

Oracle Tuxedo Rehostingプラットフォームは、ツール(Oracle Tuxedo Application Rehosting Workbench)とランタイム・コンポーネント(Oracle Tuxedo Application Runtime for CICS and Batch)から構成される、パッケージ化された包括的なソリューションで、これによりユーザーは次のことができます。

ランタイム・コンポーネントが移行されたシステムのライフサイクル全体で使用されるのに対し、Oracle Tuxedo Application Rehosting Workbench (Tuxedo ART Workbench)はプラットフォームの移行プロジェクトの間でのみ使用されます。Tuxedo ART Workbenchは、JCLトランスレータなどの、いくつかのツールで構成されます。

名前が示すとおり、このツールの役割は、他のコンポーネントが他のTuxedo ART Workbenchツールにより変換または生成されるという状況で、ソース・プラットフォーム(z/OS、IBMジョブ制御言語)で実行しているJCLを、ターゲット・プラットフォーム(Oracle Tuxedo Application Runtime for Batch機能の起動を伴うUnixまたはLinux、Kornシェル(KSH)言語)で実行しているKornシェル(KSH)シェル・スクリプトに同じ動作のまま変換することです。この章の目的は、JCLトランスレータのすべての機能を正確に説明することです。

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

JCLトランスレータの定義

次の用語をJCLトランスレータの説明に使用します。

JCL: ジョブ制御言語

IBMオペレーティング・システム・ファミリ用のコマンド言語。この言語で記述されたコンポーネントはJCLジョブまたは単にJCLと呼ばれます。Oracle Tuxedo Application Runtimeを使用して移行するソース・アセットは通常このタイプのコンポーネントを含みます。

KSHまたはKornシェル

Unixシェル・コマンド言語ファミリの特定のバリアント。シェル・インタプリタ自体の名前でもあります。この言語/インタプリタと互換性のあるシェル・スクリプトはKSHスクリプトです。KSHスクリプトはソースJCLに対応するターゲット・アセットのコンポーネントです。

JES2

ジョブ入力サブシステム2

SYMBOLS

環境に応じてパラメータ化を可能にするJCLの変数。これらの変数はJES2リーダーにより処理(置換)されます。

カードの継続

72文字を超えるJCLカード(コマンド)は何行かに分割する必要があります。最初の行の後の行は継続行(またはカード)と呼ばれます。前の行は72列より前でオプションの区切り文字(通常はカンマ文字)を使用して終了し、後続行は"//"で始まり、十分な空白が続き、オプション領域に到達します。コメントはオプション領域の後の継続行に埋め込むことができ、少なくとも1つの空白で後の行と区切る必要があります。例:
//SYSIN DD DSN=LIB454R.COMMUN.SER, this is a comment // DISP=SHR

「はじめに」の概念も参照してください。

 


一般的な説明と操作

一般情報

Tuxedo ART Workbench JCLトランスレータはすべての要求された変換を単一パスで処理して、次を行います。

Oracle Tuxedo Application Runtime for Batchコンポーネントを使用して、結果シェル・スクリプトをコンパイルし、ソース・プラットフォームでの動作と同じようにターゲット・プラットフォームで実行することができます。ただし、動作範囲の項に詳細が記載されている場合を除きます。

JCLトランスレータは入力として次のものをとります。

次の出力が生成されます。

JCL変換プロセスは、各JCLで個別に動作します。しかし、複数のJCLでJCLトランスレータを同時に実行することは適切ではありません。複数のJCLに同じサブファイルが含まれる場合、トランスレータ・インスタンスが同時にこのサブファイルの変換を書き込んで、ファイルが破損する危険性があるためです。実際には、JCL変換は高速で増分的であるため、複数のプロセッサを使用して高速化する必要はありません。

動作範囲

JCLトランスレータおよび基礎となるOracle Tuxedo Application Runtime for Batchコンポーネントによりサポートされる、 JCLカード、パラメータ、オプションおよびユーティリティ・プログラムの詳細な説明は、 Oracle Tuxedo Application Runtime for Batchリファレンス・ガイド Oracle Tuxedo Application Runtime Batch環境におけるZ/OS JCLに関する章を参照してください。

 


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

入力コンポーネントは、カタロガによる解析が終了したアセット内のすべてのJCLスクリプト(メイン・ファイル)です。実際、JCLトランスレータはソース・ファイルではなくスクリプトのPOBファイルをロードします。カタロガによる制限(JCL当たり複数のジョブは不可など。「カタロガ」を参照)に加え、JCL変換を試行する前には次のルールに従う必要があります。

構成ファイルの説明

JCLトランスレータは、システム記述ファイルとJCL変換構成ファイルの2つのパラメータ・ファイルにより動作します。

システム記述ファイル

システム記述ファイルには、処理するアセット内のすべてのソース・ファイルの場所、タイプおよび可能性のある依存関係を記述します。このように、このファイルは、カタロガのみでなくJCLトランスレータも含めたすべてのTuxedo ART Workbenchツールがこれらのソース・ファイルや対応するコンポーネントにアクセスするために不可欠です。

次のコンポーネント・タイプがJCLトランスレータに関連します。

表9-1 JCLトランスレータ・コンポーネント・タイプ
JCL
メインJCLファイルで、1つまたは複数のJCLジョブを定義します。
JCL-Lib
JCLサブファイルで、EXECにより起動されるプロシージャを定義する、またはINCLUDEにより起動される文を含みます。
JCL-Sysin
JCLスクリプトのユーティリティ・プログラムまたはプログラム・ランチャにより使用されるSYSIN/SYSTSINファイル。すべてのSYSIN/SYSTSINファイルがパーサー/カタロガにより必要なわけではありません。

次の(グローバルおよびローカル)オプションがJCLトランスレータに関連します。

表9-2 JCLトランスレータのグローバルおよびローカル・オプション
JCL-globals
カンマで区切られたペアvar-name = var-value のリスト
var-nameは記号(または記号として解釈される文字列)で、var-valueは文字列です。JCLスクリプトの解析時に、パーサーはJES2により実行されるJCL変数置換プロセスをシミュレートします。ここで指定されるname-valueペアは(パラメータなどとは対照的に)グローバル変数の置換に使用されます。パーサーは変数に適した値が見つからないとエラーをレポートします。
strict-jcl-libraries
なし(ブール・フラグ)
このオプションの存在は、JCLにより参照されるSYSIN/SYSTSINファイルがシステム全体で検索される方法に影響を与えます。「カタロガ」の章の「通常のサブファイル検索」の操作を参照してください。
full-name-sysin-search
なし(ブール・フラグ)
このオプションの存在は、JCLにより参照されるSYSIN/SYSTSINファイルがシステム全体で検索される方法に影響を与えます。「カタロガ」の章の「通常のサブファイル検索」の操作を参照してください。
jclz-launcher-spec[s]-file
文字列
このシステムまたはディレクトリで使用するJCLランチャ仕様ファイルのパス。これらのファイルの内容と使用方法の詳細は、「カタロガ」の章の「JCLランチャ仕様ファイル」の項を参照してください。
use-file-catalog
なし(ブール・フラグ)
このオプションの存在により、変換後のファイルにカタログやボリュームの情報がもたらされます。存在しない場合、カタログとボリュームは提示されません。詳細は、「JCLおよびKSH変数の処理」の章を参照してください。

リスト9-1 JCLトランスレータのグローバルおよびローカル・オプションの例
options jcl-globals = VAR01 = "T23RT", PARM = "USERT".
directory "Sysin/BPRO.PARMIMS" logical-name "BPRO.BXZ.PARMFIX" type JCL-SYSIN files "*.sysin".
directory "JCL/BPRO" type JCL files "*.jcl" libraries "Sysin/BPRO.PARMIMS".

JCL変換構成ファイル

JCL変換構成ファイルの内容は、パラメータ名=パラメータ値という形式の"割当て"のリストです。これらの割当てのうち、パラメータ値が文字列のシーケンスであるものは、末尾がピリオドである必要があり、文字列はカンマで区切られます。次のパラメータが使用可能です。

表9-3 JCL変換構成ファイルの内容
root-skeleton
文字列
生成されたKSHスクリプトの階層でのルート・ディレクトリのパスが格納されます。このパラメータは必須で、デフォルト値はありません。指定したパスは、絶対パスまたはシステム記述ファイルの場所に対する相対パスのいずれかです。
target-proc
文字列
生成されたKSHスクリプト(PROC、INCLUDE、SYSIN/SYSTSINの可能性もあり)から抽出されたサブファイルの階層でのルート・ディレクトリのパスが格納されます。デフォルト値はroot-skeletonです。指定したパスは、絶対パスまたはシステム記述ファイルの場所に対する相対パスのいずれかです。
use-sort
記号
mf-sortまたはsync-sort、あるいはcit-sortのいずれかを使用するターゲット・ソート・ユーティリティ。デフォルトは、mf-sortです。
var-dataroot
文字列
ターゲット永続データ・ファイルのルート・ディレクトリです。デフォルトは"${DATA}/"で、これにより、ターゲット・シェル・スクリプトを、テストおよび本番といった、異なる環境で実行させることが容易になります。
var-tmp
文字列
ターゲット一時データ・ファイルのルート・ディレクトリです。デフォルトは"${TMP}/"です。
var-spool
文字列
ターゲット・スプール(印刷)ファイルのルート・ディレクトリです。デフォルトは"${SPOOL}/"です。
top-skeleton
文字列
すべてのターゲットKSHスクリプトのヘッダーとして挿入される文字列です。これには実行可能文ではなく、コメントのみを含めることをお薦めします。これはメンテナンス情報用の標準化されたテンプレートとして使用することができます。デフォルトはヘッダーなし(空白文字列)です。
bottom-skeleton
文字列
すべてのターゲットKSHスクリプトのトレーラとして挿入される文字列です。これには実行可能文ではなく、コメントのみを含めることをお薦めします。これはCVSログなどのメンテナンス情報用の標準化されたテンプレートとして使用することができます。デフォルトはトレーラなし(空白文字列)です。
file-list-in-table
文字列
あればOracle表に移行する(ソース)データ・ファイルのDSNを含むファイルのパスのリストを含むファイルのパス。このファイルおよび参照するファイルは、データ移行ツール(ファイルからOracle)により自動的に生成されます。このファイルのパスおよびそれに含まれるパスは、絶対パスまたはシステム記述ファイル(を含むディレクトリ)への相対パスのいずれかです。
suffix-skeleton
文字列
ターゲットKSHスクリプトのファイル拡張子(接尾辞)。デフォルトは".ksh"です。PROC、INCLUDEおよびSYSIN/SYSTSINの拡張子はカスタマイズできないことに注意してください。
set-no-delete-fsn
FSNのシーケンス
正常に削除されるときに、ターゲットKSHスクリプトに保持するファイル割当てのリスト。詳細は、set-delete-fsnおよびset-no-delete-fsnを参照してください。
set-delete-fsn
FSNのシーケンス
正常に保持されるときに、ターゲットKSHスクリプトから削除されるファイル割当てのリスト。詳細は、set-delete-fsnおよびset-no-delete-fsnを参照してください。
dataclas-file
文字列
データ・クラス定義ファイル。
not-convert-sysin
なし(ブール・フラグ)
これが設定されている場合、ユーティリティDSNUTILBのSYSINは変換されません。

set-delete-fsnおよびset-no-delete-fsn

最後の2つのパラメータ名set-delete-fsnおよびset-no-delete-fsnのパラメータ値の構文は次のとおりです。

ddname ( program-name, program-name, … ) , ddname (program-name … ) , …  .
注: DD名およびプログラム名はソース構文を使用して記号として記述されます。区切り文字(カッコ、カンマ、末尾のピリオド)は必須です。
注: このパラメータ値のセマンティクスは次のとおりです。DD名がプログラム名の明示リストと関連付けられている場合、正確にこれらの論理ファイル(論理ファイルはプログラムのFDまたはSD)を表します。DD名がプログラム名と関連付けられていない場合、アセット中のすべてのプログラムのうちこれらの名前を持つすべての論理ファイル(FDまたはSD)を表します。拡張後、"保持"および"削除"する2つの論理ファイルのリストを取得します。"保持"リストは"削除"リストから引かれ、"削除"論理ファイルに関連するファイル割当て(DDカード)はターゲットKSHスクリプトに変換されません。これにより、ターゲット・スクリプトから、一時ソート・ファイルや物理データベース・ファイルなどの、プログラムの起動に直接役立つわけではないファイル割当てがクリーンアップされます。

データ・クラス定義ファイル

データ・クラス・ファイルは、DD文またはIDCAMSコマンドにより、ファイルの定義または割当てのために、1つ以上のファイル属性の事前定義グループについて説明します。形式は次のとおりです。

NAME;RECFM;LRECL;RECORG;KEYLEN;KEYOFF;

末尾にデリミタ;を追加する必要があります。

表9-4では、データ・クラス・ファイル内の各フィールドについて詳細な説明を示しています。

表9-4 データ・クラス・ファイルの内容
フィールド名
説明
NAME
データ・クラスの名前。DD文のDATACLASパラメータや、IDCAMSのDEFINEまたはALLOCATEコマンドで使用できます。
RECFM
レコード形式。NAMEフィールドで指定されたデータ・クラスを使用して作成されるファイルのレコード形式を指定するもので、DD文のRECFMパラメータと同様の値を指定できます。RECFMは、RECORGとの組合せでは使用できません。
LRECL
論理レコード長。作成するファイルの論理レコード長を指定するもので、指定できる値はDD文のLRECLパラメータと類似しています。
RECORG
レコード編成。VSAMファイルにのみ使用され、指定できる値はES (VSAM ESDS)、RR (VSAM RRDS)、またはKS (VSAM KSDS)です。VSAM以外のファイルでは、このフィールドは空白のままにします。このフィールドは、RECFMフィールドとの組合せでは使用できません。
KEYLEN
キー長、キーの長さをバイト単位で指定します。この属性を使用するには、Recorg属性にKSまたは空白のいずれかを指定する必要があります。Recorg値がKSの場合、Keylen属性はKSDSキー・フィールドの長さを表し、範囲は1-255ですが、空白のままにすることもできます。
Recorg値が空白の場合、KEYLEN値は0-255の範囲ですが、空白のままにすることもできます。Recorgのどちらの値の場合も、Keylen属性にはLRECL値以下の値を指定する必要があります。
KEYOFF
キー・オフセット。レコードの初めからKSDSキー・フィールドまでの変位を指定します。RECORG値がKSの場合のみ有効です。
KEYOFF値は、0から(LRECL - KEYLEN)の値の範囲に指定できます。KEYLEN値が指定されている場合、KEYOFF属性も指定する必要があり、指定しないと0値が使用されます。この値は、JCLでKEYLEN値が指定されていない場合のみ無視されます。

 


出力ファイルの説明

変換されたKSHスクリプトおよびサブファイル

KSHバージョン

生成されたスクリプトはksh88またはpdksh(パブリック・ドメインKSH)とだけ互換性があると認証されます。このスクリプトにより起動されるOracle Tuxedo Application Runtime for Batchコンポーネントには、基礎となるKSHエンジンに関連してより厳しい要件がある可能性があります。

ファイル構造、ネーミング方式およびサブファイルの処理

各(メイン)JCLファイル(ジョブ)に対し、JCLトランスレータは同じベース名とsuffix-skeleton構成パラメータで指定した拡張子を持つ1つの(メイン)KSHファイル(スクリプト)を生成します(「JCL変換構成ファイルの内容」を参照)。このファイルはroot-skeleton構成パラメータで指定したディレクトリをルートとする階層の下で、システム・ルートの下のソース・ファイルと同じ相対サブディレクトリに配置されます。ターゲット・ファイルが変換前に存在する場合、上書きされます。

メイン・ファイルがカタロガにより処理されるときに、いくつかのメイン・ファイルから参照されるサブファイルがソース・アセットにない場合、後者はログに記録され(「*Warning*: ZZZ file XXXXXX not found in JCL file YYYYYY」という形式のメッセージが表示されます。ZZZは、PROC、INCL、SYSIN、SYSTSINのいずれか)、例外が報告されます。この場合、JCLトランスレータは(不完全な)メイン・ファイルの処理を拒否するか、または動作しない不完全なKSHスクリプトを生成します。

プロシージャはm_ProcInclude Oracle Tuxedo Application Runtime for Batch機能を使用して起動されます。ターゲット・サブファイルはこの機能以外、さらに一般的な場合としては、Oracle Tuxedo Application Runtime for Batchで生成されたKSHスクリプト以外では、実行可能ではありません。プロシージャの内容はジョブ処理の"変換"フェーズのスクリプト構成に挿入されます。『Oracle Tuxedo Application Runtime for Batchユーザー・ガイド』を参照してください。

同様に、インクルード・ファイルはm_ShellInclude Oracle Tuxedo Application Runtime for Batch機能を使用して起動され、このコンテキスト以外では使用できません。ほとんどのインクルード・ファイルは個別のサブファイルに変換されます。ただし、インクルード・ファイルにEXECカードが含まれ、完全な手順(の順序)が定義されていない場合は、抽出を実行できず、元のサブファイルの内容がメイン・ファイルの内容であるかのように変換されることがあります。

SYSIN/SYSTSINファイルおよびその内容は、直接KSH文(関数の起動)に変換されるか、または標準のファイル割当て(詳細は後述を参照)として処理されます。

ストリーム内プロシージャおよびSYSIN/SYSTSINファイルは、変換が関係しているかぎり、ストリーム外の姉妹として処理されます(当然メイン・ターゲット・ファイル内には存在する)。ストリーム内プロシージャはメイン・ファイルの最後に移動し、ストリーム内SYSIN/SYSTSINは対応する手順内に残ります。

JCLおよびKSH変数の処理

元のJCLで使用されるz/OS変数は、$[PARM]の形式の特別な記号に変換され、実行フェーズの直前の変換フェーズで、JES2の方式に "静的に"置換されます。詳細は、Oracle Tuxedo Application Runtime for Batchのユーザー・ガイドを参照してください。

さらに、生成されたKSHスクリプトおよびOracle Tuxedo Application Runtime for Batchのコンポーネントは、次のような少数のKSHおよび環境変数を使用します。

これらの変数は実行フェーズで、実行時に置換されます。

スクリプト構造

ターゲットKSHスクリプトは、"逆方向への"ジャンプを含む、あらゆる種類のコントロール・フローを実装できる実行ループを中心に構成され、あらゆる手順でのスクリプトの(再)起動も可能にします。元のJCLの様々な手順は、ループ本体で同じ順序で実装され、そのラベル(ソースJCLと同じ)とCASE要素の終了記号により区切られます。テクニカル・サポートおよびブックキーピング操作は、スクリプト全体の最初と最後だけでなく、各手順の最初と最後に挿入されます。これにより、インスタンスがコントロール・フロー(条件コード、ジャンプなど)を処理できます。

スクリプト・レイアウト

次のJCLカードまたは構成は、適切なOracle Tuxedo Application Runtime for Batch関数の起動に変換されます: JOBJCLLIBSETDD、procオーバーライドDDEXEC(プログラム)、EXEC(プロシージャ)、INCLUDE、元のJCLからのIF/THEN/ ELSE/ENDIF、IDCAMSコマンド・ファイルからのIFおよびCONDオプション。

ソースJCLのコメントはKSHコメントに変換され、トランスレータは"正しい場所"のできるだけ近くに配置しようとします。しかし継続領域のコメント(パラメータの後の最初の空白の後など)は無視され、結果スクリプトに再生成されません。

ジョブを終了する// カードはスクリプトの最後へのジャンプとして変換されます。

前述のとおり、EXECプロシージャ・カードはm_ProcInclude Oracle Tuxedo Application Runtime for Batch関数の起動に変換され、INCLUDEカードはm_ShellInclude関数の起動に変換されます。SYSIN/SYSTSINファイルおよびリファレンス(DDカード)は2つの方法で処理されます。

ストリーム内データ・ファイル(DD * カードおよび関連する内容)は通常、テキストのようなファイルで、ターゲット・スクリプト内で実装されます。その内容のEBCDICからASCIIへの変換は、ソースJCLファイルの変換と同時に、移行プラットフォームへの転送中に実行されます。

実行ログ

実行ログは変換プロセスの進捗をレポートします。この構造は次のとおりです。

 


詳細操作

一般情報

JCLトランスレータの開始時に、メインを始めとして様々な構成ファイルを読み取ってチェックします。この段階で不整合が検出された場合、1つまたは複数のエラー・メッセージが出力されてトランスレータは終了します。そうでない場合、トランスレータはコマンド行オプションと構成ファイル・オプションの両方を使用して、処理する(ソース)JCLのリストを含む、内部パラメータを設定します。次に順番に各JCLの処理に進み、各JCLに対し次のことを行います。

  1. トランスレータのmakeに似た増分的な動作に従い、ターゲットKSHスクリプトがすでに存在しているか、および対応するソースJCLのPOBへの参照に関し最新かどうかをチェックします。そうである場合、トランスレータは次のJCLにスキップします。そうでない場合、次の手順に進みます。
  2. JCLのPOBファイルがロードされます。トランスレータは次に重大度がFATALの異常が含まれているかどうかをチェックします。そうである場合、警告メッセージを出力して次のJCLにスキップします。そうでない場合、次の手順に進みます。
  3. 次にJCLのASTが巡回され、各構成のターゲット・コードが作成されて、囲んでいるノードのものとともにアセンブルされます。サブファイル内、またはターゲット・メイン・ファイルの最後に"ストリーム外"を出力するコードはその結果、マークされます。
  4. 次にターゲット・コード(のテキスト)はターゲットKSHファイルおよびサブファイルに出力されます。
  5. 最後に、post-translationファイルが構成ファイルに指定されている場合、ポストトランスレータによって、メイン・ターゲットKSHファイルおよびすべてのターゲット・サブファイルに適用されます。

トランスレータは複数の同時実行プロセスにより同時に実行されることはできません。2つの異なるプロセスが同時に同じサブファイルに書き込む必要がある危険性があるからです。

コマンド行の構文

調整ランチャ・インタフェース

JCLトランスレータは、汎用的なTuxedo ART Workbenchランチャである、調整コマンドを使用して実行するように設計されています。実行ログ管理および増分/繰返し操作といった、これらのツールの操作の様々な状況を処理します。カタロガの章のコマンド行構文を参照してください。

jclz-unixコマンド

構文

$REFINEDIR/refine jclz-unix [ launcher-options… ] \
	( -s | -system-desc-file ) system-desc-path \
	( -c | -config ) main-config-file-path \
	( source-file-path | ( -f | -file | -file-list-file ) file-of-files )…

ランチャ・オプションはカタロガの章のコマンド行構文で説明しています。必須オプションは次のとおりです。

(-s | -system-desc-file ) system-desc-path

システム記述ファイルの場所を指定します。Unix/Linuxコマンドで一般的なように、パスとしては絶対パスまたは現在の作業ディレクトリに対する相対パスを指定できます。メイン構成ファイルのパスを含め、多くのTuxedo ART Workbenchツールで使用される他の多くのパスは、このファイルの場所から導出されることに注意してください(次の項目を参照)。これにより、同じコマンドを様々な作業ディレクトリから実行しやすくなります。

( -c | -config ) main-config-file-path

メイン変換構成ファイルの場所を指定します。絶対パスまたは相対パスのどちらも可能です。後者の場合は、システム記述ファイルを含むディレクトリに関して相対的に指定します(Tuxedo ART Workbenchツールでの共通の方法)。

処理するソースJCLを定義する一般的なオプションは次のとおりです。

source-file-path

このパスで指定したJCLソース・ファイルをワーク・リストに追加します。パスは、現在の作業ディレクトリにかかわらず、システムのルート・ディレクトリ$SYSROOTに対する相対パスとして指定する必要があります。

( -f | -file | -file-list-file ) file-of-files

このパスで指定したファイルにリストされたJCLソース・ファイルをワーク・リストに追加します。file-of-files自体はどこに配置してもよく、そのパスは絶対パスまたは現在の作業ディレクトリに対する相対パスのいずれかです。このファイルにリストされたJCLソース・ファイルはシステムのルート・ディレクトリへの相対パスとして指定する必要があります。

個々のJCLおよびfiles-of-filesを必要なだけ指定できます。作業リストが作成されるのは、コマンド行がJCLトランスレータで分析されるときです。詳細は、前述の説明を参照してください。

繰返しおよび増分操作

強力なコンピューティング・プラットフォームが容易に使用可能である今日であっても、Tuxedo ART Workbenchを使用した完全なアセットの処理は、依然として計算集中的で長時間の実行、メモリーを消費するタスクのままです。そのため、Tuxedo ART Workbenchツールは容易に停止および再起動できるように設計されており、makeに似たメカニズムのおかげで、すでに実行された作業を繰り返しません。これにより、移行プロジェクトのすべてのフェースで効率的な操作が可能です。

最初の処理: 繰返し操作

最初のフェーズでは、完全に新しいアセットから、安定したアセットの最初の変換/生成の終わりまで、makeに似たメカニズムが使用されて、次のような繰返し操作を可能にしています。

  1. いくつかのツール、たとえばJCLトランスレータが開始する場合、最初にアセット(ソース・ファイルおよびターゲットJCLファイルなどのターゲット・ファイル)の現在の状態を調べ、完全で一貫性のある結果のセットを得るためにはどの作業の実行が残っているかを決定します。次に、その作業を実行して、結果ファイルを次々と生成します。
  2. Tuxedo ART Workbenchプロセスは多くのメモリーを消費します。定期的に、使用可能な物理メモリーがシステム記述ファイルのminimum-free-ram-percentオプションで指定したしきい値よりも下であるかどうかをチェックします。
  3. 実行する作業が完了してからメモリーが尽きると、プロセスはもちろん停止します。
  4. そうでない場合、プロセスは停止しますが、メモリーの解放後、すぐに再起動します。前述のステップ1に戻りますが、実行する作業が少なくなっているためプロセスは終了します。

このモードが特に適しているのは、カタロガのようにアセット全体にグローバルな処理を行うツールまたはコマンドです。JCLトランスレータのようなコンポーネント固有のツールでも役立ちます。これはTuxedo ART Workbenchツールの通常モードでの動作であり、アクティブ化するのに特別なアクションは必要ありません。

アセットでの変更: 増分操作

JCLトランスレータは、様々なコンポーネント(メインJCLファイルおよびサブファイル)と対応する結果ファイル(POBファイル、ターゲットKSHファイル)の間の依存関係を認識しています。この情報を使用して、なんらかの変更、たとえば、JCLソース・ファイルの追加、変更または削除などがアセットで発生したときに、増分的に対応できます。カタロガは影響を受けるJCLを再解析して、JCLトランスレータは再解析されたJCLのみを再変換します。繰り返しますが、これはTuxedo ART Workbenchツールの通常モードでの動作であり、アクティブ化するのに特別なアクションは必要ありません。

同時実行操作

前述のとおり、複数のプロセスでJCLトランスレータを同時に実行することはお薦めしません。異なるプロセスが同じターゲット・サブファイルに同時に書き込む可能性があるためです。ただし、JCL変換は高速であるため、通常は同時処理を使用して処理を高速化する必要はありません。

makeを介した使用

記載予定

 


制約および制限

重複するステップ名はサポートされない

JCLから変換されたKSHスクリプトでは、実行フローを制御するための重要な識別子としてステップ名が使用されます。ソースJCL内の各ステップ名は一意にする必要があります。そうでない場合、ART Batch Runtime内の変換されたKSHスクリプトの実行が予期しないものになり、無限ループする可能性があります。ソースJCLを分析するときに、カタロガは重複するステップ名を検出できません。

IDCAMS ALTER NEWNAMEコマンド

IDCAMS ALTER NEWNAMEコマンドはm_FileRenameに正しく変換できますが、ワークベンチによってRDBファイルに変換されたファイルの名前をファイル・トランスレータによって変更すると、2つの問題が発生する可能性があります。

 


よくある質問

新たにJCLを変換するのはどのような場合ですか。

JCLの(再)変換を強制するにはどうしますか。

次のいずれかを行います。

前者の方法をお薦めします。後者よりもソース・アセットへの"侵入"の度合いが低いからです。

JCLを削除しました。対応するKSHがまだ存在するのはなぜですか。

後者は、プロシージャおよびインクルード・ファイルなどのサブファイルとともに、手動で削除する必要があります(他のKSHで使用しない場合)。

トランスレータを実行しましたが変換が生成されません

プロシージャがJCLに含まれておらず、そのためKSHに含まれていません。

システム記述ファイルで次のことを確認してください。

変換済プロシージャはどこにありますか。

トランスレータ構成ファイルのtarget-proc(またはroot-skeletonの場合もあり)オプションで定義されたディレクトリにあります。このパスはソース・アセット(システム記述ファイル)のルート・ディレクトリの下のプロシージャの相対パスに追加されます。たとえば次のディレクティブを使用します。

プロシージャは/Workspace/Master-Proc/PROCディレクトリに配置されます。

変換中に一部のFSNが欠落するのはなぜですか。

保持したいFSNが削除するFSNのリストにないことを確認します(トランスレータ構成ファイルのset-delete-fsnオプション)。あれば、このリストから削除するか、または全部(set-delete-fsnリストの"ワイルドカード")ではないがそのうちのいくつかは削除したい場合は、set-keep-fsnリストに削除するものを追加します。


  先頭に戻る       前  次