bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo のファイル形式とデータ記述方法

 Previous Next Contents View as PDF  

ROUTING セクション

このセクションでは、FML バッファ、XML バッファ、および VIEW を使用するサービス要求のデータ依存型ルーティングに関する情報を指定します。ここで指定するルーティング基準は、デフォルトのルーティング関数 _froute_xroute、および _vroute が使用される場合にのみ使用されます (tuxtypes(5) を参照)。ROUTING セクション内の行の形式は次のとおりです。

ROUTING_CRITERIA_NAME required_parameters

ROUTING_CRITERIA_NAME は、SERVICES セクションの特定のサービス・エントリの ROUTING パラメータに割り当てられる (string_value) 名です。ROUTING_CRITERIA_NAME は 15 文字以下でなければなりません。

以下のパラメータは必須です。

FIELD = string_value

ルーティング・フィールドの名前を指定します。指定する文字数は 30 文字以内でなければなりません。このフィールドは、FML または FML32 バッファ、XML の要素または属性、FML フィールド・テーブルで指定される VIEW フィールド名 (2 つの環境変数 -FLDTBLDIR および FIELDTBLS または FLDTBLDIR32 および FIELDTBLS32 を使用)、または FML テーブル (2 つの環境変数 -VIEWDIR および VIEWFILES または VIEWDIR32 および VIEWFILES32 を使用) であるとそれぞれ見なされます。この情報は、メッセージの送信時に、データ依存型ルーティングに関連するフィールド値を取得するために使用されます。FML または FML32 バッファ内のフィールドがルーティングに使用される場合は、フィールドの値は 8,191 以下でなければなりません。

XML 文書を要素の内容または属性に基づいてルーティングするには、次の構文で FIELD パラメータを定義する必要があります。

FIELD="root_element[/child_element][/child_element][/. . .][/@attribute_name]"

FIELD の値には、ルーティングの要素または要素の属性名を指定します。要素は、XML 文書またはデータグラムの要素のタイプ (要素名) または要素の属性名と見なされます。この情報は、ドキュメントまたはデータグラム送信時に、データ依存型ルーティングで要素の内容または属性を識別するために使用されます。要素名と属性名を組み合わせて、最大 30 文字まで指定できます。インデックスはサポートされないので、BEA Tuxedo システムは、データ依存型ルーティングで XML バッファを処理する際に、指定された要素タイプの最初のオカレンスだけを認識します。

XML は、属性名に使用できる文字セットを厳密に定義しています。属性名は、単一の文字、アンダースコア (_)、またはコロン (:) を含む文字列で、その後に 1 つ以上の名前文字が続きます。要素名と属性名はいずれも、大文字小文字が区別されます。

XML の詳細については、World Wide Web Consortium の Web サイト http://www.w3c.org/XML を参照してください。

FIELDTYPE = type

FIELD パラメータに指定されたルーティング・フィールドのタイプを指定します。このパラメータは、XML バッファをルーティングする場合にのみ使用されます。値 type は、CHARSHORTLONGFLOATDOUBLESTRING のいずれかに設定できます。ルーティング・フィールドのデフォルトのタイプは STRING です。

RANGES = string_value

ルーティング・フィールドの範囲と関連するサーバ・グループを指定します。string は二重引用符で囲む必要があります。string で使用できる文字数は最大 2,048 文字です。ただし、Domains の場合は string は最大 4,096 文字です。この文字列は、範囲/group_name の組み合わせのリストをカンマで区切った形式をとります。たとえば、RANGES="0-2:DBG1,3-5:DBG2,6-9:"DBG3" のように指定します。

範囲は、単一の値 (符号付き数値または一重引用符で囲んだ文字列) または "lower - upper" のいずれかの形式で表します。lower と upper はいずれも符号付き数値または一重引用符で囲んだ文字列です。"lower" は "upper." 以下でなければなりません。文字列値に一重引用符を埋め込むには (例: O'Brien)、一重引用符の前にバックスラッシュ (¥) を 2 つ入れます (例: O¥¥'Brien)。MIN を使用すると、マシンの関連する FIELD のデータ型の最小値を指定できます。MAX を使用すると、マシンの関連する FIELD のデータ型の最大値を指定できます。したがって、"MIN - -5" は -5 以下のすべての数値を指し、"6 - MAX" は、6 以上のすべての数値を指すことになります。範囲内のメタキャラクタ "*" (ワイルドカード) は、既にエントリとして指定した範囲では使用されなかった任意の値を示します。各エントリでは、1 つのワイルドカードによる範囲指定だけが可能です。1 つのエントリで使用できるワイルドカード範囲は 1 つだけで、最後になければなりません (後続の範囲は無視される)。

