•
•
•
• 動的プログラム呼出しなど、カタロガ自体では検出できない情報を提供するヒント・ファイル(オプション)。
• カタロガおよびその他のTuxedo ART Workbenchツールで使用される、Symtab (「カタロガSymtabおよびその他のファイル」を参照)などのその他のシステム全体のPOBファイル。プロジェクトおよび移行プラットフォームの構成の必要に応じて、これらのフェーズは単一の実行または増分的に、順次または同時に実行できます。詳細は、「繰返しおよび増分操作」および『Oracle Tuxedo Application Runtimeプロセス・ガイド』を参照してください。
•
• このパーサーはCOBOLプログラムとそのサブプログラムを処理します。サブプログラムがWorkbenchプロジェクトに存在せず、COBOLプログラム内で呼び出されている場合、Workbenchはサブプログラムがないことを報告します。このサブプログラムがランタイム・システムで提供され、その名前がカタロガ・オプション・ファイル内のオプションのsupplied-batch-moduleおよびsupplied-cics-moduleで指定されたファイルにリストされている場合、Workbenchはこれらのプログラムについては「ない」と報告しません。リスト3-1 カタロガ・オプション・ファイルファイル../param/supplied-batch-moduleでの構成は次のとおりです。ファイルparam/supplied-cics-moduleでの構成は次のとおりです。ILBOABN0およびCEE3ABDはBatch Runtimeシステムで提供されます。CICS001およびCICS002はCICSランタイム・システムで提供されます。Workbenchはこれらのプログラムについてはないと報告しません。システム記述ファイルで指示されているように、パーサーは様々な形式のサブファイルおよびファイル・インクルード・ディレクティブ(EXEC [PROC]、INCLUDE、SYSIN、SYSTSINなど)を処理し、サブファイルのアセットを検索します。カタロガおよびJCLトランスレータのようなその他のツールは、処理するすべてのJCLスクリプトのすべての手順を完全に理解している必要があり、すべての参照されるサブファイルがアセットに存在し、そのファイル・タイプおよび検索パスは、すべての参照でサブファイルが正しく検索されるように設定されることが非常に重要です。カタロガはサブファイルの欠落を、すべての影響を受けるJCLの正しい分析および変換を妨げるという理由で、重要度の高い異常としてレポートします。変換はこのような異常がすべてなくなるまで試行できません。
• JCLジョブは、実行条件を含むまたは含まない、一連の手順です。これは、カタロガ・オプション・ファイルでjob-card-optionalオプションが指定されている場合を除き、JOBカードで開始する必要があります。すべてのJCL、JES2およびJES3文が解析されます。JCLはJES2から直接実行できる必要があります。パーサーはJES変数置換を実行します。JCLでローカルに定義されていない変数は、システム記述ファイルのJCL-globalsオプションを使用して設定できます。「特別オプション」を参照してください。特定の状況では、同じサブファイルをPROCファイルおよびINCLUDEファイルの両方として使用できます。しかしターゲット・ファイルへの変換はそれぞれのケースで異なるので、問題のターゲット・ファイルを複製する必要があり、その1つのコピーを使用してPROCとして変換し、別のコピーをINCLUDEファイルとして変換します。これを達成するには、もちろん2つのコピーが別のディレクトリに配置されていることが必要で、これらのファイルをPROCとして使用するJCLはPROCバージョンを先に見つけ、INCLUDEとして使用するJCLはINCLUDEバージョンを先に見つけるように、検索パスを設定する必要があります(同じJCLが同じファイルをPROCおよびINCLUDEの両方として使用することはできません)。
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
• IBMのマニュアル『CICS Application Programming Reference』(資料番号SC34-6434-05、CICS V3R1用)の付録Detailed reference information for the CICS API commandsのBMS macrosの章。
• IBMのマニュアル『CICS Application Programming Guide』(資料番号SC34-6433-04、CICS V3R1用)のPart 6 Basic Mapping Support (BMS)のCreating the mapの章。CICS構成パーサーは、バッチ・ユーティリティDFHCSDUP (『IBM CICS Transaction Server for z/OS Resource Definition Guide Version 3 Release 2』、資料番号SC34-6815-00を参照)で読み取られるCICSリソース定義言語を処理します。認識されるコマンドは、DELETE ALL、ADD、REMOVEおよびDEFINEです。すべてのリソース・タイプおよび属性が認識されますが、パーサーおよびエクストラクタで実際に利用されるのはほんのわずかしかありません。リスト3-2 システム記述ファイルの構造リスト3-3 システム記述ファイルのグローバル・オプション
表3-1 グローバル・オプション このシステムまたはディレクトリで使用するJCLランチャ仕様ファイルのパス。これらのファイルの内容と使用方法の詳細は、「JCLランチャ仕様ファイル」を参照してください。このパスは絶対形式または相対形式のいずれでも指定できます。後者の場合、パスはシステム記述ファイル自体を含むディレクトリへの相対パスです。リスト3-4 システム記述ファイルの特別オプション
表3-2 特別オプション Var-nameは記号(または記号として解釈される文字列)で、var-valueは文字列です。JCLスクリプトの解析時に、パーサーはJES2により実行されるJCL変数置換プロセスをシミュレートします。ここで指定されるname-valueペアは(パラメータなどとは対照的に)グローバル変数の置換に使用されます。パーサーは変数に適した値が見つからないとエラーをレポートします。 このオプションの存在は、JCLにより参照されるSYSIN/SYSTSINファイルがシステム全体で検索される方法に影響を与えます。後述の「サブファイル検索」の章を参照してください。 リスト3-5 システム記述ファイルのディレクトリ“directory” directory-pathこれはディレクトリの、システムのルート・ディレクトリに対する相対パス(場所)を指定する文字列です(「system-root-path」を参照)。絶対要件ではありませんが、同じシステムのすべてのディレクトリをシステム・ルート・ディレクトリの物理的な子孫にすることを強くお薦めします。(これを実現する単純で理解しやすい方法はディレクトリ・パスに、上に移動する"../"を含めないことです。)異なるディレクトリは異なるパスを持つ必要があります。
表3-3 有効なディレクトリ・タイプの句 JCLスクリプトのユーティリティ・プログラムまたはプログラム・ランチャにより使用されるSYSIN/SYSTSINファイル。すべてのSYSINファイルが、パーサー/カタロガで必要なわけではありません。詳細は、Tuxedo ART Workbench JCLトランスレータのリファレンス・マニュアル(「入力コンポーネントの説明」)を参照してください。 CICSを構成するためにRDOによって使用される、CICSシステム定義ファイル(CSD)。IBM社の『CICS Resource Definition Guide』を参照してください。“files” file-specs “,” ...file-specsはディレクトリ内の1つまたは複数のファイルを指定する文字列です。この文字列はアセットに含まれるメンバーを特定し、その他を除外します。file-specの最も単純な形式はtoto.cblのような完全なファイル名です。ディレクトリの表示を指定する必要はなく、指定されたファイルは問題のディレクトリに直接配置する必要があります。ディレクトリ内のすべてのコンポーネントを明示的にリストする作業を避けるために、*.cblや[A-F][D-Z]*.jclといったシェルのような正規表現を使用することもできます。
注意: システム記述ファイルで指定されたすべてのファイル(アセット内のすべてのソース・ファイル)は、ファイル名のみでなく、ファイル拡張子が付いていることが重要です。この拡張子は自由に選択できますが、存在している必要があります。COBOLプログラムにはcbl、COBOLコピー・ファイルにはcpy、メインJCLファイルにはjclというように、標準の拡張子を使用することをお薦めします。logical-name lnameこの句は、JCL-Sysinタイプのディレクトリで、特別オプションstrict-jcl-libraries (前述を参照)とともに使用されます。一緒に使用することで、厳密なJCL-Sysin検索モードが有効になります。lnameは、A.B.C形式の文字列で、ソース・プラットフォームのJCL SYSIN/SYSTSINファイルのライブラリ(PDS)の名前を指定します。この句を有するディレクトリ内のすべてのファイルは、このライブラリに属していると想定されます。特別オプションstrict-jcl-librariesが設定されていない場合、logical-name句は無視されます。リスト3-6 options句構文的には、このディレクトリ固有のoptions句は、システム全体のグローバル・オプション句と似ていますが、末尾のピリオドが違います。意味としては、リストされたオプションと値はグローバル・オプションと同じ効果がありますが、ローカルにディレクトリに含まれるファイルのみに適用されます(同じ名前でグローバル・オプションをオーバーライドします)。グローバル・オプション表のlocal?列にyesとマークされているものと同じオプションは、それが関係するソース・ファイルのタイプを含むディレクトリに適用されます。たとえば、オプションcobol-right-marginはCOBOL-BatchおよびCOBOL-TPRタイプのディレクトリに関係しますが、JCLまたはSQLスクリプト・タイプには関係しません。libraries句は、アセット内の(他の)ディレクトリの順序付けられた検索パスを指定します。カタロガがソース・ファイルで他のコンポーネントへの参照を見つけるときは常に、参照と一致する名前およびタイプを持つコンポーネント(ソース・ファイル)を見つけるまで、この句で指定したディレクトリのリストを最初から最後まで検索します(詳細は、後述の「Sub-file search operation」の項を参照)。これはCOBOLプログラムのコピー・ファイルの参照やJCLファイルのPROCの参照などの、コンパイルおよび解析時の参照と、COBOLプログラムのCOBOLサブプログラムの呼出しやJCLジョブのCOBOLプログラムの起動などの実行時の参照の両方で使用されます。この方法で、COBOLコンパイル用のSYSLIBまたはCOPYLIB、JCLの準備および実行用のJOBLIBおよびSTEPLIBなどといった、様々なソース・プラットフォームのライブラリ検索操作の影響をシミュレートできます。“sql-libraries” directory-path “,” ...リスト3-7 システム記述ファイルの例このシステム記述ファイルはBNLという名前のアセット用で、顧客や大規模システムのスタンドアロン・アプリケーションの名前の例です。このファイルの場所と名前に制約はありませんが、通常、その完全なパスは/.../BNL/param/system.descのようにする必要があります。これを前提として、このファイルに指定されたシステム・ルート・ディレクトリのパスが相対的(../source)なので、ルート・ディレクトリの絶対パスは/.../BNL/sourceです。同様に、カタロガ・オプション・ファイルは./options-catalogと指定されているので、その絶対パスは/.../BNL/param/options-catalogです。グローバル・オプションは次のコメントを呼び出します。
• 様々なディレクトリの命名と構造は完全に標準で、アセット内のソース・ファイルはそのファイル拡張子によってのみ識別されます。ここで通常と異なる機能は、Batchディレクトリに対する特別なcobol-right-marginの値です。リスト3-8 JCLランチャ構文ディレクトリにアタッチされたローカルのjclz-launcher-spec-fileオプションが存在する場合、通常はグローバル・オプションをオーバーライドします。指定したディレクトリおよびシステム全体のいずれにもランチャ仕様ファイルが指定されていない場合、デフォルト値は次のファイルを使用したかのようになります。リスト3-9 デフォルト・ランチャ値これらは$SYSROOT/Reports-${SYSNAME}ディレクトリに生成され、ここで$SYSROOTは現在のアセットのルート・ディレクトリ、$SYSNAMEはアセット名で、いずれもシステム記述ファイルで定義されています。混乱を避けるため、各レポートの名前には$SYSNAMEも含まれています。
表3-4 COBOLレポート・フィールド 「フィールド定義」を参照してください。これはプログラムを定義する(メイン)ソース・ファイルのパスです。 「フィールド定義」を参照してください。 「フィールド定義」を参照してください。
•
•
• また、SUBタイプのコンポーネントの場合、この名前は、サブプログラム自体の名前ではなく、サブプログラムのエントリ・ポイントの名前である可能性があります。これはCALLで参照される名前であり、カタロガではそれが指定しているのがエントリ・ポイントと完全なサブプログラムのどちらなのかを特定できません。
表3-5 COBOLコピー・レポート・フィールド 「フィールド定義」を参照してください。 「フィールド定義」を参照してください。
•
•
「フィールド定義」を参照してください。
表3-7 JCLサブファイル・レポート・フィールド 「フィールド定義」を参照してください。 「フィールド定義」を参照してください。
•
•
表3-8 JCLジョブ・レポート・フィールド 「フィールド定義」を参照してください。
表3-9 画面レポート・フィールド 画面定義が開始するソース・ファイル中の行番号(DFHMDIマクロが含まれている行)。 「フィールド定義」を参照してください。
•
•
•
•
表3-10 SQL表レポート・フィールド 「フィールド定義」を参照してください。
•
•
•
•
表3-11 SQLビュー・レポート・フィールド 「フィールド定義」を参照してください。
注意: ビューへの参照は表への参照と区別できないため、ビューはMISSINGになりません。そのため、表またはビューへの参照がなんらかの定義とリンクしていない場合、カタロガは欠落ビューではなく欠落表を作成します。
表3-12 CICSトランザクション・レポート・フィールド
表3-13 異常レポート・フィールド 「フィールド定義」を参照してください。エラーの実際の場所(文またはその他の構成)がサブファイル(COBOLコピー・ファイル、JCL PROCファイルなど)の中にある場合、これはそのサブファイルのパスで、そうでない場合はこのフィールドは空です。
• ANALYSISは動的呼出しなど、カタロガがコンポーネントの正確な分析を実行できない構成に関連する異常です。 解析フェーズ中に(「カタロガ・プロセス」を参照)、システムの解析可能コンポーネントのソース・ファイルA/B/C/file.extごとに、カタロガはA/B/C/pob/file.ext.pob (pobディレクトリはカタロガにより要求時に作成)という名前のPOBファイルを生成します。このファイルには、解析の結果(コンポーネントの抽象構文ツリー(AST))が含まれます。これはカタロガの分析フェーズで、またCOBOLコンバータやJCLトランスレータなどのその他のTuxedo ART Workbenchツールにより、再度読み取られます。CDM (Common Data Model)ファイルには、COBOL変数(データ記述エントリと呼ばれる)に関する追加情報が含まれます。システムのCOBOLプログラムA/B/C/prog.cblごとに、カタロガはA/B/C/pob/prog.cbl.cdmという名前のCDMファイルを生成して、メイン・ソース・ファイルで定義された変数に関する情報を格納します。また、変数を定義する各COBOLコピー・ファイル D/E/file.cpyごとに(たとえば、Procedure Divisionコードを含むコピー・ファイルとは対照的に)、カタロガはD/E/pob/file.cpy.cdmという名前のCDMファイルを生成して、これらの変数を格納します。このCDMファイルは、このコピー・ファイルを含むすべてのプログラムで共有されます。
• $SYSROOT/symtab-$SYSNAME.pob: このファイルには(分析フェーズ中に)カタロガにより作成された記号表が格納され、アセット内の様々なすべてのコンポーネントのサマリー情報が含まれます。この情報はこれらのコンポーネント間の相互参照情報を計算するために使用されます。
• $SYSROOT/Cobol-dump-map.pob: COBOLプログラムの抽象構文ツリー(AST) POBの読取りおよび書込みに必要な情報(ダンプ記述子と呼ばれる)を含みます。既存のCOBOL POBを再読取りできなくなるので、このファイルを削除しないでください。
• $SYSROOT/sql-system-$SYSNAME.pob、$SYSROOT/sql-system-$SYSNAME-State-ments.pob: アセットの完全なSQLスキーマの様々な内部形式を含み、すべてのDDLファイル(SQLスクリプト・ファイル)の結合から導出されます。これらのファイルはCOBOLプログラムの解析(およびリンク)に必要です。カタログ化プロセス中、Tuxedo ART Workbenchは、JCLファイルとバッチCOBOLプログラムの両方を解析してメタデータ関連のデータセットを収集し、それをparam/dynamic-config/datasetディレクトリに格納し、ファイル・コンバータ構成ファイル(たとえば、param/fileディレクトリのDatamap-<schema>.reおよびmapper-<schema>.reファイル)を生成します。「カタロガ・プロセス」で説明したように、この操作は解析、分析、分析後およびレポート生成(詳細は後述を参照)の4つのフェーズに論理的に分割されます。プロジェクトおよび移行プラットフォームの構成の必要に応じて、これらのフェーズは単一の実行または増分的に、順次または同時に(解析フェーズのみ)実行することができます。
• preparseおよびそのバリアントpreparse-files: 解析フェーズのみ実行します。これは、少なくともSQLシステム・ファイルが生成された後で、同時実行が可能な唯一のフェーズです。また、これは、1つ以上の特定のコンポーネントの処理をリクエストできる唯一のフェーズです。それ以外の場合、カタロガは処理する必要のあるコンポーネントを自ら特定します(「アセットでの変更: 増分操作」を参照)。このフェーズでは、カタロガはコンポーネント・ソース・ファイル、含まれるサブファイルおよびSQLシステム・ファイルを読み取り、処理されるコンポーネントのPOBファイル(のみ)を生成します。
• analyze: 分析フェーズを実行します。各コンポーネントのPOBファイルが再度読み取られ、コンポーネントで最も重要な構成が、カタロガ記号表(symtab)に格納されるより小さなサマリー情報に変換されます。
• fast-final: 分析後およびレポート生成フェーズの両方を実行します。
• catalog: 分析フェーズ(したがって要求により解析フェーズ)、分析後フェーズおよびレポート生成フェーズを順序どおりに実行します。
注意: これらすべてのコマンドでは、構成情報のすべてをシステム記述ファイルおよびカタロガ・オプション・ファイルから取得します。preparse-filesを除き、コマンド行引数のみがシステム記述ファイルへのパスおよび標準のTuxedo ART Workbenchツールの引数です。カタロガは、refineコマンドを使用して実行するようになっています。refineコマンドは汎用的なTuxedo ART Workbenchランチャで、これを使用して主なTuxedo ART Workbenchツールを起動します。このランチャは、実行ログ管理や増分および繰返し操作(後述の「繰返しおよび増分操作」を参照)など、これらのツールの操作の様々な側面を処理します。Tuxedo ART Workbenchランチャはいくつかの汎用のコマンド行オプションも処理します。次のオプションがTuxedo ART Workbenchのコマンドと関係があります。システム記述ファイルの場所を指定します。Unix/Linuxコマンドで一般的なように、パスには絶対パスまたは現在の作業ディレクトリに対する相対パスを指定できます。
注意: 「処理フェーズ」で説明したとおり、システム全体のコマンドは、preparse、analyze、fast-finalおよびcatalogです。これらはアセット全体でグローバルに動作します。これらすべてのコマンドの汎用的なコマンド行構文は次のとおりです。このパスで指定したコンポーネント・ソース・ファイルを作業リストに追加します。このパスは、現在の作業ディレクトリが異なっていても、システムのルート・ディレクトリである$SYSROOTに対する相対パスで指定する必要があります。
• そうでない場合、コンポーネントは正常(および詳細、-quietオプションがlauncher-optionsで指定されている場合は除く)に解析され、そのPOBファイルが生成されます。
• PROCファイル、INCLUDEファイルおよび一部のSYSINファイルのようなJCLジョブから参照されるJCLサブファイルも含まれますが、これは、MVSプラットフォームでは、これらのサブファイルはJCLジョブが実行されるときに検索される(したがって実行時参照である)のに対し、移行プラットフォームでは、カタロガがこれらの参照を解析時に解決し、JCLトランスレータで使用できるようにする(したがってコンパイル時参照とみなされる)必要があるためです。SYSINファイルも、DB2ランチャにより起動されるプログラムなど、解析時に必要な情報を含んでいるため、この場合にあてはまります。カタロガでは、"コンパイル時"は解析に、"実行時"は分析後に相当します。
表3-14 コンパイル時参照 sql-librariesまたは指定されない場合はlibraries
1. システム記述ファイルのSRCDIRの定義に関連するlibraries (または該当する場合はsql-libraries)句にリストされた各ディレクトリSUBDIRに対して、順番に、同じファイルでSUBDIRの定義を探してから次のことを行います。
• 該当する定義がない場合、報告(これは、カタロガが開始してシステム記述ファイルを読み取るときにのみ行われます)し、リストの次の要素にスキップします。このアルゴリズムは、strict-jcl-libraries特別オプションが指定されている場合に、JCL-Sysinファイルを検索するために変更されます。このオプションが設定されている場合、SYSINファイルA.B.TGTFILまたはA.B(TGTFIL)の検索が次のように続行されます。
• 論理名がA.BのタイプJCL-Sysinのディレクトリが存在する場合、このディレクトリでTGTFILが検索されます(files句および物理拡張子に応じたベース名検索)。同じ論理名を持つディレクトリが2つ以上存在する場合、エラーになることに注意してください。この動作は、JCL-Sysinファイルを検索する場合でも、libraries句がタイプJCLのディレクトリ上で無視されることを意味します(JCL-Selectファイルの検索は依然有効です)。一方、前述したように、strict-jcl-libraries特別オプションが設定されていない場合、JCL=Sysinディレクトリのlogical-name句は無視されます。重複する名前が多数存在する場合、つまり、異なるライブラリ(PDS)に同じ名前のファイルが数多く存在する場合、パスベースの検索ではなく、厳密な検索を使用することをお薦めします。この場合、個別のディレクトリ内の各SYSINライブラリの内容全体を転送し、ライブラリの名前にディレクトリの論理名を指定する方が、適切なファイルが各参照で検出されるようにJCLディレクトリのlibraries句内の様々なJCL-Sysinディレクトリ名を指定するよりも簡単です。A.B.CまたはA.B(C)の検索は次のように続行されます。指定検索は、コンパイル時参照の通常のサブファイル検索と似ています。これは、ディレクトリSRCDIRに関連するlibraries句にタイプTGTTYPの要素(ディレクトリ)が1つ以上含まれている場合に適用されます。検索アルゴリズムは次のようになります。
1. システム記述ファイルのSRCDIRの定義に関連するlibraries句にリストされた各ディレクトリSUBDIRに対して、順番に、同じファイルでSUBDIRの定義を探してから次のことを行います。
• 該当する定義がない場合、報告(これは、カタロガが開始してシステム記述ファイルを読み取るときにのみ行われます)し、リストの次の要素にスキップします。
• そうではない(タイプが一致した)場合、(files句と一致した)そのディレクトリのコンポーネント・ファイルのリストを検索します。
注意: 指定検索は、カタロガの現在のバージョンではまだ使用できません。libraries句を使用して、実行時参照に含まれるコンポーネントを指定する場合、これらの要素は無視されます。指定検索は、将来のバージョンで、選択したSRCTYP/TGTTYPの組合せに対して徐々に追加されます。リリース・ノートを確認してください。