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

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

分散トランザクション連携を行うCORBAサーバアプリケーションをマルチスレッド環境で使用する場合、以下のアプリケーション構成で運用することができるようになります。


■1つのアプリケーションプロセス内でデータベースアクセスする場合

以下の図は、1つのアプリケーションプロセス内で、スレッド多重3で動作する場合の例です。

3つのプロセスで行うことを、3つのスレッドで制御するため、資源削減となります。なお、同じデータベースにアクセスする場合は、アクセスの内容によって、データベース側で排他制御されることがあります。例では、同じサーバ環境にOTSシステムも動作していますが、別サーバにOTSシステムを動作させても問題ありません。



サーバアプリケーションのコンパイル・リンクについて


C言語/C++言語用サーバアプリケーションソースを、Visual C/C++コンパイラを使用してコンパイルする場合、[プロジェクト]-[設定]-[C/C++]-[カテゴリ]を「コード生成」にし、[使用するランタイムライブラリに「マルチスレッド(DLL)」を選択してください。

COBOL用サーバアプリケーションソースをコンパイルする場合、翻訳オプションに「THREAD(MULTI)」を指定してください。



C言語用サーバアプリケーションソースを、Microsoft Platform SDKを使用してコンパイルする場合、コンパイルオプションに「/MD」を追加してください。



C言語/C++言語用サーバアプリケーションソースをコンパイルする場合は、-mtオプションを付加してください。
COBOL用サーバアプリケーションソースを、PowerCOBOL97 V6.0系以降を使用してコンパイルする場合、-Tmオプションを付加してください。


コンパイル・リンク方法の例(C言語の場合)

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

cc -mt -O -o test1_s test1_s.o test1_skel.o /opt/FSUNots/program/xa/libotsxasym_mt.o    \
   -L/opt/FSUNots/lib -lservapl_mt -ltacebase -L/opt/FSUNrdb2b/lib -lsqldrvm -lrdbxam  \
   -L/opt/FSUNod/lib -lOM -lOMcn -I/opt/FSUNod/include -I/opt/FSUNots/include test1_s.c

Symfoware/RDBのインストールバス:「/opt/FSUNrdb2b」
データベース連携サービスのインストールパス:「/opt/FSUNots」
CORBAサービスのインストールパス:「/opt/FSUNod」
\:継続行


コンパイル・リンク方法の例(COBOLの場合)

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


サーバアプリケーションの作成
cobol  -M -Tm -c test1_s.cbl
cobol -dy -Tm -L. -L/opt/FSUNots/lib -lservaplcbl_mt -lservapl_mt -ltacebase  \
      -L/opt/FSUNrdb2b/lib -lsqldrvm -lrdbxam -lsocket -lnsl -lm -ldl         \
      -L/opt/FSUNod/lib -lOM -lOMcn -L/opt/FSUNod/lib -lOMcblMT               \
      -o test1_s test1_s.o  /opt/FSUNots/program/xa/libotsxasym_mt.o

Symfoware/RDBのインストールパス:「/opt/FSUNrdb2b」
データベース連携サービスのインストールパス:「/opt/FSUNots」


cdrのコンパイル
cobol -dy -G -Tm -o libtest1_cdr.so test1_cdr.cbl

Symfoware/RDBのプレコンパイル
/opt/FSUNrdb2b/FSUNrdbco/bin/sqlpcob -T test1_s_wit.ecob
cobol -Tm -WC,"NOALPHAL" -c test1_s_wit.cobol
/opt/FSUNrdb2b/FSUNrdbco/bin/sqlpcob  -T test1_s_dep.ecob
cobol -Tm -WC,"NOALPHAL" -c test1_s_dep.cobol

スケルトンのコンパイル
cobol -dy -G -Tm -o libtest1_test1_account1_skel.so test1_test1_account1_skel.cbl

メソッド用ライブラリのコンパイル
cobol -dy -G -Tm -lrcobol  -L/opt/FSUNod/lib -lOM -lOMcn -lOMcblMT -o libTEST1-ACCOUNT1.so \
      -L. -ltest1_cdr -ltest1_test1_account1_skel test1_s_wit.o test1_s_dep.o

サーバアプリケーション情報のインプリメンテーションリポジトリへの登録

OD_impl_instコマンドを使用して、インプリメンテーションリポジトリにサーバアプリケーション情報を登録します。登録の方法は、サーバアプリケーションのプロセス、スレッド関係なく同一ですが、CORBAアプリケーション情報定義ファイルの情報は異なります。OD_impl_instコマンドの詳細については、「リファレンスマニュアル(コマンド編)」の「CORBAサービス運用コマンド」-「OD_impl_inst」を参照してください。

OD_impl_inst -ax defname

OD_impl_instコマンドに指定するCORBAアプリケーション情報定義ファイルの例を以下に示します。


rep_id         = IDL:ODdemo/calculator:1.0
type           = persistent
proc_conc_max  = 1
thr_conc_init  = 3
mode           = SYNC_END
data           = "RESOURCE:resourcedef1"

rep_id         = IDL:ODdemo/calculator:1.0
type           = persistent
proc_conc_max  = 1
thr_conc_init  = 3
env            = LD_LIBRARY_PATH=/opt/FSUNots/lib:/opt/FSUNod/lib;OTS_HOME=/opt/FSUNots
mode           = SYNC_END
data           = "RESOURCE:resourcedef1"

マルチスレッド環境で運用する場合は、thr_conc_initパラメタにスレッド多重度を設定してください。スレッド多重度の制限値、およびパラメタの詳細な意味や設定値については、「リファレンスマニュアル(コマンド編)」の「CORBAサービス運用コマンド」-「OD_impl_inst」を参照してください。



CORBAサービスから提供されるlibOM.soファイルは、サーバアプリケーションの言語に関係なくCORBAサービスのインストールディレクトリ/libが有効になるように環境変数LD_LIBRARY_PATHに設定してください。


OD_impl_instコマンドは、サーバアプリケーション情報を削除することもできます。
削除処理の例を以下に示します。

OD_impl_inst -d -r IDL:ODdemo/calculator:1.0