注意:
|
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ネーム・サービスのサーバー・プロセスの起動
CORBAネーム・サービスのサーバー・プロセスを起動するには、使用しているOracle Tuxedo CORBAアプリケーションの
UBBCONFIGファイルでサーバー・プロセスを定義する必要があります。CORBAネーム・サービスのサーバー・プロセスを起動するには、
cnsコマンドを使用します。
UBBCONFIGファイルの
CLOPTパラメータの後に、
cnsコマンド行オプションを入力します。Oracle Tuxedoドメインごとに実行されるCORBAネーム・サービスのサーバー・プロセスは1つだけです。
リスト3-1は、CORBAネーム・サービスのサーバー・プロセスに対する
UBBCONFIGエントリの例です。
リスト3-1
CORBAネーム・サービスのUBBCONFIGファイル・エントリ
...
#
#Server process for Oracle Tuxedo CORBA Name Service
#
cns
SRVGRP = SYS_GRP
SRVID = 6
RESTART = N
CLOPT = "-A -- -f
C:\cnsroot.dat -M 0"
cnsコマンドとそのオプションの詳細は、
第2章「CORBAネーム・サービス・リファレンス」を参照してください。構成ファイルの作成の詳細は、Oracle Tuxedoオンライン・ドキュメントの
『Oracle Tuxedoアプリケーションの設定』を参照してください。
表3-1
Oracle Tuxedoネームスペースを管理するためのコマンド
|
|
|
Oracle Tuxedoネームスペースのサーバー・プロセスを起動します。
|
|
アプリケーション・オブジェクトおよびネーミング・コンテキストをOracle Tuxedoネームスペースにバインドします。
|
|
Oracle Tuxedoネームスペースの内容を表示します。
|
|
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ネーム・サービスのサーバー・プロセスが起動されたときに、圧縮オペレーションは以下を実行します。
3.
|
アンバインド、再バインド、または破棄オペレーションによってネームスペースから削除されたすべてのバインドおよび再バインド・エントリを削除します。
|
4.
|
バインドされていないバインディングをすべて削除します。バインドされていないバインディングは、バインディングが関連付けられているオブジェクトがネームスペースから削除されてもネームスペース内に残っているバインディングです。バインドされていないバインディングは、ネーミング・コンテキストが親コンテキストからアンバウンドされた状態で CosNaming::NamingContext::destroy()メソッドを実行したときに発生します。
|
関連付けのないNamingContextオブジェクトの削除
関連付けのないコンテキストは、ほかのどのオブジェクトにもバインドされていないコンテキストです。このコンテキストは、一度もバインドされていない可能性もありますし、コンテキストにバインドされた後で明示的に、または再バインドによって破棄された可能性もあります。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オブジェクトをアンバインドして破棄します。
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エントリの例です。
リスト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エントリの例です。
リスト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ドメイン間のフェデレーション
異なる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アプリケーションで
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オンライン・ドキュメントの
『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。