|
注意 : | 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
エントリの例です。
...
#
#Oracle Tuxedo CORBA ネーム サービスのサーバ プロセス
#
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
オブジェクトは、以下のいずれかの方法で作成されます。
CosNaming::NamingContext::new_context
メソッドを使用して、新しい NamingContext
オブジェクトを作成する方法。ただし、新しい NamingContext
オブジェクトをネームスペースにはバインドしません。CosNaming::NamingContext::rebind()
メソッドまたは CosNaming::NamingContext::unbind()
メソッドを使用して、最新の親 NamingContext
オブジェクトから NamingContext
オブジェクトをアンバインドする方法。ただし、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 オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。
コード リスト 3-2 は、インバウンド フェデレーションをサポートする IIOP リスナ/ハンドラに対する UBBCONFIG
エントリの例です。
#
# インバウンド フェデレーションをサポートする
# IIOP リスナ/ハンドラを開始するためのエントリ
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 オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。
コード リスト 3-3 は、インバウンド フェデレーションをサポートする IIOP リスナ/ハンドラに対する UBBCONFIG
エントリの例です。
#
# アウトバウンド フェデレーションをサポートする
# IIOP リスナ/ハンドラのエントリ
#
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 オブジェクトを取得し、適切なセキュリティ情報でそのドメインにログオンする必要があります。
セキュリティで保護されたログオンを有効にするには、TOBJ_SYSAUTH
または TOBJ_APPAUTH
のセキュリティ レベルで Oracle Tuxedo ドメインをコンフィグレーションする必要があります。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 オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。