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

11.6.1 スレッドモード・プロセスモードのアプリケーションの作成

(1) スレッドモードの場合

  スレッドモードのアプリケーションを作成する場合には、以下のライブラリとの結合が必要です。

ライブラリ(インストールパスはデフォルト)

libthread.so
/opt/FSUNod/lib/libOM.so(必須)

ライブラリ(インストールパスはデフォルト)

libthread.so
/opt/FJSVod/lib/libOM.so(必須)


  結合されているライブラリの確認はlddコマンドで行います。

  C,C++アプリケーションのコンパイル時には、-D_REENTRANT宣言が必要です。詳細は、システムのスレッドプログラミングに関するマニュアルなどを参照してください。


(2) プロセスモードの場合

  プロセスモードのアプリケーションを作成する場合には、以下のライブラリとの結合が必要です。

ライブラリ(インストールパスはデフォルト)

/opt/FSUNod/lib/nt/libOM.so(必須)

ライブラリ(インストールパスはデフォルト)

/opt/FJSVod/lib/nt/libOM.so(必須)


  作成したアプリケーションを動作させるときには、LD_LIBRARY_PATH=$OD_HOME/lib/ntを設定する必要があります。


  結合されているライブラリの確認はlddコマンドで行います。


(3) スレッドアプリケーションからのスレッド生成

  スレッドモードのサーバアプリケーションからさらにスレッドを生成する場合、以下のスレッドライブラリを使用します。

スレッドライブラリ

thr_create

指定フラグ

THR_NEW_LWP(新しいスレッドをLWPに固定的に結合します。)

THR_BOUND(非結合スレッドの並行度を1つ増やします。)

  設定していない場合は、CORBA_ORB_init()が例外UNKNOWNでエラー復帰します。

スレッドライブラリ

pthread_create


(4) プロセスアプリケーションからのプロセス生成

  プロセスモードのサーバアプリケーションから、さらにプロセスを生成する場合、UNIX系のシステムではfork(システムコール)を使用します。


(5) プロセスアプリケーションの登録時の注意事項

  プロセスモードのアプリケーションをshared/unsharedタイプ(persistent以外)としてインプリメンテーションリポジトリに登録する方法について説明します。
  アプリケーションの種類に合わせて定義ファイルを作成し、OD_impl_instコマンドの-axオプションで登録を行います。

OD_impl_inst -ax 定義ファイル

  以下に定義ファイルの例を示します。下記の設定項目は最低限必要です。他の設定項目は必要に応じて設定します。

定義ファイル例

rep_id = インプリメンテーションリポジトリID
type = サーバタイプ
binary = アプリケーションのパス
env = LD_LIBRARY_PATH=/opt/FSUNod/lib/nt

定義ファイル例

rep_id = インプリメンテーションリポジトリID
type = サーバタイプ
binary = アプリケーションのパス
env = LD_LIBRARY_PATH=/opt/FJSVod/lib/nt