注: | Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。すべてのOracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト・リファレンスとコード・サンプルは、サード・パーティのJava ORBライブラリを実装または実行する際の参考や、プログラマの参照用としてのみ使用してください。 |
注: | サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。 |
Oracle Tuxedoをインストールするときに、CORBAネーム・サービスをインストールします。Oracle Tuxedoのインストールの詳細は、『Oracle Tuxedoシステムのインストール』を参照してください。
CORBAネーム・サービスのサーバー・プロセスを起動するには、使用しているOracle Tuxedo CORBAアプリケーションのUBBCONFIG
ファイルでサーバー・プロセスを定義する必要があります。CORBAネーム・サービスのサーバー・プロセスを起動するには、cns
コマンドを使用します。UBBCONFIG
ファイルのCLOPT
パラメータの後に、cns
コマンド行オプションを入力します。Oracle Tuxedoドメインごとに実行されるCORBAネーム・サービスのサーバー・プロセスは1つだけです。リスト3-1は、CORBAネーム・サービスのサーバー・プロセスに対するUBBCONFIG
エントリの例です。
...
#
#Server process for Oracle Tuxedo CORBA Name Service
#
cns
SRVGRP = SYS_GRP
SRVID = 6
RESTART = N
CLOPT = "-A -- -fC
:\cnsroot.dat -M 0"
cns
コマンドとそのオプションの詳細は、CORBAネーム・サービス・リファレンスを参照してください。構成ファイルの作成の詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoアプリケーションの設定』を参照してください。
CORBAネーム・サービスのサーバー・プロセスを起動すると、ネームスペースの内容を表示し、ネームスペース内のオブジェクトを管理するために、表3-1のコマンドを使用できます。コマンドとオプションの詳細は、「CORBAネーム・サービス・リファレンス」を参照してください。
CORBAネーム・サービスは、ネームスペース内に情報のコピーを2つ保持します。1つはメモリー内に保持されます。このコピーにアクセスすると、高速化および名前解決の最適化が可能になります。もう1つのコピーは、必要に応じて永続ストレージに保存されます。このコピーでは、ネームスペースの状態と構造の保存および復元が可能になります。
ネームスペースの永続化する主な目的は、ネームスペースの現在実行中のインスタンスによって保持されるメモリー内のネーミング情報を現在の状態にしておくことです。ネームスペースの永続コピーを保持することで、CORBAネーム・サービスは、サーバー・プロセスが終了した場合に現在のネーミング情報を再作成できます。永続ストレージ・ファイルを読み取り、最後に記録されたネーミング情報を再作成するように、CORBAネーム・サービスのサーバー・プロセスの新しいインスタンスを構成できます。
ネームスペースの永続コピーを作成し、そのコピーをファイルに保存するには、CORBAネーム・サービスのサーバー・プロセスの起動時にcns
コマンドの-p
オプションを指定します。CORBAネーム・サービスは、指定した場所と名前で永続ストレージ・ファイルを作成します。
-p
オプションで指定した永続ストレージ・ファイルがすでに存在する場合は、ファイルがオープンされ、処理されます。永続ストレージ・ファイルのバックアップは、CORBAネーム・サービスのサーバー・プロセスが開始される前に作成されます。永続ストレージ・ファイルのバックアップ・コピーの名前は、filename
.BAK
です。永続ストレージ・ファイルの名前を再利用する場合、既存の永続ストレージ・ファイルを削除または移動し、CORBAネーム・サービスのサーバー・プロセスを再起動する必要があります。
永続ストレージ・ファイルが正常に作成された場合、ファイルのエントリがULOG
ファイルに書き込まれます。エントリは、ディレクトリの場所とファイル名、ファイルが新しく作成されたかどうか、およびファイル名の決定に使用するメカニズム(指定、環境、デフォルトなど)を示します。永続ストレージ・ファイルの作成時にエラーが発生すると、発生したエラーのタイプを示すエントリがULOG
ファイルに書き込まれます。
CORBAネーム・サービスのサーバー・プロセスは、起動時に永続ストレージ・ファイルからネームスペースの構造を再作成するので、起動時間は、永続ストレージ・ファイルのサイズに比例します。サイズが数百メガバイト単位の大きな永続ストレージ・ファイルの場合、CORBAネーム・サービスのサーバー・プロセスが起動時にネームスペースを再作成するのに数秒または数分かかる場合もあります。
永続ストレージ・ファイルは、ネームスペースのインメモリー・コピーに影響するすべてのオペレーションに関する情報を格納します。永続ストレージ・ファイルは、現在のネームスペースの構造と状態の再作成に必要とする以上の情報を格納することがあります。ネームスペースの構造が同じサイズのままでも、永続ストレージ・ファイルのサイズは非常に大きくなることがあります。
CORBAネーム・サービスでは、永続ストレージ・ファイルを圧縮して不要な情報を削除できます。cns
コマンドの-c
オプションは、永続ストレージ・ファイルの圧縮を制御します。圧縮オプションは、現在の情報を処理して、新しく圧縮された永続ストレージ・ファイルを作成します。
CORBAネーム・サービスのサーバー・プロセスが起動されたときに、圧縮オペレーションは以下を実行します。
CosNaming::NamingContext::destroy()
メソッドを実行したときに発生します。 -c
オプションは、cns
コマンドの-p
オプションが指定されている場合にのみ使用できます。cns
コマンドの-c
オプションの詳細は、「CORBAネーム・サービス・リファレンス」を参照してください。
関連付けのないコンテキストは、ほかのどのオブジェクトにもバインドされていないコンテキストです。このコンテキストは、一度もバインドされていない可能性もありますし、コンテキストにバインドされた後で明示的に、または再バインドによって破棄された可能性もあります。CORBAネーム・サービスでは、関連付けのないNamingContext
オブジェクトは、以下のいずれかの方法で作成されます。
NamingContext
オブジェクトに連合されているクライアント・アプリケーションとほかのネームスペースは、NamingContext
オブジェクトへのオブジェクト参照が保持されているかぎり、関連付けのないNamingContext
オブジェクトのオペレーションを実行できます。
ネームスペースの現在の実装は、関連付けのないNamingContext
オブジェクトを、特殊なLostandFoundContext
オブジェクトの形式で保持します。
cns
コマンドの-d
オプションを使用して、関連付けのないNamingContext
オブジェクトをネームスペースから削除します。-d
オプションは、関連付けがないと認識されたすべてのNamingContext
オブジェクトをアンバインドして破棄します。
-d
オプションは、cns
コマンドの-p
オプションが指定されている場合にのみ使用できます。cns
コマンドの-d
オプションの詳細は、「CORBAネーム・サービス・リファレンス」を参照してください。
CORBAネーム・サービスは、論理ネームスペースの要素が別の複数のリモート・マシンに存在することを意味する連合型ネームスペースの概念をサポートします。連合型ネームスペースでは、あるネームスペースで保持されているNamingContext
オブジェクトへのオブジェクト参照を使用して、別のネームスペースにNamingContext
オブジェクトをバインドできます。CORBAネーム・サービスは、サード・パーティのネーム・サービスに加えて、ほかのマシンで動作しているCORBAネーム・サービスのインプリメンテーションとのフェデレーション(連合)をサポートします。CORBAネーム・サービスがサード・パーティのネーム・サービスと連合するには、サード・パーティのネーム・サービスは、Object Management Group (OMG)のインターオペラブル・ネーム・サービス(INS)仕様で指定した命名形式をサポートしている必要があります。
以下のトピックでは、サード・パーティのネーム・サービスとのフェデレーション加えて、インバウンド・フェデレーションとアウトバウンド・フェデレーションをサポートする方法について説明します。
インバウンド・フェデレーションは、ローカルのOracle Tuxedoネームスペースに存在するNamingContext
オブジェクトをリモート・ネーム・サービスにバインドする機能です。ネームスペースが連合されると、リモート・ネーム・サービスは、Oracle Tuxedoネームスペース内のNamingContext
オブジェクトのオペレーションを実行できます。サード・パーティのネーム・サービスとのインバウンド・フェデレーションには、インターネットORB間プロトコル(IIOP)を使用します。したがって、非公式のIIOP接続をサポートするように、CORBAネーム・サービスのIIOPリスナー/ハンドラを構成する必要があります。
IIOPリスナー/ハンドラで非公式の接続を有効化するには、ISLコマンドの-C
パラメータを使用します。-C
パラメータは、非公式の接続が確立されたときにIIOPリスナー/ハンドラがどのように動作するかを決定します。インバウンド・フェデレーションを使用するには、-C
パラメータに対してwarn
またはnone
値を指定します。warn
値を指定すると、IIOPリスナー/ハンドラは、非公式の接続が検出されたときにメッセージをユーザー・ログ例外に記録します。例外は発生しません。none
値を指定すると、IIOPリスナー/ハンドラは非公式の接続を無視します。ISLコマンドの詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。
リスト3-2は、インバウンド・フェデレーションをサポートするIIOPリスナー/ハンドラに対するUBBCONFIG
エントリの例です。
#
# Entry to start IIOP Listener/Handler
# that supports inbound federation
ISL
SRVGRP = SYS_GRP
SRVID = 5
MIN = 1
MAX = 1
CLOPT = "-A -- -n //blotto:2470 – C none"
アウトバウンド・フェデレーションは、リモート・ネーム・サービスに存在するNamingContext
オブジェクトをCORBAネーム・サービスのネームスペースにバインドする機能です。アウトバウンド・フェデレーションを使用すると、CORBAネーム・サービスを使用し、このNamingContext
オブジェクトに対してオペレーションを実行できます。サード・パーティのネーム・サービスとのアウトバウンド・フェデレーションには、IIOPを使用します。したがって、アウトバウンド・フェデレーションをサポートするように、CORBAネーム・サービスのIIOPリスナー/ハンドラを構成する必要があります。
IIOPリスナー/ハンドラでアウトバウンド・フェデレーションを有効化するには、ISLコマンドの-O
パラメータを使用します。-O
パラメータを使用すると、IIOPハンドラに接続されていないサーバー・アプリケーション内のオブジェクトに対するアウトバウンドIIOP呼出しがIIOPリスナーで可能になります。ISLコマンドの詳細は、Oracle Tuxedoオンライン・ドキュメントの『Oracle Tuxedoコマンド・リファレンス』を参照してください。
リスト3-3は、アウトバウンド・フェデレーションをサポートするIIOPリスナー/ハンドラに対するUBBCONFIG
エントリの例です。
#
# Entry for IIOP Listener/Handler
# that supports outbound federation
#
ISL
SRVGRP = SYS_GRP
SRVID = 5
MIN =1
MAX = 1
CLOPT = "-A -- -n //blotto:2470 -O"
異なるOracle Tuxedoドメインで実行されている複数のCORBAネーム・サービスのサーバー・プロセス間のフェデレーションでは、ドメイン間接続を可能にするためにドメイン・ゲートウェイを使用する必要があります。ドメイン・ゲートウェイの構成の詳細は、管理トピックの「複数のドメインの構成(Oracle Tuxedoシステム)」の項を参照してください。
OMG INS仕様では、未処理のバインディング・イテレータのコレクションが使用可能です。バインディング・イテレータではクライアント・アプリケーションによる明示的な破棄が必要なので、バインディング・イテレータを正しく削除できない場合があります。
未使用のバインディング・イテレータの数が増えたためにCORBAネーム・サービスがリソース不足になる可能性を最小限に抑えるには、cns
コマンドの-M
オプションを使用して、ネーム・サービスのバインディング・イテレータの最大数を設定します。この最大数に達すると、新しいバインディング・イテレータへのリクエストによって、未使用のバインディング・イテレータを破棄できるようになります。CORBAネーム・サービスは、使用履歴の最も古いアルゴリズムを基に、削除するバインディング・イテレータを選択します。
CORBAネーム・サービスのサーバー・プロセスが-M
オプションで開始された場合、CORBAネーム・サービスは、Oracle Tuxedo CORBAアプリケーションで使用中のバインディング・イテレータを破棄することがあるので、すべてのOracle Tuxedoアプリケーションは、バインディング・イテレータに対する呼出しに際してCORBA::OBJECT_NOT_EXIST
システム例外を処理できるようにする必要があります。
セキュリティで保護されたOracle Tuxedo CORBAアプリケーションでcnsls
、cnsbind
、およびcnsunbind
コマンドを使用する場合、Oracle TuxedoドメインのPrincipalAuthenticatorオブジェクトを取得し、適切なセキュリティ情報でそのドメインにログオンする必要があります。
セキュアなログオンを行えるように、Oracle Tuxedoドメインはセキュリティ・レベルTOBJ_SYSAUTH
またはTOBJ_APPAUTH
で構成する必要があります。cnsls
、cnsbind
およびcnsunbind
コマンドのユーザー名はcnsutils
です。cnsutils
という名前のユーザーを作成するには、tpusradd
コマンドを使用する必要があります。Oracle Tuxedoドメインに対して指定したセキュリティ・レベルに従って、UBBCONFIG
ファイルのUSER_AUTH
およびAPP_PW
環境変数でユーザー・パスワードやドメイン・パスワードを定義できます。これらの環境変数が設定されてなく、Oracle TuxedoドメインにTOBJ_SYSAUTH
またはTOBJ_APPAUTH
セキュリティ・レベルがある場合、cnsls
、cnsbind
、およびcnsunbind
コマンドでは、パスワードを入力するように求められます。
セキュリティ・レベルの詳細、およびOracle Tuxedoセキュリティ環境でのユーザーの定義については、Oracle Tuxedoオンライン・ドキュメントの『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。