IDLファイルのコンパイル
IDLファイルをコンパイルすることにより、クライアント、サーバそれぞれのアプリケーションの言語に合わせたスタブファイルとスケルトンファイルを作成できます。IDLファイルのコンパイルは、IDLcコマンドを使用します。スタブ、スケルトンをC言語に対応させる場合のIDLcコマンドの使用例を以下に示します。IDLcコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
IDLc -C test1.idl |
スケルトンとサーバアプリケーションのソースとのコンパイル・リンク
サーバアプリケーションのソースとスケルトンのコンパイル方法、およびリンク方法について説明します。
C言語でアプリケーションを作成した場合について、コンパイルとリンクの手順の流れを以下に示します。
IDLファイルをIDLコンパイラで翻訳します。IDLコンパイラはスタブおよびスケルトンの2つのファイルを作成します。サーバアプリケーションを作成する際にはスケルトンファイルを使用します。
初期化処理部とユーザサービス処理部を含むサーバソースファイル、サーバ管理ライブラリ、XA連携用プログラム、データベースライブラリおよび1.で作成したスケルトンをコンパイル、リンクしサーバアプリケーションを作成します。
サーバアプリケーションとスケルトンをコンパイル、リンクする方法について例を以下に示します。
[コンパイル・リンクの例]
以下の表に示すオプションを設定してください。
Microsoft(R) Visual C++(R) .NET Standard/Microsoft(R) Visual C++(R) .NET Standard 2003/ Microsoft(R) Visual Studio 2005 の場合は、[プロジェクト]-[プロパティ]-[構成プロパティ]-[C/C++]で設定画面を表示することができます。
カテゴリー | 項目 | 設定値 |
---|---|---|
コード生成(Code Generation) | 構造体メンバのアライメント(Struct Member Byte Alignment) | 4バイト |
使用するランタイム | マルチスレッド(DLL) | |
プリプロセッサ(Preprocessor) | プリプロセッサの定義 (Symbols and Macros to Define) | "OM_PC", "OM_WIN32_BUILD", "__STDC__" を追加 |
また、コンパイル時に利用するインクルードファイルおよびライブラリファイルの格納ディレクトリを登録してください。
Microsoft(R) Visual C++(R) .NET Standard/Microsoft(R) Visual C++(R) .NET Standard 2003の場合は、[ツール]-[オプション]-[Projects]-[VC++ ディレクトリ]の「インクルード ファイル」、「ライブラリ ファイル」で設定画面を表示することができます。
Microsoft(R) Visual Studio 2005の場合は、[ツール]-[オプション]-[プロジェクトおよびソリューション]- [VC++ ディレクトリ]の「インクルード ファイル」、「ライブラリ ファイル」で設定画面を表示することができます。
登録例)
(VC++およびInterstageを、それぞれC:\MSDEVおよびC:\INTERSTAGEにインストールした場合)
- インクルードファイル
C:\MSDEV\INCLUDE;C:\MSDEV\MFC\INCLUDE;C:\INTERSTAGE\OTS\INCLUDE
- ライブラリファイル
C:\MSDEV\LIB;C:\MSDEV\MFC\LIB;C:\INTERSTAGE\OTS\LIB
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 |
libservaplcnt.lib | C言語の中継サーバアプリケーションの運用環境用(注) | %OTS_HOME%\lib |
(注)
この2つのライブラリを同時に使用する必要はありません。詳細は、“4.6.1 中継アプリケーションの作成について”を参照してください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にをリンクしてください。
[コンパイル・リンクの例]
以下にC言語でOracleを使用した場合のリンクパラメタを示します。なお、Oracleのインストール先を/opt/oracleとしています。
ccコマンドは、Sun WorkShop 4.2シリーズ、Sun WorkShop 5.0シリーズ、Forte Developer 6シリーズ、Sun ONE Studio 7シリーズ、Sun ONE Studio 8シリーズ、Sun Studio 9から提供されているものを利用してください。
\: 継続行を示します。
cc -O test1_s.c -o test1_s test1_s.o test1_skel.o /opt/FSUNots/program/xa/libotsxaora.o \ -L/opt/FSUNots/lib -lservapl -ltacebasent -L/opt/oracle/lib -lclntsh \ -L/opt/FSUNod/lib/nt -lOM -L/opt/FSUNod/lib -lOMcn \ -I/opt/oracle8/precomp/public \ -I/opt/FSUNots/include -I/opt/FSUNod/include |
以下にC言語でSymfoware/RDBを使用した場合のリンクパラメタを示します。Symfoware/RDBのインストール先デイレクトリを/opt/FSUNrdb2bとしています。
cc -O test1_s.c -o test1_s test1_s.o test1_skel.o \ /opt/FSUNots/program/xa/libotsxasym.o \ -L/opt/FSUNots/lib -lservapl -ltacebasent -L/opt/FSUNrdb2b/lib -lsqldrv -lrdbxa \ -L/opt/FSUNod/lib/nt -lOM -L/opt/FSUNod/lib -lOMcn -I/opt/FSUNots/include -I/opt/FSUNod/include |
UNIX用サーバライブラリ
以下に示すライブラリは必須ライブラリです。
ライブラリ名 | 使用用途 | 格納先 |
---|---|---|
libservapl.so | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注1) | $OTS_HOME/lib |
libtacebasent.so | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用 | $OTS_HOME/lib |
libservaplcnt.so | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、中継サーバアプリケーション用(注1) | $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つのライブラリを同時に使用する必要はありません。詳細は、“4.6.1 中継アプリケーションの作成について”を参照してください。
(注2)
使用するXA連携プログラムにあわせて選択してください。すべてのライブラリを使用する必要はありません。
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にをリンクしてください。
[コンパイル・リンクの例]
以下にC言語でOracleを使用した場合のリンクパラメタを示します。なお、Oracleのインストール先を/opt/oracleとしています。
\: 継続行を示します。
gcc -O test1_s.c -o test1_s test1_s.o test1_skel.o /opt/FJSVots/program/xa/libotsxaora.o \ -L/opt/FJSVots/lib -lservapl -ltacebasent -L/opt/oracle/lib -lclntsh \ -L/opt/FJSVod/lib/nt -lOM -L/opt/FJSVod/lib -lOMcn \ -I/opt/oracle9i/precomp/public \ -I/opt/FJSVots/include -I/opt/FJSVod/include |
UNIX用サーバライブラリ
以下に示すライブラリは必須ライブラリです。
ライブラリ名 | 使用用途 | 格納先 |
---|---|---|
libservapl.so | C言語、C++言語のサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注1) | $OTS_HOME/lib |
libtacebasent.so | C言語、C++言語のサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用 | $OTS_HOME/lib |
libservaplcnt.so | C言語、C++言語のサーバアプリケーションの運用環境用、中継サーバアプリケーション用(注1) | $OTS_HOME/lib |
libotsxaora.o | Oracle用のXA連携用プログラムでC言語、C++言語のサーバアプリケーションおよびリソース管理プログラムの運用環境用(注2) | $OTS_HOME/program/xa |
(注1)
この2つのライブラリを同時に使用する必要はありません。詳細は、“4.6.1 中継アプリケーションの作成について”を参照してください。
(注2)
使用するXA連携プログラムにあわせて選択してください。すべてのライブラリを使用する必要はありません。
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にをリンクしてください。