IDLファイルのコンパイル
IDLファイルをコンパイルすることにより、クライアント、サーバそれぞれのアプリケーションの言語にあわせたスタブファイルとスケルトンファイルを作成できます。IDLファイルのコンパイルは、IDLcコマンドを使用します。スタブ、スケルトンをC++言語に対応させる場合のIDLcコマンドの使用例を以下に示します。IDLcコマンドの詳細については、“リファレンスマニュアル(コマンド編)”を参照してください。
IDLc -vcpp 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) | プリプロセッサの定義 | "OM_PC", "OM_WIN32_BUILD", |
また、コンパイル時に利用するインクルードファイルおよびライブラリファイルの格納ディレクトリを登録してください。
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
以下に示すライブラリは必須ライブラリです。
ライブラリ名 | 使用用途 | 格納先 |
---|---|---|
fjotsld.obj | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用 | %OTS_HOME%\lib |
libservapl.lib | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注) | %OTS_HOME%\lib |
libtacebasent.lib | C言語、C++言語、COBOLのサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用 | %OTS_HOME%\lib |
libservaplcpp.lib | C++言語のサーバアプリケーションの運用環境用 | %OTS_HOME%\lib |
libservaplcnt.lib | C++言語の中継サーバアプリケーションの運用環境用(注) | %OTS_HOME%\lib |
(注)
この2つのライブラリを同時に使用する必要はありません。詳細は、“5.6.1 中継アプリケーションの作成について”を参照してください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にリンクしてください。
[コンパイル・リンクの例]
以下にC++言語でOracleを使用した場合のリンクパラメタを示します。なお、Oracle のインストール先デイレクトリは、/opt/oracleとしています。また、以下はプロセスモードとした場合の例です。なお、コンパイラは、Forte Developer 6シリーズを使用した場合です。
\:継続行を示します。
/opt/SUNWspro/bin/CC -lsocket -lnsl -L/opt/FSUNots/lib \ |
Sun WorkShop 5.0シリーズ、Forte Developer 6シリーズ、Sun ONE Studio 7シリーズ、Sun ONE Studio 8シリーズ、Sun Studio 9を使用してアプリケーションを作成する場合、リンクオプションに“-lC”および“-lCrun”を指定しないでください。
以下に示すライブラリは必須ライブラリです。
ライブラリ名 | 使用用途 | 格納先 |
---|---|---|
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 |
libservaplcpp50.so | C++言語のサーバアプリケーションの運用環境用 (Forte Developer 6シリーズ、Sun ONE Studio 7シリーズ、Sun ONE Studio 8シリーズ、Sun Studio 9を使用する場合) | $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つのライブラリを同時に使用する必要はありません。詳細は、“5.6.1 中継アプリケーションの作成について”を参照してください。
(注2)
使用するXA連携プログラムにあわせて選択してください。すべてのライブラリを使用する必要はありません。
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にリンクしてください。
[コンパイル・リンクの例]
以下にC++言語でOracleを使用した場合のリンクパラメタを示します。なお、Oracle のインストール先デイレクトリは、/opt/oracleとしています。また、以下はプロセスモード環境とした場合の例です。
\:継続行を示します。
g++ -lsocket -lnsl -L/opt/FJSVots/lib \ -lservapl -lservaplcpp -ltacebasent -L/opt/FJSVod/lib/nt -lOM \ -lOMcpp -lOMcncpp -L/opt/oracle/lib -lclntsh \ -o test1_s_c++ test1_s_c++.o test1_skel_c++.o test1_cdr.o test1_c++.o \ /opt/FJSVots/program/xa/libotsxaora.o |
以下に示すライブラリは必須ライブラリです。
ライブラリ名 | 使用用途 | 格納先 |
---|---|---|
libservapl.so | C言語、C++言語のサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用(注1) | $OTS_HOME/lib |
libtacebasent.so | C言語、C++言語のサーバアプリケーションの運用環境用、データベースアクセスアプリケーション用 | $OTS_HOME/lib |
libservaplcnt.so | C言語、C++言語のサーバアプリケーションの運用環境用、中継サーバアプリケーション用(注1) | $OTS_HOME/lib |
libservaplcpp.so | C++言語のサーバアプリケーションの運用環境用 | $OTS_HOME/lib |
libotsxaora.o | Oracle用のXA連携用プログラムでC言語、C++言語のサーバアプリケーションおよびリソース管理プログラムの運用環境用(注2) | $OTS_HOME/program/xa |
(注1)
この2つのライブラリを同時に使用する必要はありません。詳細は、“5.6.1 中継アプリケーションの作成について”を参照してください。
(注2)
使用するXA連携プログラムにあわせて選択してください。すべてのライブラリを使用する必要はありません。
リンクは、表の上から順番に行う必要があります。必要なものだけをリンクしてください。
データベース連携サービスのライブラリは、CORBAサービスのライブラリよりも先にリンクしてください。