2.5.2 UBBCONFIGファイルでのファクトリ・ベース・ルーティングの構成

University Productionサンプル・アプリケーションでは、ファクトリ・ベース・ルーティングの実装方法が例示されます。ubb_b.nt構成ファイルからのINTERFACESROUTING、およびGROUPSセクションには、Oracle Tuxedo CORBAアプリケーションでファクトリ・ベース・ルーティングを実装する方法が示されています。このサンプルのubb_p.ntまたはubb_p.mk UBBCONFIGファイルは、Oracle Tuxedoソフトウェアをインストールしたディレクトリにあります(\samples\corba\university\productionサブディレクトリを参照)。

UBBCONFIGファイルでは、グループおよびマシンの識別方法に加えて、INTERFACESおよびROUTINGセクションにおいて、次のデータを指定する必要があります。

  1. INTERFACESセクションには、ファクトリ・ベース・ルーティングを有効にするインタフェースの名前がリストされています。各インタフェースについて、このセクションではインタフェースがルーティングを行う基準の種類を指定します。このセクションでは、次のコード・スニペットに示すように、識別子FACTORYROUTINGでルーティング基準を指定します。
    INTERFACES
    "IDL:beasys.com/UniversityP/Registrar:1.0"
    FACTORYROUTING = STU_ID
    "IDL:beasys.com/BillingP/Teller:1.0"
    FACTORYROUTING = ACT_NUM

    次のリストでは、Productionサンプルでファクトリ・ベース・ルーティングが使用される2つのインタフェースの完全修飾されたインタフェース名を示します。また、FACTORYROUTING識別子によって、ルーティング値の名前がそれぞれSTU_IDACT_NUMに指定されています。

  2. ROUTINGセクションは、各ルーティング値について、次の表に示すパラメータを指定します。

    表2-1 ROUTINGセクションで指定されるパラメータ

    パラメータ 説明
    TYPE ルーティングのタイプを指定します。Productionサンプルでは、ルーティングのタイプはファクトリ・ベース・ルーティングです。したがって、このパラメータはFACTORYと定義されます。
    FIELD ファクトリがルーティング値に挿入する変数名を指定します。Productionサンプルでは、このフィールド・パラメータがそれぞれstudent_idaccount_numberに設定されています。
    FIELDTYPE ルーティング値のデータ型を指定します。Productionサンプルでは、student_idおよびaccount_numberのフィールド型はlongです。
    RANGES 各グループにルーティングされる値を指定します。

    次のコード・スニペットは、Productionサンプル・アプリケーションで使用するUBBCONFIGファイルのROUTINGセクションを示しています。

    ROUTING
        STU_ID
            FIELD     = "student_id"
            TYPE      = FACTORY
            FIELDTYPE = LONG
            RANGES    = "100001-100005:ORA_GRP1,100006-100010:ORA_GRP2"
        ACT_NUM
            FIELD     = "account_number"
            TYPE      = FACTORY
            FIELDTYPE = LONG
            RANGES    = "200010-200014:APP_GRP1,200015-200019:APP_GRP2"
    次のリストは、IDが特定の範囲にある学生のRegistrarオブジェクト参照が1つのサーバー・グループにルーティングされ、IDが別の範囲にある学生のRegistrarオブジェクト参照が別のグループにルーティングされることを示しています。同様に、ある1つの範囲の口座に対するTellerオブジェクト参照は、ある1つのサーバー・グループにルーティングされ、別の範囲の口座に対するTellerオブジェクト参照は、別のグループにルーティングされます。
  3. UBBCONFIGファイルのROUTINGセクションでRANGES識別子によって指定されたグループを、識別して構成する必要があります。たとえば、ProductionサンプルはAPP_GRP1APP_GRP2ORA_GRP1、およびORA_GRP2という4つのグループを指定します。これらのグループを構成し、グループが実行されるマシンを識別する必要があります。
    次のコード・スニペットは、ProductionサンプルのUBBCONFIGファイルのGROUPSセクションを示します。ここでは、ORA_GRP1およびORA_GRP2グループが構成されています。GROUPSセクション内の名前と、ROUTINGセクションのRANGESパラメータで指定されたグループ名がどのように一致しているかに注目してください。これは、ファクトリ・ベース・ルーティングが正しく機能するために重要です。さらに、アプリケーションでのグループの構成方法の変更は、ROUTINGセクションに反映させる必要があります。

    ノート:

    Oracle Tuxedoソフトウェアに同梱されているProductionサンプルは、1つのマシンで完全に実行するように構成されています。ただし、このアプリケーションを複数のマシンで実行できるように構成することは簡単です。)
    *GROUPS
        APP_GRP1
            LMID      = SITE1
            GRPNO     = 2
            TMSNAME   = TMS
        APP_GRP2
            LMID      = SITE1
            GRPNO     = 3
            TMSNAME   = TMS
        ORA_GRP1
            LMID      = SITE1
            GRPNO     = 4
            OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"
            CLOSEINFO = ""
            TMSNAME   = "TMS_ORA"
        ORA_GRP2
            LMID      = SITE1
            GRPNO     = 5
    OPENINFO = "ORACLE_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=100+LogDir=.+MaxCur=5"
            CLOSEINFO = ""
            TMSNAME   = "TMS_ORA"