ヘッダーをスキップ

Oracle Application Server Web Cache 管理者ガイド
10gリリース2(10.1.2)
B15770-04
目次
目次
索引
索引

戻る 次へ

13
無効化リクエストの送信

この章では、OracleAS Web Cacheに無効化リクエストを送信する方法について説明します。

この章の項目は次のとおりです。

外部ソースからの無効化

この項では、外部ソースから無効化リクエストを送信する方法を理解するために次の各項目について説明します。

invalidatorおよびadministratorアカウントのロール

キャッシュ内のオブジェクトを無効にするには、invalidatorias_adminまたはadministratorアカウントから、無効化リスニング・ポートを介してHTTPのPOSTリクエストを送信します。

invalidatorアカウントは、無効化リクエストの送信を許可された管理者です。OracleAS Web Cacheサーバーのキャッシュ階層では、集中キャッシュまたはプロバイダ・キャッシュが、OracleAS Web Cacheのリモート・サーバーまたはサブスクライバ・サーバーのinvalidatorアカウント名およびパスワードを使用します。無効化リクエストは、無効にするオブジェクトおよびオブジェクトのサイト・ホスト名を指定します。サイト・ホスト名は、無効化リクエストの伝播元であるキャッシュのIPアドレスと比較されます。一致した場合、キャッシュは無効化リクエストを処理します。一致しなかった場合、リクエストは拒否されます。

ias_adminまたはadministratorアカウントは、通常、構成リクエストおよび管理リクエストをOracleAS Web Cacheに送信しますが、無効化リクエストの送信にも使用できます。ias_adminまたはadministratorアカウントは、invalidatorアカウントより多くの権限を許可されているため、ias_adminまたはadministratorアカウントが送信する無効化リクエストには、サイト・ホスト名の指定は不要です。Application Server Controlコンソールから送信する無効化リクエストにはadministratorアカウントを使用し、OracleAS Web Cache Managerから送信する無効化リクエストにはadministratorアカウントを使用します。

無効化メッセージを自動伝播する場合、OracleAS Web Cacheは、集中キャッシュとリモート・キャッシュまたはプロバイダ・キャッシュとサブスクライバ・キャッシュとの間のページ・リクエストの中で、階層登録プロセスの間に、エンコードされたinvalidatorパスワードを渡します。このHTTP通信は、ネットワーク傍受を受ける可能性が高くなります。保護されていない、セキュアでないネットワークの場合は、HTTPSポートを次のように構成してください。

無効化リクエストの書式

HTTP POSTリクエストは、eXtensible Markup Language構文で作成されます。XMLリクエストのボディの内容により、無効にするURLがキャッシュに指定されます。

無効化メッセージの伝播

OracleAS Web Cacheサーバーから別サーバーへの無効化メッセージの伝播は次のような配置において行われます。

階層内での無効化処理

OracleAS Web Cacheサーバーが階層化された構成をとっている場合、コンテンツが複数のサーバーでキャッシュされることもあります。

図13-1に、分散キャッシュ階層を示します。この例では、集中キャッシュが米国のオフィスに配置され、リモート・キャッシュが日本のオフィスに配置されています。集中キャッシュはWebアプリケーション・サーバーからコンテンツを格納し、リモート・キャッシュは集中キャッシュからコンテンツを格納します。すなわち、集中キャッシュは、日本のリモート・キャッシュに対してオリジナル・サーバーとして動作します。

コンテンツのリフレッシュのために、無効化メッセージが集中キャッシュに送信されると、一貫性を維持するために、無効化メッセージが集中キャッシュから日本のリモート・キャッシュに自動的に伝播されます。

図13-1    構成例1: 分散キャッシュ階層内でのコンテンツの無効化


画像の説明

図13-2に、ESIキャッシュ階層を示します。サブスクライバ・キャッシュEdge Side Includesアセンブリを実行します。プロバイダ・キャッシュが、ESIプロバイダ・サイトwww.providersite1.comおよびwww.providersite2.com用のESIフラグメントをローカルにキャッシュします。ESIページ・アセンブリの間、サブスクライバ・キャッシュがESIフラグメント用のプロバイダ・キャッシュに接続します。

図13-2    構成例2: ESIキャッシュ階層内でのコンテンツの無効化


画像の説明

コンテンツのリフレッシュのために、無効化メッセージが集中(プロバイダ)キャッシュに送信されると、一貫性を維持するために、無効化メッセージが集中(プロバイダ)キャッシュからリモート(サブスクライバ)キャッシュに自動的に伝播されます。

集中(プロバイダ)キャッシュが該当コンテンツのみを無効にするように、リモート(サブスクライバ)キャッシュは、無効化メッセージの伝播元であるプロバイダ・キャッシュのIPアドレスを使用して、無効化メッセージに指定されているサイト・ホスト名を確認します。一致した場合、リモート(サブスクライバ)キャッシュは無効化リクエストを処理します。一致しなかった場合、リクエストは拒否されます。分散キャッシュ階層の場合、集中キャッシュおよびリモート・キャッシュのサイト・ホスト名は一意になるように構成し、不一致が発生しないようにする必要があります。

関連項目

 

キャッシュ・クラスタ内での無効化処理

キャッシュ・クラスタの場合、管理者は、無効化メッセージをすべてのキャッシュ・クラスタ・メンバーに伝播するか、各キャッシュ・クラスタ・メンバーに個別に送信するかを選択できます。

OracleAS Web Cacheが無効化メッセージを伝播すると、無効化リクエストを受信したキャッシュは、そのリクエストの無効化コーディネータとして動作します。コーディネータは、無効化メッセージを他のクラスタ・メンバーに伝播します。そして、コーディネータはすべてのクラスタ・メンバーからレスポンスが返されるのを待ちます。伝播が完了すると、コーディネータは各クラスタ・メンバーのメンバー名、無効化リクエストのステータス、無効になったオブジェクトの数を示すメッセージを送信元に返します。

通信できないクラスタ・メンバーがある場合には、OracleAS Web Cacheからエラー・メッセージが返され、無効化メッセージは伝播されません。

キャッシュ・クラスタのアップグレード時には、キャッシュ・クラスタ・メンバーを1つずつアップグレードします。キャッシュはリクエストに応答し続けます。ただし、その他のクラスタ・メンバーの構成のバージョンが異なるため、キャッシュは、異なるバージョンで動作しているキャッシュ・クラスタ・メンバーには無効化メッセージを転送しません。かわりに、リクエストされたオブジェクトがこのキャッシュか、構成のバージョンが同じクラスタ・メンバーによってキャッシュされない場合、OracleAS Web Cacheはリクエストをオリジナル・サーバーに転送します。

