Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第5章 アプリケーションの開発(C++言語) | > 5.3 サーバアプリケーションのプログラミング(Portable Object Adapter:POA) | > 5.3.4 静的スケルトンインタフェース |
RootPOAとは、異なるポリシでインスタンスを管理する場合や、インタフェースごとなど、複数のPOAにインスタンスの管理を分散させたい場合には、新しいPOAを生成します。
以下の例では、取得したRootPOAのメソッドを使用して、子POAを作成しています。create_POA()の第1パラメタには、アダプタ名(生成するPOAの名前)を指定します。アダプタ名は、任意の文字列(Stringオブジェクト)を指定します(“サーバアプリケーションと環境設定との関連付け”で示したように、インプリメンテーションリポジトリIDやインタフェースリポジトリIDを指定することも可能です)。create_POA()の第3パラメタのポリシには、アプリケーション形態にあったポリシリストを指定します。この例では、USE_DEFAULT_SERVANTを使用するPOAを作成しています。
CORBA::PolicyList policies( 4 ); // ポリシリスト CORBA::Environment env; // 例外情報 try { // ポリシリスト作成 policies.length( 4 ); policies[0] = rootPOA->create_servant_retention_policy( PortableServer::NON_RETAIN, env ); policies[1] = rootPOA->create_request_processing_policy( PortableServer::USE_DEFAULT_SERVANT, env ); policies[2] = rootPOA->create_id_assignment_policy( PortableServer::SYSTEM_ID, env ); policies[3] = rootPOA->create_id_uniqueness_policy( PortableServer::MULTIPLE_ID, env ); // インタフェースリポジトリID に対応するのPOAオブジェクト獲得 PortableServer::POA_ptr POA1 = rootPOA->create_POA( "childPOA", rootPOA->the_POAManager(), policies, env ); } catch( CORBA::Exception& e ) { ... // 例外情報 }
孫以下のPOAを作成する場合も上記と手順は同じです。子POAのインスタンス(上記の例ではPOA1)上でcreate_POA()メソッドを発行することにより、孫POAを生成することが可能です。
POAのアダプタ名(上記例では"childPOA")に日本語等のマルチバイト文字は使用できません。
目次
索引
![]() ![]() |