ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(データベース連携サービス編)

6.4 ソースのコンパイル・リンク

IDLファイルのコンパイル

  IDLファイルをコンパイルすることにより、クライアント、サーバそれぞれのアプリケーションの言語に合わせたスタブファイルとスケルトンファイルを作成できます。IDLファイルのコンパイルは、IDLcコマンドを使用します。スタブ、スケルトンをCOBOLに対応させる場合のIDLcコマンドの使用例を以下に示します。IDLcコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。

  IDLc -cobol test1.idl

スケルトンとサーバアプリケーションのソースとのコンパイル・リンク

  サーバアプリケーションのソースとスケルトンのコンパイル方法、およびリンク方法について説明します。
  COBOLでアプリケーションを作成した場合について、コンパイルとリンクの手順の流れを以下に示します。

  1. IDLファイルをIDLコンパイラで翻訳します。IDLコンパイラはスタブおよびスケルトンの2つのファイルを作成します。サーバアプリケーションを作成する際にはスケルトンファイルを使用します。

  2. 初期化処理部、サーバ管理ライブラリ、XA連携用プログラム、データベースライブラリおよび 1 で作成したスケルトンをコンパイル、リンクしサーバアプリケーションを作成します。

  サーバアプリケーションとスケルトンをコンパイル、リンクする方法について例を以下に示します。

[コンパイル・リンク方法の例]

  サーバアプリケーションとスケルトンをPowerCOBOL97でコンパイル後、リンクする場合のオプションの例を以下に示します。

[コンパイルオプションの例]

  PowerCOBOL97でコンパイルする場合は、以下の表に示すコンパイルオプションを設定してください。

項目

設定値

登録集名

CORBA="Interstageインストールフォルダ\ODWIN\include\cobol"

SSOUT

任意の文字列(注)

  (注)  サーバアプリケーションでDISPLAY文を使用している場合に必要です。

Windows(R)用サーバライブラリ

  以下に示すライブラリは必須ライブラリです。

ライブラリ名

使用用途

格納先

fjotsld.obj

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用

%OTS_HOME%\lib

libservapl.lib

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注)

%OTS_HOME%\lib

libtacebasent.lib

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用

%OTS_HOME%\lib

libservaplcbl.lib

COBOLのサーバアプリケーションの運用環境用

%OTS_HOME%\lib

libservaplcnt.lib

COBOLの中継サーバアプリケーションの運用環境用(注)

%OTS_HOME%\lib

(注)
  
この2つのライブラリを同時に使用する必要はありません。詳細は、“6.6.1 中継アプリケーションの作成について”を参照してください。

[コンパイル・リンク方法の例]

  以下にCOBOLでOracleを使用した場合のリンクパラメタを示します。なお、Oracleのインストール先を/opt/oracleとしています。

  \:継続行を表しています。

-サーバアプリケーション作成

cobol -M -WC, “SRF(FIX)” -c test1_s.cbl
cobol -dy -L. -L/opt/FSUNots/lib -lservaplcbl -lservapl -ltacebasent           \
      -L/opt/oracle/lib -lclntsh -lcore8 -lnls8                                \
      -lsocket -lnsl -lm -ldl                                                 \
      -L/opt/FSUNod/lib/nt -lOM -L/opt/FSUNod/lib -lOMcbl -o test1_s test1_s.o \
       /opt/FSUNots/program/xa/libotsxaora.o                                 \
       /opt/oracle8/precomp/lib/cobsqlintf.o

-cdrのコンパイル

cobol -dy -G -o libtest1_cdr.so test1_cdr.cbl

-Oracleのプレコンパイル

/opt/oracle8/bin/procob iname=test1_s_wit.pco
cobol -WC,”SRF(FIX)” -c test1_s_wit.cob
/opt/oracle8/bin/procob iname=test1_s_dep.pco
cobol -WC,”SRF(FIX)” -c test1_s_dep.cob

-スケルトンのコンパイル