キャッシュ・クラスタ・メンバーが実行しているOracleAS Web Cacheのリリースが異なっても、オブジェクトを無効化し、無効化をその他のクラスタ・メンバーに伝播できますが、無効化メッセージは、旧リリースのOracleAS Web Cacheで動作しているキャッシュから送信される必要があります。

関連項目

  • キャッシュ・クラスタ・メンバーのアップグレードを含む、OracleAS Web Cacheから10gリリース2(10.1.2)へのアップグレードに関する詳細は、Oracle Application Serverのアップグレードおよび互換性ガイドを参照してください。

  • 無効化の詳細は、第13章を参照してください。

 

リクエストの送信方法

図13-3に示すように、無効化リクエストは、次のいずれかの方法を使用して送信されます。

特に、次のいずれかの方法を使用できます。

Telnetを使用した無効化リクエストの送信

HTTP POSTリクエストで無効化リクエストを送信する際、OracleAS Web Cacheのホスト名、無効化リスニング・ポート番号および無効化リクエストを指定します。

たとえば、telnetを使用している場合は、次の手順で無効化リクエストを送信します。

  1. 無効化リスニング・ポートでOracleAS Web Cacheに接続します。

    telnet web_cache_host invalidation_port
    
    
  2. 次の構文の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文字列の生成方法の詳細は、UNIXの場合は$ORACLE_HOME/webcache/docsディレクトリ、Windowsの場合はORACLE_HOME¥webcache¥docsディレクトリにあるreadme.examples.htmlを参照してください。

    • 無効化パスワードの変更の詳細は、「作業2: セキュリティ設定の変更」を参照してください。

     

  3. 改行を1回入力します。

  4. XML構文の無効化リクエストを送信します。

無効化リクエストの構文は、次の各項で説明します。

無効化リクエストの構文

次の構文を使用して、絶対パスおよびファイル名が含まれている絶対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行目では、リクエストが、WCSinvalidation.dtdファイルをXML文書タイプとして使用する無効化リクエストであることを示します。WCSinvalidation.dtdは、無効化リクエストおよびレスポンスの文法を定義するDocument Type Definition(DTD)です。

次のことに注意してください。

ルート要素INVALIDATIONには、表13-1で説明されている属性と要素が含まれます。

表13-1    INVALIDATION要素および属性 
無効化処理用の要素/属性  説明 

VERSION属性 

INVALIDATION要素の必須属性。

XML文書タイプとして使用するWCSinvalidation.dtdファイルのバージョンを示します。

リリース9.0.x以降では、既存のアプリケーションを変更する必要がない場合を除いて、常にVERSION="WCS-1.1"を使用してください。ただし、VERSION="WCS-1.0"を使用した場合、新しい無効化機能は利用できません。 

SYSTEM要素 

INVALIDATION要素のオプション要素。SYSTEM要素はSYSTEMINFO要素が必要です。 

SYSTEMINFO要素 

SYSTEM要素の必須要素。

可能なNAME/VALUEペアを次に示します。

  • NAME="WCS_PROPAGATE" VALUE="TRUE|FALSE"

    このペアは、無効化リクエストをキャッシュ・クラスタのメンバーに伝播するかどうかを指定します。WCS_PROPAGATETRUEの場合は、クラスタ構成内の無効化の伝播設定より優先されます。WCS_PROPAGATEFALSEの場合は、クラスタ構成内の無効化の伝播設定が使用されます。

    デフォルトはFALSEです。

  • NAME="WCS_DISCONNECTED_MODE_OK" VALUE="TRUE|FALSE"

    このペアは、無効化が実行される時間を指定します。WCS_DISCONNECTED_MODE_OKTRUEの場合、無効化は即時に実行されません。無効化レスポンスは、無効化リクエストの受信と同時に送信されます。無効化の結果を待機しない場合は、この要素をTRUEに設定します。WCS_DISCONNECTED_MODE_OKFALSEの場合、無効化は即時に完了し、無効化の結果が送信されます。

    デフォルトはFALSEです。

 

OBJECT要素 

無効化リクエストの必須要素。リクエスト内で複数のOBJECT要素を指定できます。 

BASICSELECTOR要素 

URI属性: BASICSELECTOR要素の必須属性。無効にするオブジェクトのURLを指定します。次のフォーマットのいずれかを選択します。

  • http://host_name:port/path/filename

  • https://host_name:port/path/filename

administratorアカウントがリクエストを送信する場合は、host_name:portは必須ではありません。 

ADVANCEDSELECTOR要素 

URIPREFIX属性: ADVANCEDSELECTOR要素の必須属性。無効にするオブジェクトのパス接頭辞を指定します。パス接頭辞の先頭は、http|https://host_name:port/path/filenameまたは"/"で始まり、"/"で終わる必要があります。host_name:portは、HOST属性が指定されておらず、invalidatorアカウントがリクエストを送信する場合に必須となります。

接頭辞は、正規表現の予約語を含め、文字どおり解釈されます。予約語には、ピリオド(.)、疑問符(?)、アスタリスク(*)、大カッコ([])、中カッコ({})、カレット(^)、ドル記号($)および円記号(¥)が含まれます。 

  

URIEXP属性: ADVANCEDSELECTOR要素のオプション属性。URIPREFIX内に存在する無効にするオブジェクトのURLを指定します。値が入力されなかった場合、URIPREFIX内のすべてのドキュメントが無効になります。

正規表現の使用が可能です。正規表現文字を文字どおり解釈するには、円記号(¥)でエスケープします。

注意:

  • クライアントのブラウザからOracleAS Web Cacheに送信されるリクエストURLと、OracleAS Web Cacheで内部的にそのリクエストの処理に使用されるURLは異なります。OracleAS Web Cacheでページ・リクエストが処理されるとき、そのURLの埋込みURLパラメータはアルファベット順に並べ替えられます。一方、無効化リクエストは、埋込みURLパラメータが並べ替えられたURLの内部表現に対してのみ一致判定します。無効化リクエストに正しく一致させるには、埋込みURLパラメータをアルファベット順に並べ替えて入力してください。

  • 無効化リクエストが送信されると、OracleAS Web CacheはURIEXPに対して正規表現による一致を実行します。この処理には時間がかかる場合があります。代替としてOTHER要素を使用して、正規表現一致ではなくサブストリング一致を指定することができます。

 

  

