Tuxedo CORBA ネーム サービス

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Oracle Tuxedo ネームスペースの管理

ここでは、以下の内容について説明します。

注意 : 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 に関する技術的なサポートやマニュアルは提供していません。

 


CORBA ネーム サービスのインストール

Oracle Tuxedo をインストールするときに、CORBA ネーム サービスをインストールします。Oracle Tuxedo のインストールの詳細については、『Oracle Tuxedo システムのインストール』を参照してください。

 


CORBA ネーム サービスのサーバ プロセスの起動

CORBA ネーム サービスのサーバ プロセスを起動するには、使用している Oracle Tuxedo CORBA アプリケーションの UBBCONFIG ファイルでサーバ プロセスを定義する必要があります。CORBA ネーム サービスのサーバ プロセスを起動するには、cns コマンドを使用します。UBBCONFIG ファイルの CLOPT パラメータの後に、cns コマンドライン オプションを入力します。Oracle Tuxedo ドメインごとに実行される CORBA ネーム サービスのサーバ プロセスは 1 つだけです。コード リスト 3-1 は、CORBA ネーム サービスのサーバ プロセスに対する UBBCONFIG エントリの例です。

コード リスト 3-1 CORBA ネーム サービスの UBBCONFIG ファイル エントリ
...
#
#Oracle Tuxedo CORBA ネーム サービスのサーバ プロセス
#
cns
SRVGRP = SYS_GRP
SRVID = 6
RESTART = N
CLOPT = "-A -- -f C:\cnsroot.dat -M 0"

cns コマンドとオプションの詳細については、「CORBA ネーム サービス リファレンス」を参照してください。コンフィグレーション ファイル作成の詳細については、Oracle Tuxedo オンライン マニュアルの『Oracle Tuxedo アプリケーションの設定』を参照してください。

CORBA ネーム サービスのサーバ プロセスを起動すると、ネームスペースの内容を表示し、ネームスペース内のオブジェクトを管理するために、表 3-1 のコマンドを使用できます。コマンドとオプションの詳細については、「CORBA ネーム サービス リファレンス」を参照してください。

表 3-1 Oracle Tuxedo ネームスペースを管理するためのコマンド
コマンド
説明
cns
Oracle Tuxedo ネームスペースのサーバ プロセスを起動します。
cnsbind
アプリケーション オブジェクトおよびネーミング コンテキストを Oracle Tuxedo ネームスペースにバインドします。
cnsls
Oracle Tuxedo ネームスペースの内容を表示します。
cnsunbind
Oracle Tuxedo ネームスペースのバインディングを解除します。

 


ネームスペースの永続化

CORBA ネーム サービスは、ネームスペース内に情報のコピーを 2 つ保持します。1 つはメモリ内に保持されます。このコピーにアクセスすると、高速化および名前解決の最適化が可能になります。もう 1 つのコピーは、必要に応じて永続ストレージに保存されます。このコピーでは、ネームスペースの状態と構造の保存および復元が可能になります。

ネームスペースの永続化する主な目的は、ネームスペースの現在実行中のインスタンスによって保持されるメモリ内のネーミング情報を現在の状態にしておくことです。ネームスペースの永続コピーを保持することで、CORBA ネーム サービスは、サーバ プロセスが終了した場合に現在のネーミング情報を再作成できます。永続ストレージ ファイルを読み取り、最後に記録されたネーミング情報を再作成するように、CORBA ネーム サービスのサーバ プロセスの新しいインスタンスをコンフィグレーションできます。

ネームスペースの永続コピーを作成し、そのコピーをファイルに保存するには、CORBA ネーム サービスのサーバ プロセスの起動時に cns コマンドの -p オプションを指定します。CORBA ネーム サービスは、指定した場所と名前で永続ストレージ ファイルを作成します。

-p オプションで指定した永続ストレージ ファイルが既に存在する場合は、ファイルがオープンされ、処理されます。永続ストレージ ファイルのバックアップは、CORBA ネーム サービスのサーバ プロセスが開始される前に作成されます。永続ストレージ ファイルのバックアップ コピーの名前は、filename.BAK です。永続ストレージ ファイルの名前を再利用する場合、既存の永続ストレージ ファイルを削除または移動し、CORBA ネーム サービスのサーバ プロセスを再起動する必要があります。

永続ストレージ ファイルが正常に作成された場合、ファイルのエントリが ULOG ファイルに書き込まれます。エントリは、ディレクトリの場所とファイル名、ファイルが新しく作成されたかどうか、およびファイル名の決定に使用するメカニズム (指定、環境、デフォルトなど) を示します。永続ストレージ ファイルの作成時にエラーが発生すると、発生したエラーのタイプを示すエントリが ULOG ファイルに書き込まれます。

