# orbd - The Object Request Broker Daemon

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

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

## 形式

>     orbd <options>

## 説明

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

> - ネームサービスにあるオブジェクト参照が、サーバーのライフタイムと無関係になる。オブジェクト参照は、始めてインストールされたときはネームサービスのサーバーによりネームサービスに発行されますが、その後は、サーバーの開始またはシャットダウンの回数にかかわらず、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 ミリ秒です。 「ミリ秒」の指定値は有効な整数値である必要があります。(省略可)

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

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

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

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

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

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

`-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` コンパイラを実行します。サーバーマネージャーを実行するには、次の手順に従ってアプリケーションを実行します。

`orbd` を起動します。

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

      orbd -ORBInitialPort 1050

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

      start orbd -ORBInitialPort 1050

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

## 関連項目

- ネームサービス
- servertool

Copyright © 2001-2006 Sun Microsystems, Inc.All Rights Reserved. | Java Software