orbd(1)

名前
orbd - Object Request Broker デーモン

orbd は、クライアントが CORBA 環境内のサーバー上に存在する 持続オブジェクトを透過的に特定して呼び出す場合に使用します。

関連項目: 「Naming Service」
(http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html)

形式

orbd <options>

機能説明
orbd ツールを含むサーバーマネージャは、クライアントが CORBA 環境内のサーバー上に存在する持続オブジェクトを透過的に特定して呼び出す場合に使用します。持続サーバーは、ネームサービス内の持続オブジェクト参照を発行する一方で、オブジェクト参照内にサーバーのポート番号ではなく ORBD のポート番号を組み込みます。持続オブジェクト参照のためにオブジェクト参照内に ORBD ポート番号を組み込むと、以下の利点が得られます。

    *   ネームサービス内のオブジェクト参照は、サーバーのライフサイクルとは無関係に維持されます。たとえば、オブジェクト参照はサーバーの最初のインストール時にネームサービス内でサーバーによって発行され、その後は何度サーバーの起動または停止が行われても ORBD は常に呼び出し側のクライアントに正しいオブジェクト参照を返します。

    *   クライアントはネームサービス内でオブジェクト参照を 1 度確認する必要があり、サーバーのライフサイクルが原因で起きる変更に関係なくこの参照を繰り返し使用できます。

ORBD のサーバーマネージャにアクセスするには、servertool を使用してサーバーを起動する必要があります。servertool はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、停止を行うためのコマンド行インタフェースです。サーバーマネージャの詳細については、このドキュメントの「サーバーマネージャ」の節を参照してください。

orbd の起動時にはネームサービスも起動されます。ネームサービスの詳細については、 「Naming Service」
(http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html) を参照してください。

必須オプション

-ORBInitialPort nameserverport
    ネームサーバーを起動するポートを指定します。起動後に orbd はこのポートで着信要求を待機します。Solaris ソフトウェアを使用する場合は、スーパーユーザーになって 1024 未満のポートでプロセスを開始する必要があります。このため、1024 以上のポート番号の使用を推奨します。 (必須)

その他のオプション

-port port
    ORBD を開始する起動ポートを指定します。ORBD はこのポートで、持続オブジェクトの要求を受け付けます。このポートのデフォルト値は 1049 です。このポート番号は、持続 Interoperable Object References (IOR) のポートフィールドに追加されます。(省略可能)

-defaultdb directory
    ORBD 持続ストレージディレクトリである orb.db が作成されるベースを指定します。このオプションが指定されない場合、デフォルト値は "./orb.db" です。(省略可能)

-serverPollingTime milliseconds
    servertool 経由で登録された持続サーバーの健全性を ORBD が検査する頻度を指定します。デフォルト値は 1,000 ミリ秒 (1 秒) です。milliseconds に指定される値は、有効な正の整数でなければなりません (省略可能)。

-serverStartupDelay milliseconds
    servertool 経由で登録された持続サーバーが再起動されてから ORBD がロケーション転送例外を送信するまでの、ORBD の待機時間を指定します。デフォルト値は 1,000 ミリ秒 (1 秒) です。milliseconds に指定される値は、有効な正の整数でなければなりません (省略可能)。

