# 副次式ビルダー

副次式ビルダーは、AND、OR、NOT、および括弧によるグループ化を使用して、副次式から複雑なルール条件を作成する場合に使用します。ルール・ビルダーは、変更内容を適用するときにルールを妥当性検査して、括弧数の不一致およびサポートされない論理演算子について警告します。

この管理コンソール・ページを表示するには、「サーバー」>「サーバー・タイプ」>「オンデマンド・ルーター」>「odr_name」>「オンデマンド・ルーター・プロパティー」>「汎用サーバー・クラスター・サービス・ポリシー」>「work_class_name」>「ルールの追加」>「副次式ビルダー」をクリックします。

副次式ビルダーでルールを変更するには、管理者の管理特権が必要です。

## オペランドの選択

選択したプロトコルによって、異なるオペランドが表示されます。 次の表に、コンソールに表示されるオペランド名、式に表示される実際のオペランド、オペランドごとの有効なプロトコル、および各オペランドの説明を示します。

表 1. オペランドとその説明
表示されるオペランド | オペランド | 有効なプロトコル | 説明
--- | --- | --- | ---
アプリケーション名 | `application` | IIOP | EJB が含まれているアプリケーションの名前。
クライアント・ホスト | `clienthost` | HTTP、SOAP、IIOP | 完全修飾クライアント・ホスト名。インターネット・プロトコル (IP) コマンドのホスト名の値です。このオペランドでは、`>、>=、<、<=` などの数値演算子はサポートされません。
クライアント・ポート | `clientport` | IIOP | クライアント・ポート名。
クライアント IPV4 | `clientipv4` | HTTP、SOAP | クライアントのインターネット・プロトコル・バージョン 4 アドレス。ドット付きクワッド・アドレス・タイプ `n.n.n.n` を使用します。
クライアント IPV6 | `clientipv6` | HTTP、SOAP | クライアント・コンピューターの 128 ビットのインターネット・プロトコル・バージョン 6 アドレス・タイプ `x:x:x:x:x:x:x:x`。
Cookie ヘッダー名 | `cookie$<name>` | HTTP、SOAP | Cookie 名。例えば、式 `cookie$My_Cookie_Name='My_Cookie_Value'` は、My_Cookie_Name という名前で値が My_Cookie_Value の Cookie が含まれているかどうかをテストします。特定の Cookie が存在するかどうかをテストするには、次のいずれかの式を使用します。 cookie$MyCookieName IS NOT NULL cookie$MyCookieName IS NULL
EJB モジュール名 | `ejbmodule` | IIOP | EJB のモジュール名。
EJB 名 | `ejbname` | IIOP | EJB の名前。
EJB メソッド名 | `ejbmethod` | IIOP | EJB 内のメソッドの名前。
グループ ID | `gids$<name>` | HTTP、SOAP | 要求送信側のグループ ID。
HTTP メソッド | `HTTPMethod` | HTTP、SOAP | 要求の HTTP メソッド。可能な値は、POST、GET、PUT、および DELETE です。
MIME タイプ | `MIMEType` | HTTP、SOAP | 要求の MIME タイプ。
ポート | `port` | HTTP、SOAP、IIOP | ホスト上のサービスが提供される listen ポート。
プロトコル | `protocol` | HTTP、SOAP | 要求を伝送する通信プロトコル。 現在サポートされているプロトコルは、HTTP、HTTPS、SOAP、および SOAPS です。
要求ヘッダー名 | `header$<name>` | HTTP、SOAP | ヘッダー名および値。例えば、式 `header$Host='localhost'` は、要求に値が localhost の HTTP ホスト・ヘッダーが含まれているかどうかをテストします。ホスト・ヘッダーが存在するかどうかをテストするには、 次のいずれかを使用します。 `header$Host IS NOT NULL ,`header$Host IS NULL``
要求照会パラメーター名 | `queryparm$<name>` | HTTP、SOAP | 要求 URL で指定する照会パラメーター名。要求ごとに、照会パラメーターの名前と値のペア・マップがあります (存在する場合)。オンデマンド・ルーター (ODR) は、要求照会パラメーター名をパラメーター・マップを検索するためのキーとして使用し、存在していれば、値を抽出して、ルール式を評価します。ルールが一致した場合、指定されたアクションが実行されます。一致しない場合、式が定義されている作業クラスのデフォルト・アクションが使用されます。 例えば、式 `queryparm$timezone=EST` は、値が `EST` の `timezone` という名前の HTTP 照会パラメーターが要求に含まれているかどうかをテストします。照会パラメーターが存在するかどうかをテストするには、次のいずれかのコマンドを使用します。 `queryparm$timezone IS NOT NULL` `queryparm$timezone IS NULL`
ロール | `roles$<name>` | HTTP、SOAP | 要求送信側のロール。
サーバー・ホスト | `serverhost` | HTTP、SOAP、IIOP | サーバーの完全修飾ホスト名。このオペランドでは、`>、>=、<、<=` などの数値演算子はサポートされません。
サーバー IPV4 | `serveripv4` | HTTP、SOAP | IPv4 のドット付きクワッド・アドレス・タイプ n.n.n.n を使用した、サーバー・マシンの IP アドレス。
サーバー IPV6 | `serveripv6` | HTTP、SOAP | RFC 1924 に従った、サーバー・マシンの x:x:x:x:x:x:x:x の IPv6 128 ビットのアドレス・タイプ。
時間 | `time` | HTTP、SOAP、IIOP | time オペランドの形式は次のとおりです。 `dayOfWeek/dayOfMonth/month/year::hour:minute:second` dayofWeek 値は Sun、Mon、Tue、Wed、Thu、Fri、Sat です。 dayOfMonth は 1-31 の値です。 month は月を表わす数値で、1 が 1 月、... 12 が 12 月となっています。例えば、5 という数値は 5 月を表わします。 year は 4 桁の年です。例えば 2007。 hour は 24 時間クロックの時刻です。 minute は 0 から 59 の整数です。 second は 0 から 59 の整数です。 注: time オペランドでは、省略およびワイルドカードはサポートされません。 日付パラメーターを区切るにはスラッシュ (/)、日付と時刻パラメーターを区切るには 2 重コロン (::)、時刻パラメーターを区切るにはコロン(:) が使用されます。時刻オペランドが使用されるルール全体のブール結果が、ルーティング・アクションを決定するために使用されます。
ユーザー ID | `uid$<name>` | HTTP、SOAP | 要求送信側のユーザー ID。
仮想ポータル | `virtualportal` | HTTP、SOAP | 仮想ポータルは、要求 URL から WebSphere® Portal アプリケーションの Web モジュールのコンテキスト・ルートを取り除いたものです。指定された要求が定義された仮想ポータルに一致すると、該当ルールに定義されたルーティング・アクションが実行されます。
XPath 式 | `xpathexpr` | SOAP | XPath ストリング式には、XPath 式を含めるのに使用する必須フィールドと、ローカル名前空間を定義するためのオプションのフィールドがあります。XPath 式に含まれる名前空間がすべて標準の場合、2 番目のフィールドはオプションです。複数のローカル名前空間がある場合は、それぞれをコンマ (,) で区切ります。以下に、1 つのローカル名前空間が定義された、xpathexpr の例を示します。 `xpathexpr$/soap:Envelope/soap:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL`

