POAマネージャは,POAの状態(リクエストを待ち行列に入れるか破棄するか)を管理し,POAを非活性化できます。各POAはPOAマネージャオブジェクトに対応します。POAマネージャは一つ以上のPOAを制御できます。
POAマネージャはPOAが生成された時にそのPOAに対応づけられます。使用するPOAマネージャを指定することも,nullを指定して新しいPOAマネージャを生成することもできます。
PortableServer::POAManager_var rootManager =
rootPOA->the_POAManager();
PortableServer::POA_var myPOA =
rootPOA->create_POA(
"bank_servant_locator_poa", rootManager, policies);
PortableServer::POA_var myPOA = rootPOA->create_POA(
"bank_servant_locator_poa",
null,
policies );
POA myPOA = rootPOA.create_POA( "bank_agent_poa",
rootPOA.the_POAManager(),
policies );
POA myPOA = rootPOA.create_POA( "bank_agent_poa",
null,
policies );
POAマネージャは,対応するPOAがすべてデストラクトされると,自身もデストラクトされます。
POAマネージャには次に示す四つの状態があります。
これらの状態は,さらにPOAの状態を決定します。これらの状態について詳しく説明します。