HOST属性: URIPREFIX値にhost_name:portが含まれず、invalidatorアカウントがリクエストを送信する場合、この属性は必須です。サイトのホスト名とポート番号(host_name:port)を指定します。HTTPのデフォルト・ポートはポート80です。 

  

METHOD属性: ADVANCEDSELECTOR要素のオプション属性。無効にするオブジェクトのHTTPリクエスト・メソッドGETまたはPOST)を指定します。デフォルト値はGETです。 

  

BODYEXP属性: ADVANCEDSELECTOR要素のオプション属性。METHODPOSTの場合は、無効にするオブジェクトのHTTPのPOSTボディを指定します。

注意: 無効化リクエストが送信されると、OracleAS Web CacheはBODYEXPに対して正規表現による一致を実行します。この処理には時間がかかる場合があります。代替としてOTHER要素を使用して、正規表現一致ではなくサブストリング一致を指定することができます。  

COOKIE要素 

無効化リクエストのオプションの要素。次の属性を使用します。

  • NAME属性: COOKIE要素の必須属性。Cookieに基づいて複数バージョンのオブジェクトを無効にするためのCookie名を指定します。

  • VALUE属性: COOKIE要素のオプション属性。Cookieの値を指定します。値が存在しない場合は、指定されたCookieを持ち、値を持たないオブジェクトのみが無効になります。

複数のバージョンのオブジェクトとセッション・キャッシュ・ポリシーの両方に対して間違って指定されたCookieを指定する場合、無効化はこのCookieの発生に基づきます。過度の無効化を回避するには、複数のバージョンのオブジェクトとセッション・キャッシュ・ポリシーに対して異なるCookieを構成します。

関連項目

 

HEADER要素 

無効化リクエストのオプションの要素。次の属性を使用します。

  • NAME属性: HEADER要素の必須属性。HTTPリクエスト・ヘッダーとその値を指定すると、リクエスト・ヘッダーに基づいて複数バージョンのオブジェクトが無効になります。

  • VALUE属性: HEADER要素のオプション属性。ヘッダーの値を指定します。

関連項目: 複数バージョンのオブジェクトに対するキャッシュ・ルールの作成方法は、「作業1: キャッシュ・ルールの作成」を参照してください。 

OTHER要素 

無効化リクエストのオプションの要素。次の属性を使用します。

  • NAME属性: OTHER要素の必須属性。NAMEは、次の値をサポートしています。

    - URIPREFIX内に存在するURLの一致を指定するURI

    - HTTP POSTのボディの一致を指定するBODY

    - 埋め込まれたURLパラメータの一致を指定するQUERYSTRING_PARAMETER

    - Surrogate-Keyレスポンス・ヘッダーでの検索キーの一致を指定するSEARCHKEY

  • TYPE属性: URIBODYおよびQUERYSTRING_PARAMETERの必須属性。この属性は、SEARCHKEYでは認識されません。TYPEは、次の値をサポートしています。

    - QUERYSTRING_PARAMETERの文字列完全一致およびURIBODYのサブストリング一致を指定するSUBSTRING

    - 正規表現の一致を指定するREGEX

  • VALUE属性: URIBODYQUERYSTRING_PARAMETERおよびSEARCHKEYの必須属性。URIBODYQUERYSTRING_PARAMETERまたはSEARCHKEYの値を指定します。REGEXTYPEを指定する場合、正規表現文字を文字どおり解釈するには、円記号(¥)でエスケープします。

関連項目:

 

ACTION要素 

無効化リクエストの必須要素。

REMOVALTTL属性

ACTION要素のオプションの属性。オブジェクトが無効化されるまでキャッシュ内に存続する最長期間を指定します。デフォルトは0秒です。 

INFO要素 

無効化リクエストのオプションの要素。

VALUE属性

INFO要素の必須属性。無効化の結果に含まれるコメントを指定します。無効化リクエストが完了すると、コメントを含むメッセージおよび無効化の結果はイベント・ログに書き込まれます。

