| インタフェース | 説明 |
|---|---|
| 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, 2014, Oracle and/or its affiliates. All rights reserved.