orbd

Section: Java IDLおよびRMI-IIOPツール (1)
Updated: 2013年11月21日
Page Index
 

名前

orbd - CORBA環境のサーバーにある永続オブジェクトをクライアントから検索して呼び出せるようにします。  

概要

orbd [ options ]

options

コマンド行オプション。オプションを参照してください。
 

説明

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

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

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

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

orbdを起動すると、ネーミング・サービスも起動されます。ネーミング・サービスの詳細。ネーミング・サービスの起動と停止を参照してください。  

オプション

-ORBInitialPort nameserverport

必須。ネーム・サーバーを起動するポートの番号を指定します。orbdは、起動されると、このポート上で着信リクエストをリスニングします。Oracle Solarisソフトウェアでは、1024より小さいポートでプロセスを開始する場合、rootユーザーになる必要があります。このため、1024以上のポート番号を使用することをお薦めします。
 

必須でないオプション

-port port

ORBDを起動するポートを指定します。このポートで、永続オブジェクトに対するリクエストをORBDが受け取ります。このポートのデフォルト値は1049です。このポート番号は、永続Interoperable Object References (IOR)のポート・フィールドに追加されます。

-defaultdb directory

ORBD永続格納ディレクトリorb.dbが作成されるベース・ディレクトリを指定します。このオプションが指定されていない場合、デフォルト値は./orb.dbになります。

-serverPollingTime milliseconds

servertoolを使用して登録された永続サーバーが正常に動作していることをORBDが確認する間隔を指定します。デフォルト値は1000ミリ秒です。millisecondsに指定する値は、有効な正の整数にする必要があります。

-serverStartupDelay milliseconds

servertoolを使用して登録された永続サーバーを再起動してから、位置転送の例外を送信するまでのORBDの待機時間を指定します。デフォルト値は1000ミリ秒です。millisecondsに指定する値は、有効な正の整数にする必要があります。

-Joption

Java Virtual Machineにoptionを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、-J-Xms48mと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。
 

ネーミング・サービスの起動と停止

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

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

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

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

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

Solaris、LinuxまたはOS Xコマンド・シェルから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
 

ネーミング・サービスを停止するには、適切なオペレーティング・システム・コマンドを使用します。たとえば、Oracle Solaris上でpkill orbdを実行したり、orbdが動作中のDOSウィンドウで[Ctrl]+[C]キーを押します。一時ネーミング・サービスの場合は、サービスが終了されると、ネーミング・サービスに登録された名前が消去される場合があります。Java IDLネーム・サービスは、明示的に停止されるまで実行されます。

ORBDに付属するネーミング・サービスの詳細は、 http://docs.oracle.com/javase/8/docs/technotes/guides/idl/jidlNaming.htmlの「Naming Service」を参照してください  

サーバー・マネージャ

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

http://docs.oracle.com/javase/8/docs/technotes/guides/idl/jidlExample.htmlの 「Java IDL: The "Hello World" Example」を参照してください

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

orbdを起動します。

Solaris、LinuxまたはOS Xコマンド・シェルで、次のように入力します: orbd -ORBInitialPort 1050

MS-DOSシステム・プロンプト(Windows)で次のように入力します: start orbd -ORBInitialPort 1050

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

servertoolを起動します: 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クライアントとして同一ホスト上で動作しているからです。ネーム・サーバーが別のホストで実行されている場合は、-ORBInitialHost nameserverhostオプションを使用してIDLネーム・サーバーが実行されているホストを指定します。前の手順で行われたとおりにネーム・サーバー(orbd)ポートを指定します(例: -ORBInitialPort 1050)。ORBDのサーバー・マネージャの操作が終了したら、ネーム・サーバー(orbd)とservertoolを停止するか終了してください。MS-DOSプロンプトでorbdをシャットダウンするには、サーバーを実行しているウィンドウを選択して[Ctrl]+[C]キーを押します。

Oracle Solarisからorbdをシャットダウンするには、プロセスを検索して、killコマンドで終了します。サーバーを明示的に停止するまでは、呼出し待機状態が続きます。servertoolをシャットダウンするには、quitと入力してキーボードの[Enter]キーを押します。  

関連項目

servertool(1)

http://docs.oracle.com/javase/8/docs/technotes/guides/idl/jidlNaming.htmlの 「Naming Service」


 

Index

名前
概要
説明
オプション
必須でないオプション
ネーミング・サービスの起動と停止
サーバー・マネージャ
関連項目