cobol -dy -G -o libtest1_test1_account1_skel.so test1_test1_account1_skel.cbl

-メソッド用ライブラリのコンパイル

cobol -dy -G -WC,”SRF(FIX)” -lcobol -L/opt/FSUNod/lib/nt -lOM                    \
      -L/opt/FSUNod/lib -lOMcbl -o libTEST1-ACCOUNT1.so -L. -ltest1_cdr         \
      -ltest1_test1_account1_skel test1_s_wit.o test1_s_dep.o 

  以下にCOBOLでSymfoware/RDBを使用した場合のリンクパラメタを示します。

-サーバアプリケーションの作成

cobol  -dy -L. -L/opt/FSUNots/lib -lservaplcbl -lservapl -ltacebasent       \
      -L/opt/FSUNrdb2b/lib -lsqldrv -lrdbxa -L/opt/FSUNod/lib/nt -lOM       \
      -L/opt/FSUNod/lib -lOMcbl -o test1_s test1_s.o                        \
      /opt/FSUNots/lib/libotsxasym.o                                              

-cdrのコンパイル

cobol -dy -G -o libtest1_cdr.so test1_cdr.cbl

-Symfoware/RDBのプレコンパイル

/opt/FSUNrdb2b/FSUNrdbco/bin/sqlpcob -d RDBII test1_s_wit.ecob
cobol -WC,”SRF(FIX)” -c test1_s_wit.cobol
/opt/FSUNrdb2b/FSUNrdbco/bin/sqlpcob  -d RDBII test1_s_dep.ecob
cobol -WC,”SRF(FIX)” -c test1_s_dep.cobol

-スケルトンのコンパイル

cobol -dy -G -o libtest1_test1_account1_skel.so test1_test1_account1_skel.cbl

-メソッド用ライブラリのコンパイル

cobol -dy -G -WC,”SRF(FIX)” -lcobol -L/opt/FSUNod/lib/nt -lOM                \
-L/opt/FSUNod/lib -lOMcbl -o libTEST1-ACCOUNT1.so -L. -ltest1_cdr            \
-ltest1_test1_account1_skel test1_s_wit.o test1_s_dep.o 
UNIX用サーバライブラリ

  以下に示すライブラリは必須ライブラリです。

ライブラリ名

使用用途

格納先

libservapl.so

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注1)

$OTS_HOME/lib

libtacebasent.so

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用

$OTS_HOME/lib

libservaplcnt.so

C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、C言語データベースアクセスなしの中継サーバアプリケーション用(注1)

$OTS_HOME/lib

libservaplcbl.so

COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用

$OTS_HOME/lib

libotsxaora.o

Oracle用のXA連携用プログラムでC言語、C++言語、COBOLのサーバアプリケーションおよびリソース管理プログラムの運用環境用(注2)

$OTS_HOME/program/xa

libotsxasym.o

Symfoware/RDB用のXA連携用プログラムでC言語、C++言語、COBOLのサーバアプリケーションおよびリソース管理プログラムの運用環境用(注2)

$OTS_HOME/program/xa

libotsxamqd.o

MQD用のXA連携用プログラムでC言語、C++言語、COBOLのサーバアプリケーションおよびリソース管理プログラムの運用環境用(注2)

$OTS_HOME/program/xa

libotsxamqd_ora.o

MQDとOracle用のXA連携用プログラムでC言語、C++言語、COBOLのサーバアプリケーション運用環境用(注2)

$OTS_HOME/program/xa

libotsxamqd_sym.o

MQDとSymfoware/RDB用のXA連携用プログラムでC言語、C++言語、COBOLのサーバアプリケーション運用環境用(注2)

$OTS_HOME/program/xa

(注1)
  
この2つのライブラリを同時に使用する必要はありません。詳細は、“6.6.1 中継アプリケーションの作成について”を参照してください。

(注2)
  
使用するXA連携プログラムにあわせて選択してください。すべてのライブラリを使用する必要はありません。