4.4.5.1.3 パラメータ

orb
クライアントのORBオブジェクトへのポインタ。Bootstrapオブジェクトの内部では、orbstring_to_objectメソッドが使用されます。
address
Oracle TuxedoドメインのIIOPリスナー/ハンドラのアドレス。

ノート:

Multiple Tobj_Bootstrapsで同じドメインを指定することはできません。
このアドレスは、クライアントの種類と必要なセキュリティのレベルに応じて異なる形式で指定します。クライアントには次の3種類があります。
  • リモート・クライアント

    Oracle Tuxedo CORBAでサポートされるリモート・クライアントの説明については、「サポートされているOracleリモート・クライアントの種類」を参照してください。

    リモート・クライアントの場合、addressでは、クライアント・アプリケーションがOracle Tuxedoドメインにアクセスするために使用するIIOPリスナー/ハンドラのネットワーク・アドレスを指定します。

    アドレスは、次のいずれかの形式で指定できます:

    “//hostname:port_number”
    “//#.#.#.#:port_number”
    “corbaloc://hostname:port_number”
    “corbalocs://hostname:port_number

    最初の形式では、ドメインはローカルの名前解決機能(通常はDNS)を使用してhostnameのアドレスを検索します。ホスト名はリモート・マシンでなければならず、ローカルの名前解決機能ではhostnameがそのリモート・マシンのアドレスに明確に解決されなければなりません。

    ノート:

    hostnameは文字で始まる必要があります。

    2番目の形式の場合、#.#.#.#にはドット区切りの10進数を指定します。ドット区切りの10進数形式では、それぞれの#に0から255の数字を指定します。このドット区切りの10進数は、リモート・マシンのIPアドレスを表します。

    最初と2番目のどちらの形式でも、port_numberは、ドメイン・プロセスが受信リクエストをリスニングするTCPポート番号です。port_numberは、0 - 65535の数字でなければなりません。

    TCP/IPアドレスは1つまたは複数を指定できます。複数のアドレスは、カンマ区切りのリストを使用して指定します。例:

    //m1.acme:3050

    //m1.acme:3050,//m2.acme:3050,//m3.acme:3051

    複数のアドレスを指定すると、Oracle Tuxedoソフトウェアでは接続が確立されるまで左から右の順序でアドレスが試されます。接続が試行されているときにアドレスの構文エラーが検出されると、BAD_PARAM例外が直ちに呼出し側に返され、Oracle Tuxedoソフトウェアによって接続の試行が中断されます。たとえば、上記のカンマ区切りリストの最初のアドレスが//m1.3050である場合は、構文エラーが検出され、接続の試行が中断されます。Oracle Tuxedoソフトウェアがアドレス・リストの最後まで達しても有効なアドレスで接続を試行できない場合、つまりリストのどのアドレスにも接続を確立できない場合は、INVALID_DOMAIN例外が呼出し側に返されます。INVALID_DOMAIN以外の例外が生成された場合、その例外は呼出し側に直ちに返されます。

    Oracle Tuxedoでは、ランダムなアドレスの選択もサポートされています。ランダムなアドレスの選択を使用する場合は、アドレス・リストの任意のメンバーをかっこで囲まれたパイプ区切り(|)のネットワーク・アドレス・グループとして指定します。例:

    (//m1.acme:3050|//m2.acme:3050),//m1.acme:7000

    この形式を使用すると、Oracle Tuxedoシステムではかっこで囲まれたアドレスのいずれか(//m1.acme:3050または//m2.acme:3050)がランダムに選択されます。INVALID_DOMAIN以外の例外が生成された場合、その例外は呼出し側に直ちに返されます。選択したアドレスで接続を確立できない場合は、かっこの後にある次の要素で接続が試行されます。接続を確立できないうちに文字列の最後に達してしまった場合は、INVALID_DOMAIN例外が呼出し側にスローされます。

    ノート:

    (//m1.acme:3050||//m2.acme:3050),//r1.acme:7000という形式でアドレス・リストを指定した場合、パイプ区切りリストのNULLアドレスは無効とみなされます。Oracle Tuxedoソフトウェアで無効なアドレスがランダムに選択された場合は、BAD_PARAM例外が呼出し側に返され、Oracle Tuxedoソフトウェアによって接続の試行が中止されます。

    アドレス文字列は、TOBJADDR環境変数またはTobj_Bootstrapコンストラクタのアドレス・パラメータで指定できます。

    TOBJADDR環境変数の詳細は、『Oracle Tuxedoアプリケーションの構成ガイド』のリモート・クライアント・アプリケーションの管理に関する項を参照してください。ただし、Tobj_Bootstrapで指定されたアドレスの方が常にTOBJADDR環境変数よりも優先されます。TOBJADDR環境変数を使用してアドレス文字列を指定するには、Tobj_Bootstrapaddressパラメータで空の文字列を指定する必要があります。

    ノート:

    C++アプリケーションではTOBJADDRは環境変数であり、Javaアプリケーションの場合はプロパティ、Javaアプレットの場合はHTMLパラメータです。

    3番目と4番目の形式はUniform Resource Locator (URL)アドレス形式と呼ばれ、Oracle WebLogic Enterpriseバージョン5.1で導入されました。NULLスキームURLアドレス形式(//hostname:port_number)の場合と同じように、URLアドレス形式を使用してIIOPリスナー/ハンドラの位置を指定します。ただし、corbaloc URLアドレス形式を使用する場合、IIOPリスナー/ハンドラへのクライアント・アプリケーションの初期接続はプリンシパル(クライアント)のIDが認証されるまで、またはユーザーが最初の操作を開始するまで遅延されます。corbalocs URLアドレス形式を使用する場合でもcorbalocと同じ接続の遅延がありますが、それに加えて、クライアント・アプリケーションがSecure Sockets Layer (SSL)プロトコルを使用してISL/ISHとの初期接続を行います。次の表では、2つのURLアドレス形式の違いについて説明します。

    表4-4 corbaloc URLアドレス形式とcorbalocs URLアドレス形式の違い

    URLアドレス形式 動作モードの違い
    corbaloc IIOPリスナー/ハンドラの呼出しが保護されません。オプションで、IIOPリスナー/ハンドラに対してSSLプロトコルを構成します。

    ノート:

    プリンシパルは、SecurityLevel2::Current::authenticate()操作を使用して証明書ベースの認証の使用を指定することでブートストラップ処理プロセスの安全を確保できます。
    corbalocs IIOPリスナー/ハンドラの呼出しが保護されており、IIOPリスナー/ハンドラまたはサーバーORBはSSLプロトコルを使用できるように構成する必要があります。

    これらのURLアドレス形式は、Interoperable Naming Serviceの提案の一部としてOMGによって採用されたオブジェクトURLの定義のサブセットです。Oracle Tuxedoソフトウェアでは、Oracle WebLogic Enterprise 4.2で追加されたランダマイズ機能だけでなく、セキュアHTTPのURLに基づいてモデル化される安全な形式をサポートするようにも、OMG提案のInteroperable Naming Serviceで規定されたURL形式が拡張されます。

    corbalocおよびcorbalocs URLスキームは、TCP/IP中心の環境とDNS中心の環境の両方で簡単に操作される位置を提供します。これらのURLスキームには、DNS形式のホスト名またはIPアドレスとport_numberが含まれます。次に例を示します。

    corbaloc://curly:1024,larry:1022,joe:1999
    corbalocs://host1:1024,{host2:1022|host3:1999}               

    Oracle WebLogic Enterpriseバージョン5.1ソフトウェアでは、スキームが異なる複数のURLのリストをサポートするように、OMG提案のInteroperable Naming Serviceで規定されたURL構文が拡張されています。次に例を示します。

    corbalocs://curly:1024,corbaloc://larry:1111,
    corbalocs://ctxobj:3434,mthd:3434,corbaloc://force:1111

    上の例で、パーサーがURL corbaloc://force:1111に達した場合は、安全な接続が試行されなかったかのようにパーサーの内部状態がリセットされ、保護なしの接続の試行が開始されます。

    注意:

    NULLスキームURLアドレス(//hostname:port_number)とcorbalocおよびcorbalocs URLアドレスは一緒に使用しないでください。

    ノート:

    Netscapeの埋め込み型Java ORBおよびJavaSoft JDK ORBで使用するように提供されるBootstrapオブジェクトでは、corbalocおよびcorbalocs URLはサポートされていません。

    corbalocおよびcorbalocs URLアドレス形式の使い方の詳細は、『CORBAアプリケーションにおけるセキュリティの使用』を参照してください。

    BootstrapコンストラクタまたはTOBJADDRで指定するネットワーク・アドレスは、サーバー・アプリケーションのUBBCONFIGファイルのネットワーク・アドレスと(大文字/小文字の区別を含めて)正確に同じでなければなりません。アドレスが一致しない場合は、Bootstrapコンストラクタの呼出しが失敗し、一見無関係と思われる次のエラー・メッセージが表示されます:

    ERROR: Unofficial connection from client at
    <tcp/ip address>/<port-number>                      

    たとえば、ネットワーク・アドレスが、サーバー・アプリケーションのUBBCONFIGファイルにあるISLコマンド行のオプション文字列で//TRIXIE:3500として(NULL URLアドレス形式を使用して)指定された場合、BootstrapコンストラクタやTOBJADDR//192.12.4.6:3500または//trixie:3500を指定すると、接続が失敗します。UNIXシステムで大文字/小文字の区別を調べるには、ホスト・システムでuname -nコマンドを使用します。Windowsシステムで正確な大文字/小文字の区別を調べるには、コントロール・パネルでホスト・システムのネットワーク設定を確認します。

    ノート:

    BootstrapコンストラクタまたはTOBJADDRで指定するネットワーク・アドレスは、サーバー・アプリケーションのUBBCONFIGファイルのネットワーク・アドレスと(大文字/小文字の区別を含めて)正確に同じでなければなりません。アドレスが一致しない場合は、Bootstrapコンストラクタの呼出しが失敗し、一見無関係と思われる次のエラー・メッセージが表示されます:
    ERROR: Unofficial connection from client at
    <tcp/ip address>/<port-number>                   

    たとえば、ネットワーク・アドレスが、サーバー・アプリケーションのUBBCONFIGファイルにあるISLコマンド行のオプション文字列で//TRIXIE:3500として(NULL URLアドレス形式を使用して)指定された場合、BootstrapコンストラクタやTOBJADDR//192.12.4.6:3500または//trixie:3500を指定すると、接続が失敗します。UNIXシステムで大文字/小文字の区別を調べるには、ホスト・システムでuname -nコマンドを使用します。Windowsシステムで正確な大文字/小文字の区別を調べるには、コントロール・パネルでホスト・システムのネットワーク設定を確認します。

    ノート:

    前のノートのエラーは、URLアドレス形式が使用される場合は遅延されます。つまり、ISL/ISHへの接続が遅延されるのでBootstrapオブジェクトの作成時にそのエラーは発生しません。
  • ネイティブ・クライアント

    ネイティブ・クライアントの場合、Tobj_Bootstrapコンストラクタのaddressパラメータは常に(NULLポインタではなく)空の文字列である必要があります。ネイティブ・クライアントは、TUXCONFIG環境変数で指定されたアプリケーションに接続します。アドレスが空でない場合は、コンストラクタによって CORBA::BAD_PARAMが生成されます。

  • クライアントとして機能するサーバー

    サーバーがBootstrapオブジェクトへのアクセスを必要とする場合、サーバーではTP.bootstrap()を呼び出してTPフレームワークを使用してその参照を取得する必要があります。Bootstrapオブジェクトの新しいインスタンスを作成することは避ける必要があります。

applet (Javaメソッドのみに適用)
これは、クライアント・アプレットへのポインタです。クライアント・アプレットからBootstrapオブジェクトに明示的にISHホストとポートが渡されない場合は、この引数を渡すことができます。この引数を渡すと、BootstrapオブジェクトはアプレットのHTMLファイルでTOBJADDRの定義を検索します。