orbd(1)

名前
orbd - Object Request Broker デーモン

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

形式
orbd [ options ]

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

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

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

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

必須オプション

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

その他のオプション

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

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

-serverid ID
    この ORBD に割り当てる持続サーバ ID を 指定します。デフォルト値は 1 です。(省略可能)

-serverPollingTime milliseconds
    デーモンスレッドが登録されているサーバの健全度を検査する頻度を指定し ます。ORBD は、 milliseconds ごとにプロセスの状態をポーリングします。デフォルト値は 1,000 ミリ秒
     (1 秒) です。 milliseconds に指定される値は、有効な整数でなければなりません。

-serverStartupDelay milliseconds
    サーバの再起動の後ロケーション転送例外を送信する までに ServerManager がどれだけの間待機するかを指定 します。ORBD は、ロケーション転送例外を生成するまでに milliseconds の間待機します。デフォルト値は、1,000 ミリ秒 (1 秒) です。 milliseconds に指定される値は、有効な整数でなければなりません。

-Joption
    option を Java 仮想マシンに渡します。ここで、 option は、Java アプリケーション起動プログラム java(1) のマニュアルページで 説明されているオプションの 1 つです。たとえば、 -J-Xms48m は、起動時に使用するメモリを 48M バイトに設定します。 -J が基本にする仮想マシンにオプションを渡すことは、共通の規約です。

ネームサービスの起動と停止
ネームサービスは、名前をオブジェクト参照にバインドすること によって、CORBA オブジェクトを指定できるようにする CORBA サービスです。ネームバインディングは、ネーミングサービス に保存できます。クライントは名前を指定して、 目的のオブジェクト参照を取得できます。

クライアントまたはサーバを実行する前に、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 に含まれているネーミングサービスの詳細については、 「ネーミングサービス」を参照してください。

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

  サーバマネージャ: 例
デモ用のサンプルチュートリアルを使って、 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 は、 ネームサーバと同じポートで起動する必要があります。

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 キーを押します。

関連項目
NamingService, servertool(1)