orbd(1)

名前
orbd - The Object Request Broker Daemon

orbd は、クライアントから CORBA 環境のサーバーにある持続オブジェクトを透過的に検索して呼び出すために使用します。

関連項目: ネームサービス @
http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html

形式

orbd <options>

説明

orbd ツールに含まれるサーバーマネージャーを使うと、クライアントは CORBA 環境でサーバー上にある持続オブジェクトを透過的に検索して呼び出すことができます。持続サーバーは、ネームサービスに持続オブジェクト参照を発行する際、サーバーのポート番号の代わりに OBRD のポート番号をオブジェクト参照に含めます。持続オブジェクト参照のオブジェクト参照に ORBD ポート番号を含めることには、次のような利点があります。

    o   ネームサービスにあるオブジェクト参照が、サーバーのライフタイムと無関係になる。オブジェクト参照は、始めてインストールされたときはネームサービスのサーバーによりネームサービスに発行されますが、その後は、サーバーの開始またはシャットダウンの回数にかかわらず、ORBD がいつでも呼び出したクライアントに正しいオブジェクト参照を返します。

    o   クライアントは一度だけネーミングサービスのオブジェクト参照をルックアップする必要があるが、その後はサーバーのライフタイムによる変更とは無関係にこの参照を利用することができる

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

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

オプション

  必須オプション

    -ORBInitialPort nameserverport
        ネームサーバーを起動するポートの番号を指定します。orbd は、起動されると、このポート上で着信要求を待機します。Solaris ソフトウェアを使用する場合、1024 より小さいポート上でプロセスを開始するには、root ユーザーになる必要があります。このため、1024 以上のポート番号を使用することをお勧めします。(必須)

  その他のオプション

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

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

    -serverPollingTime milliseconds
        servertool を使用して登録された持続サーバーが正常に動作していることを ORBD が確認する回数を指定します。デフォルト値は 1,000 ミリ秒です。milliseconds に指定する値は、有効な正の整数でなければなりません。(省略可)

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

    -Joption
        Java 仮想マシンに option を渡します。option には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、-J-Xms48m と指定すると、スタートアップメモリーは 48M バイトに設定されます。-J を使って背後の実行環境にオプションを渡すことはよく行われています。

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

ネームサービスは、 CORBA オブジェクト @
http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20objectにネーミングを可能にする CORBA サービスです。ネーミングは名前をオブジェクト参照にバインドすることにより可能になります。 「ネームバインディング」 @
http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingはネームサービスに格納され、クライアントは名前を与えて目的のオブジェクト参照を取得できます。

ORBD は、クライアントまたはサーバーを実行する前に起動します。ORBD には、持続ネームサービスおよび一時ネームサービスが組み込まれています。これらはどちらも COS ネームサービスの実装です。

「持続」ネームサービスは、ネーミングコンテキストに対して持続性を提供します。つまり、この情報は、サービスの停止や起動後にも維持され、サービスに障害が発生した場合でも回復できます。ORBD を再起動すると、持続ネームサービスはネーミングコンテキストのグラフを復元し、すべてのクライアントとサーバーの名前のバインディングが保持されます。

下位互換性のため、旧バージョンの JDK に同梱されていた一時ネームサービスが、今回のリリースの J2SE にも同梱されています。一時ネームサービスでは、ネームサービスの実行中にのみネーミングコンテキストが保持されます。サービスが中断されると、ネーミングコンテキストは失われます。

-ORBInitialPort 引数は、orbd の必須のコマンド行引数で、ネームサービスが実行されるポートの番号を設定するために使われます。以下の説明では、JavaIDL Object Request Broker Daemon 用にポート 1050 を使用できることを前提としています。Solaris ソフトウェアを使用する場合、1024 より小さいポート上でプロセスを開始するには、root ユーザーになる必要があります。このため、1024 以上のポート番号を使用することをお勧めします。必要であれば別のポートに変更してください。

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

  orbd -ORBInitialPort 1050&

Windows の MS-DOS システムプロンプトでは、次のように入力します。

  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 ネームサービスは、明示的に停止されるまで実行されます。

ORDB に含まれるネームサービスの詳細については、 「ネームサービス」 @
http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。

サーバーマネージャー

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

  サーバーマネージャー: 例

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

orbd を起動します。

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

  orbd -ORBInitialPort 1050

Windows の MS-DOS システムプロンプトでは、次のように入力します。

  start orbd -ORBInitialPort 1050

1050 はネームサーバーを実行するポートです。-ORBInitialPort は必要なコマンド行の引数です。Solaris ソフトウェアを使用する場合、1024 より小さいポート上でプロセスを開始するには、root ユーザーになる必要があります。このため、1024 以上のポート番号を使用することをお勧めします。

servertool を起動します。

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

  servertool -ORBInitialPort 1050

前回の手順と同様にネームサーバー (orbd) のポートを指定します。たとえば -ORBInitialPort 1050 のようになります。servertool は、ネームサーバーと同じポート上で起動する必要があります。

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

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

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

servertool によってサーバーが登録されて、「HelloServerApName」という名前がサーバーに割り当てられ、サーバー ID が表示されます。

別の端末ウィンドウまたはプロンプトからクライアントアプリケーションを実行します。

  java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost

この例の -ORBInitialHost localhost は省略することができます。ネームサーバーが Hello クライアントとして同一ホスト上で動作しているからです。ネームサーバーが別のホストで動作している場合は、IDL ネームサーバーが動作しているホストを -ORBInitialHost nameserverhost で指定します。

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

サーバーマネージャーの操作が終了したら、ネームサーバー (orbd) と servertool を停止するか終了してください。

DOS プロンプトで orbd をシャットダウンするには、サーバーを実行しているウィンドウを選択して Ctrl+C と入力します。UNIX シェルで orbd をシャットダウンするには、プロセスを検出して終了 (kill) します。サーバーを明示的に停止するまでは、呼び出し待機状態が続きます。

servertool をシャットダウンするには、 quit と入力してキーボードの Enter キーを押します。

関連項目

    o   ネームサービス @
        http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html

    o   servertool(1)