# HTTP ルーティング・ルール・アクションの副次式ビルダー

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

ODR のこの管理コンソール・ページを表示するには、「サーバー」>「サーバー・タイプ」>「オンデマンド・ルーター」>「ODR」>「オンデマンド・ルーター・プロパティー」>「ルーティング・ポリシー HTTP ルール」>「指定者」>「式」>「副次式ビルダー」をクリックします。

ODR クラスターのこの管理コンソール・ページを表示するには、「サーバー」>「クラスター」>「オンデマンド・ルーター・クラスター」>「ODR cluster」>「オンデマンド・ルーター・プロパティー」>「ルーティング・ポリシー HTTP ルール」>「指定者」>「式」>「副次式ビルダー」をクリックします。

## オペランドの選択

### ルーティングおよびサービス・ポリシー・オペランド

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

表 1. オペランド
要求変数 | 有効なプロトコル | 説明
--- | --- | ---
`virtualhost` | HTTP SOAP | Web アプリケーションを特定のホスト名に対して構成するために使用される要求の仮想ホスト・ターゲット。
`virtualport` | HTTP | Web アプリケーションを特定のポートに対して構成するために使用される要求の仮想ポート・ターゲット。
`uri` | HTTP | URI (Uniform Resource Identifier)。要求のパスを取得するために使用します。URL が "http://host:port/path?p1=v1" である場合、パスは "path" です。
`ユーザー ID` |  | 要求を送信した認証ユーザーのユーザー ID を返します。
`グループ ID` |  | 要求を送信した認証ユーザーのグループ名のリストを返します。
`要求照会パラメーター名` |  | ヘッダー名および値。 例えば、式 `queryparm$timezone='EST'` は、 要求に `timezone` という名前で値が `EST` の HTTP 照会パラメーターが含まれているかどうかをテストします。照会パラメーターが存在するかどうかをテストするには、 次の形式のいずれかを使用します。
    queryparm$timezone IS NOT NULL
    queryparm$timezone IS NULL
`要求ヘッダー名` |  | ヘッダー名および値。 例えば、式 `header$Host='localhost'` は、要求に値が `localhost` の HTTP ホスト・ヘッダーが含まれているかどうかをテストします。ホスト・ヘッダーが存在するかどうかをテストするには、 次のいずれかを使用します。
    header$Host IS NOT NULL
    header$Host IS NULL
`Cookie ヘッダー名` |  | 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
`HTTPMethod` | HTTP SOAP | 要求の HTTP メソッド。可能な値は、POST、GET、PUT、および DELETE です。
`clienthost` | HTTP SOAP IIOP SIP | 完全修飾クライアント・ホスト名。インターネット・プロトコル (IP) コマンドのホスト名の値です。このオペランドは`>、>=、<、<=` などの数値演算子はサポートしません。
`clientipv4` | HTTP SOAP SIP | インターネット・プロトコル・バージョン 4 (IPv4) のドット付きクワッド・アドレス・タイプ `n.n.n.n` を使用した、クライアント・コンピューターの IP アドレス。
`clientipv6` | HTTP SOAP SIP | Request for Comments 1924 (RFC 1924) に準拠した、クライアント・コンピューターのインターネット・プロトコル・バージョン 6 (IPv6) 128 ビット・アドレス・タイプ `x:x:x:x:x:x:x:x`。
`serverhost` | HTTP SOAP IIOP SIP | サーバーの完全修飾ホスト名。 このオペランドは`>、>=、<、<=` などの数値演算子はサポートしません。
`serveripv4` | HTTP SOAP SIP | IPv4 のドット付きクワッド・アドレス・タイプ `n.n.n.n` を使用した、サーバー・コンピューターの IP アドレス。
`serveripv6` | HTTP SOAP SIP | RFC 1924 に準拠した、サーバー・コンピューターの IPv6 128 ビット・アドレス・タイプ `x:x:x:x:x:x:x:x`。
`port` | HTTP SOAP IIOP SIP | 要求が受信された listen ポート。
`protocol` | HTTP SOAP | 要求を伝送する通信プロトコル。現在サポートされているプロトコルは、HTTP、HTTPS、SOAP、および SOAPS です。
`virtualportal` | HTTP SOAP | 仮想ポータルは WebSphere® Portal Server 内で作成され、Intelligent Management は、WebSphere Portal Server とより適切に統合するためにこのオペランドをサポートします。仮想ポータルは、要求 URL から WebSphere Portal アプリケーションの Web モジュールのコンテキスト・ルートを取り去ったものです。指定された要求が定義された仮想ポータルに一致すると、該当ルールに定義されたルーティング・アクションが実行されます。
`time` | HTTP SOAP IIOP | このオペランドは、一定の要求を認可する必要がある日時を定義するのに使用されます。StartTime と EndTime という 2 つのオプション・フィールドがあります。要求がこの定義された時間枠外で受信された場合、その要求は処理されません。 開始時刻と終了時刻のフィールドの形式は `dayOfWeek/dayOfMonth/month/year::hour:minute:second` です。 例えば、2007 年 4 月 11 日 午後 1:03:45 は次のように指定します。 Thu/11/Apr/2007::13:03:45 いずれのフィールドも値 * でワイルドカードを使用できます。例えば、毎月の 1 日は */1 と指定します。 dayofWeek の値は Sun、Mon、Tue、Wed、Thu、Fri、Sat で、dayOfMonth の値は 1 から 31 です。 month 値は、12 の月を表わす非数値 (Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec) です。 year 値は、4 桁の年です。例えば 2007。 hour 値は 24 時間クロックの時刻です。例えば、8am は ::8 と表わします。minute と second は 0 から 59 の整数です。 日付パラメーターを区切るにはスラッシュ (/) が使用され、日時の値を区切るには 2 重コロン (::) が使用され、時刻パラメーターを区切るにはコロン (:) が使用されます。 時刻オペランドが使用されるルール全体のブール結果が、ルーティング・アクションを決定するために使用されます。
`percentage$<val>` | HTTP SOAP IIOP SIP | percentage オペランドは、時間の固定パーセンテージを `true` に評価します。例えば、 `percentage$50` は、時間の平均 50% で `true`に評価します。
`rampup$<startTime>$<completionTime>` | HTTP SOAP IIOP SIP | rampup オペランドは、時間の可変パーセンテージを `true` に評価します。常に `<startTime>` の前には `false` に評価し、`<completionTime>` の後に `true` に評価します。 時間が `<startTime>` から `<completionTime>` に進むにつれ、`true` に評価します。パーセンテージは直線的に増加します。 `<startTime>` と `<completionTime>` の形式は `day/month/year::hour:min:sec` です。 day は日、month は月 (Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)、year は 4 桁の年、hour は 24 時間クロックの 2 桁の時、min は 2 桁の分、sec は 2 桁の秒です。 例えば、 `rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00` は、2007 年 1 月 1 日の午前 8 時に `true` への評価を開始する場合がありますが、常に同日の午後 5 時の増加完了時点で `true` と評価します。

