orbd - The Object Request Broker Daemon

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

関連項目: ネームサービス

形式

orbd <options>

説明

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

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

orbd を起動すると、ネームサービスも起動されます。 ネームサービスについては、「ネームサービス」を参照してください。

必須のオプション

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

その他のオプション

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

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

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

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

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

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

ネームサービスは、CORBA オブジェクトにネーミングを可能にする CORBA サービスです。ネーミングは名前をオブジェクト参照にバインドすることにより可能になります。 ネームバインディングはネームサービスに格納され、クライアントは名前を提供して目的のオブジェクト参照を取得できます。

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

-ORBInitialPort 引数は、orbd の必須のコマンド行引数で、ネームサービスが実行されるポートの番号を設定するために使われます。 以下の説明では、Java IDL Object Request Broker Daemon 用にポート 1050 を使用できることを前提としています。 Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザになる必要があります。このため、1024 または 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 に含まれるネームサービスの詳細については、「ネームサービス」を参照してください。

サーバマネージャ

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

サーバマネージャ: 例

デモ用のサンプルチュートリアルを使用し、チュートリアルの手順に従って、idlj コンパイラと javac コンパイラを実行します。 サーバマネージャを実行するには、次の手順に従ってアプリケーションを実行します。

  1. orbd を起動します。

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

      orbd -ORBInitialPort 1050
    

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

      start orbd -ORBInitialPort 1050
    

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

  2. servertool を起動します。

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

      servertool -ORBInitialPort 1050
    

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

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

    Server Tool

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

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

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

    Server Tool registering Hello Server

    上の図では、さらに servertool によってリストされたすべての登録済みサーバが示されています。

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

      java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost
    

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

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

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

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

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

関連項目



Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.

Sun
Java ソフトウェア