JavaTM Platform
Standard Ed. 6

org.omg.PortableServer
インタフェース POAOperations

既知のサブインタフェースの一覧:
POA

public interface POAOperations

POA オブジェクトは、オブジェクトのコレクションの実装を管理します。POA は、オブジェクト ID によって識別されるオブジェクトの名前空間をサポートします。また、POA の名前空間も提供します。POA は既存の POA の子として作成され、それによってルート POA で始まる階層が形成されます。POA オブジェクトは、他のプロセスにエクスポートしたり、ORB::object_to_string を使用して外部化したりしないでください。


メソッドの概要
 void activate_object_with_id(byte[] id, Servant p_servant)
          このオペレーションは、指定されたオブジェクト ID と指定されたサーバントとの関連付けを Active Object Map に入れます。
 byte[] activate_object(Servant p_servant)
          このオペレーションは、オブジェクト ID を生成し、そのオブジェクト ID と指定されたサーバントを Active Object Map に入れます。
 IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 POA create_POA(String adapter_name, POAManager a_POAManager, Policy[] policies)
          このオペレーションは、新しい POA をターゲット POA の子として作成します。
 Object create_reference_with_id(byte[] oid, String intf)
          この操作は、指定されたオブジェクト ID とインタフェースリポジトリ ID の値をカプセル化するオブジェクト参照を作成します。
 Object create_reference(String intf)
          このオペレーションは、POA によって生成されたオブジェクト ID 値と指定されたインタフェースリポジトリ ID をカプセル化するオブジェクト参照を作成します。
 RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 ThreadPolicy create_thread_policy(ThreadPolicyValue value)
          これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。
 void deactivate_object(byte[] oid)
          この操作によって、oid パラメータに指定された ObjectId が終了します。
 void destroy(boolean etherealize_objects, boolean wait_for_completion)
          この操作は、POA とその下位 POA をすべて破棄します。
 POA find_POA(String adapter_name, boolean activate_it)
          ターゲット POA が指定された名前 (ターゲット POA を基準にしている) を持つ子 POA の親である場合は、その子 POA が返されます。
 ServantManager get_servant_manager()
          POA の ServantRetentionPolicy が RETAIN の場合、ServantManager 引数 (imgr) は ServantActivator インタフェースをサポートします。
 Servant get_servant()
          このオペレーションは、POA に関連付けられたデフォルトのサーバントを返します。
 Object id_to_reference(byte[] oid)
          指定されたオブジェクト ID を持つオブジェクトが現在アクティブになっている場合は、そのオブジェクトを起動するための情報をカプセル化しているオブジェクト参照が返されます。
 Servant id_to_servant(byte[] oid)
          POA に RETAIN ポリシーが設定されていて、指定された ObjectId が Active Object Map に含まれている場合は、Active Object Map 内の当該オブジェクトに関連付けられたサーバントを返します。
 byte[] id()
          POA が作成される過程で、POA の一意の ID を返します。
 byte[] reference_to_id(Object reference)
          この操作は、指定されたオブジェクト参照によってカプセル化されたオブジェクト ID 値を返します。
 Servant reference_to_servant(Object reference)
          POA に RETAIN ポリシーが設定されていて、指定されたオブジェクトが Active Object Map に含まれている場合は、Active Object Map 内の当該オブジェクトに関連付けられたサーバントを返します。
 byte[] servant_to_id(Servant p_servant)
          この操作には、次の 4 つの動作が考えられます。
 Object servant_to_reference(Servant p_servant)
          この POA によって操作がディスパッチされるとき以外にこの操作が呼び出される場合は、RETAIN ポリシーと、UNIQUE_ID または IMPLICIT_ACTIVATION ポリシーのどちらかが必要となります。
 void set_servant_manager(ServantManager imgr)
          この操作は、POA に関連付けられたデフォルトのサーバントマネージャーを設定します。
 void set_servant(Servant p_servant)
          この操作は、指定されたサーバントをデフォルトのサーバントとして POA に登録します。
 AdapterActivator the_activator()
          この属性は、POA に関連付けられたアダプタアクティベータを識別します。
 void the_activator(AdapterActivator newThe_activator)
          この属性は、POA に関連付けられたアダプタアクティベータを識別します。
 POA[] the_children()
          この属性は、POA のすべての子 POA から成る現在の子 POA のセットを識別します。
 String the_name()
          この属性は、POA を、その親を基準にして識別します。
 POA the_parent()
          この属性は、POA の親を識別します。
 POAManager the_POAManager()
          この属性は、POA に関連付けられた POA マネージャーを識別します。
 

