JavaTM 2
Platform
Std. Ed. v1.4.0

パッケージ org.omg.PortableServer

クラスとインタフェースを提供し、アプリケーションのサーバ側を複数ベンダー間 ORB で移植できるようにします。

参照:
          説明

インタフェースの概要
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。
 

パッケージ org.omg.PortableServer の説明

クラスとインタフェースを提供し、アプリケーションのサーバ側を複数ベンダー間 ORB で移植できるようにします。

Java では、POA (Portable Object Adaptor) ベースの DSI (Dynamic Skeleton Interface) サーバントは、標準の DynamicImplementation クラスから継承します。これは、Servant クラスから継承しています。ネイティブな Servant 型は、POA の PortableServer モジュールによって定義されます。Java では、Servant 型は Java の org.omg.PortableServer.Servant クラスにマップされます。このクラスは、すべての POA サーバント実装の基底クラスとして機能し、アプリケーションプログラマが呼び出すことのできるいくつかのメソッドのほかに、POA そのものによって呼び出され、サーバントの動作を制御するためにユーザがオーバーライドできるメソッドも提供します。

パッケージの仕様

Java 2 Platform, Standard Edition, v.1.4 が準拠している正式な OMG 仕様のサポート済みのセクションについては、「J2SE 1.4 でサポートする CORBA の正式な仕様」を参照してください。

POA 関連のインタフェース

PortableServer モジュールは、次の POA 関連のインタフェースを定義します。

また、POA は Servant ネイティブ型も定義します。

オペレーションクラス

上記の各インタフェースには、Operations インタフェースが関連付けられています。Operations インタフェースは、idlj コンパイラによって生成され、それに関連付けられたインタフェースに定義されているメソッドのメソッドシグニチャーを格納します。Operations インタフェースはクライアントとサーバの両方からアクセスできますが、それに関連付けられたインタフェースはクライアントからしか呼び出せません。

値クラス

接尾辞 PolicyValue で終わるクラスは、POA のポリシーを設定する create_POA 呼び出しに使用される値を提供します。デモンストレーションについては、以下のコード例を参照してください。PolicyValue ファイルには、次のものがあります。

ヘルパークラス

ヘルパークラスは、OMG IDL インタフェース内のすべてのユーザ定義型に対して生成され、それらの型の操作に必要な static メソッドを提供します。ヘルパークラスには、アプリケーションプログラマが使用するメソッドが 1 つだけあります。narrow メソッドです。IDL インタフェースからマップされる Java インタフェースだけが、narrow メソッドを含むヘルパークラスを備えています。したがって、PortableServer パッケージでは、次のクラスだけに narrow メソッドがあります。

POA クラス

POA クラスは、ServantActivator または ServantLocator の実装に使用します。

例外

ForwardRequest 例外は、現在の要求と後続の ForwardRequest 要求をその例外の forward_reference メンバに示されたオブジェクトに配信する責任があることを ORB に通知します。

アプリケーションプログラマによって実装されるインタフェース

PortableServer によって行われる処理のほとんどは、ユーザには見えません。このため、上記のインタフェースのうちでプログラマが使用するものはほんのわずかです。残りのインタフェースは、ORB 実装によって提供されます。アプリケーションプログラマが使用するインタフェースは、次のとおりです。

org.omg.PortableServer.ServantLocatorPackage パッケージ

このパッケージは、Cookie 型を out パラメータとして渡すための CookieHolder クラスを提供します。CookieHolder クラスは、基本型の他のホルダークラスとまったく同じパターンに従います。

関連ドキュメント

Java IDL の概要については、次を参照してください。

  • 「Java IDL テクノロジのホームページ」

    コード例

    サーバコードの例

    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.rmi.PortableRemoteObject ;
    import com.sun.corba.se.internal.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 );
         }
    }
    

    導入されたバージョン:
    1.4

    JavaTM 2
    Platform
    Std. Ed. v1.4.0

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

    Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
    Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
    Palo Alto, California, 94303, U.S.A. All Rights Reserved.