-Joption
    option を Java 仮想マシンに渡します。ここで、option は、「Java アプリケーション起動プログラム」
     (http://java.sun.com/javase/6/docs/technotes/tools/solaris/java.html) のリファレンスページで説明されているオプションの 1 つです。たとえば、-J-Xms48m は、起動時に使用するメモリを 48M バイトに設定します。-J が基本にする仮想マシンにオプションを渡すことは、共通の規約です。

ネームサービスの起動と停止

ネームサービスは、名前をオブジェクト参照にバインドすることによって、「CORBA objects」
 (http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object) を指定できるようにする CORBA サービスです。「name binding」
 (http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20binding) は、ネーミングサービスに保存できます。クライアントは名前を指定して、目的のオブジェクト参照を取得できます。

クライアントまたはサーバーを実行する前に、ORBD を開始します。ORBD には、持続ネーミングサービスと一時ネーミングサービスが含まれています。これらは両方とも COS ネーミングサービスの実装です。

    *   持続ネーミングサービスは、ネーミングコンテキストに持続性を提供します。つまり、この情報はサービスの停止と起動の間で持続し、サービスに障害が発生した場合に回復可能です。ORBD が再起動されると、持続ネーミングサービスはネーミングコンテキストグラフを復元するため、すべてのクライアントとサーバーの名前のバインディングは損傷を受けません (持続する)。

    *   以前のバージョンとの互換性のため、tnameserv (以前のバージョンの JDK と一緒に出荷された一時ネーミングサービス) もこのリリースの J2SE に含まれています。一時ネーミングサービスが実行されている限り、ネーミングコンテキストは保持されます。サービスが中断された場合、ネーミングコンテキストグラフは失われます。

-ORBInitialPort 引数は、orbd に必須のコマンド行引数で、ネーミングサービスが実行されるポート番号の設定に使用されます。以下の説明は、Java IDL Object Request Broker Daemon にポート 1050 を使用できると仮定しています。Solaris ソフトウェアを使用する場合は、スーパーユーザーになって 1024 未満のポートでプロセスを開始する必要があります。このため、1024 以上のポート番号の使用を推奨します。必要な場合は、別のポートを使用することもできます。

UNIX コマンドシェルから orbd を起動するには、次のように入力します。

  orbd -ORBInitialPort 1050&

MS-DOS システムプロンプト (Windows) から起動するには、次のように入力します。

  start orbd -ORBInitialPort 1050

ORBD の実行後に、サーバーおよびクライアントアプリケーションを実行できます。クライアントおよびサーバーアプリケーションを実行する場合は、ネーミングサービスが実行されているポート番号 (および該当する場合は、マシン名) をアプリケーションに認識させる必要があります。これを実行する方法の 1 つとして、次のコードをアプリケーションに追加することができます。

        Properties props = new Properties();
        props.put("org.omg.CORBA.ORBInitialPort", "1050");
        props.put("org.omg.CORBA.ORBInitialHost", "MyHost");
        ORB orb = ORB.init(args, props);

この例では、ネーミングサービスはホスト「MyHost」のポート 1050 で実行されています。また、サーバーまたはクライアントアプリケーションの実行時にコマンド行からポート番号またはマシン名を指定することもできます。たとえば、「HelloApplication」を次のコマンド行で起動します。

     java HelloApplication -ORBInitialPort 1050 -ORBInitialHost MyHost

ネーミングサービスを停止するには、該当するオペレーティングシステムコマンドを使用します (Solaris での pkill orbd、または orbd が実行されている DOS ウィンドウでの Ctrl+C など)。一時ネームサービスの場合、サービスが終了すると、ネーミングサービスに登録されている名前が消失する可能性があります。Java IDL ネーミングサービスは明示的に停止されるまで実行します。

ORBD に含まれているネーミングサービスの詳細については、「Naming Service」
 (http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html) を参照してください。

サーバーマネージャ

ORBD のサーバーマネージャにアクセスして持続サーバーを実行するには、servertool を使用してサーバーを起動する必要があります。servertool はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、停止を行うためのコマンド行インタフェースです。servertool を使用してサーバーを起動する場合、orbd と同じホストおよびポートで起動する必要があります。異なるポートでサーバーが起動された場合、ローカルコンテキストのデータベースに格納されている情報は無効になり、サービスは正常に機能しなくなります。

  サーバーマネージャ: 例

デモ用のサンプルチュートリアル
 (http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.html) を使って、idlj コンパイラと javac コンパイラをチュートリアルで示されているように実行します。サーバーマネージャを実行するには、以下の手順に従ってアプリケーションを実行します。

    1.  orbd を起動します。

    orbd を UNIX コマンドシェルから起動するには、次のように入力します。

      orbd -ORBInitialPort 1050

    MS-DOS システムプロンプト (Windows) から起動するには、次のように入力します。

      start orbd -ORBInitialPort 1050

    1050 は、ネームサーバーを実行するポートです。-ORBInitialPort は必須のコマンド行引数です。Solaris ソフトウェアを使用する場合は、ルートから 1024 未満のポートでプロセスを開始する必要があります。このため、1024 以上のポート番号の使用を推奨します。

    2.  servertool を起動します。

    Hello サーバーを起動するには、次のように入力します。

      servertool -ORBInitialPort 1050

    ネームサーバー (orbd) のポートが前の手順で使用したポート (たとえば、-ORBInitialPort 1050) と同じであることを確認してください。servertool は、ネームサーバーと同じポートで起動する必要があります。

    servertool コマンド行インタフェースが表示されます。

    3.  Hello サーバーを servertool プロンプトから起動します。

          servertool > register -server HelloServer -classpath .
        			-applicationName HelloServerApName

    servertool は、このサーバーを登録し、それに「HelloServerApName」という名前を割り当て、そのサーバー ID と登録されているすべてのサーバーの一覧を表示します。

    4.  クライアントアプリケーションを別のターミナルウィンドウまたはプロンプトから実行します。

          java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost

    この例の場合、ネームサーバーは Hello クライアントと同じホストで実行されているので、-ORBInitialHost localhost を省くことができます。ネームサーバーが別のホストで実行されている場合は、-ORBInitialHost nameserverhost を使用して IDL ネームサーバーが実行されているホストを指定します。

    前の手順と同様に、ネームサーバー (orbd) のポート (たとえば、-ORBInitialPort 1050) を指定します。

    5.  サーバーマネージャの実験が終了したら、ネームサーバー (orbd) と servertool を必ず停止 (終了) してください。

    orbd を DOS プロンプトから停止するには、サーバーが実行されているウィンドウを選択し、Ctrl+C を押して停止します。orbd を UNIX シェルから停止するには、プロセスを検索して終了します。サーバーは、明示的に停止されるまで起動を引き続き待機します。

    servertool を停止するには、quit と入力し、キーボードの Enter キーを押します。

関連項目

    *   「Naming Service」
        (http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html)

    *   servertool