CORBA ネーム サービスのサーバ プロセスは、起動時に永続ストレージ ファイルからネームスペースの構造を再作成するので、起動時間は、永続ストレージ ファイルのサイズに比例します。サイズが数百メガバイト単位の大きな永続ストレージ ファイルの場合、CORBA ネーム サービスのサーバ プロセスが起動時にネームスペースを再作成するのに数秒または数分かかる場合もあります。

 


永続ストレージ ファイルの圧縮

永続ストレージ ファイルは、ネームスペースのメモリ内コピーに影響するすべてのオペレーションに関する情報を格納します。永続ストレージ ファイルは、現在のネームスペースの構造と状態の再作成に必要とする以上の情報を格納することがあります。ネームスペースの構造が同じサイズのままでも、永続ストレージ ファイルのサイズは非常に大きくなることがあります。

CORBA ネーム サービスでは、永続ストレージ ファイルを圧縮して不要な情報を削除できます。cns コマンドの -c オプションは、永続ストレージ ファイルの圧縮を制御します。圧縮オプションは、現在の情報を処理して、新しく圧縮された永続ストレージ ファイルを作成します。

CORBA ネーム サービスのサーバ プロセスが起動されたときに、圧縮オペレーションは以下を実行します。

  1. メモリ内のネームスペースの構造を処理します。
  2. 既存の永続ストレージ ファイルを上書きします。
  3. アンバインド、再バインド、または破棄オペレーションによってネームスペースから削除されたすべてのバインドおよび再バインド エントリを削除します。
  4. バインドされていないバインディングをすべて削除します。バインドされていないバインディングは、バインディングが関連付けられているオブジェクトがネームスペースから削除されてもネームスペース内に残っているバインディングです。バインドされていないバインディングは、ネーミング コンテキストが親コンテキストからアンバウンドされた状態で CosNaming::NamingContext::destroy() メソッドを実行したときに発生します。

-c オプションは、cns コマンドの -p オプションが指定されている場合にのみ使用できます。cns コマンドの -c オプションの詳細については、「CORBA ネーム サービス リファレンス」を参照してください。

 


関連付けのない NamingContext オブジェクトの削除

関連付けのないコンテキストは、ほかのどのオブジェクトにもバインドされていないコンテキストです。このコンテキストは、一度もバインドされていない可能性もありますし、コンテキストにバインドされた後で明示的に、または再バインドによって破棄された可能性もあります。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 オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。

コード リスト 3-2 は、インバウンド フェデレーションをサポートする IIOP リスナ/ハンドラに対する UBBCONFIG エントリの例です。

コード リスト 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 エントリの例です。

コード リスト 3-3 アウトバウンド フェデレーションをサポートする IIOP リスナ/ハンドラに対する UBBCONFIG ファイルのエントリ
#                                       
# アウトバウンド フェデレーションをサポートする
# IIOP リスナ/ハンドラのエントリ
#
ISL   
SRVGRP = SYS_GRP
SRVID = 5
MIN = 1
MAX = 1
CLOPT = "-A -- -n //blotto:2470 -O"

複数の Oracle Tuxedo ドメイン間のフェデレーション

異なる 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 ネーム サービスの使用

セキュリティで保護された Oracle Tuxedo CORBA アプリケーションで cnslscnsbind、および cnsunbind コマンドを使用する場合、Oracle Tuxedo ドメインの PrincipalAuthenticator オブジェクトを取得し、適切なセキュリティ情報でそのドメインにログオンする必要があります。

セキュリティで保護されたログオンを有効にするには、TOBJ_SYSAUTH または TOBJ_APPAUTH のセキュリティ レベルで Oracle Tuxedo ドメインをコンフィグレーションする必要があります。cnslscnsbind、および cnsunbind コマンドのユーザ名は cnsutils です。cnsutils という名前のユーザを作成するには、tpusradd コマンドを使用する必要があります。Oracle Tuxedo ドメインに対して指定したセキュリティ レベルに従って、UBBCONFIG ファイルの USER_AUTH および APP_PW 環境変数でユーザ パスワードやドメイン パスワードを定義できます。これらの環境変数が設定されてなく、Oracle Tuxedo ドメインに TOBJ_SYSAUTH または TOBJ_APPAUTH セキュリティ レベルがある場合、cnslscnsbind、および cnsunbind コマンドでは、パスワードを入力するように求められます。

セキュリティ レベルの詳細、および Oracle Tuxedo セキュリティ環境でのユーザの定義については、Oracle Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。


  ページの先頭       前  次