メソッドの詳細

create_POA

POA create_POA(String adapter_name,
               POAManager a_POAManager,
               Policy[] policies)
               throws AdapterAlreadyExists,
                      InvalidPolicy
このオペレーションは、新しい POA をターゲット POA の子として作成します。

パラメータ:
adapter_name - 同じ親 POA を持つ他の POA を 基準にして新しい POA を識別する
a_POAManager - 新しい POA に関連付けられる POA マネージャーを示す
policies - POA に関連付けて、その動作を 制御するためのポリシーオブジェクトを示す
例外:
AdapterAlreadyExists - ターゲット POA が 指定された名前を持つ子 POA をすでに 保有していることを示す
InvalidPolicy - ポリシーオブジェクトの どれかが ORB に有効でないか、 競合しているか、実行されていない 管理アクションを必要としている場合に スローされる

find_POA

POA find_POA(String adapter_name,
             boolean activate_it)
             throws AdapterNonExistent
ターゲット POA が指定された名前 (ターゲット POA を基準にしている) を持つ子 POA の親である場合は、その子 POA が返されます。

パラメータ:
adapter_name - 検索対象の POA 名
activate_it - 指定された名前を持つ POA が 存在しないときに、activate_it パラメータの値が TRUE である場合は、ターゲット POA の AdapterActivator (存在する場合) が 呼び出される
戻り値:
POA が存在するか、AdapterActivator によって起動されている場合は その POA
例外:
AdapterNonExistent

destroy

void destroy(boolean etherealize_objects,
             boolean wait_for_completion)
この操作は、POA とその下位 POA をすべて破棄します。下位 POA がすべて破棄されてから (再帰的に)、それらを包含していた POA が破棄されます。そのようにして破棄された POA (つまり、その名前を持つ POA) は、同じプロセス内にあとで再作成できます。

パラメータ:
etherealize_objects - サーバントマネージャーに対する etherealize オペレーションを呼び出す必要があるかどうかを 示すフラグ
wait_for_completion - POA とその子 POA が 起動要求と霊化 (etherealization) が完了するまで 待機する必要があるかどうかを示すフラグ

create_thread_policy

