| インタフェース | 説明 |
|---|---|
| AdapterActivator |
アダプタアクティベータは、子 POA (POA の子供のどれか) の名前を指定する要求を受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。
|
| AdapterActivatorOperations |
アダプタアクティベータは、子 POA (POA の子供のどれか) の名前を指定する要求を受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。
|
| Current |
PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。
|
| CurrentOperations |
PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。
|
| ID_ASSIGNMENT_POLICY_ID |
org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java。
|
| ID_UNIQUENESS_POLICY_ID |
org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java。
|
| IdAssignmentPolicy |
IdAssignmentPolicy は、作成された POA のオブジェクト ID がアプリケーションまたは ORB のどちらによって生成されるのかを指定します。
|
| IdAssignmentPolicyOperations |
IdAssignmentPolicy は、作成された POA のオブジェクト ID がアプリケーションまたは ORB のどちらによって生成されるのかを指定します。
|
| IdUniquenessPolicy |
IdUniquenessPolicy は、作成された POA で起動されるサーバントに、一意のオブジェクト ID が必要かどうかを示します。
|
| IdUniquenessPolicyOperations |
IdUniquenessPolicy は、作成された POA で起動されるサーバントに、一意のオブジェクト ID が必要かどうかを示します。
|
| IMPLICIT_ACTIVATION_POLICY_ID |
org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java。
|
| ImplicitActivationPolicy |
このポリシーは、作成済みの POA でサーバントの暗黙的な起動がサポートされるかどうかを指定します。
|
| ImplicitActivationPolicyOperations |
このポリシーは、作成済みの POA でサーバントの暗黙的な起動がサポートされるかどうかを指定します。
|
| LIFESPAN_POLICY_ID |
org/omg/PortableServer/LIFESPAN_POLICY_ID.java。
|
| LifespanPolicy |
LifespanPolicy は、作成された POA で実装されたオブジェクトの有効期間を示します。
|
| LifespanPolicyOperations |
LifespanPolicy は、作成された POA で実装されたオブジェクトの有効期間を示します。
|
| POA |
POA オブジェクトは、オブジェクトのコレクションの実装を管理します。
|
| POAManager |
各 POA オブジェクトには、POAManager オブジェクトが関連付けられています。
|
| POAManagerOperations |
各 POA オブジェクトには、POAManager オブジェクトが関連付けられています。
|
| POAOperations |
POA オブジェクトは、オブジェクトのコレクションの実装を管理します。
|
| REQUEST_PROCESSING_POLICY_ID |
org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java。
|
| RequestProcessingPolicy |
このポリシーは、作成された POA がどのように要求を処理するかを示します。
|
| RequestProcessingPolicyOperations |
このポリシーは、作成された POA がどのように要求を処理するかを示します。
|
| SERVANT_RETENTION_POLICY_ID |
org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java。
|
| ServantActivator |
POA に RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantActivator が使用されます。
|
| ServantActivatorOperations |
POA に RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantActivator が使用されます。
|
| ServantLocator |
POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantLocator が使用されます。
|
| ServantLocatorOperations |
POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantLocator が使用されます。
|
| ServantManager |
サーバントマネージャーは、POA が停止中のオブジェクトをターゲットとした要求を受信したときに、必要に応じてオブジェクトを起動できるようにします。
|
| ServantManagerOperations |
サーバントマネージャーは、POA が停止中のオブジェクトをターゲットとした要求を受信したときに、必要に応じてオブジェクトを起動できるようにします。
|
| ServantRetentionPolicy |
このポリシーは、作成された POA がアクティブなサーバントを Active Object Map に保存するかどうかを示します。
|
| ServantRetentionPolicyOperations |
このポリシーは、作成された POA がアクティブなサーバントを Active Object Map に保存するかどうかを示します。
|
| THREAD_POLICY_ID |
org/omg/PortableServer/THREAD_POLICY_ID.java。
|
| ThreadPolicy |
ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。
|
| ThreadPolicyOperations |
ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。
|
| クラス | 説明 |
|---|---|
| _ServantActivatorStub |
POA に RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantActivator が使用されます。
|
| _ServantLocatorStub |
POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantLocator が使用されます。
|
| CurrentHelper |
PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。
|
| DynamicImplementation |
オブジェクト呼び出しの動的な処理を可能にします。
|
| ForwardRequestHelper |
org/omg/PortableServer/ForwardRequestHelper.java。
|
| IdAssignmentPolicyValue |
IdAssignmentPolicyValue には、次の値を指定できます。
|
| IdUniquenessPolicyValue |
IdUniquenessPolicyValue には、次の値を指定できます。
|
| ImplicitActivationPolicyValue |
ImplicitActivationPolicyValue には、次のセマンティクスを指定できます。
|
| LifespanPolicyValue |
LifespanPolicyValue には、次の値を指定できます。
|
| POAHelper |
POA オブジェクトは、オブジェクトのコレクションの実装を管理します。
|
| RequestProcessingPolicyValue |
RequestProcessingPolicyValue には、次の値を指定できます。
|
| Servant |
ネイティブな
Servant 型を定義します。 |
| ServantActivatorHelper |
POA に RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantActivator が使用されます。
|
| ServantActivatorPOA |
POA に RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantActivator が使用されます。
|
| ServantLocatorHelper |
POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantLocator が使用されます。
|
| ServantLocatorPOA |
POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャーとして ServantLocator が使用されます。
|
| ServantRetentionPolicyValue |
ServantRetentionPolicyValue には、次の値を指定できます。
|
| ThreadPolicyValue |
ThreadPolicyValue には、次の値を指定できます。
|
| 例外 | 説明 |
|---|---|
| ForwardRequest |
org/omg/PortableServer/ForwardRequest.java。
|
Java では、POA (Portable Object Adaptor) ベースの DSI (Dynamic Skeleton Interface) サーバントは、標準の DynamicImplementation クラスから継承します。これは、Servant クラスから継承しています。ネイティブな Servant 型は、POA の PortableServer モジュールによって定義されます。Java では、Servant 型は Java の org.omg.PortableServer.Servant クラスにマップされます。このクラスは、すべての POA サーバント実装の基底クラスとして機能し、アプリケーションプログラマが呼び出すことのできるいくつかのメソッドのほかに、POA そのものによって呼び出され、サーバントの動作を制御するためにユーザーがオーバーライドできるメソッドも提供します。
Java(TM) Platform, Standard Edition 6 が準拠する公式の OMG 仕様のサポートセクションの正確なリストは、「Java(TM) SE 6 での正式な CORBA サポート仕様」を参照してください。
PortableServer モジュールは、次の POA 関連のインタフェースを定義します。
また、POA は Servant ネイティブ型も定義します。
上記の各インタフェースには、Operations インタフェースが関連付けられています。Operations インタフェースは、idlj コンパイラによって生成され、それに関連付けられたインタフェースに定義されているメソッドのメソッドシグニチャーを格納します。Operations インタフェースはクライアントとサーバーの両方からアクセスできますが、それに関連付けられたインタフェースはクライアントからしか呼び出せません。
PolicyValue で終わるクラスは、POA のポリシーを設定する create_POA 呼び出しに使用される値を提供します。デモンストレーションについては、次のコード例を参照してください。
PolicyValue ファイルには、次のものがあります。
IdAssignmentPolicyValue
IdUniquenessPolicyValue
ImplicitActivationPolicyValue
LifespanPolicyValue
RequestProcessingPolicyValue
ServantRetentionPolicyValue
ThreadPolicyValue
OMG IDL インタフェースのすべてのユーザー定義型で生成されるヘルパークラスは、ユーザー定義型の操作に必要な static メソッドを提供します。ヘルパークラスには、アプリケーションプログラマが使用するメソッドが 1 つだけあります。narrow メソッドです。IDL インタフェースからマップされる Java インタフェースだけが、narrow メソッドを含むヘルパークラスを備えています。したがって、PortableServer パッケージでは、次のクラスにだけ narrow メソッドがあります。
ForwardRequestHelper
ServantActivatorHelper
ServantLocatorHelper
POA クラスは、ServantActivator または ServantLocator の実装に使用します。
ForwardRequest 例外は、現在のリクエストと後続の ForwardRequest リクエストをその例外の forward_reference メンバーに示されたオブジェクトに配信する責任があることを ORB に通知します。
PortableServer によって行われる処理のほとんどは、ユーザーには見えません。このため、上記のインタフェースのうちでプログラマが使用するものはほんのわずかです。残りのインタフェースは、ORB 実装によって提供されます。アプリケーションプログラマが使用するインタフェースは、次のとおりです。
AdapterActivator
アダプタアクティベータは POA と関連付けられます。アダプタアクティベータは、子 POA (POA の子供のどれか) の名前を指定するリクエストを受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。実行の初めで必要な POA をすべて作成するアプリケーションサーバーでは、アダプタアクティベータを使用する必要も用意する必要もありません。つまり、リクエストの処理時に POA を作成する必要がある場合にだけアダプタアクティベータが必要になります。
ServantLocator
NON_RETAIN ポリシーを持つ POA は、ServantLocator であるサーバントマネージャーを使用します。
ServantActivator
RETAIN ポリシーを持つ POA は、ServantActivator であるサーバントマネージャーを使用します。
このパッケージは、Cookie 型を out パラメータとして渡すための CookieHolder クラスを提供します。CookieHolder クラスは、基底型のほかのホルダークラスと同じパターンに従います。
Java IDL の概要については、次を参照してください。
import javax.naming.InitialContext;
import javax.naming.Context;
import javax.rmi.PortableRemoteObject ;
import com.sun.corba.se.impl.poa.POAORB;
import org.omg.PortableServer.*;
import java.util.*;
import org.omg.CORBA.*;
import javax.rmi.CORBA.Stub;
import javax.rmi.CORBA.Util;
public class HelloServer {
public HelloServer(String[] args) {
try {
Properties p = System.getProperties();
// p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB");
ORB orb = ORB.init( args, p );
POA rootPOA = (POA)orb.resolve_initial_references("RootPOA");
Policy[] tpolicy = new Policy[3];
tpolicy[0] = rootPOA.create_lifespan_policy(
LifespanPolicyValue.TRANSIENT );
tpolicy[1] = rootPOA.create_request_processing_policy(
RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY );
tpolicy[2] = rootPOA.create_servant_retention_policy(
ServantRetentionPolicyValue.RETAIN);
POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy);
String ObjectId = "MyObjectId";
byte[] oid = ObjectId.getBytes();
org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid,
new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]);
HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow(
obj, HelloInterface.class );
Context initialNamingContext = new InitialContext();
initialNamingContext.rebind("HelloService", helloRef);
System.out.println("Hello Server: Ready...");
orb.run();
} catch (Exception e) {
System.out.println("Trouble: " + e);
e.printStackTrace();
}
}
public static void main(String args[]) {
new HelloServer( args );
}
}
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.