この章では、無効化リクエストをOracle Web Cacheに送信する方法について説明します。
この章の項目は次のとおりです。
第6.7項で説明されているように、有効期限ポリシーを作成し、それをキャッシュ・ルールに関連付けることによって、オリジナル・サーバーのコンテンツは更新されます。たとえ有効期限ポリシーがあっても、コンテンツが失効するタイミングを正確に予測するのは困難な場合があります。Oracle Web Cacheでは代替の方法として、このようなコンテンツが失効したと管理者またはアプリケーションが判断したときには、コンテンツを明示的に無効化できるメカニズムを提供しています。
無効化によって、Oracle Web Cacheはオブジェクトを無効にします。オブジェクトが無効になった後にクライアントがそれらをリクエストすると、オブジェクトはキャッシュから削除され、オリジナル・サーバーから新しいコンテンツが取得されてキャッシュが更新されます。無効になったオブジェクトはすぐに削除して新しいものに更新するか、あるいはオリジナル・サーバーの現在の負荷に基づいて、削除と更新を行うことが可能です。
Oracle Web Cacheは、次の形式の無効化をサポートしています。
キャッシュ内のオブジェクトを無効化するには、無効化リスニング・ポートを介してinvalidator
アカウントからHTTP POSTリクエストを送信します。invalidator
アカウントは、無効化リクエストの送信を許可されています。図7-1に示すように、無効化リクエストは次の方法で送信します。
手動(Fusion Middleware Controlまたはtelnet
を使用)
自動(データベース・トリガー、スクリプトまたはアプリケーション・ロジックを使用)
次の項では、使用可能な方法を個別に説明します。
Edge Side Includes(ESI)の一部として実装されるインライン無効化は、オリジナル・サーバーに対して、Oracle Web Cacheに送信されたHTTPレスポンスに無効化メッセージを組み合せる便利な方法を提供します。具体的には、オリジナル・サーバーがESIタグを使用してレスポンス・ボディのHTML内にXML無効化ドキュメントを埋め込みます。
たとえば、顧客がE-Commerceサイトでベジタリアン用料理の本を購入したとします。確認レスポンスにその書籍、著者および野菜に関連するすべてのカタログ・ページを無効にするための指示を含めることができます。無効化メッセージをインラインで送信する機能によって、バンド外無効化の送信に関連する接続オーバーヘッドが軽減されるため、ESI開発者には便利なツールです。
ESIによる無効化の使用方法の詳細は、第11.3項を参照してください。
レスポンス・ヘッダーによる無効化は、レスポンス・ボディにHTML以外の要素が含まれているトランザクション・レスポンスをオリジナル・サーバーが返すことができるようにするOracle Web Cacheの機能です。この状況ではESIによるインライン無効化は機能しません。Oracle Web Cacheでは、レスポンス・ボディにHTMLが含まれている場合にのみESIの無効化タグを使用できます。レスポンス・ヘッダーによる無効化を使用することで、オリジナル・サーバーは専用の無効化レスポンス・ヘッダーで無効化ディレクティブを送信できます。
レスポンス・ヘッダーによる無効化は、返されるレスポンス・ボディのコンテンツに関して柔軟性が高いだけではありません。無効化ヘッダーの作成はきわめて負荷の低い作業であるため、Webアプリケーションでのコーディング作業が軽減されます。
レスポンス・ヘッダーによる無効化の動作は、インライン無効化と同様です。つまり、オリジナル・サーバーがOracle Web Cacheに送信されたレスポンスに無効化ディレクティブを組み合せます。ただし、レスポンス・ヘッダーによる無効化では、レスポンス・ボディにHTML以外の要素が含まれている場合に無効化を有効化できます。
オリジナル・サーバーは、特殊な無効化ヘッダーをレスポンスに追加します。Oracle Web Cacheは無効化ヘッダーを抽出し、対応するコンテンツを無効化して、レスポンスをクライアントに転送します。その場合、レスポンスに無効化ヘッダーは含まれません。
オリジナル・サーバーは、あらゆるレスポンスに無効化レスポンス・ヘッダーを組み合せることができます。たとえば、オリジナル・サーバーが無効化ディレクティブの送信を遅らせて、後から最初に無効化が発生したリクエストとは無関係のリクエストへのレスポンスでその無効化ディレクティブを送信することができます。
Oracle Web Cacheは、レスポンスをWebクライアントに返すときに無効化レスポンス・ヘッダーを取り除きます。キャッシュ・クラスタの別のメンバーにレスポンスを返すときにも無効化レスポンス・ヘッダーが取り除かれます。これは、クラスタ伝播によって無効化がクラスタ内の他のピアに転送されるためです。
レスポンス・ヘッダーによる無効化を有効にする方法の詳細は、第7.8項を参照してください。
バンド外メカニズムでは、バンド外のHTTP POST無効化リクエストをExtensible Markup Language(XML)構文で送信します。ESIインライン・メカニズムも、<esi:invalidate>
タグ内で同じ構文を使用します。XMLリクエストのボディの内容により、無効にするURLがキャッシュに指定されます。
次の項では、無効化リクエストの構文を説明します。
次の構文を使用して、絶対パスおよびファイル名が含まれている絶対URL内のオブジェクトを無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="name" VALUE="value"/> </SYSTEM> <OBJECT> <BASICSELECTOR URI="URL"/> <ACTION REMOVALTTL="TTL"/> <INFO VALUE="value"/> </OBJECT> </INVALIDATION>
次の構文を使用して、より高度な無効化セレクタに基づいてオブジェクトを無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="name" VALUE="value"/> </SYSTEM> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="prefix" URIEXP="URL_expression" HOST="host_name:port" METHOD="HTTP_request_method" BODYEXP="HTTP_body"/> <COOKIE NAME="cookie_name" VALUE="value"/> <HEADER NAME="HTTP_request_header" VALUE="value"/> <OTHER NAME="URI|BODY|QUERYSTRING_PARAMETER|SEARCHKEY" TYPE="SUBSTRING|REGEX" VALUE="value"/> </ADVANCEDSELECTOR> <ACTION REMOVALTTL="TTL"/> <INFO VALUE="value"/> </OBJECT> </INVALIDATION>
有効な無効化リクエストのボディの先頭は、次のとおりです。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd">
最初の行ではXMLのリリース1.0が指定されます。2行目では、リクエストがXML文書タイプとしてWCSinvalidation.dtd
ファイルを使用する無効化リクエストであることを示します。WCSinvalidation.dtd
は、無効化リクエストおよびレスポンスの文法を定義するDocument Type Definition(DTD)です。
次のことに注意してください。
「<?xml
」の前に空白を入れないでください。
アプリケーションが無効化リクエストをサード・パーティのXMLパーサーと共有している場合、"internal:///WCSinvalidation.dtd"
のかわりに次のパスを使用します。
"http://www.oracle.com/webcache/90400/WCSinvalidation.dtd"
ルート要素INVALIDATION
には、表7-1に説明する属性と要素が含まれています。
表7-1 INVALIDATIONの要素および属性
無効化処理用の要素/属性 | 説明 |
---|---|
XML文書タイプとして使用する リリース9.0. |
|
|
|
可能な
|
|
無効化リクエストの必須要素。リクエスト内で複数の |
|
|
|
接頭辞は、正規表現の予約語を含め、文字どおり解釈されます。これらの文字には、ピリオド( |
|
|
正規表現の使用が可能です。正規表現文字を文字どおり解釈するには、バックスラッシュ( 正規表現の構文は、 注意:
|
|
|
|
|
|
注意: 無効化リクエストが送信されると、Oracle Web Cacheは |
|
無効化リクエストのオプションの要素。次の属性を使用します。
複数のバージョンのオブジェクトとセッション・キャッシュ・ポリシーの両方に対して間違って指定されたCookieを指定する場合、無効化はこのCookieの発生に基づきます。過度の無効化を回避するには、複数のバージョンのオブジェクトとセッション・キャッシュ・ポリシーに対して異なるCookieを構成します。 詳細は、次を参照してください。 |
|
無効化リクエストのオプションの要素。次の属性を使用します。
複数バージョンのオブジェクトに対するキャッシュ・ルールの作成方法は、第6.8.2項を参照してください。 |
|
無効化リクエストのオプションの要素。次の属性を使用します。
詳細は、次を参照してください。 |
無効化リクエストの必須要素。
|
|
無効化リクエストのオプションの要素。
[15/Oct/2008:19:26:46 +0000] [notification 11748] [invalidation] [ecid: 21085932167,0] Invalidation with INFO 'INFO_comment' has returned with status 'status'; number of objects invalidated: 'number'. |
BASICSELECTOR
無効化リクエストの無効化レスポンスは、次の形式で返されます。
<?xml version="1.0"?>
<!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd">
<INVALIDATIONRESULT VERSION="WCS-1.1">
<SYSTEM>
<SYSTEMINFO NAME="name" VALUE="value"/>
</SYSTEM>
<OBJECTRESULT>
<BASICSELECTOR URI="URL">
</BASICSELECTOR>
<RESULT ID="ID" STATUS="status" NUMINV="number"/>
<INFO VALUE="value
"/>
</OBJECTRESULT>
</INVALIDATIONRESULT>
ADVANCEDSELECTOR
無効化リクエストの無効化レスポンスは、次の形式で返されます。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="name" VALUE="value"/> </SYSTEM> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="prefix" URIEXP="URL_expression" HOST="host_name:port" METHOD="HTTP_request_method" BODYEXP="HTTP_body"/> <COOKIE NAME="cookie_name" VALUE="value"/> <HEADER NAME="HTTP_request_header" VALUE="value"/> <OTHER NAME="URI|BODY|QUERYSTRING_PARAMETER|SEARCHKEY" TYPE="SUBSTRING|REGEX" VALUE="value"/> </ADVANCEDSELECTOR> <RESULT ID="ID" STATUS="status" NUMINV="number"/> <INFO VALUE="value"/> </OBJECTRESULT> </INVALIDATIONRESULT>
有効な無効化レスポンスの先頭は、次のとおりです。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd">
最初の行ではXMLのリリース1.0が指定されます。2行目は、レスポンスが、XML文書タイプとしてWCSinvalidation.dtd
ファイルを使用する無効化レスポンスであることを示しています。
ルート要素INVALIDATIONRESULT
には、表7-2に説明する属性と要素が含まれています。BASICSELECTOR
およびADVANCEDSELECTOR
については、表7-1で説明されています。
表7-2 INVALIDATIONRESULTの要素および属性
無効化処理用の要素/属性 | 説明 |
---|---|
XML文書タイプとして使用する |
|
|
|
可能な
このペアは、キャッシュの名前を指定します。 |
|
次の属性を使用します。 |
|
無効化リクエストの |
無効化をテストするには、次の構文を使用して、無効にするBASICSELECTOR
オブジェクトのリストをプレビューします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEW SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONPREVIEW VERSION="WCS-1.1" STARTNUM="start_number" MAXNUM="max_number"> <BASICSELECTOR URI="URL"/> </INVALIDATIONPREVIEW>
無効にするADVANCEDSELECTOR
オブジェクトのリストをプレビューするには、次の構文を使用します。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEW SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONPREVIEW VERSION="WCS-1.1" STARTNUM="start_number" MAXNUM="max_number"> <ADVANCEDSELECTOR URIPREFIX="prefix" URIEXP="URL_expression" HOST="host_name:port" METHOD="HTTP_request_method" BODYEXP="HTTP_body" <COOKIE NAME="cookie_name" VALUE="value"/> <HEADER NAME="HTTP_request_header" VALUE="value"/> <OTHER NAME="URI|BODY|QUERYSTRING_PARAMETER|SEARCHKEY" TYPE="SUBSTRING|REGEX" VALUE="value"/> </ADVANCEDSELECTOR> </INVALIDATIONPREVIEW>
有効な無効化プレビュー・リクエストのボディの先頭は、次のとおりです。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEW SYSTEM "internal:///WCSinvalidation.dtd">
最初の行ではXMLのリリース1.0が指定されます。2行目は、リクエストが、XML文書タイプとしてWCSinvalidation.dtd
ファイルを使用する無効化プレビュー・リクエストであることを示しています。
ルート要素INVALIDATIONPREVIEW
には、表7-3に説明する属性が含まれています。BASICSELECTOR
およびADVANCEDSELECTOR
については、表7-1で説明されています。
表7-3 INVALIDATIONPREVIEWの属性
無効化処理用の要素/属性 | 説明 |
---|---|
無効化プレビューの必須属性。
|
|
無効化プレビューの必須属性。 リストされる最初のオブジェクトを表す番号を入力します。Oracle Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。 |
|
無効化プレビューの必須属性。 リストされるオブジェクトの数を入力します。 無効化基準を満たすオブジェクトが指定した数よりも少ない場合、Oracle Web Cacheでは、基準を満たすオブジェクトのURLのみがリストされます。 無効化基準を満たすオブジェクトが指定した数よりも多い場合は、Oracle Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なる |
プレビュー・リクエストに対する無効化プレビュー・レスポンスは、次の形式で返されます。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEWRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONPREVIEWRESULT VERSION="WCS-1.1" STATUS="status" NUMURLS="number" TOTALNUMURLS="total_number"> <SELECTURL VALUE="URL"> </SELECTEDURL> </INVALIDATIONPREVIEWRESULT>
有効な無効化プレビュー・レスポンスの先頭は、次のとおりです。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEWRESULT SYSTEM "internal:///WCSinvalidation.dtd">
最初の行ではXMLのリリース1.0が指定されます。2行目は、レスポンスが、XML文書タイプとしてWCSinvalidation.dtd
ファイルを使用する無効化プレビュー・レスポンスであることを示しています。
次のことに注意してください。
「<?xml
」の前に空白を入れないでください。
アプリケーションが無効化リクエストをサード・パーティのXMLパーサーと共有している場合、"internal:///WCSinvalidation.dtd"
のかわりに次のパスを使用します。
"http://www.oracle.com/webcache/90400/WCSinvalidation.dtd"
ルート要素INVALIDATIONPREVIEWRESULT
には、表7-4に説明する属性と要素が含まれています。BASICSELECTOR
およびADVANCEDSELECTOR
については、表7-1で説明されています。
表7-4 INVALIDATIONPREVIEWRESULTの要素および属性
無効化処理用の要素/属性 | 説明 |
---|---|
XML文書タイプとして使用する |
|
プレビューのステータス。
|
|
リストされる最初のオブジェクトを示す番号。 |
|
このプレビュー結果で返されるURLの数。 |
|
|
|
無効にされる |
この項には、次の無効化リクエストの例が含まれます。
この項の例ではPOSTメソッドを使用する必要があり、ヘッダーのcontent_length:
#bytes
部分でバイト数(文字数)を送信する必要があります。content_length:
#bytes
行の後、XMLリクエストまたはBODY
情報の前に改行を1回入れる必要があるため、注意してください。
次のリクエストにより、ファイル/images/logo.gif
を無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <BASICSELECTOR URI="http://www.company.com:80/images/logo.gif"/> <ACTION/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <BASICSELECTOR URI="http://www.company.com:80/images/logo.gif"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/> </OBJECTRESULT> </INVALIDATIONRESULT>
次のリクエストにより、BASICSELECTOR
要素を使用して、/contacts/contacts.html
に完全一致するオブジェクトを無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <BASICSELECTOR URI="http://www.company.com:80/contacts/contacts.html"/> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
このリクエストは、ADVANCEDSELECTOR
要素を使用した次のリクエストと同じです。このリクエストでは、HOST
属性でサイト情報が指定されています。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/contacts/" URIEXP="^/contacts/contacts\.html$" HOST="www.company.com:80"/> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
2番目のリクエストでは、URIPREFIX
属性でサイト情報が指定されています。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="http://www.company.com/contacts/" URIEXP="^/contacts/contacts\.html$"/> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
ADVANCEDSELECTOR
要素ではURIPREFIX
属性が使用されます。この属性は、ディレクトリ構造の横断に使用されます。無効化が正しいツリー・レベルに到達するのが早いほど、無効化プロセスは早く完了します。これらの2つの例のうち、BASICSELECTOR
要素を使用したリクエストはディレクトリ構造の横断が実行されないため、より効率的です。
次のリクエストにより、summary.jsp
およびsummary.gif
の2つのオブジェクトを無効にします。さらに、このリクエストにより、コメント"summary.jsp"
および"summary.gif"
が無効化の結果およびイベント・ログに含まれます。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/global/sales/" URIEXP="summary.jsp\?year=2001" HOST="www.company.com:80"/> <COOKIE NAME="group" VALUE="asia"/> </ADVANCEDSELECTOR> <ACTION /> <INFO VALUE="summary.jsp"/> </OBJECT> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/image/" URIEXP="summary.*\.gif$" HOST="www.company.com:80"/> <INFO VALUE="summary.gif"/> <ACTION /> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/global/sales/" URIEXP="summary.jsp\?year=2001" HOST="www.company.com:80"/> <COOKIE NAME="group" VALUE="asia" /> </ADVANCEDSELECTOR> <RESULT ID="1" STATUS="SUCCESS" NUMINV="2"/> <INFO VALUE="summary.jsp"/> </OBJECTRESULT> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/image/" URIEXP="summary.*\.gif$" HOST="www.company.com:80"/> </ADVANCEDSELECTOR> <RESULT ID="2" STATUS="SUCCESS" NUMINV="14"/> <INFO VALUE="summary.gif"/> </OBJECTRESULT> </INVALIDATIONRESULT>
イベント・ログには、次のメッセージが書き込まれます。
[15/Oct/2008:19:26:46 +0000] [notification 11748] [invalidation] [ecid: 21085932167,0] Invalidation with INFO 'summary.jsp' has returned with status 'SUCCESS'; number of objects invalidated: '2'. . . . [15/Oct/2008:19:26:46 +0000] [notification 11748] [invalidation] [ecid: 21085932167,0] Invalidation with INFO 'summary.gif' has returned with status 'SUCCESS'; number of objects invalidated: '14'.
次のリクエストにより、/images/
ディレクトリ内のオブジェクトをすべて無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/images/" HOST="www.company.com:80"/> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/images/" HOST="www.company.com:80"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="125"/> </OBJECTRESULT> </INVALIDATIONRESULT>
次のリクエストにより、/contacts/
ディレクトリ内でファイル名が.html
で終わり、oracle
の値を持つCookie名cust
を使用するオブジェクトをすべて無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/contacts/" URIEXP="\.html$" HOST="www.company.com:80"/> <COOKIE NAME="cust" VALUE="oracle"/> </ADVANCEDSELECTOR> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/contacts"/> URIEXP="\.html$" HOST="www.company.com:80"/> <COOKIE NAME="cust" VALUE="oracle"/> </ADVANCEDSELECTOR> <RESULT ID="1" STATUS="SUCCESS" NUMINV="45"/> </OBJECTRESULT> </INVALIDATIONRESULT>
次のリクエストにより、/
内のオブジェクトをすべて無効にします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/" HOST="www.company.com:80"/> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/" HOST="www.company.com:80"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="17"/> </OBJECTRESULT> </INVALIDATIONRESULT>
URIPREFIX
属性とURIEXP
属性の関係をさらに理解できるように、次の例を使って説明します。
次の構文は、/cec/cstage/graphic*
ディレクトリ内のsample.gif
ファイルを無効にします。
<ADVANCEDSELECTOR URIPREFIX="/cec/cstage/"
URIEXP="graphic.*/sample\.gif">
</ADVANCEDSELECTOR>
"graphic.*/sample\.gif"
で使用されている「.*」は正規表現の文字で、graphic
で始まるすべてのディレクトリに一致します。sample\.gif
で使用されている「.
」は、文字どおり解釈されるようにエスケープされています。
次の構文は、graphic*
という名前のディレクトリを見つけるようOracle Web Cacheに指示します。
<ADVANCEDSELECTOR URIPREFIX="/cec/cstage/graphic*/" URIEXP="sample\.gif"
HOST="www.company.com:80"/>
</ADVANCEDSELECTOR>
次の構文は、URIに/cec/cstage?ecaction=viewitem
が含まれているオブジェクトを無効にします。
<ADVANCEDSELECTOR URIPREFIX="/cec/" URIEXP="c
stage\?ecaction=viewitem" HOST="www.company.com:80"/>
</ADVANCEDSELECTOR>
「?
」がバックスラッシュでエスケープされている点に注意してください。
/cec/cstage?ecaction=viewitem&zip=94405
や/cec/cstage?ecaction=viewitem&zip=94305
などのURLは一致して無効になりますが、/usa/cec/cstage?ecaction=viewitem&zip=94209
は一致しないので無効になりません。
次のリクエストは、サブストリング/post/
およびhtm
に一致する/
内のすべてのオブジェクトを無効にします。さらに、このリクエストは、無効化の結果とイベント・ログにコメント"remove-htm-under-all-post-dir"
が書き込まれるようにします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/" HOST="www.company.com:80"> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/post/"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="htm"/> </ADVANCEDSELECTOR> <ACTION REMOVALTTL="0" /> <INFO VALUE="remove-htm-under-all-post-dir"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/" HOST="www.company.com:80"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/post/"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="htm"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="52"/> <INFO VALUE="remove-htm-under-all-post-dir"/> </OBJECTRESULT> </INVALIDATIONRESULT>
イベント・ログには、次のメッセージが書き込まれます。
[15/Oct/2008:19:26:46 +0000] [notification 11748] [invalidation] [ecid: 21085932167,0] Invalidation with INFO 'remove-htm-under-all-post-dir has returned with status 'SUCCESS'; number of objects invalidated: '52'.
次のリクエストは、サブストリング/view_building.asp
、および埋込みURLパラメータ値のペアbuilding=8
とfloor=10
に一致する、/corporate/asp/
内のすべてのオブジェクトを無効にします。さらに、このリクエストは、無効化の結果とイベント・ログにコメント"remove-view-building8-10th-floor"
が書き込まれるようにします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/corporate/asp/" HOST="www.company.com:80"> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/view_building.asp"/> <OTHER NAME="QUERYSTRING_PARAMETER" TYPE="SUBSTRING" VALUE="building=8"/> <OTHER NAME="QUERYSTRING_PARAMETER" TYPE="SUBSTRING" VALUE="floor=10"/> </ADVANCEDSELECTOR> <ACTION REMOVALTTL="0" /> <INFO VALUE="remove-view-building8-10th-floor"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/" HOST="www.company.com:80"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/view_building.asp"/> <OTHER NAME="QUERYSTRING_PARAMETER" TYPE="SUBSTRING" VALUE="building=8"/> <OTHER NAME="QUERYSTRING_PARAMETER" TYPE="SUBSTRING" VALUE="floor=10"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="3"/> <INFO VALUE="remove-view-building8-10th-floor"/> </OBJECTRESULT> </INVALIDATIONRESULT>
イベント・ログには、次のメッセージが書き込まれます。
[15/Oct/2008:19:26:46 +0000] [notification 11748] [invalidation] [ecid: 21085932 167,0] Invalidation with INFO 'remove-view-building8-10th-floor' has returned with status 'SUCCESS'; number of objects invalidated: '3'.
QUERYSTRING_PARAMETER
を使用して無効化を最適化する方法は、第7.7.2.2項を参照してください。
次のリクエストにより、次の項目に一致する/pls/publicuser/
内のオブジェクトをすべて無効にします。
サブストリング/pls/publicuser/!MODULE.wwpob_page.show
HTTPリクエスト・ヘッダーx-oracle-cache-user
および値PUBLICUSER
検索キーtemplate_id=33,31345
を含むSurrogate-Key
レスポンス・ヘッダー・フィールド
<?xml version="1.0"?> <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATION VERSION="WCS-1.1"> <OBJECT> <ADVANCEDSELECTOR URIPREFIX="/pls/publicuser/" HOST="www.company.com:80" METHOD="POST"> <OTHER NAME="SEARCHKEY" VALUE="template_id=33,31345"/> <HEADER NAME="x-oracle-cache-user" VALUE="PUBLICUSER"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/pls/publicuser/!MODULE.wwpob_page.show"/> </ADVANCEDSELECTOR> <ACTION REMOVALTTL="0"/> </OBJECT> </INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <OBJECTRESULT> <ADVANCEDSELECTOR URIPREFIX="/pls/publicuser/" HOST="www.company.com:80" METHOD="POST"> <OTHER NAME="SEARCHKEY" VALUE="template_id=33,31345"/> <HEADER NAME="x-oracle-cache-user" VALUE="PUBLICUSER"/> <OTHER NAME="URI" TYPE="SUBSTRING" VALUE="/pls/publicuser/!MODULE.wwpob_page.show"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="3"/> </OBJECTRESULT> </INVALIDATIONRESULT>
Fusion Middleware ControlとOracle Web Cache Managerでは、キャッシュ・クラスタで、すべてのクラスタ・メンバーへの無効化リクエストの伝播を有効または無効にできます。第3.6.5項および第3.7.4項をそれぞれ参照してください。
この設定を優先させるには、SYSTEMINFO
要素の名前/値の属性ペアを使用します。NAME
がWCS_PROPAGATE
に設定され、VALUE
がTRUE
に設定されている場合は、Fusion Middleware ControlまたはOracle Web Cache Managerで設定されている値が無視されます。NAME
がWCS_PROPAGATE
に設定され、VALUE
がFALSE
に設定されている場合は、Fusion Middleware ControlまたはOracle Web Cache Managerで設定されている値が使用されます。
次のリクエストは、ファイル/images/logo.gif
を無効にして、リクエストをすべてのクラスタ・メンバーに伝播します。この例では、3つのクラスタ・メンバーがあります。
<?xml version="1.0"?>
<!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd">
<INVALIDATION VERSION="WCS-1.1">
<SYSTEM>
<SYSTEMINFO NAME="WCS_PROPAGATE" VALUE="TRUE"/>
</SYSTEM>
<OBJECT>
<BASICSELECTOR URI="/web_cache_host_name:port/images/logo.gif"/>
<ACTION/>
</OBJECT>
</INVALIDATION>
無効化レスポンス:
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONRESULTDETAIL SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONRESULTDETAIL VERSION="WCS-1.1"> <INVALIDATIONRESULT VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="Cache_A"/> </SYSTEM> <OBJECTRESULT> <BASICSELECTOR URI="http://www.company.com:80/images/logo.gif"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/> </OBJECTRESULT> </INVALIDATIONRESULT> <INVALIDATIONRESULT VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="Cache_B"/> </SYSTEM> <OBJECTRESULT> <BASICSELECTOR URI="http://www.company.com:80/images/logo.gif"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/> </OBJECTRESULT> </INVALIDATIONRESULT> <INVALIDATIONRESULT VERSION="WCS-1.1"> <SYSTEM> <SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="Cache_C"/> </SYSTEM> <OBJECTRESULT> <BASICSELECTOR URI="http://www.company.com:80/images/logo.gif"/> <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/> </OBJECTRESULT> </INVALIDATIONRESULT> </INVALIDATIONRESULTDETAIL>
次のリクエストは、*.htm
で終わるオブジェクトを最大50個プレビューします。
<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEW SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONPREVIEW VERSION="WCS-1.1" STARTNUM="0" MAXNUM="50"> <ADVANCEDSELECTOR URIPREFIX="http://company-sun/" URIEXP=".*\.htm" > </ADVANCEDSELECTOR> </INVALIDATIONPREVIEW>
無効化レスポンス:
"<?xml version="1.0"?> <!DOCTYPE INVALIDATIONPREVIEWRESULT SYSTEM "internal:///WCSinvalidation.dtd"> <INVALIDATIONPREVIEWRESULT VERSION="WCS-1.1" STATUS="SUCCESS" STARTNUM="0" NUMURLS="2" TOTALNUMURLS="2"> <SYSTEM> <SYSTEMINFO NAME="WCS_CACHE_NAME" VALUE="server-cache"/> </SYSTEM> <SELECTEDURL VALUE="/company-sun:80/index.htm "/> <SELECTEDURL VALUE="/company-sun:80/dtd.htm "/> </INVALIDATIONPREVIEWRESULT>
キャッシュ内のオブジェクトのSurrogate-Key
レスポンス・ヘッダー・フィールドで使用される1つ以上の検索キーに基づいて無効化を実行できます。
Surrogate-Key
レスポンス・ヘッダー・フィールドを使用すると、アプリケーション開発者は特定のレスポンス・オブジェクトの検索キー文字列を識別できます。検索キーは、オブジェクトのURL、CookieまたはHTTPリクエスト・ヘッダーに表示されない場合がある文字列です。検索キーの目的は、無効化に対して別の基準を提供することです。オブジェクトのURLの他に、Oracle Web Cache管理者は、キャッシュ内のSurrogate-Key
レスポンス・ヘッダー・フィールドで使用される1つ以上の検索キーに基づいて無効化を実行できます。
Surrogate-Key
レスポンス・ヘッダー・フィールドは、次の構文をサポートします。
Surrogate-Key: search-key=("key
" "key
" "key
" ...)
使用方法
このヘッダーでsearch-key
が指定されている場合は、少なくとも1つの検索キー値が存在している必要があります。
検索キーの値は引用符("
)で囲む必要があります。
検索キーの値の形式は、"key_value"
または"key_name
=
key_value"
などです。
検索キーの最大許容数は20です。
検索キーの間の空白はオプションです。
検索キーは同じ指定のままにする必要があります。
次の例は、有効なSurrogate-Key
フィールドを示しています。最初の例は1つの検索キーtemplate_id=33,31345
を示し、2番目の例は検索キーtemplate_id=33,31345
およびcategory
を示しています。
Surrogate-Key: search-key=( "template_id=33,31345" ) Surrogate-Key: search-key=("template_id=33,31345" "category")
次の例は、無効なSurrogate-Key
フィールドを示しています。最初の例では検索キー348
に終わりの引用符("
)が記述されていません。2番目の例ではsearch-key
に検索キーの値が指定されていません。
Surrogate-Key: search-key=( "template_id=348 ) Surrogate-Key: search-key=( )
検索キーによる無効化を有効にする方法の詳細は、第7.9項を参照してください。
次の項目では、バンド外無効化を開始する方法について説明します。
HTTP POSTリクエストで無効化リクエストを送信する際に、Oracle Web Cacheのホスト名、無効化リスニング・ポート番号および無効化リクエストを指定します。
たとえば、telnet
を使用している場合は、次の手順で無効化リクエストを送信します。
無効化リスニング・ポートでOracle Web Cacheに接続します。
telnet web_cache_host invalidation_port
次の構文のBase64エンコーディング文字列を使用して、POSTメッセージ・ヘッダーを指定し、invalidator
アカウントを認証します。
POST /x-oracle-cache-invalidate http/1.0|1 Authorization: BASIC <base64 encoding of invalidator:invalidator_password> content-length:#bytes
次に示すのはAuthorization
行の例です。
Authorization: BASIC aW52YWxpZGF0b3I6aW52YWxpZGF0b3I=
この例のaW52YWxpZGF0b3I6aW52YWxpZGF0b3I=
は、エンコードされたinvalidatorユーザー名とパスワード(invalidator:invalidator
)です。
詳細は、次を参照してください。
パスワードのBase64エンコーディングの詳細は、http://www.rfc-editor.org/
を参照してください。
EncodeBase64.java
スクリプトを使用して、invalidator:
invalidator_password
のBase64文字列を生成する方法の詳細は、readme.examples.html
を参照してください。このファイルは次のディレクトリにあります。
(UNIX) ORACLE_HOME/webcache/docs (Windows) ORACLE_HOME\webcache/docs
無効化パスワードの変更の詳細は、第5.2項を参照してください。
改行を1回入力します。
第7.5項に指定されているように、XML構文の無効化リクエストを送信します。
Oracle Web Cache Managerの使いやすいインタフェースにより、キャッシュされたオブジェクトを簡単に無効化できます。このインタフェースを使用する利点は、管理者が複雑なHTTPおよびXMLフォーマットを使用する必要がなく、その結果、エラーが減少するという点です。管理者が指定する必要があるのは、無効にするオブジェクトと、オブジェクトを無効にするタイミングのみです。
Oracle Web Cache Managerを使用すると、1つのオブジェクトに対して基本無効化リクエストを送信するか、複数のオブジェクトに対して拡張無効化リクエストを送信できます。詳細は、次の各項目を参照してください。
注意: 「Basic Content Invalidation」ページまたは「Advanced Content Invalidation」ページから無効化リクエストを発行したときに次のエラーが発生した場合は、サーバー・プロセスcache またはadmin を再起動してください。
無効化ポートのプロパティを変更した場合は、 再起動の方法は、第2.13項を参照してください。 |
Oracle Web Cache Managerを使用して基本無効化リクエストを送信するには、次の手順を実行します。
Oracle Web Cache Managerのナビゲータ・フレームで、「Operations」→「Basic Content Invalidation」を選択します。第2.7.2項を参照してください。
右ペインに「Basic Content Invalidation」ページが表示されます。
「For Cache」リストからキャッシュを1つ選択します(キャッシュ・クラスタを構成済の場合にかぎり、リストには複数のキャッシュが表示されます)。無効化を伝播するようにクラスタが構成されている場合は、選択したキャッシュは、無効化コーディネータに指定されます。この無効化コーディネータによって、無効化リクエストは他のキャッシュ・クラスタ・メンバーに伝播されます。クラスタが無効化を伝播するように構成されていない場合、選択できるキャッシュはオブジェクトの無効化元キャッシュのみです)。
「Search Criteria」セクションで、次の検索基準を選択します。
オプションで、無効にするオブジェクトのリストをプレビューして、削除するオブジェクトの選択が誤っていないことを確認できます。オブジェクトのリストをプレビューするには、次の手順を実行します。
「Action」セクションで、無効化基準に一致するオブジェクトの「Preview」リストを選択します。
「Object Range」を指定します。
From: リストされる最初のオブジェクトを表す番号を入力します。Oracle Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。
To: リストされるオブジェクトの数を入力します。
無効化基準を満たすオブジェクトが指定した数よりも少ない場合、Oracle Web Cacheでは、基準を満たすオブジェクトのみのURLがリストされます。
無効化基準を満たすオブジェクトが指定した数よりも多い場合は、Oracle Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なる「From」数を含む別のプレビュー・リクエストを送信します。
「Submit」をクリックします。
無効化基準を満たすオブジェクトが「Invalidation Preview Results」メッセージ・ボックスにリスト表示されます。Oracle Web Cache Managerでは、有効なオブジェクトのみがリストされます。キャッシュには、期限切れまたは無効にされたオブジェクトが含まれることもありますが、それらはリストされません。
無効にするオブジェクトがリストされている場合は、次の手順に進みます。リストされていない場合は、無効化基準を変更してもう一度プレビューします。
「Action」セクションで、いずれかのオプションを選択して、無効になったオブジェクトの処理方法を指定します。
Remove immediately: Oracle Web Cacheで、オブジェクトを無効にしてすぐに削除します。キャッシュがそのオブジェクトに対する次のリクエストを受信すると、オリジナル・サーバーからオブジェクトが更新されます。
Remove objects no later than <number> <time> after submission: Oracle Web Cacheで、オブジェクトを無効にし、オリジナル・サーバーの許容量に基づいて更新を行います。オブジェクトがキャッシュ内に存続可能な最大期間を入力します。このオプションを選択すると、Oracle Web Cacheではヒューリスティックが適用され、これ以上ドキュメントを送信しない最適なタイミングが決定されます。
「Submit」をクリックします。
Oracle Web Cacheにより、無効化リクエストが処理され、無効化ステータスが表示されている「Cache Cleanup Result」ダイアログ・ボックスが返されます。次の図はこのダイアログ・ボックスを示しています。
キャッシュ・クラスタ環境で「任意のクラスタ・メンバーに送信された無効化リクエストは、すべてのクラスタ・メンバーに伝播されます。」が有効になっている場合、Oracle Web Cacheは、無効化コーディネータとして動作する1つのクラスタ・メンバーに無効化リクエストを送信します。コーディネータは、無効化リクエストを他のクラスタ・メンバーに伝播します。すべてのクラスタ・メンバーに対する無効化が完了すると、Oracle Web Cacheは「Cache Cleanup」ボックスを返します。このボックスには、クラスタ・メンバーごとに、キャッシュ名、無効化リクエストのステータスおよび無効にされたオブジェクト数がリストされます。
無効化伝播を有効にする方法は、第3.6.5項を参照してください。
Oracle Web Cache Managerを使用して拡張無効化リクエストを送信するには、次の手順を実行します。
ナビゲータ・フレームで、「Operations」→「Advanced Content Invalidation」を選択します。
右ペインに「Advanced Content Invalidation」ページが表示されます。
「For Cache」リストからキャッシュを1つ選択します(キャッシュ・クラスタを構成済の場合にかぎり、リストには複数のキャッシュが表示されます)。
「Search Criteria」セクションで、次の検索基準を選択します。
URL Path Prefix: 必須。無効にするオブジェクトのパス接頭辞を指定します。パス接頭辞は、http|https://
host_name
:
port
/
path
/
filename
または"/
"で始めて、"/
"で終わる必要があります。
host_name
:
port
はオプションです。「Host Name」フィールドで、サイトのホスト名とポートも指定できます。
接頭辞は、正規表現の予約語を含め、文字どおり解釈されます。これらの文字には、ピリオド(.
)、疑問符(?
)、アスタリスク(*
)、大カッコ([]
)、中カッコ({}
)、カレット(^
)、ドル記号($
)およびバックスラッシュ(\
)があります。
Host Name: オプション。サイトのホスト名とポート番号(host_name
:
port
)を指定します。HTTPのデフォルト・ポートはポート80です。
このフィールドは、「URL Path Prefix」にhttp|https://
host_name
:
port
/
path
/
filename
が含まれていない場合は必須です。
HTTP Method: オプション。無効にするオブジェクトのHTTPリクエスト・メソッド(GETまたはPOST)を選択します。デフォルト値はGETです。
URL Expression: オプション。「URL Path Prefix」内に存在する無効にするオブジェクトのURLを指定します。次に、文字列完全一致の場合は「substring」を、正規表現一致の場合は「regular expression」を選択して一致方法を指定します。
値が入力されなかった場合、「URL Path Prefix」内のすべてのオブジェクトが一致します。
POST Body Expression: オプション。「HTTP Method」に対して「POST」を選択した場合は、無効にするオブジェクトのHTTP POST本体を入力し、サブストリング一致の場合は「substring」を、正規表現一致の場合は「regular expression」を選択して、一致方法を指定します。
オプションで、「Cookie/Header Information」セクションで、複数バージョンのオブジェクトに対する検索基準にCookie名とHTTPリクエスト・ヘッダーのどちらを使用するかを指定します。
リストから、「Cookie」または「Header」を選択します。
次の情報を入力します。
Cookie: 「Name」フィールドに、無効にする複数バージョンのオブジェクトで使用されているCookie名を入力し、その値を「Value」フィールドに入力します。
注意: 複数のバージョンのオブジェクトとセッション・キャッシュ・ポリシーの両方に対して間違って指定されたCookieを指定する場合、無効化はこのCookieの発生に基づきます。過度の無効化を回避するには、複数バージョンのオブジェクト(「Rules for Caching, Personalization, and Compression」→「Cookie Definitions」)およびセッション・キャッシュ・ポリシー(「Rules for Caching, Personalization, and Compression」→「Session Definitions」)に対して異なるCookieを構成します。 |
Header: 無効にするオブジェクトで使用されているHTTPリクエスト・ヘッダーを「Name」フィールドに入力し、その値を「Value」フィールドに入力します。
複数バージョンのオブジェクトに対するキャッシュ・ルールの作成方法は、第6.5.1項を参照してください。
オプションで、「URL Parameters」セクションの「Name」フィールドに、無効にするオブジェクトで使用されている埋込みURLパラメータの名前を入力し、その値を「Value」フィールドに入力します。次に、「exact strings」または「regular expression」のいずれかを選択して一致方法を指定します。
オプションとして、「Search Keys」セクションで、無効にするオブジェクトで使用されている「Surrogate-Key
」レスポンス・ヘッダー・フィールドの検索キー名を「Key」フィールドに入力します。詳細は、第7.6項および第7.9項を参照してください。
オプションで、無効にするオブジェクトのリストをプレビューして、削除するオブジェクトの選択が誤っていないことを確認できます。オブジェクトのリストをプレビューするには、次の手順を実行します。
「Action」セクションで、「Preview list of objects to be removed」を選択します。
「Object Range」を指定します。
From: リストされる最初のオブジェクトを表す番号を入力します。Oracle Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。
To: リストされるオブジェクトの数を入力します。
無効化基準を満たすオブジェクトが指定した数よりも少ない場合、Oracle Web Cacheでは、基準を満たすオブジェクトのみのURLがリストされます。
無効化基準を満たすオブジェクトが指定した数よりも多い場合は、Oracle Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なる「From」数を含む別のプレビュー・リクエストを送信します。
「Submit」をクリックします。
無効化基準を満たすオブジェクトが「Invalidation Preview Results」メッセージ・ボックスにリスト表示されます。Oracle Web Cache Managerでは、有効なオブジェクトのみがリストされます。キャッシュには、期限切れまたは無効にされたオブジェクトが含まれることもありますが、それらはリストされません。
無効にするオブジェクトがリストされている場合は、次の手順に進みます。リストされていない場合は、無効化基準を変更してもう一度プレビューします。
「Action」セクションで、いずれかのオプションを選択して、無効になったオブジェクトの処理方法を指定します。
Remove immediately: Oracle Web Cacheで、オブジェクトを無効にしてすぐに削除します。キャッシュがそのオブジェクトに対する次のリクエストを受信すると、オリジナル・サーバーからオブジェクトが更新されます。
Remove objects no later than <number> <time> after submission: Oracle Web Cacheで、オブジェクトを無効にし、オリジナル・サーバーの許容量に基づいて更新を行います。オブジェクトがキャッシュ内に存続可能な最大期間を入力します。
「Submit」をクリックします。
Oracle Web Cacheにより、無効化リクエストが処理され、無効化ステータスが表示されている「Cache Cleanup」ダイアログ・ボックスが返されます。
注意: 接頭辞ベースの無効化の場合、Oracle Web Cacheが複雑なディレクトリ構造内を横断する必要があるため、無効化に多少時間がかかる場合があります。したがって、「Cache Cleanup Result」ダイアログ・ボックスが表示されるまで、「Submit」を再びクリックしないでください。無効化リクエストのキューを作成すると、Oracle Web Cacheのパフォーマンスが低下します。 |
無効化リクエストは、Webサイトのアプリケーション・ロジックから、またはWebページの設計に使用するコンテンツ管理アプリケーションから送信することも可能です。
Oracle Web Cacheには、次の実装可能なApplication Program Interface(API)が含まれています。
これらのAPIは次のディレクトリにあります。
(UNIX) ORACLE_HOME/webcache/toolkit (Windows) ORACLE_HOME\webcache/toolkit
これらのAPIの詳細は、次のディレクトリにあるreadme.examples.html
を参照してください。
(UNIX) ORACLE_HOME/webcache/docs (Windows) ORACLE_HOME\webcache/docs
データベース・トリガーはデータベースに格納されているプロシージャで、表への行の追加など、特定の状況が発生した場合に実行されます。トリガーを使用して無効化リクエストを送信することが可能です。データベース・トリガーによって無効化リクエストを送信するには、オラクル社が提供するUTL_TCP
パッケージを使用します。
詳細は、OracleのPL/SQLに関するドキュメントを参照してください。
多くのWebサイトで、スクリプトを使用して、新しいコンテンツがデータベースやファイル・システムにアップロードされています。たとえば、大型のオンライン書店の場合、1日1回、PERLスクリプトを実行し、新刊の追加や価格変更をカタログ・データベースに一括してロードすることがあります。その書店では、価格変更および在庫状況を、現在Oracle Web Cacheにキャッシュされているアイテム・ビューおよび検索結果にすぐに反映させるとします。これを実行するには、Perlスクリプトを変更して、一括ロード処理の完了後にすべてのカタログ・ビューおよび検索結果を無効にする無効化リクエストをスクリプトからキャッシュに送信するようにすることが可能です(無効化リクエストには、データ変更の影響を受ける検索ページまたはアイテム・ビューをすべて個別にリストする必要はありません)。Oracle Web Cacheのパフォーマンス保証機能により、管理者は一度に大量のコンテンツを無効にすることが可能で、コンテンツの一部しか変更されていない場合にカタログのコンテンツすべてを無効にしてもパフォーマンスは低下しません。
Oracle Web Cacheの機能の1つであるレスポンス・ヘッダーによる無効化によって、オリジナル・サーバーは、キャッシュされたコンテンツをHTTPレスポンス・ヘッダーを通じて無効化できます。
レスポンス・ヘッダー・フィールドは次の構文をサポートします。
Oracle-WebCache-Invalidate: ([SYNCHRONOUS=ON|OFF,] (URI="value" | ( URI_DIR="value" [(;S_KEY="value")*] ) | ( S_KEY="value" [(;S_KEY="value")*] )) ([,SYNCHRONOUS=ON|OFF,] URI="value" | ( URI_DIR="value" [(;S_KEY="value")*] ) | ( S_KEY="value" [(;S_KEY="value")*] ))* [,SYNCHRONOUS=ON|OFF]
表7-5に、レスポンス・ヘッダーによる無効化の制御ディレクティブを示します。
表7-5 Oracle-WebCache-Invalidateの制御ディレクティブ
制御ディレクティブ | 説明 |
---|---|
|
オリジナル・サーバーが無効化レスポンス・ヘッダーを任意のリクエストに追加する場合、そのリクエストを送信したクライアントは、無効化が完了するまで待機する必要はありません。この場合、オリジナル・サーバーは、無効化を処理する前にレスポンスを返すようOracle Web Cacheに指示します( |
|
無効化の指定でURIオプション・ディレクティブを使用すると、Oracle Web Cacheは指定されたURIを持つエントリを無効化できます。これは、基本無効化に相当します。 |
|
無効化の指定でURI_DIRオプション・ディレクティブを使用すると、Oracle Web Cacheは指定されたURIをディレクトリと解釈し、指定されたディレクトリ内のすべてのエントリを無効化できます。これは、小規模で使用頻度の高い拡張無効化のサブセットであるURI接頭辞無効化に相当します。 URI_DIRオプション・ディレクティブと現在のURI接頭辞無効化との整合性を確保するために、ディレクトリURIの文字列はスラッシュ(/)で終わる必要があります。 |
|
無効化の指定で
|
結合された複数ディレクティブ |
無効化レスポンス・ヘッダーには、URIディレクトリの後に1つ以上の検索キーを続けることもできます。その場合は、セミコロン(;)デリミタで各ディレクティブを区切ります。この場合、Oracle Web Cacheエントリはすべてのディレクティブに一致していないと無効化の対象となりません。 |
複数の無効化ディレクティブ |
無効化レスポンス・ヘッダーに複数の無効化ディレクティブが含まれていて、連続する無効化ディレクティブのペアがそれぞれカンマで区切られている場合、Oracle Web Cacheエントリは無効化ディレクティブの少なくとも1つと一致していないと無効化の対象となりません。つまり、Oracle Web Cacheは、カンマで区切られた個々の無効化ディレクティブを独立した無効化操作として扱います。 |
カンマとセミコロンの混在 |
無効化レスポンス・ヘッダーにカンマとセミコロンの両方のセパレータが含まれている場合は、セミコロンが優先されます。したがって、セミコロンで区切られた一連のディレクティブが調べられた後に、カンマで区切られた一連のディレクティブが調べられます。 |
複数の無効化レスポンス・ヘッダー |
オリジナル・サーバーは、Oracle Web Cacheへのレスポンスに複数の無効化レスポンス・ヘッダーを格納できます。この場合、Oracle Web Cacheエントリは1つのヘッダーに一致していれば無効化の対象となります。つまり、同一レスポンス内の複数の無効化レスポンス・ヘッダーのコンテンツは、カンマで結合された1つのレスポンス・ヘッダーの一部として扱われます。 レスポンスに無効な無効化レスポンス・ヘッダーが1つでも含まれていると、その他の無効化レスポンス・ヘッダーが有効であっても、無効化は行われません。 |
使用方法
無効化レスポンス・ヘッダーは、ヘッダー名Oracle-WebCache-Invalidate
、コロン(:)およびカンマ(,)で区切った無効化ディレクティブの連続ペアからなる1つ以上の無効化ディレクティブで構成されます。ディレクティブの前または後に、オプションの同期ディレクティブを含めることもできます。
同期ディレクティブは、キーワードSYNCHRONOUS
、等記号(=)およびキーワードON
またはOFF
で構成されます。
無効化は、URI指定または複数ディレクティブ指定で構成されます。
URIディレクティブは、URIオプション・ディレクティブ、等記号(=)および引用符付き文字列で構成されます。
URIオプション・ディレクティブは、キーワードURI
で構成されます。
複数ディレクティブ指定には、次の2つの形式があります。
明示的ディレクトリ
暗黙的ディレクトリ
明示的ディレクトリの形式は、URIディレクトリのディレクティブおよび連続する検索キーがセミコロン(;)デリミタで区切られているゼロ個以上の検索キー・ディレクティブで構成されます。
暗黙的ディレクトリの形式は、連続する検索キーがセミコロン(;)デリミタで区切られている1つ以上の検索キーで構成されます。
URIディレクトリは、URIディレクトリ・オプション・ディレクティブ、等記号(=)および引用符付き文字列で構成されます。
URIディレクトリ・オプション・ディレクティブは、キーワードURI_DIR
で構成されます。
検索キーは、検索キー・オプション・ディレクティブ、等記号(=)および引用符付き文字列で構成されます。
検索キー・オプション・ディレクティブは、キーワードS_KEY
で構成されます。
引用符付き文字列には、URIまたは検索キーが含まれています。URIおよび検索キー文字列の大/小文字区別ルールと使用可能なキャラクタ・セットは、他の無効化機能と同じです。
完全に修飾されたURIの場合、有効なスキームはhttp://
またはhttps://
と有効なホスト名(例: www.host1.com
)で構成されます。
ポート番号が指定されている場合は、ポート番号も有効である必要があります。URIにポート番号が含まれていない場合、Oracle Web Cacheはデフォルトのポート番号としてHTTPに80、HTTPSに443を想定します。暗黙的URIディレクトリの場合、Oracle Web Cacheは、元のリクエストのサイトに基づいてディレクトリを決定します。Oracle Web Cacheでは、決定されたサイト定義が元のリクエストに関連するサイト定義と一致することを確認します。つまり、安全対策のために、Oracle Web Cacheではサイト間の無効化が許可されません。
ワイルドカードが使用されているサイトからサーバーへのマッピングでは、関連するサイト定義がないリクエストが発生する可能性があります。この場合は保守主義の原則が適用され、Oracle Web Cacheではレスポンス・ヘッダーによる無効化が許可されません。
次の各項では、無効化レスポンス・ヘッダーの例を示します。
これらの例は、次のアドレスをWebサイトに持つHarry's Hardwareストア向けの架空のWebアプリケーションに基づいています。
http://www.HarrysHardware.com
このサイトでは、Harryが販売しているすべての人気商品の説明(小売価格を含む)を公開しています。Harryでは、自社のサイトをホストしているWebサーバーの前面にOracle Web Cacheを配置してオンライン顧客へのレスポンス時間を改善していますが、オンライン顧客に最新のコンテンツが表示されるようにするために、商品の説明と価格を更新するたびに関連するOracle Web Cacheエントリを無効にする必要があります。次の各例では、Harryで確認された様々なシナリオでレスポンス・ヘッダーによる無効化を使用する方法を示します。
この項の内容は次のとおりです。
Harryで特に人気のある商品はThorハンマーです。これに対応する説明ページのURIは次のとおりです。
http://www.harryshardware.com/products/tools/hammers/Thor.html
このThorハンマーを特売する場合は、Webアプリケーションで、完全に指定されたURIを含む無効化レスポンス・ヘッダーを使用して該当するWeb Cacheエントリを無効化できます。
Oracle-WebCache-Invalidate: URI="http://www.harryshardware.com/products/tools/hammers/Thor.html"
元のリクエストにホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIを含む無効化レスポンス・ヘッダーをアプリケーションで返すことができます。
Oracle-WebCache-Invalidate: URI="/products/tools/hammers/Thor.html"
店舗のハンマーをすべて特売する場合は、Webアプリケーションで、完全に指定されたURIディレクトリを含む無効化レスポンス・ヘッダーを使用して、ハンマーに関するすべてのWeb Cacheエントリを無効化します。
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/tools/hammers/"
元のリクエストでホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIディレクトリを含む無効化レスポンス・ヘッダーを返すことができます。
Oracle-WebCache-Invalidate: URI_DIR="/products/tools/hammers/"
ここまでの例では、同期ディレクティブを指定していないために、Oracle Web Cacheがクライアントにレスポンスを返す前にデフォルトで無効化を完了していました。
第7.8.1.2項の例を非同期に進める場合、つまり、Oracle Web Cacheが無効化の完了を待ってからレスポンスを返す必要がない場合は、Webアプリケーションで次のような無効化レスポンス・ヘッダーを送信できます。
Oracle-WebCache-Invalidate: SYNCHRONOUS=OFF, URI_DIR="http://www.harryshardware.com/products/tools/hammers/"
このレスポンス・ヘッダーには、完全に修飾されたURIディレクトリが含まれていることに注意してください。元のリクエストでホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIディレクトリを含む無効化レスポンス・ヘッダーを返すことができます。
Oracle-WebCache-Invalidate: SYNCHRONOUS=OFF, URI_DIR="/products/tools/hammers/"
Harryでは、TrueSawのこぎりのうち、手引きのこぎりを除いたすべての動力のこぎり(丸のこやチェーンソーなど)の価格を下げようとしています。Webアプリケーションでは、次のような無効化レスポンス・ヘッダーを使用して、必要なエントリをすべて無効化できます。
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/tools/saws/";S_KEY="PowerTool"; S_KEY="TrueSaw"
S_KEY
ディレクティブの追加によって、TrueSawの動力のこぎりのみが無効化されます。
無効化レスポンス・ヘッダーにセミコロンで区切った複数のディレクティブが含まれている場合は、Oracle Web Cacheエントリがすべてのディレクティブと一致していないと無効化が行われません。
この例のレスポンス・ヘッダーには、完全に修飾されたURIディレクトリが含まれていることにも注意してください。元のリクエストでホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIディレクトリを含む無効化レスポンス・ヘッダーを返すことができます。
Oracle-WebCache-Invalidate: URI_DIR="/products/tools/saws/";S_KEY="PowerTool";S_KEY="TrueSaw"
Harryでは、大型家電製品(食器洗い機や冷蔵庫など)を販売する新たなサイトを立ち上げようとしています。このサイトの定義には、パス接頭辞/products/appliances
を使用します。表7-6に、このWebサイトのサイト定義を示します。
表7-6 Webサイトの定義
スキーム | ホスト | ポート番号 | パス接頭辞 |
---|---|---|---|
|
|
|
|
|
|
|
/ |
最初のサイトは大型家電製品のみに関連し、2番目のサイトはHarryの店舗にあるその他すべての製品に関連しています。
さらにHarryでは、KeepCold冷蔵庫の全製品の価格を変更し、受信リクエストのサイト定義を家電製品サイトに関連させようとしています。このサイトのスキームはhttp、ホスト名はwww.harryshardware.com
、ポート(オプション)は80、パス接頭辞は/products/appliances
です。Webアプリケーションでは、次のような無効化レスポンス・ヘッダーを使用して、必要なエントリをすべて無効化できます。
S_KEY="KeepCold";S_KEY="Refrigerators"
無効化レスポンス・ヘッダーには検索キー・ディレクティブのみが含まれています。URIディレクトリ・ディレクティブは含まれていない点に注意してください。この場合、Oracle Web Cacheは、受信リクエストに関連するサイト定義から暗黙的URIディレクトリを作成します。この場合の暗黙的ディレクトリは、次のとおりです。
http://www.harryshardware.com/products/appliances/
前述のように、複数のディレクティブがセミコロンで区切られている場合は、Oracle Web Cacheエントリがすべてのディレクティブに一致していないと無効化が行われません。
完全に修飾された明示的URIディレクトリによる無効化レスポンス・ヘッダーは、次のようになります。
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/appliances/";S_KEY="KeepCold"; S_KEY="Refrigerators"
パスのみの明示的URIディレクトリによる無効化レスポンス・ヘッダーは、次のようになります。
Oracle-WebCache-Invalidate: URI_DIR="/products/appliances/";S_KEY="PowerTool"; S_KEY="TrueSaw"
Harryでは、ドリルとレンチの在庫リスト全体を更新しようとしています。Webアプリケーションでは、次の無効化レスポンス・ヘッダーを含んだレスポンスを使用して、必要なエントリをすべて無効化できます。
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/tools/drills/", URI_DIR="http://www.harryshardware.com/products/tools/wrenches/"
無効化レスポンス・ヘッダーにカンマで区切った連続する2つの無効化指定が含まれている場合は、Oracle Web Cacheエントリが1つの無効化指定に一致していれば無効化が行われます。
この例のレスポンス・ヘッダーには、完全に修飾されたURIディレクトリが含まれています。元のリクエストにホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIディレクトリを含む無効化レスポンス・ヘッダーをアプリケーションで返すことができます。
Oracle-WebCache-Invalidate: URI_DIR="/products/tools/drills/", URI_DIR="/products/tools/wrenches/"
Harryでは、ThorハンマーとすべてのTrueSaw動力のこぎりを特売しようとしています。Webアプリケーションでは、次の無効化レスポンス・ヘッダーを含んだレスポンスを使用して、必要なエントリをすべて無効化できます。
Oracle-WebCache-Invalidate: URI="http://www.harryshardware.com/products/tools/hammers/Thor.html",
URI_DIR="http://www.harryshardware.com/products/tools/saws/";S_KEY="PowerTools";S_KEY="TrueSaw"
カンマとセミコロンの両方がセパレータとして使用されていることに注意してください。この例で、最初のディレクティブはThorハンマーのURIのみで構成されています。2番目のディレクティブは、のこぎりのURIディレクトリおよび、電動工具用(PowerTools)の検索キーとTrueSaw工具の検索キーという3つの無効化指定で構成されています。セミコロンはカンマよりも優先されます。
この例のレスポンス・ヘッダーには、完全に修飾されたURIと、完全に修飾されたURIディレクトリが含まれていることにも注意してください。
元のリクエストにホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIとパスのみのURIディレクトリを含む無効化レスポンス・ヘッダーをアプリケーションで返すことができます。
Oracle-WebCache-Invalidate: URI="/products/tools/hammers/Thor.html"
URI_DIR="/products/tools/saws/";S_KEY="PowerTools";S_KEY="TrueSaw"
第7.8.1.6項の例に戻り、Webアプリケーションで、2つの無効化レスポンス・ヘッダーを含むレスポンスを使用して必要なエントリをすべて無効にすることもできます。
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/tools/drills/"
Oracle-WebCache-Invalidate: URI_DIR="http://www.harryshardware.com/products/tools/wrenches/"
同じレスポンス内の2つの異なる無効化レスポンス・ヘッダーのディレクティブは、1つのレスポンス・ヘッダー内の別個のディレクティブとして扱われます。つまり、これらは、1つの無効化レスポンス・ヘッダー内でカンマで区切られたものとして扱われます。このレスポンス・ヘッダーには、完全に修飾されたURIディレクトリが含まれていることにも注意してください。元のリクエストにホスト名(www.harryshardware.com
)が明示的に指定されている場合は、パスのみのURIディレクトリを含む無効化レスポンス・ヘッダーをアプリケーションで返すことができます。
Oracle-WebCache-Invalidate: URI_DIR="/products/tools/drills/"
Oracle-WebCache-Invalidate: URI_DIR="/products/tools/wrenches/"
この機能を有効化するには、次の手順を実行します。
次のように、Surrogate-Key
レスポンス・ヘッダー・フィールドを使用してHTTPレスポンスを構成します。
Surrogate-Key: search-key=("key" "key" "key" ...)
Surrogate-Key
レスポンス・ヘッダー・フィールドの詳細は、第7.6項を参照してください。
デフォルトでは、Oracle Web Cacheは最大20個の検索キーをサポートしています。制限数を増加するには、次の手順を実行します。
テキスト・エディタでwebcache.xml
ファイルを開きます。
SEARCHKEYOPTIONS
要素内でMAXSEARCHKEYSPERDOC
属性を探します。
<GLOBALCACHINGRULES> <SEARCHKEYOPTIONS ENABLE="YES" MAXSEARCHKEYSPERDOC="20"/> <ERRORPAGES>
値を大きい値に変更します。
次の例では、検索キーの制限を35に設定します。
<GLOBALCACHINGRULES> <SEARCHKEYOPTIONS ENABLE="YES" MAXSEARCHKEYSPERDOC="35"/> <ERRORPAGES>
webcache.xml
を保存します。
次の方法を使用して、無効化リクエストに検索キーを指定します。
この項では、次の項目について説明します。
キャッシュ内のオブジェクトを無効化するには、無効化リスニング・ポートを介してinvalidator
アカウントからHTTP POSTリクエストを送信します。
invalidator
アカウントは、無効化リクエストの送信を許可された管理者です。パスワード・セキュリティの構成の詳細は、第5.2項を参照してください。
Oracle Web Cacheサーバー間での無効化メッセージの伝播は、次のような配置において行われます。
複数のOracle Web Cacheサーバーからなるキャッシュ・クラスタ
あるOracle Web Cacheサーバーが別のOracle Web Cacheサーバーのオリジナル・サーバーとして動作するキャッシュ階層
キャッシュ・クラスタでは、管理者が無効化メッセージをすべてのキャッシュ・クラスタ・メンバーに伝播するか、キャッシュ・クラスタの各メンバーに個別に送信するかを選択できます。
Oracle Web Cacheが無効化メッセージを伝播すると、無効化リクエストを受信したキャッシュは、そのリクエストの無効化コーディネータとして動作します。コーディネータは無効化メッセージを他のクラスタ・メンバーに伝播します。そして、コーディネータはすべてのクラスタ・メンバーからレスポンスが返されるのを待ちます。伝播が完了すると、コーディネータは各クラスタ・メンバーのメンバー名、無効化リクエストのステータス、無効になったオブジェクトの数を示すメッセージを送信元に返します。
通信できないクラスタ・メンバーがある場合には、Oracle Web Cacheからエラー・メッセージが返され、無効化メッセージは伝播されません。
キャッシュ・クラスタのアップグレード時には、キャッシュ・クラスタ・メンバーを1つずつアップグレードします。キャッシュはリクエストに応答し続けます。ただし、その他のクラスタ・メンバーの構成のバージョンが異なるため、キャッシュは、異なるバージョンで動作しているキャッシュ・クラスタ・メンバーには無効化メッセージを転送しません。かわりに、リクエストされたオブジェクトがこのキャッシュか、構成のバージョンが同じクラスタ・メンバーによってキャッシュされない場合、Oracle Web Cacheはリクエストをオリジナル・サーバーに転送します。
キャッシュ・クラスタ・メンバーが実行しているOracle Web Cacheのリリースが異なっても、オブジェクトを無効化し、無効化をその他のクラスタ・メンバーに伝播できますが、無効化メッセージは旧リリースのOracle Web Cacheで動作しているキャッシュから送信される必要があります。
Oracle Web Cacheの11gリリース1(11.1.1)へのアップグレード、およびキャッシュ・クラスタ・メンバーのアップグレードの詳細は、『Oracle Fusion Middlewareアップグレード・プランニング・ガイド』を参照してください。
Oracle Web Cacheサーバーが階層化された構成(キャッシュ階層)をとっている場合、コンテンツが複数のサーバーでキャッシュされることもあります。
図7-2に分散キャッシュ階層を示します。この例では、集中キャッシュが米国のオフィスに配置され、リモート・キャッシュが日本のオフィスに配置されています。集中キャッシュはWebアプリケーション・サーバーからコンテンツを格納し、リモート・キャッシュは集中キャッシュからコンテンツを格納します。すなわち、集中キャッシュは、日本のリモート・キャッシュに対してオリジナル・サーバーとして動作します。
集中キャッシュは、リモートまたはサブスクライバOracle Web Cacheサーバーのinvalidator
アカウント名とパスワードを使用します。無効化リクエストは、無効にするオブジェクトおよびオブジェクトのサイト・ホスト名を指定します。サイト・ホスト名は、無効化リクエストの伝播元であるキャッシュのIPアドレスと比較されます。一致した場合、キャッシュは無効化リクエストを処理します。一致しなかった場合、リクエストは拒否されます。
無効化メッセージを自動伝播する場合、Oracle Web Cacheは、階層登録プロセスにおいて、集中キャッシュとリモート・キャッシュの間のページ・リクエストの中でエンコードされたinvalidator
パスワードを渡します。このHTTP通信は、ネットワーク傍受を受ける可能性が高くなります。保護されていない、セキュアでないネットワークの場合は、HTTPSポートを次のように構成してください。
デフォルトのHTTPポートを無効化し、かわりに集中キャッシュ用のHTTPSポートを構成します。第5.4.2項を参照してください。
無効化用のデフォルトのHTTPポートを無効にし、かわりにリモート・キャッシュ用のHTTPSポートを構成します。第5.5.1項を参照してください。
コンテンツのリフレッシュのために、無効化メッセージが集中キャッシュに送信されると、一貫性を維持するために、無効化メッセージが集中キャッシュから日本のリモート・キャッシュに自動的に伝播されます。
集中キャッシュが該当コンテンツのみを無効にするように、リモート・キャッシュは、無効化メッセージの伝播元である集中キャッシュのIPアドレスを使用して、無効化メッセージに指定されているサイト・ホスト名を確認します。一致した場合、リモート・キャッシュは無効化リクエストを処理します。一致しなかった場合、リクエストは拒否されます。集中キャッシュおよびリモート・キャッシュのサイト・ホスト名は一意になるように構成し、不一致が発生しないようにする必要があります。
キャッシュ階層の構成方法は、第10.2項を参照してください。