ThreadPolicy create_thread_policy(ThreadPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
ThreadPolcy オブジェクト

create_lifespan_policy

LifespanPolicy create_lifespan_policy(LifespanPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
LifespanPolicy オブジェクト

create_id_uniqueness_policy

IdUniquenessPolicy create_id_uniqueness_policy(IdUniquenessPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
IdUniquenessPolicy オブジェクト

create_id_assignment_policy

IdAssignmentPolicy create_id_assignment_policy(IdAssignmentPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
IdAssignmentPolicy オブジェクト

create_implicit_activation_policy

ImplicitActivationPolicy create_implicit_activation_policy(ImplicitActivationPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
ImplicitActivationPolicy オブジェクト

create_servant_retention_policy

ServantRetentionPolicy create_servant_retention_policy(ServantRetentionPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
ServantRetentionPolicy オブジェクト

create_request_processing_policy

RequestProcessingPolicy create_request_processing_policy(RequestProcessingPolicyValue value)
これらのオペレーションはそれぞれ、指定された値を持つポリシーオブジェクトへの参照を返します。

パラメータ:
value - ポリシー型
戻り値:
RequestProcessingPolicy オブジェクト

the_name

String the_name()
この属性は、POA を、その親を基準にして識別します。この名前は、POA が作成されたときに割り当てられます。


the_parent

POA the_parent()
この属性は、POA の親を識別します。ルート POA の親は null です。


the_children

POA[] the_children()
この属性は、POA のすべての子 POA から成る現在の子 POA のセットを識別します。子 POA のセットには、POA の直接の子だけが含まれ、その下位の POA は含まれません。


the_POAManager

POAManager the_POAManager()
この属性は、POA に関連付けられた POA マネージャーを識別します。


the_activator

AdapterActivator the_activator()
この属性は、POA に関連付けられたアダプタアクティベータを識別します。


the_activator

void the_activator(AdapterActivator newThe_activator)
この属性は、POA に関連付けられたアダプタアクティベータを識別します。


get_servant_manager

ServantManager get_servant_manager()
                                   throws WrongPolicy
POA の ServantRetentionPolicy が RETAIN の場合、ServantManager 引数 (imgr) は ServantActivator インタフェースをサポートします。NON_RETAIN ポリシーの場合、ServantManager 引数は ServantLocator インタフェースをサポートします。この引数が nil であるか、必要なインタフェースをサポートしていない場合は、OBJ_ADAPTER 例外がスローされます。

戻り値:
POA に関連付けられた ServantManager、 何も存在しない場合は null
例外:
WrongPolicy - USE_SERVANT_MANAGER ポリシーが 指定されていない場合にスローされる

set_servant_manager

void set_servant_manager(ServantManager imgr)
                         throws WrongPolicy
この操作は、POA に関連付けられたデフォルトのサーバントマネージャーを設定します。POA が作成されたあとに 1 度だけ呼び出すことができます。すでに設定済みのサーバントマネージャーを設定しようとすると、BAD_INV_ORDER 例外がスローされます。

パラメータ:
imgr - デフォルトとして使用されるサーバントマネージャー
例外:
WrongPolicy - USE_SERVANT_MANAGER ポリシーが 指定されていない場合にスローされる

get_servant

Servant get_servant()
                    throws NoServant,
                           WrongPolicy
このオペレーションは、POA に関連付けられたデフォルトのサーバントを返します。

戻り値:
p_servant POA に関連付けられたデフォルトのサーバント
例外:
NoServant - POA に関連付けられたデフォルトの サーバントがない場合にスローされる
WrongPolicy - USE_DEFAULT_SERVANT ポリシーが ポリシーが指定されていない場合にスローされる

set_servant

void set_servant(Servant p_servant)
                 throws WrongPolicy
この操作は、指定されたサーバントをデフォルトのサーバントとして POA に登録します。このサーバントは、Active Object Map にサーバントが見つからないすべての要求に使用されます。

パラメータ:
p_servant - デフォルトとして使用されるサーバント
例外:
WrongPolicy - USE_DEFAULT_SERVANT ポリシーが ポリシーが指定されていない場合にスローされる

activate_object

byte[] activate_object(Servant p_servant)
                       throws ServantAlreadyActive,
                              WrongPolicy
このオペレーションは、オブジェクト ID を生成し、そのオブジェクト ID と指定されたサーバントを Active Object Map に入れます。

パラメータ:
p_servant - 起動するオブジェクトに 関連付けられるサーバント
戻り値:
POA によって生成されたオブジェクト ID
例外:
ServantAlreadyActive - POA に UNIQUE_ID ポリシーが指定されているときに、 サーバントが Active Object Map にすでに 格納されている場合にスローされる
WrongPolicy - SYSTEM_ID と RETAIN ポリシーが 指定されていない場合にスローされる

activate_object_with_id

void activate_object_with_id(byte[] id,
                             Servant p_servant)
                             throws ServantAlreadyActive,
                                    ObjectAlreadyActive,
                                    WrongPolicy
このオペレーションは、指定されたオブジェクト ID と指定されたサーバントとの関連付けを Active Object Map に入れます。

パラメータ:
id - 起動するオブジェクトのオブジェクト ID
p_servant - オブジェクトに関連付けられる サーバント
例外:
ServantAlreadyActive - POA に UNIQUE_ID ポリシーが指定されているときに、 サーバントが Active Object Map にすでに 格納されている場合にスローされる
ObjectAlreadyActive - オブジェクトが POA 内ですでに アクティブになっている場合にスローされる
WrongPolicy - RETAIN ポリシーが指定されて いない場合にスローされる

deactivate_object

void deactivate_object(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
この操作によって、oid パラメータに指定された ObjectId が終了します。終了した ObjectId は、その ObjectId のアクティブな要求がなくなるまで、引き続き要求を処理します。そして、ObjectId に対して実行されているすべての要求が完了すると、Active Object Map から削除されます。

パラメータ:
oid - 終了するオブジェクトのオブジェクト ID
例外:
ObjectNotActive - 指定された oid を 持つオブジェクトが Active Object Map にない 場合
WrongPolicy - RETAIN ポリシーが指定されて いない場合にスローされる

create_reference

Object create_reference(String intf)
                        throws WrongPolicy
このオペレーションは、POA によって生成されたオブジェクト ID 値と指定されたインタフェースリポジトリ ID をカプセル化するオブジェクト参照を作成します。

パラメータ:
intf - オブジェクト参照を作成するためのリポジトリ ID
戻り値:
intf を使用して作成されたオブジェクト参照
例外:
WrongPolicy - SYSTEM_ID ポリシーが指定されて いない場合

create_reference_with_id

Object create_reference_with_id(byte[] oid,
                                String intf)
この操作は、指定されたオブジェクト ID とインタフェースリポジトリ ID の値をカプセル化するオブジェクト参照を作成します。この操作によって起動は行われません。作成されたオブジェクト参照は、クライアントに渡すことができます。 そして、該当するポリシーによって、それらの参照に対するそのあとの要求で、必要があればオブジェクトが起動されたり、デフォルトのサーバントが使用されたりします。

パラメータ:
oid - objref を作成するためのオブジェクト ID
intf - objref を作成するためのリポジトリ ID
戻り値:
oid と intf を使用して作成されたオブジェクト参照
例外:
BAD_PARAM - POA に SYSTEM_ID ポリシーが 指定されているときに、システムによって またはこの POA に対してオブジェクト ID 値が 生成されなかった場合にスローされる

servant_to_id

byte[] servant_to_id(Servant p_servant)
                     throws ServantNotActive,
                            WrongPolicy
この操作には、次の 4 つの動作が考えられます。1. POA に UNIQUE_ID ポリシーが設定されていて、指定されたサーバントがアクティブな場合は、そのサーバントに関連付けられたオブジェクト ID が返されます。2. 2. POA に IMPLICIT_ACTIVATION ポリシーが設定されていて、POA に MULTIPLE_ID ポリシーが指定されているか、指定されたサーバントがアクティブでない場合は、POA によって生成されたオブジェクト ID とそのサーバントに関連付けられたインタフェース ID を使用してそのサーバントが起動され、そのオブジェクト ID が返されます。3. 3. POA に USE_DEFAULT_SERVANT ポリシーが設定され、指定されたサーバントがデフォルトのサーバントであり、そのデフォルトのサーバントに対する要求を実行しているときにこの操作が呼び出される場合は、現在の呼び出しに関連付けられたオブジェクト ID が返されます。4. 4. 上記以外の場合は、ServantNotActive 例外がスローされます。

パラメータ:
p_servant - オブジェクト ID が返されるサーバント
戻り値:
このサーバントに関連付けられたオブジェクト ID
例外:
ServantNotActive - 上記の規則とポリシーの 組み合わせが満たされない場合
WrongPolicy - USE_DEFAULT_SERVANT ポリシーが指定されていない場合、 あるいは RETAIN ポリシーと、 UNIQUE_ID または IMPLICIT_ACTIVATION ポリシーの 組み合わせが指定されていない場合

servant_to_reference

Object servant_to_reference(Servant p_servant)
                            throws ServantNotActive,
                                   WrongPolicy
この POA によって操作がディスパッチされるとき以外にこの操作が呼び出される場合は、RETAIN ポリシーと、UNIQUE_ID または IMPLICIT_ACTIVATION ポリシーのどちらかが必要となります。次の 4 つの動作が考えられます。1. 1. POA に RETAIN と UNIQUE_ID の両方のポリシーが設定されていて、指定されたサーバントがアクティブな場合は、そのサーバントを起動するための情報をカプセル化しているオブジェクト参照が返されます。2. 2. POA に RETAIN と IMPLICIT_ACTIVATION の両方のポリシーが設定されていて、POA に MULTIPLE_ID ポリシーが指定されているか、指定されたサーバントがアクティブでない場合は、POA によって生成されたオブジェクト ID とそのサーバントに関連付けられたインタフェース ID を使用してそのサーバントが起動され、対応するオブジェクト参照が返されます。3. 3. 指定されたサーバントに対する要求を実行しているときにこのメソッドが呼び出される場合は、現在の呼び出しに関連付けられたオブジェクト参照が返されます。4. 4. 上記以外の場合は、ServantNotActive 例外がスローされます。

パラメータ:
p_servant - オブジェクト参照を取得する 必要があるサーバント
戻り値:
このサーバントに関連付けられたオブジェクト参照
例外:
WrongPolicy - 指定されたサーバントに対する要求を 実行しているとき以外にこのオペレーションが 呼び出されるときに、必要なポリシーが 指定されていない場合
ServantNotActive - 上記のポリシーと規則が 満たされない場合

reference_to_servant

Servant reference_to_servant(Object reference)
                             throws ObjectNotActive,
                                    WrongPolicy,
                                    WrongAdapter
POA に RETAIN ポリシーが設定されていて、指定されたオブジェクトが Active Object Map に含まれている場合は、Active Object Map 内の当該オブジェクトに関連付けられたサーバントを返します。これに対し、POA に USE_DEFAULT_SERVANT ポリシーが設定されていて、デフォルトのサーバントが POA に登録されている場合は、デフォルトのサーバントを返します。この POA によってオブジェクト参照が作成されなかった場合は、WrongAdapter 例外がスローされます (POA.IDL との不一致に関する OMG 問題)。

パラメータ:
reference - サーバントが返される オブジェクト参照
戻り値:
オブジェクト参照に関連付けられたサーバント
例外:
WrongPolicy - RETAIN ポリシーと USE_DEFAULT_SERVANT ポリシーの どちらも指定されていない場合
ObjectNotActive - サーバントが Active Object Map に 存在しないか (RETAIN の場合)、 デフォルトのサーバントが登録されていない (USE_DEFAULT_SERVANT の場合) 場合
WrongAdapter - この POA インスタンスによって オブジェクト参照が作成されなかった場合

reference_to_id

byte[] reference_to_id(Object reference)
                       throws WrongAdapter,
                              WrongPolicy
この操作は、指定されたオブジェクト参照によってカプセル化されたオブジェクト ID 値を返します。その操作が実行されている POA によってオブジェクト参照が作成された場合にだけ有効です。そのオブジェクト参照が示すオブジェクトがアクティブになっていなくても、この操作は成功します。

パラメータ:
reference - オブジェクト ID が返される 必要のあるオブジェクト参照
戻り値:
オブジェクト参照にカプセル化されているオブジェクト ID
例外:
WrongAdapter - オブジェクト参照が そこに指定された POA によって 作成されなかった場合
WrongPolicy - 今後の機能拡張に備えて 宣言されている

id_to_servant

Servant id_to_servant(byte[] oid)
                      throws ObjectNotActive,
                             WrongPolicy
POA に RETAIN ポリシーが設定されていて、指定された ObjectId が Active Object Map に含まれている場合は、Active Object Map 内の当該オブジェクトに関連付けられたサーバントを返します。これに対し、POA に USE_DEFAULT_SERVANT ポリシーが設定されていて、デフォルトのサーバントが POA に登録されている場合は、デフォルトのサーバントを返します。

パラメータ:
oid - サーバントが返される オブジェクト ID
戻り値:
oid に関連付けられたサーバント
例外:
ObjectNotActive - ObjectId が Active Object Map に 存在しないか (RETAIN ポリシーの場合)、 デフォルトのサーバントが登録されていない (USE_DEFAULT_SERVANT ポリシーの場合) 場合
WrongPolicy - RETAIN ポリシーと USE_DEFAULT_SERVANT ポリシーの どちらも指定されていない場合

id_to_reference

Object id_to_reference(byte[] oid)
                       throws ObjectNotActive,
                              WrongPolicy
指定されたオブジェクト ID を持つオブジェクトが現在アクティブになっている場合は、そのオブジェクトを起動するための情報をカプセル化しているオブジェクト参照が返されます。

パラメータ:
oid - オブジェクト参照が返される オブジェクトの ID
戻り値:
オブジェクト参照
例外:
ObjectNotActive - オブジェクト ID 値が POA で アクティブになっていない場合
WrongPolicy - RETAIN ポリシーが ない場合

id

byte[] id()
POA が作成される過程で、POA の一意の ID を返します。この ID は、ポータブルインタセプタで使用されます。

この ID は、そのプロセスにおける POA の有効期間に対して一意であることが保証されています。持続的な POA の場合、別の POA と同じ名前で同じパスに作成された POA は同一であるため、ID も同じになります。 一時的な POA の場合、それぞれの POA が一意になります。


JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。