## オペレーター

- 等しい - 大/小文字を無視 (EQUALSIGNORECASE): ストリングの大/小文字が無視されることを除き、'String = String' と同一です。したがって、'ABC' `EQUALSIGNORECASE` 'abc' は true に評価されます。('ABC' = 'abc') は false に評価されます。
- 等しくない (<>): 非等価演算子は、オペランド値が入力された値と等しくないことを表します。
- 次に含まれる (IN): この演算子は、複数の値を持つオペランドを単一の式で表します。例えば、`port` というオペランドで、ポート値が `9080`、`9090`、`9091` などの任意またはすべての値を表す場合、式フラグメントは `port IN (9080,9090, 9091)` となります。 大括弧内の値の表現方法は、ポートのデータ・タイプにより異なります。ポートが整数の場合、正しい構文は引用符なしの値です。ポートがストリングの場合、正しい構文は `port IN (‘9080’, ‘9090’, ‘9091’)` です。
- 類似 (LIKE): この演算子は、ストリング・オペランド値のパターン・マッチングを表します。値には、パターン・マッチングを開始する位置にワイルドカード文字の % 記号 (%) が含まれている必要があります。例えば、式 `host LIKE %blanca` は、ワード blanca または blanca で終わる他のすべてのワードと一致し、式 `host LIKE blanca%` は、ワード blanca または blanca で始まる他のすべてのワードと一致し、式 `host LIKE %blanca%` はワード blanca またはスペルに blanca があるすべてのワードと一致します。
- 類似 - 大/小文字を無視 (LIKEIGNORECASE): ストリングの大/小文字が無視されることを除き、'string like string' と同一です。
- NULL 以外 (IS NOT NULL): この演算子は、照会の妥当性検査で、要求されたパラメーターが存在することを表します。
- 連結 (+): この演算子は、結合された 2 つの文字ストリング 'abc' + 'def' = 'abcdef' を表します。
- 類似 - 次に含まれる (LIKEIN): この演算子は、string likein (string1、string2、string3 など) とすると、likein の左方のストリングが stringN の 1 つ以上のストリングと一致している場合に true と評価されることを表します。
- NULL (IS NULL): この演算子は、照会の妥当性検査で、要求されたパラメーターが存在しないことを表します。
- 等しい ( = ): 等価演算子は、大/小文字を区別した一致を表します。

## 値

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

## 副次式ビルダー

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

## 付加

副次式を新規ルールに追加します。

関連情報:
ルーティング・ポリシー HTTP ルール
HTTP ルール式ビルダー

ファイル名: http_subexpression.html