14.13.9.4 説明
この操作は、POAとその下位POAをすべて破棄します。POAとその名前は、同じプロセスで後から再作成できます。(これは、関連付けられたPOAを同じプロセスで再作成できない POAManager::deactivate操作とは異なります。)
POAが破棄された場合、実行を開始したリクエストについては、完了するまで処理が続行されます。実行を開始していないリクエストについては、それが新しく受け取られ、POAがないような状態で処理されます。そのため、リクエストは拒否され、OBJECT_NON_EXIST例外が発生します。
wait_for_completionパラメータがTRUEの場合、destroy操作は、処理中のリクエストがすべて完了し、etherealize の呼出しがすべて完了した後にのみ戻ります。それ以外の場合、destroy操作はPOAの破棄後に戻ります。
ノート:
このリリースのOracle Tuxedoでは、マルチスレッドをサポートしていません。そのため、オブジェクト呼出しのコンテキストで呼出しを行う場合、wait_for_completionはTRUEに指定しないでください。この指定を行うと、POAはそれが実行中のときに自身を解放できなくなります。
この関数がサポートされるのは、共同クライアント/サーバーのみです。
親トピック: PortableServer::POA::destroy