## オペレーター

- = 等価演算子は、大/小文字を区別した一致を表します。
- <> not equal 演算子は、オペランド値が入力された値に等しくないことを表します。
- > より大演算子は、数値に使用されます。
- >= 以上演算子は、数値に使用されます。
- < より小演算子は、数値に使用されます。
- <= 以下演算子は、数値に使用されます。
- AND: `xx` AND `yy` は、 `xx` と `yy` の両方を含む一致を表します。
- BETWEEN: この演算子は AND とともに使用されて、最初 (低い) の値と最後 (高い) の値の間の範囲の値を選択します (両端を含む)。数値および日付にも使用できます。
- EXISTS: このブール演算子は、 例えば、特定の HTTP ヘッダー・エレメントの属性を検査しながら、 複合副次式のオペランドまたは結果を検査します。
- IN: 複数の値を持つオペランドを単一の式で表します。例えば、`port` というオペランドで、ポート値が `9080`、`9090`、`9091` などの任意またはすべての値を表す場合、式フラグメントは `port IN (9080,9090, 9091)` となります。 大括弧内の値の表現方法は、ポートのデータ・タイプにより異なります。ポートが整数の場合、正しい構文は引用符なしの値です。ポートがストリングの場合、正しい構文は `port IN (9080,9090,9091)` です。
- IS NULL: この演算子は、照会の妥当性検査で、要求されたパラメーターが存在しないことを示します。
- IS NOT NULL: この演算子は、照会の妥当性検査で、要求されたパラメーターが存在することを示します。
- LIKE: この演算子は、ストリング・オペランド値のパターン・マッチングを示します。値には、パターン・マッチングを開始する位置にワイルドカード文字の % 記号 (%) が含まれている必要があります。例えば、式 `host LIKE %blanca` は、ワード blanca または blanca で終わる他のすべてのワードと一致し、式 `host LIKE blanca%` は、ワード blanca または blanca で始まる他のすべてのワードと一致し、式 `host LIKE %blanca%` はワード blanca またはスペルに blanca があるすべてのワードと一致します。
- NOT: NOT `xx` の場合、 この演算子は、`xx` を含まない一致を表します。
- OR: `xx` OR `yy` の場合、この演算子は、`xx` または `yy` のいずれかを含む一致を表します。

## 値

選択する演算子に応じて、作成する副次式の値を入力します。

## ビルド副次式

指定したオペランド、演算子、および値の結果として副次式を生成します。

## 生成済み副次式

この副次式を、使用するルールにコピー/貼り付けします。

関連情報:
オンデマンド・ルーターのルーティング・ポリシー
オンデマンド・ルーターのサービス・ポリシー
作業クラス・メンバーシップおよびルールの定義

ファイル名: wc_rulebuilder_detail.html