7.6.5 非アクティブな状態
POAマネージャが非アクティブな状態のときは,対応するPOAは入力リクエストをすべて拒否します。この状態は,対応するPOAを終了しようとするときに使用します。
POAの終了後にリクエストを送信すると,クライアント側でPortableServer::POA::AdapterNonExistent例外またはCORBA::OBJECT_NOT_EXIST例外が発生する場合があります。
- 注
-
非アクティブな状態のPOAマネージャは,ほかの状態には変更できません。
POAマネージャを非アクティブな状態に変更するには,次のように使用します。
void deactivate(in boolean etherealize_objects, in boolean wait_for_completion) raises (AdapterInactive);
- C++の場合
-
状態変更後,etherealize_objectsがTRUEなら,ServantRetentionPolicy::RETAINとRequestProcessingPolicy::USE_SERVANT_MANAGERを設定した対応するすべてのPOAは,すべてのアクティブなオブジェクトに対してサーバントマネージャのetherealizeを呼び出します。etherealize_objectsがFALSEなら,etherealizeは呼び出されません。wait_for_completionオプションはBooleanです。FALSEなら,このオペレーションは状態を非アクティブな状態に変更後すぐにリターンします。TRUEなら,このオペレーションは,状態変更より前に開始されたリクエストがすべて完了した場合か,etherealizeが対応するすべてのPOA(ServantRetentionPolicy::RETAINとRequest ProcessingPolicy::USE_SERVANT_MANAGERを設定したPOA)で呼び出された場合だけリターンします。AdapterInactiveは,このオペレーションを呼び出す前にPOAマネージャが非アクティブな状態だった場合に発生する例外です。
- Javaの場合
-
状態変更後,etherealize_objectsがTRUEなら,ServantRetentionPolicy.RETAINとRequestProcessingPolicy.USE_SERVANT_MANAGERを設定した対応するすべてのPOAは,すべてのアクティブなオブジェクトに対してサーバントマネージャのetherealizeを呼び出します。etherealize_objectsがFALSEなら,etherealizeは呼び出されません。wait_for_completionオプションはBooleanです。FALSEなら,このオペレーションは状態を非アクティブな状態に変更後すぐにリターンします。TRUEなら,このオペレーションは,状態変更より前に開始されたリクエストがすべて完了した場合か,etherealizeが対応するすべてのPOA(ServantRetentionPolicy.RETAINとRequest ProcessingPolicy.USE_SERVANT_MANAGERを設定したPOA)で呼び出された場合だけリターンします。AdapterInactiveは,このオペレーションを呼び出す前にPOAマネージャが非アクティブな状態だった場合に発生する例外です。