クライアントがCORBA環境内のサーバーにある持続オブジェクトを検索して呼び出すことができます。
orbd
コマンドを使用すると、クライアントがCORBA環境内のサーバーにある持続オブジェクトを検索して呼び出すことができます。orbdツールに含まれるサーバー・マネージャを使用すると、クライアントはCORBA環境でサーバー上にある持続オブジェクトを透過的に検索して呼び出すことができます。持続サーバーは、ネーム・サービスに持続オブジェクト参照を発行する際に、サーバーのポート番号の代わりにORBDのポート番号をオブジェクト参照に含めます。永続オブジェクト参照のオブジェクト参照にORBDポート番号を含めることには、次のような利点があります。
ネーム・サービスにあるオブジェクト参照が、サーバーのライフ・タイムと無関係になる。たとえば、オブジェクト参照は、ネーム・サービスのサーバーが初めてインストールされたときはそのサーバーによって発行されますが、その後は、サーバーの開始またはシャットダウンの回数にかかわらず、ORBDがいつでも呼び出したクライアントに正しいオブジェクト参照を返します。
クライアントは一度だけネーミング・サービスのオブジェクト参照をルックアップする必要があるが、その後はサーバーのライフ・タイムによる変更とは無関係にこの参照を利用することができる。
ORBDのサーバー・マネージャにアクセスするには、servertool
を使用してサーバーを起動する必要があります。servertoolは、アプリケーション・プログラマが、持続サーバーの登録、登録解除、起動およびシャットダウンを行うためのコマンド行インタフェースです。サーバー・マネージャの詳細は、「サーバー・マネージャ」を参照してください。
orbd
を起動すると、ネーム・サービスも起動されます。ネーム・サービスの詳細は、「ネーム・サービスの起動と停止」を参照してください。
必須です。ネーム・サーバーを起動するポートの番号を指定します。orbd
は、起動されると、このポート上で着信要求を待機します。Oracle Solarisソフトウェアでは、1024より小さいポート上でプロセスを開始するには、rootユーザーになる必要があります。このため、1024以上のポート番号を使用することをお薦めします。
ORBDを起動するポートを指定します。ORBDは、このポートで、持続オブジェクトに対する要求を受け取ります。このポートのデフォルト値は1049です。このポート番号は、持続Interoperable Object References (IOR)のポート・フィールドに追加されます。
ORBD持続格納ディレクトリorb.db
が作成されるベース・ディレクトリを指定します。このオプションが指定されていない場合、デフォルト値は./orb.db
となります。
servertool
を使用して登録された持続サーバーが正常に動作していることをORBDが確認する回数を指定します。デフォルト値は1000ミリ秒です。milliseconds
に指定する値は、有効な正の整数である必要があります。
servertool
を使用して登録された持続サーバーを再起動してから、位置転送の例外を送信するまでのORBDの待機時間を指定します。デフォルト値は1000ミリ秒です。milliseconds
に指定する値は、有効な正の整数である必要があります。
Java仮想マシンにoption
を渡します(option
は、Javaアプリケーション起動ツールのリファレンス・ページに記載されているいずれかのオプション)。たとえば、-J-Xms48m
と指定すると、スタートアップ・メモリーは48Mバイトに設定されます。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/jp/8/technotes/guides/idl/jidlNaming.html
ORBDのサーバー・マネージャにアクセスして持続サーバーを実行するには、servertool
を使用してサーバーを起動する必要があります。servertoolは、アプリケーション・プログラマが、持続サーバーの登録、登録解除、起動およびシャットダウンを行うためのコマンド行インタフェースです。servertool
を使用してサーバーを起動する場合は、orbd
が実行されている場所と同じポートとホストで起動する必要があります。サーバーを異なるポートで実行すると、ローカル・コンテキスト用にデータベースに格納されている情報が無効になり、サービスが正しく動作しません。
「Java IDL: 「Hello World」の例」を参照してください。
http://docs.oracle.com/javase/jp/8/technotes/guides/idl/jidlExample.html
この例では、チュートリアルの手順に従って、idlj
コンパイラとjavac
コンパイラを実行します。ORBDサーバー・マネージャを実行するには、次の手順に従ってアプリケーションを実行します。
orbd
を起動します。
Solaris、LinuxまたはOS Xコマンド・シェルで、次のように入力します: orbd -ORBInitialPort 1050
MS-DOSシステム・プロンプト(Windows)で、s
tart orbd -ORBInitialPort 105
0
と入力します。
ポート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キーを押します。