[13/Jul/2005: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'.
 


注意

次のXML特殊文字は、フィールド内でエスケープする必要があります。アンパサンド(&)→「&amp;」、右山カッコ(>)→「&gt」、左山カッコ(<)→「&lt」、二重引用符(")→「&quot」、一重引用符(')→「&apos;」のように入力します。 



注意

OracleAS Web Cacheでは、次のリリース1.0形式で送信された無効化リクエストもサポートしています。

<?xml version="1.0"?>
<!DOCTYPE INVALIDATION SYSTEM "internal:///invalidation.dtd">
<INVALIDATION>
<URL EXP="URL" PREFIX="YES|NO">
<VALIDITY LEVEL="validity" REFRESHTIME="seconds"/>
<COOKIE NAME="cookie_name"
VALUE="value"
NONEXIST="YES|NO"/>
<HEADER NAME="HTTP_request_header" VALUE="value"/>
</URL>
</INVALIDATION>
 

関連項目

無効化リクエスト構文の詳細は、「無効化リクエストおよびレスポンスのDTD」を参照してください。 

無効化レスポンスの構文

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行目では、レスポンスが、WCSinvalidation.dtdファイルをXML文書タイプとして使用する無効化レスポンスであることが示されます。

ルート要素INVALIDATIONRESULTには、表13-2で説明されている属性と要素が含まれます。BASICSELECTORおよびADVANCEDSELECTORについては、表13-1で説明されています。

表13-2    INVALIDATIONRESULT要素および属性 
無効化処理用の要素/属性  説明 

VERSION属性 

XML文書タイプとして使用するWCSinvalidation.dtdファイルのバージョン番号。 

SYSTEM要素 

INVALIDATIONRESULT要素のオプション要素。

SYSTEM要素はオプションです。SYSTEM要素はSYSTEMINFO要素が必要です。 

SYSTEMINFO要素 

SYSTEM要素の必須要素。

可能なNAME/VALUEペアを次に示します。

  • NAME="WCS_CACHE_NAME" VALUE="string"

    このペアは、キャッシュの名前を指定します。

  • NAME="WCS_DISCONNECTED_MODE_OK" VALUE="TRUE|FALSE"

    このペアは、無効化が実行される時間を指定します。WCS_DISCONNECTED_MODE_OKTRUEの場合、無効化は即時に実行されません。無効化レスポンスは、無効化リクエストの受信と同時に送信されます。無効化の結果を待機しない場合は、この要素をTRUEに設定します。WCS_DISCONNECTED_MODE_OKFALSEの場合、無効化は即時に完了し、無効化の結果が送信されます。

    デフォルトはFALSEです。

 

RESULT要素 

次の属性を使用します。

  • ID属性: 無効化レスポンスで送信されたすべての無効化オブジェクトの順序番号。無効化リクエストで複数のセレクタが指定された場合、順序番号は最初のセレクタが1で始まり、その後のセレクタに順番に番号が振られます。

  • STATUS属性: 無効化のステータス。次のいずれかのステータスです。

    - SUCCESS: 無効化が成功した場合

    - URI NOT CACHEABLE: キャッシュ不可のオブジェクトの場合

    - URI NOT FOUND: オブジェクトが見つからない場合

  • NUMINV属性: 無効化リクエスト時に無効にされたオブジェクト数

 

INFO要素 

無効化リクエストのINFO要素内に指定されているコメントを返します。 

関連項目

無効化レスポンス構文の詳細は、「無効化リクエストおよびレスポンスのDTD」を参照してください。 

無効化プレビュー・リクエストの構文

無効化をテストするには、次の構文を使用して、無効にする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行目では、リクエストが、WCSinvalidation.dtdファイルをXML文書タイプとして使用する無効化プレビュー・リクエストであることが示されます。

ルート要素INVALIDATIONPREVIEWには、表13-3で説明されている属性が含まれます。BASICSELECTORおよびADVANCEDSELECTORについては、表13-1で説明されています。

表13-3    INVALIDATIONPREVIEW属性 
無効化処理用の要素/属性  説明 

VERSION属性 

無効化プレビューの必須属性。

VERSION="WCS-1.1"を、XML文書タイプとして使用するWCSinvalidation.dtdファイルのバージョンとして使用します。 

STARTNUM属性 

無効化プレビューの必須属性。

リストされる最初のオブジェクトを示す番号を入力します。OracleAS Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。 

MAXNUM属性 

無効化プレビューの必須属性。

リストされるオブジェクトの数を入力します。

無効化基準を満たすオブジェクトが指定した数よりも少ない場合は、OracleAS Web Cacheには、基準を満たすオブジェクトのみのURLがリストされます。

無効化基準を満たすオブジェクトが指定した数よりも多い場合は、OracleAS Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なるSTARTNUMを含む別のプレビュー・リクエストを送信します。 

無効化プレビュー・レスポンスの構文

プレビュー・リクエストに対する無効化プレビュー・レスポンスは、次のフォーマットで返されます。

<?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行目では、レスポンスが、WCSinvalidation.dtdファイルをXML文書タイプとして使用する無効化プレビュー・レスポンスであることが示されます。

次のことに注意してください。

ルート要素INVALIDATIONPREVIEWRESULTには、表13-4で説明されている属性と要素が含まれます。BASICSELECTORおよびADVANCEDSELECTORについては、表13-1で説明されています。

表13-4    INVALIDATIONPREVIEWRESULT要素および属性 
無効化処理用の要素/属性  説明 

VERSION属性 

XML文書タイプとして使用するWCSinvalidation.dtdファイルのバージョン番号。 

STATUS属性 

プレビューのステータス。次のいずれかのステータスです。

  • SUCCESS: 無効化が成功した場合

  • URI NOT CACHEABLE: キャッシュ不可のオブジェクトの場合

  • URI NOT FOUND: オブジェクトが見つからない場合

 

STARTNUM属性 

リストされる最初のオブジェクトを示す番号。 

NUMURLS属性 

このプレビュー結果で返されるURLの数。 

TOTALNUMURLS属性 

BASICSELECTORまたはADVANCEDSELECTORセレクタに一致するURLの数。 

SELECTEDURL要素 

無効にされるBASICSELECTORまたはADVANCEDSELECTORセレクタに一致するURL。 

Oracle Enterprise Manager 10g Application Server ControlコンソールまたはOracleAS Web Cache Managerを使用した無効化リクエストの送信

Application Server ControlコンソールまたはOracleAS Web Cache Managerの使いやすいインタフェースにより、キャッシュされたオブジェクトを簡単に無効にできます。メッセージの仕組みは、telnetの例とよく似ています。これら3つのインタフェースの1つを使用する場合の利点は、管理者が複雑なHTTPおよびXMLフォーマットを使用する必要がなく、その結果、エラーが減少するという点です。管理者が指定する必要があるのは、無効にするオブジェクトと、オブジェクトを無効にする方法のみです。

Application Server Controlコンソールには、無効化プロセスについて段階的に説明するウィザードが用意されています。はじめに、Web Cacheホーム・ページ→「管理」タブ→「操作」→「無効化」にナビゲートします。詳細は、ウィザード・ページのオンライン・ヘルプを参照してください。

OracleAS Web Cache Managerを使用すると、1つのオブジェクトに対する基本無効化リクエストか、複数のオブジェクトに対する拡張無効化リクエストのいずれかを送信できます。詳細は、次の各項目を参照してください。

基本無効化リクエストの発行

OracleAS Web Cache Managerを使用して基本無効化リクエストを送信するには、次の手順を実行します。

  1. ナビゲータ・フレームで、「Operations」→「Basic Content Invalidation」を選択します。

    右ペインに「Basic Content Invalidation」ページが表示されます。

  2. For Cache」リストからキャッシュを1つ選択します(キャッシュ・クラスタを構成済の場合に限り、複数のキャッシュがリストされます。無効化を伝播するようにクラスタが構成されている場合は、選択したキャッシュは、無効化コーディネータに指定されます。この無効化コーディネータによって、無効化リクエストは他のキャッシュ・クラスタ・メンバーに伝播されます。クラスタが無効化を伝播するように構成されていない場合、選択できるキャッシュはオブジェクトの無効化元キャッシュのみです)。

  3. Search Criteria」セクションで、次の検索条件を選択します。

    • Remove all cached objects: キャッシュ内のオブジェクトをすべて削除する場合に選択します。

    • Enter exact URL for removal: 無効にするオブジェクトのURLを指定します。絶対パスおよびファイル名を含めてください。

      注意: OracleAS Web Cacheでは、次の文字がエスケープされるため、このフィールドでエスケープ文字を入力できます。アンパサンド(&)、右山カッコ(>)、左山カッコ(<)、二重引用符(")、一重引用符(')のように入力します。

  4. オプションで、無効にするオブジェクトのリストをプレビューして、削除するオブジェクトの選択が誤っていないことを確認できます。オブジェクトのリストをプレビューするには、次の手順を実行します。

    1. Action」セクションで、無効化基準に一致するオブジェクトのリストの「Preview」を選択します。

    2. Object Range」を指定します。

      • From: リストされる最初のオブジェクトを示す番号を入力します。OracleAS Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。

      • To: リストされるオブジェクトの数を入力します。

        無効化基準を満たすオブジェクトが指定した数よりも少ない場合は、OracleAS Web Cacheには、基準を満たすオブジェクトのみのURLがリストされます。

        無効化基準を満たすオブジェクトが指定した数よりも多い場合は、OracleAS Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なる「From」数を含む別のプレビュー・リクエストを送信します。

    3. Submit」をクリックします。

      無効化基準を満たすオブジェクトが「Invalidation Preview Results」メッセージ・ボックスにリスト表示されます。OracleAS Web Cache Managerでは、有効なオブジェクトのみがリストされます。キャッシュには、期限切れまたは無効にされたオブジェクトが含まれることもありますが、それらはリストされません。

      無効にするオブジェクトがリストされている場合は、次の手順に進みます。リストされていない場合は、無効化基準を変更してもう一度プレビューします。

  5. Action」セクションで、次のいずれかのオプションを選択して、無効になったオブジェクトを処理する方法を指定します。

  6. Submit」をクリックします。

OracleAS Web Cacheにより、無効化リクエストが処理され、無効化ステータスおよび無効になったオブジェクト数が表示されている「Cache Cleanup Result」ダイアログ・ボックスが返されます。次の図はこのダイアログ・ボックスを示しています。


画像の説明

キャッシュ・クラスタ環境では、「Propagate Invalidation」が有効になっている場合、OracleAS Web Cacheは無効化コーディネータとして機能する1つのクラスタ・メンバーに、無効化リクエストを送信します。コーディネータは、無効化リクエストを他のクラスタ・メンバーに伝播します。すべてのクラスタ・メンバーに対する無効化が完了すると、OracleAS Web Cacheは「Cache Cleanup」ボックスを返します。このボックスには、クラスタ・メンバーごとに、キャッシュ名、無効化リクエストのステータスおよび無効にされたオブジェクト数がリストされます。

関連項目

 

拡張無効化リクエストの発行

OracleAS Web Cache Managerを使用して拡張無効化リクエストを送信するには、次の手順を実行します。

  1. ナビゲータ・フレームで、「Operations」→「Advanced Content Invalidation」を選択します。

    右ペインに「Advanced Content Invalidation」ページが表示されます。

  2. For Cache」リストからキャッシュを1つ選択します(キャッシュ・クラスタを構成済の場合に限り、複数のキャッシュがリストされます)。

  3. Search Criteria」セクションで、次の検索条件を選択します。


    注意

    OracleAS Web Cacheでは、次の文字がエスケープされるため、検索基準フィールドでエスケープ文字を入力できます。アンパサンド(&)、右山カッコ(>)、左山カッコ(<)、二重引用符(")、一重引用符(')のように入力します。 


  4. オプションで、「Cookie/Header Information」セクションで、複数バージョンのオブジェクトに対する検索基準にCookieとHTTPリクエスト・ヘッダーのどちらを使用するかを指定します。

    1. リストから、「Cookie」または「Header」を選択します。

    2. 次の情報を入力します。

  5. オプションで、「URL Parameters」セクションの「Name」フィールドに、無効にするオブジェクトで使用されている埋込みURLパラメータ名を入力し、その値を「Value」フィールドに入力します。次に、「exact strings」または「regular expression」のいずれかを選択して一致方法を指定します。

  6. オプションで、「Search Keys」セクションで、無効にするオブジェクトで使用されている「Surrogate-Key」レスポンス・ヘッダー・フィールドの検索キー名を「Key」フィールドに入力します。

    関連項目

    「Surrogate-Keyレスポンス・ヘッダー・フィールド」 

  7. オプションで、無効にするオブジェクトのリストをプレビューして、削除するオブジェクトの選択が誤っていないことを確認できます。オブジェクトのリストをプレビューするには、次の手順を実行します。

    1. Action」セクションで、「Preview list of objects to be removed」を選択します。

    2. Object Range」を指定します。

      • From: リストされる最初のオブジェクトを示す番号を入力します。OracleAS Web Cacheでは、番号0(ゼロ)からオブジェクトのカウントが始まります。

      • To: リストされるオブジェクトの数を入力します。

      無効化基準を満たすオブジェクトが指定した数よりも少ない場合は、OracleAS Web Cacheには、基準を満たすオブジェクトのみのURLがリストされます。

      無効化基準を満たすオブジェクトが指定した数よりも多い場合は、OracleAS Web Cacheにより、リクエストした数のオブジェクトのURLがリストされます。無効化基準を満たすオブジェクトの合計数も返されます。追加オブジェクトのURLリストを取得するには、次のオブジェクト・セットの開始を指定する異なる「From」数を含む別のプレビュー・リクエストを送信します。

    3. Submit」をクリックします。

      無効化基準を満たすオブジェクトが「Invalidation Preview Results」メッセージ・ボックスにリスト表示されます。OracleAS Web Cache Managerでは、有効なオブジェクトのみがリストされます。キャッシュには、期限切れまたは無効にされたオブジェクトが含まれることもありますが、それらはリストされません。

      無効にするオブジェクトがリストされている場合は、次の手順に進みます。リストされていない場合は、無効化基準を変更してもう一度プレビューします。

  8. Action」セクションで、次のいずれかのオプションを選択して、無効になったオブジェクトを処理する方法を指定します。

  9. Submit」をクリックします。

OracleAS Web Cacheにより、無効化リクエストが処理され、無効化ステータスおよび無効になったオブジェクト数が表示されている「Cache Cleanup」ダイアログ・ボックスが返されます。


注意

接頭辞ベースの無効化の場合、OracleAS Web Cacheが複雑なディレクトリ構造内を横断する必要があるため、無効化に多少時間がかかる場合があります。したがって、「Cache Cleanup Result」ダイアログ・ボックスが表示されるまで、「Submit」を再びクリックしないでください。無効化リクエストのキューを作成すると、OracleAS Web Cacheのパフォーマンスが低下します。 


Application Program Interface(API)を使用した自動無効化リクエスト

無効化リクエストは、Webサイトのアプリケーション・ロジックから、またはWebページの設計に使用するコンテンツ管理アプリケーションから送信することも可能です。

OracleAS Web Cacheには、次の実装可能なApplication Program Interface(API)が含まれています。

また、OracleAS Web Cacheには、無効化リクエストを生成する次のサンプル・コードも付属されています。次の例に従って無効化ツールを作成し、自作のアプリケーションで使用できます。

これらのファイルは、UNIXの場合は$ORACLE_HOME/webcache/examplesディレクトリ、Windowsの場合はORACLE_HOME¥webcache¥examplesディレクトリにあります。

関連項目

これらのファイルの詳細は、UNIXの場合は$ORACLE_HOME/webcache/docsディレクトリ、Windowsの場合はORACLE_HOME¥webcache¥docsディレクトリにあるreadme.examples.htmlを参照してください。 

データベース・トリガーを使用した自動無効化リクエスト

データベース・トリガーは、表への行の追加など、特定の状況が発生した場合に実行される、データベースに格納されたプロシージャです。トリガーを使用して無効化リクエストを送信することが可能です。これを行うには、オラクル社が提供するUTL_TCPパッケージを使用して、データベース・トリガーによって無効化リクエストを送信します。

関連項目

  • cre_invalid_trig.sqlスクリプトを使用したデータベース・トリガーの作成方法、およびutl_proc.sqlスクリプトを使用したデータベース・トリガーによる無効化処理のデモンストレーションの詳細は、UNIXの場合は$ORACLE_HOME/webcache/docsディレクトリ、Windowsの場合はORACLE_HOME¥webcache¥docsディレクトリにあるreadme.examples.htmlを参照してください。

  • OracleのPL/SQLに関するドキュメント

 

スクリプトを使用した自動無効化

多くのWebサイトで、スクリプトを使用して、新しいコンテンツがデータベースやファイル・システムにアップロードされています。たとえば、大型のオンライン書店の場合、1日1回、PERLスクリプトを実行し、新刊の追加や価格変更をカタログ・データベースに一括してロードすることがあります。その書店では、価格変更および在庫状況を、現在OracleAS Web Cacheにキャッシュされているアイテム・ビューおよび検索結果にすぐ反映させるとします。これを実行するには、Perlスクリプトを変更して、一括ロード処理の完了後にすべてのカタログ・ビューおよび検索結果を無効にする無効化リクエストをスクリプトからキャッシュに送信するようにすることが可能です(無効化リクエストには、データ変更の影響を受ける検索ページまたはアイテム・ビューをすべて個別にリストする必要はありません)。OracleAS Web Cacheのパフォーマンス保証機能により、管理者が一度に大量のコンテンツを無効にすることが可能で、コンテンツの一部しか変更されていない場合にカタログのコンテンツすべてを無効にしてもパフォーマンスは低下しません。

無効化の例

この項には、次の無効化リクエストの例が含まれます。

この項の例ではPOSTメソッドを使用する必要があり、ヘッダーのcontent_length: #bytes部分でバイト数(文字数)を送信する必要があります。content_length: #bytes行の後、XMLリクエストまたはBODY情報の前に改行を1回入れる必要があるため、注意してください。

例: 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>

イベント・ログには、次のメッセージが書き込まれます。

[13/Jul/2005: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'.
.
.
.
[13/Jul/2005: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で終了し、custという名前で値がoracleであるCookieを使用するオブジェクトをすべて無効にします。

<?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>

例: 特定のWebサイトのすべてのオブジェクトを無効にする

次のリクエストにより、/内のオブジェクトをすべて無効にします。

<?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*という名前のディレクトリを見つけるよう、OracleAS Web Cacheに指示します。

<ADVANCEDSELECTOR URIPREFIX="/cec/cstage/graphic*/" URIEXP="sample¥.gif" 
HOST="www.company.com:80"/>
</ADVANCEDSELECTOR>

次の構文は、/cec/cstage?ecaction=viewitem内に含まれているオブジェクトを無効にします。

<ADVANCEDSELECTOR URIPREFIX="/cec/" URIEXP="cstage¥?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>

イベント・ログには、次のメッセージが書き込まれます。

[13/Jul/2005: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: '12'.

次のリクエストは、サブストリング/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>

イベント・ログには、次のメッセージが書き込まれます。

[13/Jul/2005: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による無効化の最適化の詳細は、「問合せ文字列指定による無効化の最適化」を参照してください。 

例: 検索キーの一致を使用してオブジェクトを無効にする

次のリクエストにより、次の項目に一致する/pls/publicuser/内のすべてのオブジェクトを無効にします。

無効化レスポンス:

<?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>

例: キャッシュ・クラスタで無効化リクエストを伝播する

キャッシュ・クラスタで、すべてのクラスタ・メンバーへの無効化リクエストの伝播を有効または無効にできます。設定は、Application Server Controlコンソールの「クラスタ・メンバーとプロパティ」ページ(Web Cacheホーム・ページ→「管理」タブ→「クラスタ・プロパティ」→「メンバーとプロパティ」)またはOracleAS Web Cache Managerの「Clustering」ページ(「Properties」→「Clustering」)で指定します。

この設定を優先にするには、SYSTEMINFO要素の名前/値の属性ペアを使用します。NAMEWCS_PROPAGATEに、VALUETRUEに設定されている場合は、OracleAS Web Cache Managerで設定された値は無視されます。NAMEWCS_PROPAGATEに、VALUEFALSEに設定されている場合は、OracleAS 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="/hostname: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>

HTTPレスポンスのインライン無効化

Edge Side Includesの一部として実装されるインライン無効化は、オリジナル・サーバーに対して、Web Cacheに送信されたトランザクション・レスポンスに無効化メッセージを組み合せる便利な方法を提供します。たとえば、顧客がE-Commerceサイトでベジタリアン用料理の本を購入したとします。確認レスポンスにその書籍、著者および野菜に関連するすべてのカタログ・ページを無効にするための指示を含めることができます。無効化メッセージをインラインで送信する機能によって、バンド外無効化の送信に関連する接続オーバーヘッドが軽減されるため、ESI開発者には便利なツールです。

インライン無効化を構成するには、次の手順を実行します。

  1. テンプレート・ページで、次のようにHTTPレスポンスに、content="ESI-INV/1.0"を含むSurrogate-Controlレスポンス・ヘッダー・フィールドを構成します。

    Surrogate-Control: content="ESI-INV/1.0"
    
    
  2. 同じレスポンスのボディで、<esi:invalidate>タグを使用して、基本インライン無効化リクエストまたは拡張インライン無効化リクエストを挿入します。

    インライン無効化リクエストは、ESIテンプレートのどの部分にも挿入できます。複数のインライン無効化リクエストを挿入できますが、処理されるのは最初のリクエストのみです。インライン無効化の実行はブロック化します。つまり、ESIテンプレートに他のESI機能が含まれている場合は、インライン無効化が最初に実行されます。

    基本無効化の構文を次に示します。

    <esi:invalidate [output="yes"]>
     <?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>
    </esi:invalidate>
    
    

    拡張無効化の構文を次に示します。

    <esi:invalidate [output="yes"]>
     <?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>
           </OBJECT>
     </INVALIDATION>
    </esi:invalidate>
    

    関連項目

     

例: インライン無効化の使用

次に、単純なWebアプリケーションでインライン無効化を使用したオンラインのバイク・ショップの例を示します。Perlには2つのCGIスクリプトが書き込まれています。show_bike.plによって、特定モデルのバイクの在庫数が表示されます。このスクリプトには、データベースへの問合せが含まれていて、購入が発生するまで問合せ結果が変更されないため、show_bike.plがキャッシュされます。buy_bike.plは、バイクを購入する顧客によって使用されます。このページがリクエストされると、show_bike.plは無効になります。つまり、無効化が必要です。

例13-1に、show_bike.plのコードを示します。

例13-1    show_bike.plのコード

#!/usr/local/bin/perl

# first, retrieve how many bikes are in stock
# and assign it to $nBikes (omitted!)

print <<END;
Content-Type: text/html
Cache-Control: private
Surrogate-Control: max-age=3600

<html>
<body>
<h1>Bike: model 2005</h1>

<p>There are $nBikes bike(s) in stock for purchase!</p>
<p>Click <a href="/cgi/buy_bike.pl">here</a> to purchase a bike.</p>

</body>
</html>
END

max-age=3600は、OracleAS Web Cacheに対してこのページのキャッシュ時間が最大1時間のみであることを通知します。

例13-2に、インライン無効化リクエストを含むbuy_bike.plのコードを示します。

例13-2    インライン無効化リクエストを含むbuy_bike.plのコード

#!/usr/local/bin/perl

print <<END;
Content-Type: text/html
Cache-Control: private
Surrogate-Control: content="ESI/1.0 ESI-INV/1.0"

<html>
<body>
<h1>Thank you for purchasing bike model 2000.</h1>

<p>Click <a href="/cgi/show_bike.pl">here</a> to read more
about this model.</p>

<esi:invalidate>
 <?xml version="1.0"?>
 <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd">
  <INVALIDATION VERSION="WCS-1.1">
    <OBJECT>
      <BASICSELECTOR URI="/cgi/show_bike.pl"/>
      <ACTION REMOVALTTL="0"/>
    </OBJECT>
 </INVALIDATION>
</esi:invalidate>

<p>Thanks again!</p>
</body>
</html>
END

Surrogate-Control内のESI-INV/1.0トークンによって、OracleAS Web Cacheに<esi:invalidate>タグの処理を指示しています。

例13-3に、buy_bike.plのブラウザ・レスポンスを示します。OracleAS Web Cacheがインライン無効化リクエストをすでに処理済であるため、インライン無効化はレスポンス内に存在しません。

例13-3    buy_bike.plのブラウザ・レスポンス

Content-Type: text/html
Cache-Control: private
Surrogate-Control: content="ESI/1.0 ESI-INV/1.0"

<html>
<body>
<h1>Thank you for purchasing bike model 2000.</h1>

<p>Click <a href="/cgi/show_bike.pl">here</a> to read more
about this model.</p>

<p>Thanks again!</p>
</body>
</html>

デバッグのヒント

デバッグを容易にするために、アプリケーション開発者は、次を実行できます。

例13-4に、buy_bike.plのブラウザ・レスポンスを示します。この場合、インライン無効化のSurrogate-Capabilityリクエスト・ヘッダーと<esi:invalidate>タグのoutput属性の両方が有効化されています。

例13-4    インライン無効化の診断情報を含むshow_bike.plのブラウザ・レスポンス

Content-Type: text/html
Cache-Control: private
Surrogate-Control: content="ESI/1.0 ESI-INV/1.0"

<html>
<body>
<h1>Thank you for purchasing bike model 2000.</h1>

<p>Click <a href="/cgi/show_bike.pl">here</a> to read more
about this model.</p>

<esi:invalidate output="yes">
 <?xml version="1.0"?>
 <!DOCTYPE INVALIDATION SYSTEM "internal:///WCSinvalidation.dtd">
  <INVALIDATION VERSION="WCS-1.1">
    <OBJECT>
      <BASICSELECTOR URI="/cgi/show_bike.pl"/>
      <ACTION REMOVALTTL="0"/>
    </OBJECT>
 </INVALIDATION>
</esi:invalidate>

<!--
<?xml version="1.0"?>
<!DOCTYPE INVALIDATIONRESULT SYSTEM "internal:///WCSinvalidation.dtd">
<INVALIDATIONRESULT VERSION="WCS-1.1">
   <OBJECTRESULT>
     <BASICSELECTOR URI="/cgi/show_bike.pl/>
     <RESULT ID="1" STATUS="SUCCESS" NUMINV="1"/>
     </OBJECTRESULT>
</INVALIDATIONRESULT>
-->

<p>Thanks again!</p>
</body>
</html>

無効化オーバーヘッドの軽減

OracleAS Web Cacheでは、拡張無効化リクエストを受信すると、無効にするオブジェクトを探すためにキャッシュの内容を横断します。キャッシュされているオブジェクトの構造と数によっては、OracleAS Web Cacheによる内容の無効化に時間がかかる場合があります。キャッシュ内容を効率よく横断検索するには、次の方法があります。

1つのオブジェクトを無効にする場合、基本無効化リクエストを送信する

キャッシュ内の1つのオブジェクトを無効にする必要がある場合、キャッシュ内容の横断検索を回避するために、拡張無効化リクエストではなく、基本無効化リクエストを送信します。

基本無効化リクエストを送信するには、次のいずれかのオプションを使用します。

たとえば、次のリクエストにより、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>

拡張無効化リクエストは、複数のオブジェクトを無効にする場合に使用します。拡張無効化リクエストの送信には、「Advanced Content Invalidation」ページを使用するか、またはADVANCEDSELECTOR要素を指定します。

拡張無効化リクエストを送信するには、次のいずれかのオプションを使用します。

拡張無効化で複数のオブジェクトを無効にする場合、サブストリング一致を使用する

複数のオブジェクトで、共通のURL、リクエストPOSTボディまたは埋込みURLパラメータが共有されている場合は、次のような様々な方法で共通要素を指定できます。

最も速い無効化方法として、OTHER要素を使用して、正規表現のパターン一致ではなく、サブストリングの文字一致を指定することをお薦めします。

サブストリング一致を使用して拡張無効化リクエストを送信するには、次のいずれかのオプションを使用します。

たとえば、次のリクエストにより、http://www.company.com:1100/pls/portal/!PORTAL.wwpro_app_provider.execute_portlet/595897563/内に存在し、次の基準を満たすオブジェクトを検索します。

問合せ文字列指定による無効化の最適化

無効化リクエストでQUERYSTRING_PARAMETERパラメータを使用している場合、OracleAS Web Cacheがオブジェクトを一致させ無効にするには、追加の処理時間がかかることがあります。

問合せ文字列指定による無効化の処理を最適化するには、次の手順を実行します。

  1. テキスト・エディタを使用して、webcache.xmlファイルを開きます。

  2. SECURITYおよびWATCHDOG要素を探します。

    ...
      <SECURITY>
        <USER .../>
        <USER .../>
        <SECURESUBNET ...>
        </SECURESUBNET>
        <DEBUGINFO HEADER="YES" BODY="NO"/>
      </SECURITY>
    
      <WATCHDOG ENABLE="YES"/>
    ...
    
    
  3. SECURITYおよびWATCHDOG要素の間に、次のフォーマットでINVALIDATIONINDEX要素を追加します。

      <SECURITY>
      ...
      </SECURITY>
    
      <INVALIDATIONINDEX>
       <INDEXPARAM VALUE="NAME_OF_QUERYSTRING_PARAMETER"/>
       <INDEXPARAM VALUE="NAME_OF_QUERYSTRING_PARAMETER"/>
      </INVALIDATIONINDEX>
    
      <WATCHDOG ENABLE="YES|NO"/>
    
    
  4. webcache.xmlを保存します。

  5. 次のコマンドを使用して、OracleAS Web Cacheを再起動します。

    opmnctl restartproc ias-component=WebCache
    
    

次の例のリクエストは、サブストリング/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>

この検索を最適化するには、webcache.xmlファイルを次のように更新します。

...
  <SECURITY>
  ...
  </SECURITY>

  <INVALIDATIONINDEX>
    <INDEXPARAM VALUE="building"/>
    <INDEXPARAM VALUE="floor"/>
  </INVALIDATIONINDEX>

  <WATCHDOG ENABLE="YES"/>
...

関連項目

 

Surrogate-Keyレスポンス・ヘッダーと無効化リクエストでの検索キーの使用

キャッシュ内のオブジェクトのSurrogate-Keyレスポンス・ヘッダー・フィールドで使用する1つ以上の検索キーに基づいて無効化を実行できます。この項では、次の項目について説明します。

Surrogate-Keyレスポンス・ヘッダー・フィールド

Surrogate-Keyレスポンス・ヘッダー・フィールドを使用すると、アプリケーション開発者は、特定のレスポンス・オブジェクトの検索キー文字列を識別できます。検索キーは、オブジェクトのURL、CookieまたはHTTPリクエスト・ヘッダーに表示されない場合がある文字列です。検索キーの目的は、無効化に対して別の基準を提供することです。オブジェクトのURLの他に、OracleAS Web Cache管理者は、キャッシュ内のオブジェクトのSurrogate-Keyレスポンス・ヘッダー・フィールドで使用される1つ以上の検索キーに基づいて無効化を実行できます。

Surrogate-Keyレスポンス・ヘッダー・フィールドは次のような構文をサポートします。

Surrogate-Key: search-key=("key" "key" "key" ...)
使用方法
使用例

次の例は、有効な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フィールドを示しています。最初の例は1つの検索キー348に終わりの引用符(")が記述されていません。2番目の例は、search-keyに検索キーの値が指定されていません。

Surrogate-Key: search-key=( "template_id=348 )
Surrogate-Key: search-key=( )

検索キーによる無効化の有効化

この機能を有効化するには、次の手順を実行します。

  1. Surrogate-Keyレスポンス・ヘッダー・フィールドで、HTTPレスポンスを次のように設定します。

    Surrogate-Key: search-key=("key" "key" "key" ...)
    

    関連項目

    Surrogate-Keyレスポンス・ヘッダー・フィールドの詳細は、「Surrogate-Keyレスポンス・ヘッダー・フィールド」を参照してください。 

    デフォルトでは、OracleAS Web Cacheは最大20個の検索キーをサポートしています。制限数を増加するには、次の手順を実行します。

    1. テキスト・エディタを使用して、webcache.xmlファイルを開きます。

    2. SEARCHKEYOPTIONS要素内でMAXSEARCHKEYSPERDOC属性を探します。

      <GLOBALCACHINGRULES>
             <SEARCHKEYOPTIONS ENABLE="YES" MAXSEARCHKEYSPERDOC="20"/>
      
             <ERRORPAGES>
      
      
    3. 値を大きい値に変更します。

      次の例では、検索キーの制限を35に設定します。

      <GLOBALCACHINGRULES>
            <SEARCHKEYOPTIONS ENABLE="YES" MAXSEARCHKEYSPERDOC="35"/>
      
            <ERRORPAGES>
      
      
    4. webcache.xmlを保存します。

  2. 次の方法のいずれかを使用して、無効化リクエストに検索キーを指定します。


戻る 次へ
Oracle
Copyright © 2002, 2006 Oracle.

All Rights Reserved.
目次
目次
索引
索引