ルーティング・フィールドには、FML でサポートされている任意のデータ型を指定できます。数値ルーティング・フィールドには数値で範囲を指定し、文字列ルーティング・フィールドには文字列で範囲を指定する必要があります。

文字列で範囲を設定する場合は、文字列、carray、および文字フィールド型の値を一重引用符で囲みます。先頭に符号を付けることはできません。short 型および long 型の整数値は数字の文字列であり、オプションで先頭に正の符号または負の符号を付けることができます。C コンパイラまたは atof(3) で使用できる浮動小数点数は、まず任意の符号、次に数字列 (小数点が入ってもよい)、任意の e または E、任意の符号またはスペース、最後に整数という形式を取ります。

グループ名は、フィールドが範囲と一致する場合の要求のルーティング先となるグループを示します。メタ文字 "*" (ワイルドカード) は、フィールド値が範囲と一致しない場合には要求がデフォルトのグループに送られること、またはフィールド値が範囲と一致していても、範囲エントリと関連するグループ内に実行可能なサーバが存在しない場合には、ワイルドカード "*" で指定された範囲エントリのデフォルトのグループにサービス要求が転送されることを示します。

範囲とグループの組み合わせの中では、範囲とグループ名は ":" で区切ります。

XML の要素の内容および属性の値はUTF-8 で符号化される必要があり、FIELDTYPE パラメータで指定されたデータ型に変換可能な場合にはルーティングに使用できます。

ルーティングに使用する場合、この要素の内容に文字リファレンス、エンティティ・リファレンス、および CDATA セクションを含めることはできません。

UTF-8 で符号化された XML 属性値は、この属性が属する要素が定義されている場合にルーティングに使用できます。

BUFTYPE = "type1[:subtype1[,subtype2 . . . ]][;type2[:subtype3[, . . . ]]] . . ."

このルーティング・エントリで有効なデータ・バッファのタイプとサブタイプのリストを指定します。このパラメータの長さは 256 文字までです。また、最大 32 のタイプ/サブタイプの組み合わせを指定できます。タイプは、FMLFML32XMLVIEWVIEW32X_C_TYPEX_COMMON のいずれかでなければなりません。FMLFML32XML にはサブタイプを指定できません。VIEWVIEW32X_C_TYPE、および X_COMMON にはサブタイプが必要です。サブ・タイプの名前には、セミコロン (;)、コロン (:)、カンマ (,)、アスタリスク (*) は使用できません。タイプとサブタイプのペアのうち、重複するものは同じルーティング基準名として指定できません。タイプとサブタイプのペアが一意の場合、複数のルーティング・エントリは同じ基準名を持つことができます。このパラメータは必須です。単一のルーティング・エントリに複数のバッファ・タイプが指定される場合、各バッファ・タイプに対するルーティング・フィールドのデータ型は同じでなければなりません。

次に、ルーティング・エントリの例を示します。

BRNCH FIELD=B_FLD RANGES="0-2:DBG1,3-5:DBG2,6-9:DBG3" BUFTYPE="FML"

この例では、フィールド B_FLD のバッファの値 0-2 をサーバ・グループ DBG1 に、値 3-5 をサーバ・グループ DBG2 に、値 6-9 をサーバ・グループ DBG3 に送信しています。その他の値は使用できません。

フィールド値が設定されない場合 (FML バッファに対して) またはフィールド値が特定の範囲に一致せず、かつワイルドカードの範囲が指定されていない場合は、アプリケーションにエラーが戻されます。

次に、XML 要素の CODE に基づくルーティング・エントリの例を示します。

PRODUCT FIELD="ORDER/CODE" RANGES="'AAA' - 'FFF':DBG1, 'GGG-ZZZ':DBG2" BUFTYPE="XML"

ここでは、CODE はルート要素 ORDER の子要素です。

ORDERNO 属性に基づくルーティング・エントリは、次の例のようになります。

ORDER FIELD="ORDER/HEADER/@ORDERNO" FIELDTYPE=long RANGES="0-9999:DBG1,10000-MAX:DBG3"  BUFTYPE="XML"

ここでは、ORDERNO は、ルート要素 ORDER の XML 子要素である HEADER の属性です。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy