目次 前 次 PDF


CICS Runtime Preprocessor

CICS Runtime Preprocessor
この章では、次の項について説明します。
概要
CICS Runtime Preprocessorは、<Default ? Font>Oracle Tuxedo Application Runtime for CICSのもとで実行するCOBOLプログラムとCプログラムを準備します。
prepro-cics.pl
前提条件
CICSプリプロセッサで処理されるプログラムは次の条件に従っている必要があり、そうでない場合、コンパイル時または実行時にエラーが発生するリスクを想定する必要があります。
注意:
1.
CICS Runtimeがインストールされている必要があります。prepro-cics.plが使用する一部のテクニカル・コピー・ファイルは、cpylib CICSランタイム・モジュールのもとで提供されます。
2.
3.
KIX--INDICSKIX--ALL-ARGS、常に
KIX--DFHRESP、常に
KIX--DFHVALUE、プログラムまたはそれがインクルードするコピー・ファイルのいずれかでDFHVALUE疑似関数が使用されている場合
4.
5.
プログラムは、正確に2つのパラメータ、DFHEIBLK (同じ名前のコピー・ファイルにより定義)およびDFHCOMMAREAをとる必要があり、これらはアプリケーションのPROCEDURE DIVISIONに対して適切になるように定義されています。つまり、プログラムは次のようになります。
LINKAGE SECTION.
COPY DFHEIBLK.
01 DFHCOMMAREA.
....
PROCEDURE DIVISION USING DFHEIBLK DFHCOMMAREA.
IBM CICSプリプロセッサのNOLINKAGEオプションでコンパイルされるプログラムの場合は、ARTおよびCICS Runtime Preprocessorでは(まだ)サポートされていません。
名前
prepro-cics.pl- 標準入力からCOBOLプログラム・ファイルを読み取って、変換したCICS命令とともに標準出力に出力する関数。
形式
prepro-cics.pl [-type_output <output type>] [-notrec <notrec behavior>] [-B]
説明
prepro-cics.plはCOBOLプログラムを入力として、1行ずつ読み取り、変換したCICS命令とともにファイルを出力します。
prepro-cics.plは、ワンパスのみ実行して、1行ずつ処理します。つまり、標準入力から1行読み取り、1行以上の行を出力し(出力タイプによっては何も出力しない)、さらに次の入力行を読み取ります。この動作のため、コンパイラ内部のプリプロセッサとしての用途と互換性を持つことが可能ですが、入出力に同じファイルを使用することは禁止されます。入力ファイルが終わったときに行を出力する点に注意します。
プリプロセッサは、入力COBOLプログラムが6列の左マージンを持っていると想定します。出力は固定書式で、そうでない場合はエラー・メッセージが表示されます。
オプション
B
Bは、ソースがEXCIプログラムであることを示します。
MQ_wrapper
MQ_wrapperを使用すると、WebSphere MQプログラムをメインフレームからART for CICSにスムーズに移行できます。メインフレームでは、プログラムが明示的にMQOPENおよびMQCLOSEを実行し、メインフレームが暗黙的にMQCONNおよびMQDISCを実行します。ART for CICSは、MQ_wrapperを有効にすることによってこの方法をサポートします。ART for CICSは、WebSphere MQの4つのAPI (MQCONN/MQOPEN/MQCLOSE/MQDISC)を内部のMQ APIラッパーに変換します。MQ_wrapperを有効にすると、次のことが可能になります
ERROR状態が原因でアプリケーションのトランザクションがABENDしたときに、MQCLOSEおよびMQDISCを暗黙的に呼び出す
-m queue_manager_nameを使用して、ART for CICSの暗黙的なMQ操作によって使用されるWebSphere MQキュー・マネージャを指定する必要があります。詳細は、「WebSphere MQキュー・マネージャ名」を参照してください。
MQ_wrapperを指定しない場合は、プログラムで4つのAPI (MQCONN/MQOPEN/MQCLOSE/MQDISC)をすべて明示的に実行してMQを操作する必要があります。
詳細は、「WebSphere MQとの統合の実装」を参照してください。
notrec
notrecは、完全にはサポートされていない命令を処理する手段を指定します。(命令の一部のオプションが認識されないため「notrec」と呼ばれます。)2つの可能性があります。
どちらの場合も、エラー出力にメッセージが表示されます。
tsam
tsamによって、CICSおよびDBのTSAM呼出しパス機能がサポートされるかどうかが決まります。認識される値は次のとおりです。
1 (デフォルト)
tsamをサポートします。
0
tsamをサポートしません。
type_output
type_outputによって、出力が出力される方法が決まります。認識される値は次のとおりです。
debug
すべての行をそのステータス(untouched、modified、deleted、created)とともに出力します。読み取ったすべての行について、常に少なくとも1行が出力されます。
orig
すべての行を出力し、削除された行はコメントとして出力します。読み取ったすべての行について、少なくとも1行が出力されるとはかぎりません。
normal (デフォルト)
削除されたものを除き、すべての行を出力します。読み取ったすべての行について、少なくとも1行が出力されるとはかぎりません。
他のあらゆる値は、「normal」として処理されます。
制限
CICS命令が認識されるためには、EXECCICSの2語が同じ行にある必要があります。
CICSおよびDBのTSAM呼出しパス機能をサポートするために、EXEC SQL文を含むCICSプログラムのコンパイル時に、プリプロセッサは、procob (Oracle DBの場合)またはdb2 prep (IBM UDBの場合)コマンドより先に実行される必要があります。
エラー・メッセージ
無効なCICSメッセージ
無効なCICS命令が検出されたときに常に出力されるエラー・メッセージは、次の書式を使用します。
サマリーは次のようになります。
無効な命令(IGNOREおよびHANDLE命令)
IGNOREおよびHANDLE命令メッセージは、非常にシンプルです。
IGNOREは、CONDITIONを伴って作成してください。
CICS命令と一致するルールがない場合、同じキーワードで始まるすべてのコマンドについて、このコマンドがなぜ不適切かを説明するエラー・メッセージが表示されます。
<command>は、<keyword list>の1つを想定していますが、1つも存在しません。
<command>は、<keyword>を想定していますが、検出できませんでした。
<command>は、<keyword>を認識できません。
<command>で、<keyword>は… <keyword> (<keyword list>の1つ), …を想定していますが、いずれも検出されませんでした。
<command><keyword>が存在しますが、同時に使用する必要がある<keyword>がありません。
<command>では、<keyword><keyword>を同時に使用することはできません。
<keyword>のデフォルト値は<keyword>の値で計算されることになっていますが、その値(<value>)がcharstringではありません。
複数のコマンドが一致する場合、プリプロセッサはそれらをすべてリストします。ただし、プリプロセッサが変換の前にコマンドの複数該当をチェックするため、これは実際には発生しません。
サポートされていないエラー・メッセージ
CICS命令が不明であるか、「非サポート」または「廃止」と登録されている場合、エラー・メッセージ:
Instruction non supported
が生成されます。
オプションnotrecに値stopが設定されている場合、1つの命令に複数の認識されないキーワードがあると、同じエラー・メッセージが出力されます。
prepro-cics-C.pl
前提条件
CICSプリプロセッサで処理されるプログラムは次の条件に従っている必要があり、そうでない場合、コンパイル時または実行時にエラーが発生するリスクを想定する必要があります。
1.
CICS Runtimeがインストールされている必要があります。prepro-cics-C.plが使用する一部のテクニカル・ヘッダー・ファイルは、CICSランタイム・モジュールのincludeディレクトリのもとで提供されます。
2.
prepro-cics-C.plは、CICSおよびDBのTSAM呼出しパス機能をサポートしません。
3.
プログラムにEXEC SQL文が含まれる場合、プリプロセッサはdbプリコンパイラ・コマンド(IBM UDBの場合はdb2 prep、Oracle DBの場合はpro*C)より先に実行される必要があります。
名前
prepro-cics-C.pl- source_fileで指定されたCプログラム・ファイルを読み取って、変換したCICS命令とともにCプログラム・ファイルをoutputファイルに出力する関数。
形式
prepro-cics-C.pl [-help] [-source_format <fixed>] [-o <output file name>] [-B] [-enable_pragma] source_file
説明
prepro-cics-C.plはCプログラムを入力として、1行ずつ読み取り、変換したCICS命令とともにファイルを出力します。
prepro-cics-C.plは、ワンパスのみ実行して、1行ずつ処理します。つまり、source_fileから1行読み取り、1行以上の行を出力し、さらに次の入力行を読み取ります。この動作のため、コンパイラ内部のプリプロセッサとしての用途と互換性を持つことが可能ですが、入出力に同じファイルを使用することは禁止されます。
オプション
-help
helpは、prepro-cics-C.plの使用方法を表示します。
-source_format
source_formatは、Cプログラムのソース書式を指定します。2つの可能性があります。
fixed - (デフォルト) Cプログラムの各行が固定書式であることを意味します。
free - フリー・スタイルのCプログラムを指定します。
注意:
現在、fixed書式のみがサポートされています。
-o
oは、出力ファイルの名前とパスを指定します。
-B
Bは、ソースがEXCIプログラムであることを指定します。
-enable_pragma
enable_pragmaは、プラグマを有効にすることを指定します。
source_file
source_fileは、入力ファイルの名前とパスを指定します。
制限
/**/を使用して単一行のコメントを表します。EXEC CICSコマンドの中央にコメントを置かないでください。
EXEC CICSは全体を1行で指定します。
#pragmaは自動的にコメントに変換されます。
C main()関数、そのパラメータ・リストおよびカッコは1行で指定します。例:
void main(int argc, char **argv)
エラー・メッセージ
prepro-cics-C.plは、次のようなエラー・メッセージを出力することがあります。
source_fileを開けません
PROGRAMは、EXCI LINKを伴って作成してください
LENGTHは、EXCI LINKCOMMAREAを伴って作成してください
DATALENGTHは、EXCI LINKCOMMAREAを伴って作成してください
RETCODEは、EXCI LINKを伴って作成してください
命令rulenameは非サポート
命令rulenameは廃止

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved