参照
“第2章 CORBAアプリケーション開発時の留意事項”についても参照してください。
メッセージについて
COBOLアプリケーション実行時に、COBOLランタイムライブラリからメッセージが表示される場合があります。JMPではじまるメッセージが出力されていた場合は、「COBOL使用手引書」(実行時のメッセージ)を参照してください。
関数名/変数名の扱い
関数名の長さは、60文字までです。60文字を超える場合、COBOLコンパイラにてコンパイルエラーとなるため、注意してください。IDLファイルを定義する場合、module名、interface名、オペレーション名を合わせた長さが55文字以上になると、各生成するファイルの関数名が60文字を超える場合があるため、注意してください。
変数名の長さは、30文字までです。30文字を超える場合、30文字以降を切り捨てます。
変数名の文字長が30文字を超える場合で、同一名になる場合、27文字目以降を数値に置き換えます。
アンダースコア(_)は、COBOLで使用できないため、ハイフン(-)に置換します。ただし、オペレーション名、インタフェース名で使用されているアンダースコア(_)は、そのまま使用します。
IDLファイルからクラス名と変数名の関係で、同じ名前に変換される場合は、以下のケースで変数の型などが不明となるため、使用しないでください。
typedef long foo_bar; interface foo { typedef short bar; };
COBOLの予約語の文字列がIDLファイルに記述されている場合、対応可能な予約語には文字列の前に“IDL-”を付加します。対応していない予約語の文字列は、IDLファイルに記述できません。予約語については、COBOLのマニュアルを参照してください。対応可能な予約語については、対応可能な予約語の一覧を参照してください。
const宣言は、COBOLの“SYMBOLIC CONSTANT”となります。OMG規定では“>>CONSTANT”文節に対応しますが、COBOLで未サポートであるため、“SYMBOLIC CONSTANT”となります。
COBOLでのNVListは、NamedValue構造体(登録集NAMEDVALUE.cbl)の配列を指すアドレスを格納するポインタです。
パラメタは、CORBA-NVLIST-ADD-ITEMで設定します。このとき、以下の点に注意してください。
初期化(CORBA-ORB-CREATE-LIST使用)を行う必要があります。
CORBA-STRING-SETで値を設定されたポインタを指定します。省略時は、NULLを指定してください。
CORBA-TYPECODE-FROM-CGEN-TCで作成されたTYPECODEを指定します。省略不可です。
注意
CORBA-ORB-TYPECODE-FROM-CGEN-TCに指定可能なパラメタは、登録集CONST.cblに記載されている基本型のTC-XXX、登録集で頭にTCのつくもの、またはIDLコンパイルで作成されるIDLファイル名_h.cblに定義されている、TC-XXX-IMPL-SEQを使用します。
パラメタの値のアドレスを設定します。STRINGやOBJECTのようなポインタで扱われるデータも、FUNCTION ADDRでアドレスを取り出して設定します。ITEM-FLAGにCORBA-ARG-OUTなどを指定する際は、NULLを設定します。
VALUEの領域の長さを指定します。省略時は、0を指定します。
登録集FLAGS.cblを使用します。省略不可です。
領域の解放
NVList自体の解放時はCORBA-NVLIST-FREE、NVListの設定値だけの解放時はCORBA-NVLIST-FREE-MEMBERを使用します。
文字列の設定について
関数で文字列をパラメタに持つ場合、CORBA-STRING-SET関数に文字列を設定する必要があります。
例
*文字列の長さを求めます MOVE FUNCTION LENG (CORBA-ORB-OBJECTID-IMPLREP) TO STRING-LENGTH. *文字列を作業用のTEMP-BUFに格納します CALL "CORBA-STRING-SET" USING TEMP-BUF STRING-LENGTH CORBA-ORB-OBJECTID-IMPLREP. *関数を呼び出します CALL "CORBA-ORB-RESOLVE-INITIAL-REFERENCES" USING ORB TEMP-BUF ENV IMPL-REP.
PIC X(m)で宣言されたin/out/inoutの各文字型への代入は、MOVE命令で行います。ただし、COBOL以外にマッピングされたアプリケーションで扱える文字列長は、'\0'を含みます。
日本語文字列を扱う場合、COBOLの日本語項目N(またはNC)から文字項目Xに直接代入できません。CORBA-STRING-SET関数/CORBA-WSTRING-SET関数にNULL文字を設定したあとに、使用してください。なお、文字列の取出しは、CORBA-STRING-GET関数/CORBA-WSTRING-GET関数を使用します。
Windows(R)アプリケーション作成時/運用時の注意事項
サーバアプリケーションは、動的リンク構造(主プログラムのロード時に、呼び出される関数すべてをロードする)で作成する必要があります。
動的プログラム構造(ロードが関数の呼出し時に行われる)では作成できないため、アプリケーションの翻訳時は、翻訳オプションにDLOADオプションを指定しないでください。
サーバアプリケーションのメソッド部では、DISPLAY文を使用しないでください。
サーバアプリケーションで各インタフェース使用時にオブジェクトへのポインタが渡された場合、ユーザ例外を返すことがあります(例外コード:“BAD PARAM”)。ENVIRONMENTをパラメタに持つ場合は、例外情報を参照してください。
サーバアプリケーションをshared/unsharedタイプとしてインプリメンテーションリポジトリに登録する場合は、以下の設定を行ってください。また、インプリメンテーションリポジトリの登録では、設定項目envを使用しないでください。
システムの環境変数に、以下の設定を追加します。
@EnvSetWindow=UNUSE
システムの環境変数PATHに、アプリケーションのメソッド実装部であるDLLファイルのパスを追加します。
CORBAワークユニット運用で翻訳オプション“SSOUT(環境変数情報名) ”および環境変数情報“@MessOutFile”を指定せずに、標準出力、標準エラー出力にデータを出力する場合、主プログラムの翻訳オプションに“MAIN(MAIN)”を指定してください。
クライアントアプリケーションでは、BOA/ServerRequestインタフェースを使用できません。
アプリケーションの運用前に、以下の環境変数を設定する必要があります。
@WinCloseMsg=OFF
クライアントアプリケーションとサーバアプリケーションを同一フォルダに作成しないでください。クライアントアプリケーションとサーバアプリケーションとで同名のオブジェクトファイルが生成され、アプリケーションが異常な動作をする可能性があります。
COBOLサーバアプリケーションで使用するダイナミックリンクライブラリの名称は、サーバアプリケーションのインタフェース宣言と合わせる必要があります。
例を以下に示します。
モジュール名:oddemo
インタフェース名:calculator
ダイナミックリンクライブラリ名:ODDEMO-CALCULATOR.DLL
UNION型のマッピングが32bit版から変更されます。再度IDLコンパイラを実行し、ソースファイルを再作成してください。
Solaris/Linuxアプリケーション作成時/運用時の注意事項
Shift JIS環境でアプリケーションを運用する場合は、CBR_CODE_CHECK=noを設定してください。
クライアントアプリケーションでは、BOA/ServerRequestインタフェースを使用できません。
サーバアプリケーションは、動的リンク構造(主プログラムのロード時に、呼び出される関数すべてをロードする)で作成する必要があります。
動的プログラム構造(ロードが関数の呼出し時に行われる)では、作成できないため、アプリケーションの翻訳時は、翻訳オプションにDLOADオプションを指定しないでください。
COBOLサーバアプリケーションで使用するライブラリの名称は、サーバアプリケーションのインタフェース宣言と合わせる必要があります。
例
モジュール名:oddemo
インタフェース名:calculator
ライブラリ名:libODDEMO-CALCULATOR.so
Windows(R)アプリケーションの作成
Windows(R)でCOBOLアプリケーションを作成する場合の注意点を以下に示します。なお、詳細な翻訳・リンク方法については、NetCOBOLのマニュアルを参照してください。
ポイント
CORBAサービスのインストールフォルダを“C:\Interstage\ODWIN”として説明します。
クライアントアプリケーションの作成
クライアントアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
1.で生成されたスタブ、CDRソースをCOBOLソースファイルに登録し、主プログラムと合わせて翻訳します。翻訳時に、「翻訳オプション」として以下のフォルダ配下の登録集を指定します。
CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
リンクするライブラリには、以下のファイルを指定します。
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBL.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLMT.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLUC.LIB
IDLファイル名_STUB.CBL IDLファイル名_CDR.CBL
[共通]
NAMEオプションを指定してください。
[スレッドモードの場合]
THREAD(MULTI)オプションを指定してください。
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
RCSオプション(UCS2-Unicode(UCS2)を使用する)を指定してください。
スレッドモードの場合、THREAD(MULTI)オプションを指定してください。
翻訳時の「翻訳オプション」については、NetCOBOLのマニュアルを参照してください。
以下の環境変数を設定してください。
CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
スタブ、CDRソースで定義された目的オブジェクト
サーバアプリケーションの翻訳・リンク
サーバアプリケーション作成時の翻訳・リンク手順と指定するファイル・オプションを以下に示します。なお、詳細な翻訳・リンク方法については、NetCOBOLのマニュアルを参照してください。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
1.で生成されたスケルトン、CDRソースを翻訳し、オブジェクトファイル(*.obj)を作成します。プロジェクトマネージャを起動し、「ツール」の「翻訳」を選択して「翻訳時の指定」のファイル・オプションを指定します。
サーバアプリケーションのメソッド部(サーバの実処理)を、同様の手順で翻訳します。詳細については、“Windows(R)アプリケーション作成時/運用時の注意事項 ”を参照してください。
翻訳したオブジェクトを結合し、DLLファイルを作成します。DLLファイル名は、モジュール名-インタフェース名.DLLです。「ツール」の「リンク」を選択し、以下のファイルと共に指定します。
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLSV.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLMTSV.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLSVUC.LIB
サーバアプリケーションのメイン処理を主プログラムとして、実行プログラムを作成します。このとき、以下のファイルと共に指定します。
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLSV.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLMTSV.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLSVUC.LIB
OD_impl_instコマンドでサーバアプリケーションを登録します。実行時に指定する定義ファイルは、サンプルプログラムの以下のファイルを参照してください。
C:\Interstage\ODWIN\SRC\SAMPLE\COMPLEX\SAMPLELIST.COBOL\DATA\*\*.DEF
注)modeには、SYNC_ENDを設定してください。
DLLはDLL名だけを設定し、環境変数PATHにDLLのパスを追加してください。
IDLファイル名_インタフェース名_SKEL.CBL IDLファイル名_CDR.CBL IDLファイル名_SKEL.CBL
注意
IDL定義により生成されない場合があります。
[共通]
NAMEオプションを指定してください。
DLOADオプションは指定しないでください。
[スレッドモードの場合]
THREAD(MULTI)オプションを指定してください。
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
RCSオプション(UCS2-Unicode(UCS2)を使用する)を指定してください。
スレッドモードの場合、THREAD(MULTI)オプションを指定してください。
翻訳時の「翻訳オプション」については、NetCOBOLのマニュアルを参照してください。
以下の環境変数を設定してください。
CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
モジュール名-インタフェース名-オペレーション名.OBJ スケルトン、CDRソースで定義された目的オブジェクト
Windows(R)アプリケーションの作成
Windows(R)でCOBOLアプリケーションを作成する場合の注意点を以下に示します。なお、詳細な翻訳・リンク方法については、NetCOBOLのマニュアルを参照してください。
ポイント
CORBAサービスのインストールフォルダを“C:\Interstage\ODWIN”として説明します。
クライアントアプリケーションの作成
クライアントアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
1.で生成されたスタブ、CDRソースをCOBOLソースファイルに登録し、主プログラムと合わせて翻訳します。翻訳時に「翻訳オプション」と環境変数CORBAに登録集のディレクトリを指定してください。
リンクするライブラリには、以下のファイルを指定します。
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBL.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLMT.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\ODCOBCBLUC.LIB
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
1.で生成されたスタブ、CDRソースを、主プログラムと合わせて翻訳します。翻訳時に「翻訳オプション」と環境変数COB_CORBAに登録集のディレクトリを指定してください(XXX_C.cbl: 主プログラムファイル名)。
set COB_CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL COBOL.EXE -NM "IDLファイル名_STUB.cbl" COBOL.EXE -NM "IDLファイル名_CDR.cbl" COBOL.EXE -M "XXX_C.cbl"
翻訳したオブジェクトを結合し、クライアントアプリケーションを作成します。「リンクオプション」には、以下のファイルを指定します。
[共通]
F4AGCIMP.LIB
libcmt.lib
kernel32.lib
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBL.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLMT.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLUC.LIB
IDLファイル名_STUB.CBL IDLファイル名_CDR.CBL
[共通]
NAMEオプションを指定してください。
[スレッドモードの場合]
THREAD(MULTI)オプションを指定してください。
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
RCSオプション(UCS2-Unicode(UCS2)を使用する)を指定してください。
スレッドモードの場合、THREAD(MULTI)オプションを指定してください。
翻訳時の「翻訳オプション」については、NetCOBOLのマニュアルを参照してください。
以下の環境変数を設定してください。
64bitアプリケーションの場合
COB_CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
32bitアプリケーションの場合
CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
スタブ、CDRソースで定義された目的オブジェクト
サーバアプリケーションの翻訳・リンク
サーバアプリケーション作成時の翻訳・リンク手順と指定するファイル・オプションを以下に示します。なお、詳細な翻訳・リンク方法については、NetCOBOLのマニュアルを参照してください。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
1.で生成されたスケルトン、CDRソースを翻訳し、サーバアプリケーション(インタフェース実装部分)を翻訳し、オブジェクトファイル(*.obj)を作成します。翻訳時に「翻訳オプション」と、環境変数COB_CORBAに登録集のディレクトリを指定してください(XXX_SA.cbl: インタフェース実装プログラムファイル名)。
COBOL.EXE -NM "IDLファイル名_インタフェース名_SKEL.CBL" COBOL.EXE -NM "IDLファイル名_SKEL.cbl" COBOL.EXE -NM "IDLファイル名_CDR.cbl" COBOL.EXE -NM "XXX_SA.cbl"
サーバアプリケーション(初期化処理部)を、同様の手順で翻訳します(XXX_S.cbl: 主プログラムファイル名)。詳細については、“Windows(R)アプリケーション作成時/運用時の注意事項 ”を参照してください。
COBOL.EXE -M "XXX_S.cbl
翻訳したオブジェクトを結合し、DLLファイルを作成します。DLLファイル名は、モジュール名-インタフェース名.DLLです。「リンクオプション」には、以下のファイルを指定します。
[共通]
F4AGCIMP.LIB
libcmt.lib
kernel32.lib
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLSV.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLMTSV.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLSVUC.LIB
サーバアプリケーションのメイン処理を主プログラムとして、実行プログラムを作成します。このとき、「リンクオプション」には以下のファイルを指定します。
[共通]
F4AGCIMP.LIB
libcmt.lib
kernel32.lib
[プロセスモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLSV.LIB
[スレッドモードの場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLMTSV.LIB
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
C:\Interstage\ODWIN\LIB\x64\ODCOBCBLSVUC.LIB
OD_impl_instコマンドでサーバアプリケーションを登録します。実行時に指定する定義ファイルは、サンプルプログラムの以下のファイルを参照してください。
C:\Interstage\ODWIN\SRC\SAMPLE\COMPLEX\SAMPLELIST.COBOL\DATA\*\*.DEF
注)modeには、SYNC_ENDを設定してください。
DLLはDLL名だけを設定し、環境変数PATHにDLLのパスを追加してください。
IDLファイル名_インタフェース名_SKEL.CBL IDLファイル名_CDR.CBL IDLファイル名_SKEL.CBL
注意
IDL定義により生成されない場合があります。
[共通]
NAMEオプションを指定してください。
DLOADオプションは指定しないでください。
[スレッドモードの場合]
THREAD(MULTI)オプションを指定してください。
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
RCSオプション(UCS2-Unicode(UCS2)を使用する)を指定してください。
スレッドモードの場合、THREAD(MULTI)オプションを指定してください。
翻訳時の「翻訳オプション」については、NetCOBOLのマニュアルを参照してください。
以下の環境変数を設定してください。
COB_CORBA=C:\Interstage\ODWIN\INCLUDE\COBOL
モジュール名-インタフェース名-オペレーション名.OBJ スケルトン、CDRソースで定義された目的オブジェクト
Solarisアプリケーションの作成
SolarisでCOBOLアプリケーションを作成する場合の注意点を以下に示します。
注意
開発環境として“NetCOBOL”を使用してUNICODEのアプリケーションを開発する場合、ソースファイルおよび登録集は、UNICODE(UTF-8)で作成してください。
翻訳/リンク/実行を行う場合、コード系には“UNICODE”を設定してください。
ポイント
CORBAサービスのインストールディレクトリを“/opt/FSUNod”として説明します。
クライアントアプリケーションの作成
クライアントアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FSUNod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_c.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_c.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_c.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_c.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_c.cbl
1.で生成されたスタブ、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_stub.cbl: スタブファイル名)。
[プロセスモードの場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_stub.so -lA_cdr B_stub.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -lA_cdr B_stub.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -lA_cdr B_stub.cbl
COBOLライブラリをリンクしてクライアントアプリケーションを作成します(CAP_c:作成するクライアントアプリケーション名)。
[プロセスモードの場合]
/opt/FSUNod/lib/libOMcbl.soをリンクします。
cobol -L/opt/FSUNod/lib -lOMcbl -o CAP_c -lB_stub -lA_cdr XXX_c.o
[スレッドモードの場合]
/opt/FSUNod/lib/libOMcblMT.soをリンクします。
cobol -L/opt/FSUNod/lib -lOMcblMT -Tm -o CAP_c -lB_stub -lA_cdr XXX_c.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FSUNod/lib/libOMcblUC.soをリンクします。
cobol -L/opt/FSUNod/lib -lOMcblUC -Tm -o CAP_c -lB_stub -lA_cdr XXX_c.o
サーバアプリケーションの作成
サーバアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FSUNod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_s.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_s.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_s.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_s.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_s.cbl
サーバアプリケーション(初期化処理部)を作成します(SAP_s: サーバアプリケーション名)。
[プロセスモードの場合]
/opt/FSUNod/lib/libOMcbl.soをリンクします。
cobol -lOMcbl -o SAP_s XXX_s.o
[スレッドモードの場合]
/opt/FSUNod/lib/libOMcblMT.soをリンクします。
cobol -lOMcblMT -Tm -o SAP_s XXX_s.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FSUNod/lib/libOMcblUC.soをリンクします。
cobol -lOMcblUC -Tm -o SAP_s XXX_s.o
1.で生成されたスケルトン、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_skel.cbl: スケルトンファイル名)。
なお、IDL定義に基本データ型以外が含まれる場合は、領域獲得用スケルトンファイルのコンパイルおよびリンクを行う必要があります。
[プロセスモードの場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_skel.so B_skel.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
COBOLライブラリをリンクしてサーバアプリケーション(インタフェース実装部分)を作成します(D_sa.cbl: COBOLファイル名、libD.so: ライブラリファイル名)。
[プロセスモードの場合]
/opt/FSUNod/lib/libOMcbl.soをリンクします。
cobol -G -lcobol -lOMcbl -o libD.so -lA_cdr -lB_skel D_sa.cbl
[スレッドモードの場合]
/opt/FSUNod/lib/libOMcblMT.soをリンクします。
cobol -G -Tm -lrcobol -lOMcblMT -o libD.so -lA_cdr -lB_skel D_sa.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FSUNod/lib/libOMcblUC.soをリンクします。
cobol -G -Tm -lrcobol -lOMcblUC -o libD.so -lA_cdr -lB_skel D_sa.cbl
Linuxアプリケーションの作成
LinuxでCOBOLアプリケーションを作成する場合の注意点を以下に示します。
注意
UNICODEのアプリケーションを開発する場合、ソースファイルおよび登録集は、UNICODE(UTF-8)で作成してください。
翻訳/リンク/実行を行う場合、コード系には“UNICODE”を設定してください。
ポイント
CORBAサービスのインストールディレクトリを“/opt/FJSVod”として説明します。
クライアントアプリケーションの作成
クライアントアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FJSVod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_c.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_c.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_c.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_c.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_c.cbl
1で生成されたスタブ、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_stub.cbl: スタブファイル名)。
[プロセスモードの場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_stub.so -L. -lA_cdr B_stub.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -L. -lA_cdr B_stub.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -L. -lA_cdr B_stub.cbl
COBOLライブラリをリンクしてクライアントアプリケーションを作成します(CAP_c:作成するクライアントアプリケーション名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcbl -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[スレッドモードの場合]
/opt/FJSVod/lib/libOMcblMT.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblMT -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUC -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
サーバアプリケーションの作成
サーバアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FJSVod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_s.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_s.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_s.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_s.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_s.cbl
サーバアプリケーション(初期化処理部)を作成します(SAP_s: サーバアプリケーション名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcbl -o SAP_s XXX_s.o
[スレッドモードの場合]
/opt/FJSVod/lib/libOMcblMT.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblMT -Tm -o SAP_s XXX_s.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUC -Tm -o SAP_s XXX_s.o
1で生成されたスケルトン、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_skel.cbl: スケルトンファイル名)。
なお、IDL定義に基本データ型以外が含まれる場合は、領域獲得用スケルトンファイルのコンパイルおよびリンクも行う必要があります。
[プロセスモードの場合の場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_skel.so B_skel.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
COBOLライブラリをリンクしてサーバアプリケーション(インタフェース実装部分)を作成します(D_sa.cbl: COBOLファイル名、libD.so: ライブラリファイル名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -G -L/opt/FJSVod/lib -lOMcbl -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[スレッドモードの場合]
/opt/FSUNod/lib/libOMcblMT.soをリンクします。
cobol -G -Tm -L/opt/FJSVod/lib -lOMcblMT -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -G -Tm -L/opt/FJSVod/lib -lOMcblUC -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
Linuxアプリケーションの作成
LinuxでCOBOLアプリケーションを作成する場合の注意点を以下に示します。
注意
UNICODEのアプリケーションを開発する場合、ソースファイルおよび登録集は、UNICODE(UTF-8)で作成してください。
翻訳/リンク/実行を行う場合、コード系には“UNICODE”を設定してください。
UNICODE でCOBOL翻訳を行う場合、RCSオプションで“UCS2”を指定してください。このとき、エンディアンが選択可能でビッグエンディアン(BE)、リトルエンディアン(LE)のいずれかを指定します。
ポイント
CORBAサービスのインストールディレクトリを“/opt/FJSVod”として説明します。
クライアントアプリケーションの作成
クライアントアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FJSVod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_c.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_c.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_c.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_c.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_c.cbl
[プロセスモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -WC,"RCS(UCS2,BE)" -M -c XXX_c.cbl
[スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -Tm -WC,"RCS(UCS2,BE)" -M -c XXX_c.cbl
[プロセスモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -WC,"RCS(UCS2,LE)" -M -c XXX_c.cbl
[スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -Tm -WC,"RCS(UCS2,LE)" -M -c XXX_c.cbl
1で生成されたスタブ、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_stub.cbl: スタブファイル名)。
[プロセスモードの場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_stub.so -L. -lA_cdr B_stub.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -L. -lA_cdr B_stub.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_stub.so -L. -lA_cdr B_stub.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -G -Tm -WC,"RCS(UCS2,BE)" -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -WC,"RCS(UCS2,BE)" -o libB_stub.so -L. -lA_cdr B_stub.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -G -Tm -WC,"RCS(UCS2,LE)" -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -WC,"RCS(UCS2,LE)" -o libB_stub.so -L. -lA_cdr B_stub.cbl
COBOLライブラリをリンクしてクライアントアプリケーションを作成します(CAP_c:作成するクライアントアプリケーション名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcbl -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[スレッドモードの場合]
/opt/FJSVod/lib/libOMcblMT.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblMT -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUC -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCBE.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUCBE -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCLE.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUCLE -Tm -o CAP_c -L. -lB_stub -lA_cdr XXX_c.o
サーバアプリケーションの作成
サーバアプリケーションを作成する場合の翻訳・リンク手順を以下に示します。
IDLコンパイルを実行します。
IDLc -cobol IDLファイル名
登録集を指定します。環境変数CORBAに、以下のディレクトリを指定してください。
CORBA=/opt/FJSVod/include/COBOL
主プログラムを翻訳します。コンパイル方法を以下に示します(XXX_s.cbl: 主プログラムファイル名)。
[プロセスモードの場合]
cobol -M -c XXX_s.cbl
[スレッドモードの場合]
cobol -Tm -M -c XXX_s.cbl
[プロセスモード(UNICODE、UTF8モジュール)の場合]
cobol -M -c XXX_s.cbl
[スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -Tm -M -c XXX_s.cbl
[プロセスモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -WC,"RCS(UCS2,BE)" -M -c XXX_s.cbl
[スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -Tm -WC,"RCS(UCS2,BE)" -M -c XXX_s.cbl
[プロセスモード (UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -WC,"RCS(UCS2,LE)" -M -c XXX_s.cbl
[スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -Tm -WC,"RCS(UCS2,LE)" -M -c XXX_s.cbl
サーバアプリケーション(初期化処理部)を作成します(SAP_s: サーバアプリケーション名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcbl -o SAP_s XXX_s.o
[スレッドモードの場合]
/opt/FJSVod/lib/libOMcblMT.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblMT -Tm -o SAP_s XXX_s.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUC -Tm -o SAP_s XXX_s.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCBE.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUCBE -Tm -o SAP_s XXX_s.o
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCLE.soをリンクします。
cobol -L/opt/FJSVod/lib -lOMcblUCLE -Tm -o SAP_s XXX_s.o
1で生成されたスケルトン、CDRソースを翻訳します。コンパイル方法を以下に示します(A_cdr.cbl: CDRソースファイル名、B_skel.cbl: スケルトンファイル名)。
なお、IDL定義に基本データ型以外が含まれる場合は、領域獲得用スケルトンファイルのコンパイルおよびリンクも行う必要があります。
[プロセスモードの場合の場合]
cobol -G -o libA_cdr.so A_cdr.cbl
cobol -G -o libB_skel.so B_skel.cbl
[スレッドモードの場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
cobol -G -Tm -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -o libB_skel.so B_skel.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
cobol -G -Tm -WC,"RCS(UCS2,BE)" -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -WC,"RCS(UCS2,BE)" -o libB_skel.so B_skel.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
cobol -G -Tm -WC,"RCS(UCS2,LE)" -o libA_cdr.so A_cdr.cbl
cobol -G -Tm -WC,"RCS(UCS2,LE)" -o libB_skel.so B_skel.cbl
COBOLライブラリをリンクしてサーバアプリケーション(インタフェース実装部分)を作成します(D_sa.cbl: COBOLファイル名、libD.so: ライブラリファイル名)。
[プロセスモードの場合]
/opt/FJSVod/lib/libOMcbl.soをリンクします。
cobol -G -L/opt/FJSVod/lib -lOMcbl -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[スレッドモードの場合]
/opt/FSUNod/lib/libOMcblMT.soをリンクします。
cobol -G -Tm -L/opt/FJSVod/lib -lOMcblMT -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュール)の場合]
/opt/FJSVod/lib/libOMcblUC.soをリンクします。
cobol -G -Tm -L/opt/FJSVod/lib -lOMcblUC -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでビッグエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCBE.soをリンクします。
cobol -G -Tm -WC,"RCS(UCS2,BE)" -L/opt/FJSVod/lib -lOMcblUCBE -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
[プロセスモード/スレッドモード(UNICODE、UTF8モジュールでリトルエンディアンを指定)の場合]
/opt/FJSVod/lib/libOMcblUCLE.soをリンクします。
cobol -G -Tm -WC,"RCS(UCS2,LE)" -L/opt/FJSVod/lib -lOMcblUCLE -o libD.so -L. -lA_cdr -lB_skel D_sa.cbl
対応可能な予約語の一覧
以下に対応可能な予約語を示します。
"ACCEPT"、 "ACCESS"、 "ACTUAL"、 "ADD"、 "ADDRESS"、 "ADVANCING"、 "AFTER"、 "ALL"、 "ALPHABET"、 "ALPHABETIC"、 "ALPHANUMERIC"、 "ALSO"、 "ALTER"、 "ALTERNATE"、 "AND"、 "ANY"、 "APPLY"、 "ARE"、 "AREA"、 "AREAS"、 "ARITHMETIC"、 "AS"、 "ASCENDING"、 "ASSIGN"、 "AT"、 "AUTHOR"、 "AUTO"、 "AUTOMATIC"、 "BASED"、 "BEFORE"、 "BEGINNING"、 "BELL"、 "BINARY"、 "BIT"、 "BITS"、 "BLANK"、 "BLINK"、 "BLOCK"、 "BOTTOM"、 "BY"、 "CALL"、 "CANCEL"、 "CBL"、 "CD"、 "CF"、 "CH"、 "CHANGED"、 "CHARACTER"、 "CHARACTERS"、 "CLASS"、 "CLOSE"、 "COBOL"、 "CODE"、 "COLLATING"、 "COLUMN"、 "COMMA"、 "COMMAND"、 "COMMIT"、 "COMMON"、 "COMMUNICATION"、 "COMP"、 "COMPLEX"、 "COMPUTATIONAL"、 "COMPUTE"、 "CONFIGURATION"、 "CONNECT"、 "CONSTANT"、 "CONTAINED"、 "CONTAINS"、 "CONTENT"、 "CONTINUE"、 "CONTROL"、 "CONTROLS"、 "CONVERTING"、 "COPY"、 "CORR"、 "CORRESPONDING"、 "COUNT"、 "CRP"、 "CRT"、 "CURRENCY"、 "CURRENT"、 "CURSOR"、 "DATA"、 "DATE"、 "DAY"、 "DB"、 "DE"、 "DEBUGGING"、 "DEFAULT"、 "DELETE"、 "DELIMITED"、 "DELIMITER"、 "DEPENDING"、 "DESCENDING"、 "DESTINATION"、 "DETAIL"、 "DEVICE"、 "DIRECT"、 "DISABLE"、 "DISCONNECT"、 "DISJOINING"、 "DISPLAY"、 "DIVIDE"、 "DIVISION"、 "DOWN"、 "DUPLICATE"、 "DUPLICATES"、 "DYNAMIC"、 "EGCS"、 "EGI"、 "EJECT"、 "ELSE"、 "EMI"、 "EMPTY"、 "ENABLE"、 "END"、 "ENDCOBOL"、 "ENDING"、 "ENTER"、 "ENTRY"、 "ENVIRONMENT"、 "EOL"、 "EOP"、 "EOS"、 "EQUAL"、 "EQUALS"、 "ERASE"、 "ERROR"、 "ESI"、 "EVALUATE"、 "EVERY"、 "EXACT"、 "EXAMINE"、 "EXCEEDS"、 "EXCEPTION"、 "EXCLUSIVE"、 "EXEC"、 "EXIT"、 "EXOR"、 "EXTEND"、 "EXTERNAL"、 "FD"、 "FETCH"、 "FILE"、 "FILES"、 "FILLER"、 "FINAL"、 "FIND"、 "FINISH"、 "FIRST"、 "FLADD"、 "FOOTING"、 "FOR"、 "FORM"、 "FORMAT"、 "FORMATTED"、 "FREE"、 "FROM"、 "FULL"、 "FUNCTION"、 "GENERATE"、 "GET"、 "GIVING"、 "GLOBAL"、 "GO"、 "GOBACK"、 "GREATER"、 "GRID"、 "GROUP"、 "HEADING"、 "HIGHLIGHT"、 "ID"、 "IDENTIFICATION"、 "IF"、 "IN"、 "INCLUDE"、 "INDEX"、 "INDEXED"、 "INDICATE"、 "INITIAL"、 "INITIALIZE"、 "INITIATE"、 "INPUT"、 "INSPECT"、 "INSTALLATION"、 "INTO"、 "INVALID"、 "IS"、 "JAPANESE"、 "JOB"、 "JOINING"、 "JUST"、 "JUSTIFIED"、 "KANJI"、 "KEEP"、 "KEY"、 "LABEL"、 "LAST"、 "LD"、 "LEADING"、 "LEFT"、 "LEFTLINE"、 "LENGTH"、 "LESS"、 "LIMIT"、 "LIMITED"、 "LIMITS"、 "LINAGE"、 "LINE"、 "LINES"、 "LINKAGE"、 "LOCALLY"、 "LOCK"、 "LOWLIGHT"、 "MANUAL"、 "MEMBER"、 "MEMORY"、 "MERGE"、 "MESSAGE"、 "MODE"、 "MODIFY"、 "MODULES"、 "MOVE"、 "MULTICON"、 "MULTIPLE"、 "MULTIPLY"、 "NAMED"、 "NATIONAL"、 "NATIVE"、 "NEGATIVE"、 "NEXT"、 "NO"、 "NOMINAL"、 "NONE"、 "NOT"、 "NOTE"、 "NULL"、 "NULLS"、 "NUMBER"、 "NUMERIC"、 "OCCURS"、 "OF"、 "OFF"、 "OMITTED"、 "ON"、 "ONLY"、 "OPEN"、 "OPTIONAL"、 "OR"、 "ORDER"、 "ORGANIZATION"、 "OTHER"、 "OTHERWISE"、 "OUTPUT"、 "OVERFLOW"、 "OVERLINE"、 "OWNER"、 "PADDING"、 "PAGE"、 "PASSWORD"、 "PERFORM"、 "PF"、 "PH"、 "PIC"、 "PICTURE"、 "PLUS"、 "POINTER"、 "POSITION"、 "POSITIONING"、 "POSITIVE"、 "PREFIX"、 "PRESENT"、 "PREVIOUS"、 "PRINTING"、 "PRIOR"、 "PROCEDURE"、 "PROCEDURES"、 "PROCEED"、 "PROCESSING"、 "PROGRAM"、 "PROMPT"、 "PROTECTED"、 "PURGE"、 "QUEUE"、 "QUOTE"、 "QUOTES"、 "RANDOM"、 "RANGE"、 "RD"、 "READ"、 "READY"、 "REALM"、 "RECEIVE"、 "RECONNECT"、 "RECORD"、 "RECORDING"、 "RECORDS"、 "REDEFINES"、 "REEL"、 "REFERENCE"、 "REFERENCES"、 "RELATION"、 "RELATIVE"、 "RELEASE"、 "RELOAD"、 "REMAINDER"、 "REMARKS"、 "REMOVAL"、 "RENAMES"、 "REPEATED"、 "REPLACE"、 "REPLACING"、 "REPORT"、 "REPORTING"、 "REPORTS"、 "RERUN"、 "REQUIRED"、 "RESERVE"、 "RESET"、 "RETAINING"、 "RETRIEVAL"、 "RETURN"、 "REVERSED"、 "REWIND"、 "REWRITE"、 "RF"、 "RH"、 "RIGHT"、 "ROLLBACK"、 "ROUNDED"、 "RUN"、 "SA"、 "SAME"、 "SCREEN"、 "SD"、 "SEARCH"、 "SECTION"、 "SECURITY"、 "SECURE"、 "SEEK"、 "SEGMENT"、 "SELECT"、 "SELECTED"、 "SELECTIVE"、 "SEND"、 "SENTENCE"、 "SEPARATE"、 "SEQUENCE"、 "SEQUENTIAL"、 "SERVICE"、 "SESSION"、 "SET"、 "SHARED"、 "SIGN"、 "SIMPLE"、 "SINGLE"、 "SIZE"、 "SKIP1"、 "SKIP2"、 "SKIP3"、 "SORT"、 "SOURCE"、 "SPACE"、 "SPACES"、 "STANDERD"、 "START"、 "STATION"、 "STATIONS"、 "STATUS"、 "STOP"、 "STORE"、 "STRING"、 "SUBRANGE"、 "SUBTRACT"、 "SUCCESSIVE"、 "SUFFIX"、 "SUM"、 "SUPPRESS"、 "SYMBOLIC"、 "SYNC"、 "SYNCHRONIZED"、 "TABLE"、 "TALLY"、 "TALLYING"、 "TAPE"、 "TENANT"、 "TERMINAL"、 "TERMINATE"、 "TEST"、 "TEXT"、 "THAN"、 "THEN"、 "THROUGH"、 "THRU"、 "TIME"、 "TIMES"、 "TITLE"、 "TO"、 "TOP"、 "TRACE"、 "TRACK"、 "TRACKS"、 "TRAILING"、 "TRANSACTION"、 "TYPE"、 "UNDERLINE"、 "UNEQUAL"、 "UNIT"、 "UNLOCK"、 "UNSTRING"、 "UNTIL"、 "UP"、 "UPDATE"、 "UPON"、 "USAGE"、 "USE"、 "USING"、 "VALID"、 "VALIDATE"、 "VALUE"、 "VALUES"、 "VARYING"、 "WAIT"、 "WHEN"、 "WITH"、 "WITHIN"、 "WORDS"、 "WRITE"、 "ZERO"、 "ZEROES"、 "ZEROS"