Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第5章 アプリケーションの開発(C++言語) | > 5.2 サーバアプリケーションのプログラミング(Basic Object Adapter:BOA) | > 5.2.1 静的スケルトンインタフェース |
サーバアプリケーションの初期化が完了すると、ORBに対してその旨を通知します。ORBは、この命令が発行された時点で、クライアントからの要求をサーバアプリケーションに伝えます。活性化の方法は、サーバのタイプによって以下のように異なります。
サーバのタイプ |
メソッド |
shared server |
CORBA::BOA::impl_is_ready |
unshared server |
CORBA::BOA::obj_is_ready |
persistent server |
CORBA::BOA::impl_is_ready |
server per method |
CORBA::BOA::impl_is_ready |
インプリメンテーションリポジトリのオブジェクトリファレンスを取り出します。メソッドのパラメタには、CORBA_ORB_ObjectId_ImplementationRepositoryを指定します。
FJ::ImplementationRep::lookup_id()を使用して、ImplementationDepオブジェクトのオブジェクトリファレンスを求めます。パラメタには、サーバアプリケーションのImplementationRepオブジェクトを指定します。
CORBA::BOA::impl_is_ready()またはCORBA::BOA::obj_is_ready()を使用して、サーバの活性化を行います。
サーバアプリケーションはプロセスで実装するかスレッドで実装するかにより、メソッドの動作が異なります。また、スレッドで実装する場合、インプリメンテーションリポジトリ内に設定されている情報によっても異なります。動作の違いを以下に示します。
条件 |
動作 |
|
プロセスで実装 |
OD_impl_instでmode=SYNC_END |
メソッドは即時に復帰せず、このオブジェクトの停止がオペレータにより指示されたときに復帰します。(注) |
スレッドで実装 |
OD_impl_instでmode=SYNC_END |
同上 |
OD_impl_instでmode=COMPATIBLE |
メソッドは即時に復帰します。 |
注) メソッドの復帰後は、初期化時にオープンしたファイルのクローズ処理や、領域の解放処理等の非活性化処理(“サーバの非活性化”を参照)が必要です。
CORBA::ImplementationDef_ptr impl; // インプリメンテーション情報検索用 ImplementationRep_ptr impl_rep; // ImplementationRepオブジェクトリファレンス CORBA::Object_ptr o; // オブジェクトリファレンスのポインタ // インプリメンテーション情報のオブジェクトリファレンス検索 o = orb->resolve_initial_references( CORBA_ORB_ObjectId_ImplementationRepository, env ); // ImplementationRepクラスへの変換 impl_rep = FJ::ImplementationRep::_narrow(o); // サーバのImplementationRepオブジェクトの検索 o = impl_rep->lookup_id( _IMPL_ODdemo_calculator, env ); // ImplementationRepクラスへの変換 impl = CORBA::ImplementationDef::_narrow(o); // サーバの活性化 boa->impl_is_ready( impl, env );
目次
索引
![]() ![]() |