Server Express 技術情報(FAQ)


Oracle Pro*COBOL アプリケーションのアニメート方法を教えてください

Pro*COBOLのアプリケーションを INT や GNT で実行・アニメートすると EXEC SQL文のところで RTSエラー 173 が出てストップしてしまう現象が起こりえます。
これは、Pro*COBOLをかけた後の COBOLソースに埋めこまれる CALL文がCALLしているOracleライブラリが INT/GNTコードからロードできないために発生しています。実行形式にリンクしてしまう場合にはOracleライブラリがリンクインされるためにこのような問題が発生しません。
この問題を解決するためには、Oracle Pro*COBOLが提供している makefile を使用して、Server Expressランタイムシステムに、Oracleライブラリをリンクインしたバージョンを作成し、これを、COBOLがインストールされているディレクトリ下の rts32 モジュールに上書きコピーする必要があります。以下にその手順を示します:

1) 作業用ディレクトリを新規作成する。
2) ランタイムシステムリンク用のMakefileを作業用ディレクトリにコピーする。

# cp $ORACLE_HOME/precomp/lib/*.mk .


3) 以下のコマンドでrtsora という実行形式モジュールが作成される。

.# make rtsora -f ins_precomp.mk


4) ここからはルート権限のユーザーが作業します。以下のコマンドでrootパスワードを入力します。

# su


5) ランタイムシステムのバックアップを取ります。

# cd $COBDIR/bin
# mv rts32 rts32.bak


6) ステップ 3) で作成された rtsora を、rts32 に上書きコピーします。

# cp <作業用ディレクトリ>/rtsora rts32


7) rts32 に実行権限を与えておきます。

# chmod a+x rts32


以上でCOBOLランタイムシステムへ Oracleライブラリを組み込む作業が完了しました。以後、Pro*COBOLアプリケーションをアニメートしたり、cobrun実行したりできるようになります。