JavaTM Platform
Standard Ed. 6

パッケージ 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 が、アクティブオブジェクトマップ内にアクティブなサーバントを保持するかどうかを指定します。
ServantRetentionPolicyOperations このポリシーは、作成済みの POA が、アクティブオブジェクトマップ内にアクティブなサーバントを保持するかどうかを指定します。
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(TM) Platform, Standard Edition 6 が準拠する公式の OMG 仕様のサポートセクションの正確なリストは、「Java(TM) SE 6 での正式な 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.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 );
         }
    }
    
    
    

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

    JavaTM Platform
    Standard Ed. 6

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

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