orbd(1)

名前
orbd - The Object Request Broker Daemon

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

関連項目: ネーム・サービス @
http://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html

形式

orbd <options>

説明

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

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

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

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

orbdを起動すると、ネーム・サービスも起動されます。ネーム・サービスの詳細は、 ネーム・サービス @
http://docs.oracle.com/javase/7/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://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20objectにネーミングを可能にするCORBAサービスです。ネーミングは名前をオブジェクト参照にバインドすることにより可能になります。 ネーム・バインディング @
http://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingをネーム・サービスに格納すれば、クライアントが名前を指定して目的のオブジェクト参照を取得できるようになります。

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

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

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

-ORBInitialPort引数は、orbdの必須のコマンドライン引数で、ネーム・サービスが実行されるポートの番号を設定するために使用されます。次の手順では、Java IDL 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ネーム・サービスは、明示的に停止されるまで実行されます。

ORBDに含まれるネーム・サービスの詳細は、 ネーム・サービス @
http://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。

サーバー・マネージャ

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

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

デモ用の サンプル・チュートリアル @
http://docs.oracle.com/javase/7/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://docs.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html

    o   servertool(1)