ヘッダーをスキップ
Oracle Fusion Middleware Oracle Web Cache管理者ガイド
11g リリース1(11.1.1)
B56248-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 サード・パーティ・アプリケーション・サーバーでのキャッシュ

この章では、サード・パーティのWebアプリケーション・サーバーでOracle Web Cacheを構成する方法について説明します。

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


注意:

  • この章では、Oracle Web Cacheが3種類のサーバーと連携する仕組みについて説明しますが、Oracle Web CacheはHTTPに準拠しているどのWebアプリケーション・サーバーとも連携可能です。

  • サード・パーティ・サーバーとの連携の説明として例にあげられているアプリケーションは比較的単純なものです。実用アプリケーションで使用する場合は、Oracle Web Cacheをより幅広く構成する必要があります。アプリケーションの設計の詳細は、サード・パーティのWebアプリケーション・サーバーのマニュアルを参照してください。


12.1 サード・パーティ・アプリケーション・サーバーの概要

Oracle Web CacheはWebアプリケーション・サーバーに対して透過的であるため、Webアプリケーション・サーバーは、Oracle Web CacheからのHTTPリクエストを、ブラウザから直接送信される他のHTTPリクエストと同じように処理します。次にWebアプリケーション・サーバーはレスポンスを生成し、HTTPメッセージとしてOracle Web Cacheに返します。

Oracle Web Cacheは、HTTPを完全にサポートしているため、HTTPに準拠しているすべてのWebアプリケーション・サーバーとの連携が可能です。Webアプリケーション・サーバーがHTTPレスポンスを生成するかどうかの選択方法は、Oracle Web Cacheとは関係ありません。

サイトが使用するWebアプリケーション・サーバーのタイプは、主にそのサイトが実行しているアプリケーションのタイプに依存します。たとえば、顧客がActive Server Page(ASP)を実行する場合は、Microsoft Internet Information Server(IIS)をWebアプリケーション・サーバーとして選択します。

12.1.1 Webサイトの構成

Oracle Web Cacheを、Oracle HTTP Serverの場合と同じように、ホスト名とリスニング・ポート番号を指定してサード・パーティのWebアプリケーション・サーバーと通信するように構成します。この章で説明する製品のデフォルトのリスニング・ポートを、表12-1に示します。

表12-1 サード・パーティのWebアプリケーション・サーバーのデフォルトのリスニング・ポート

Webアプリケーション・サーバー ポート

IBM WebSphere Application Serverバージョン6.0

80

Apache Tomcatバージョン4.1

8080

Microsoft IIS 6.0

80


Oracle Web Cacheをサード・パーティのWebアプリケーション・サーバーと通信するように構成するには、次の作業を行います。

  1. Oracle Web Cacheのポート設定を変更する方法は、第2.11.1項を参照してください。

  2. Webアプリケーション・サーバーの設定を構成する方法は、第2.11.2項を参照してください。

  3. Webサイトの設定を構成する方法は、第2.11.3項および第2.11.4項を参照してください。

12.1.2 キャッシュ・ルールと有効期限ルール

サード・パーティのWebアプリケーション・サーバーをOracle HTTP Serverと同様に使用する場合は、キャッシュ・ルールと有効期限ルールを割り当てます。次のようなコンテンツをキャッシュするかどうかを選択できます。

任意のタイミングで、オブジェクトに有効期限を割り当てたり、オブジェクトを無効化したりすることもできます。第6章「コンテンツのキャッシュと圧縮」および第7章「コンテンツの無効化」を参照してください。

12.2 IBM WebSphere

Oracle Web Cacheで、IBM Websphere Application Serverからの静的コンテンツがフェッチされるときに、IBM Websphere Application Serverからは、Oracle Web CacheのSurrogate-Capability: orcl="ESI/1.0"リクエストに対するレスポンスとしてSurrogate-Controlレスポンス・ヘッダー内のcontent="ESI/1.0+"ディレクティブが送信されます。Oracle Web Cacheでは、ページ・レンダリングの問題およびエラーを排除するためにESI/1.0+機能が無視されます。Oracle Web Cacheがキャッシュ・ソリューションとして配置されている場合、制御ディレクティブの値がこのように異なることによって、Webアプリケーションが未定義の動作を起こす可能性があります。

次の手順に従って、IBM Websphere Application ServerからESI/1.0以前ではなくESI/1.0が送信されるようにします。

  1. WebSphere Application Serverの管理コンソールで、「Servers」→「Application Server」にナビゲートします。

    「Application servers」ページが表示されます。

  2. 「Application servers」ページで、server1アプリケーション・サーバーを選択します。

    server1は、IBM Websphere Application Serverをデフォルトのオプションでインストールするときのサーバー名です。他の名前を指定した場合は、その名前を選択します。

  3. Configuration」タブの「Server Infrastructure」セクションで、「Java and Process Management」を選択し、「Process Definition」を選択します。

  4. Additional Properties」セクションで、「Java Virtual Machine」を選択してから「Custom Properties」を選択します。

  5. New」をクリックしてエントリを作成します。

  6. Name」フィールドに、com.ibm.servlet.file.esi.controlと入力します。

  7. Value」フィールドに、max-age=300, cacheid="URL", content="ESI/1.0"と入力します。

  8. Apply」をクリックしてから、WebSphere Application Serverを保存して再起動します。

WebSphere Application Serverのインストールには、JSP、JavaサーブレットおよびEJBのサンプルが含まれています。この項では、次のコンテンツをキャッシュするようにOracle Web Cacheを構成する方法について説明します。

12.2.1 WebSphere Snoopサーブレット

snoopサーブレットは、ブラウザにより送信されるリクエスト情報、ヘッダーおよびパラメータの取得および使用を表示します。これを使用して、Oracle Web Cacheが動的コンテンツをキャッシュする方法を説明します。

snoopサーブレットをキャッシュするには、次の手順を実行します。

  1. 第12.1.1項の説明に従って、Oracle Web CacheがWebSphere Application Serverと通信するように構成されていることを確認します。

  2. WebSphere Application Serverを起動し、次のURLにアクセスします。

    http://hostname/snoop
    

    ブラウザにより送信されたリクエスト情報、ヘッダーおよびパラメータが表示されていることに注意してください。

  3. 第6.8項の説明に従って、snoop出力のキャッシュ・ルールを作成します。

    snoop出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページで次のように構成してください。

    • キャッシュ」チェック・ボックスを選択します。

    • URL一致条件」セクションで、「パス接頭辞」を選択し、/snoopと入力します。

    • HTTPメソッド」セクションで、「GET」をクリックします。

  4. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:admin_port/snoop
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、WebSphere Application Serverから直接snoopにアクセスした場合と同じです。この場合、Oracle Web Cacheはsnoopの出力をキャッシュし、レスポンスをブラウザに送信します。

  5. 第8.6項の説明に従ってキャッシュの内容を表示し、snoopがキャッシュされていることを確認します。

    ページを再ロードすると、WebSphere Application Serverに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

12.2.2 WebSphere Calendar Creator JSP

Calendar JSPでは、ユーザー入力に基づいてカレンダが生成されます。このサンプルは、snoopサーブレットのような、あらかじめ配置されたWebSphereサンプルではありません。このサンプルを見つけるには、IBM WebSphere Application Serverのサンプル・ギャラリーにあるドキュメントに記述されているとおり、Technology Samplesをインストールする必要があります。このJSPを使用して、Oracle Web CacheがセッションCookieを持つページをどのようにキャッシュしているのかを説明します。

セッション・エンコードされたURLのSimpleTag.jspをキャッシュするには、次の手順を実行します。

  1. WebSphere Application Serverを起動し、ブラウザをCookieを受け入れるように設定し、次のURLにアクセスします。

    http://hostname/TechnologySamples/Calendar
    

    このページに表示されるフォームでは、月や年など、カレンダを作成するための設定を入力するように要求されます。このアプリケーションを使用するには、次の手順を実行します。

    1. なんらかの値を入力し、「Continue」をクリックします。

    2. Day」フィールドと「Memo」フィールドになんらかの値を入力し、「Add Memo」をクリックします。

    3. Generate Calendar」をクリックします。

  2. 第6.7項の説明に従って、有効期限ルールを作成します。

    「有効期限ポリシーの作成」ダイアログ・ボックスで、次の手順を実行します。

    1. オブジェクトの有効期限」セクションで、「エントリ・キャッシュの後」を選択し、「時間制限」フィールドに60秒を入力します。

    2. 期限切れのオブジェクトに対するアクション」セクションで、「即時削除」を選択します。

  3. 第6.8.6項の説明に従って、セッション・キャッシュ・ルールを作成します。

    セッション・キャッシュ・ルールを構成する場合は、次の手順を実行します。

    1. 「セッション構成」ページの「セッション定義」セクションで、セッション定義を作成します。

      • セッション名」フィールドに、IBMSessionと入力します。

      • Cookie名」フィールドに、JSESSIONIDと入力します。

      • URL POST本体のパラメータ」フィールドに、jsessionidと入力します。

    2. 「セッション構成」ページの「セッション・ポリシー構成」セクションで、IBMSessionという名前の2つのポリシーを作成します。

      • 最初のIBMSessionポリシーの「キャッシュ」列で、「セッションを使用」オプションを選択します。

      • 2つ目のIBMSessionポリシーの「キャッシュ」列で、「セッションを使用しない」オプションを選択します。

      • デフォルト値の置換」チェック・ボックスは選択しないでください。

    3. Calendarに対する新しいキャッシュ・ルールを作成します。

      Calendar出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページの「一般」タブで次のように構成します。

      • キャッシュ」チェック・ボックスを選択します。

      • 有効期限」リストで、「キャッシュ・エントリの60秒後に期限が切れ、即時に削除」を選択します。

      • URL一致条件」セクションで、「パス接頭辞」を選択し、/TechnologySamples/Calendarと入力します。

      • HTTPメソッド」セクションで、「GET」をクリックします。

      「キャッシュ・ルールの作成」ページの「セッション」タブで、両方のIBMSessionセッションを選択し、一方には「セッションを使用」を設定し、もう一方には「セッションを使用しない」を設定します。

  4. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:WebCache-admin_port/TechnologySamples/Calendar
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、WebSphere Application Serverから直接Calendarにアクセスした場合と同じです。この場合、Oracle Web CacheはCalendar出力をキャッシュします。

  5. 第8.6項の説明に従ってキャッシュの内容を表示し、Calendarがキャッシュされていることを確認します。

    ページを再ロードすると、WebSphereサーバーに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

    このURLの有効期限ルールは60秒に設定されているため、Oracle Web Cacheはキャッシュされた内容を60秒後に期限切れにし、ユーザーが次にページをリクエストしたときにその内容を反映させます。

Oracle Web Cacheの配置後、ブラウザにHTTP 404 Page not foundエラーが表示される場合は、次の手順を実行します。

  1. WebSphere ServerのWAS_home/config/cells/plugin-cfg.xmlファイルで、<VirtualHost Name="*:WebCache-admin_port"/>を追加します。

  2. WebSphere Application Serverの管理コンソールで、「Environment」→「Virtual Hosts」にナビゲートします。

  3. プロンプトに従って、新しい仮想ホストを追加します。

12.3 Apache Tomcat

Apache Tomcatバージョン4.1はサーブレット・コンテナです。これはApache Jakartaプロジェクトに含まれています。Apache Tomcatのインストールには、JSPおよびJavaサーブレットのサンプルがいくつか含まれています。この項では、次のコンテンツをキャッシュするようにOracle Web Cacheを構成する方法について説明します。

インストールについては、Apache Tomcatバイナリ内の説明に従ってください。Apache Tomcatには、Java Development Kit(JDK)が必要です。

詳細は、次を参照してください。

12.3.1 Apache TomcatのSnoop JSP

snoop.jspは、ブラウザによって送信されるリクエスト情報、ヘッダーおよびパラメータの取得および使用を表示します。これを使用して、Oracle Web Cacheが動的コンテンツをキャッシュする方法を説明します。

はじめに、次の手順を実行します。

  1. 第12.1.1項の説明に従って、Oracle Web CacheがApache Tomcatサーバーと通信するように構成されていることを確認します。

  2. Apache Tomcatサーバーを起動し、次のURLにアクセスします。

    http://web_cache_hostname:WebCache-admin_port/examples/jsp/snp/snoop.jsp
    

    ブラウザにより送信されたリクエスト情報、ヘッダーおよびパラメータが表示されていることに注意してください。

コンテンツをキャッシュするには、次の手順を実行します。

  1. 第6.8項の説明に従って、snoop出力のキャッシュ・ルールを作成します。

    snoop出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページで次のように構成してください。

    • キャッシュ」チェック・ボックスを選択します。

    • URL一致条件」セクションで、「パス接頭辞」を選択し、/examples/jsp/snp/snoop.jspと入力します。

    • HTTPメソッド」セクションで、「GET」をクリックします。

  2. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:admin_port/eexamples/jsp/snp/snoop.jsp
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、Apache Tomcatから直接snoopにアクセスした場合と同じです。この場合、Oracle Web Cacheはsnoopの出力をキャッシュし、レスポンスをブラウザに送信します。

  3. 第8.6項の説明に従ってキャッシュの内容を表示し、snoopがキャッシュされていることを確認します。

    ページを再ロードすると、Apache Tomcatに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

12.3.2 Apache Tomcatのセッション・サーブレット

SessionServletは、HttpSessionクラスを使用してブラウザがサーブレットを訪問した回数を記録するHTTPサーブレットの単純なサンプルです。このサンプルを使用して、Oracle Web Cacheがセッション・エンコードされたURLを持つページをどのようにキャッシュしているのかを説明します。

このサーブレットはApache Tomcatバイナリに含まれていない場合があります。このサンプルはWebから入手するか、例12-1のサーブレットのコードを使用することもできます。

例12-1 Apache Tomcatバイナリ

/*
 * @(#)SessionServlet.java     1.5 1.5
 * 
 * Copyright (c) 1996-1998 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * This software is the confidential and proprietary information of Sun
 * Microsystems, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Sun.
 * 
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 * 
 * CopyrightVersion 1.0
 */

package sunexamples;

import java.io.*;
import java.util.Enumeration;

import javax.servlet.*;
import javax.servlet.http.*;


/**
 * This is a simple example of an HTTP Servlet that uses the HttpSession
 * class
 *
 * Note that in order to guarantee that session response headers are
 * set correctly, the session must be retrieved before any output is
 * sent to the client.
 */
public class SessionServlet extends HttpServlet { 

    public void doGet (HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException
      {
        
       //Get the session object
       HttpSession session = req.getSession(true);
       
       //Get the output stream
       ServletOutputStream out = res.getOutputStream();
       
       res.setContentType("text/html");
       
       out.println("<HEAD><TITLE> SessionServlet Output " +
                "</TITLE></HEAD><BODY>");
       out.println("<h1> SessionServlet Output </h1>");

       //Here's the meat
       Integer ival = (Integer) session.getValue("sessiontest.counter");
       if (ival==null) ival = new Integer(1);
       else ival = new Integer(ival.intValue() + 1);
       session.putValue("sessiontest.counter", ival);

       out.println("You have hit this page <b>" + ival + "</b> times.<p>");

       // encodeURL Encodes the specified URL by including the session ID in it 
       // if cookies are not turned on or not supported by the browser
       out.println("Click <a href=" + res.encodeURL("/session.html") + 
                ">here</a>");
       out.println(" to ensure that session tracking is working even if" +
                " cookies aren't supported.<br>");
       out.println(" Note that by default URL rewriting is not enabled due" +
                " to it's expensive overhead.");
       out.println("<p>");
       
       out.println("<h3>Request and Session Data:</h3>");
       out.println("Session ID in Request: " + req.getRequestedSessionId());
       out.println("<br>Session ID in Request from Cookie: " + 
                         req.isRequestedSessionIdFromCookie());
       out.println("<br>Session ID in Request from URL: " + 
                         req.isRequestedSessionIdFromURL());
       out.println("<br>Valid Session ID: " + 
                         req.isRequestedSessionIdValid());
       out.println("<h3>Session Data:</h3>");
       out.println("New Session: " + session.isNew());
       out.println("<br>Session ID: " + session.getId());
       out.println("<br>Creation Time: " + session.getCreationTime());
       out.println("<br>Last Accessed Time: " + 
                              session.getLastAccessedTime());
       out.println("<br><a href=\"/examples/simple_servlets\">Up</a>");
       out.println("</BODY>");
       out.close();
      }
    
    public String getServletInfo() {
        return "A simple session servlet";
    }
}

はじめに、次の手順を実行します。

  1. Apache Tomcat環境でSessionServlet.javaファイルをコンパイルします。

  2. SessionServlet.class/examples/servlets/ディレクトリにコピーします。このディレクトリには、別のサーブレットのサンプルが存在する場合があります。

  3. 第12.1.1項の説明に従って、Oracle Web CacheがApache Tomcatと通信するように構成されていることを確認します。

  4. Cookieを受け入れないようにブラウザを構成します。

    これは、この例でセッション・エンコードされたURLを使用するために必須です。

  5. Apache Tomcatを起動し、次のURLにアクセスします。

    http://hostname/examples/servlets/SessionServlet
    

    ページにブラウザの訪問回数が表示されることに注意してください。「here」と表示されたリンクをクリックすると、セッションIDがURL内でエンコードされることに注意してください。ページを更新または再ロードするたびに、カウンタの数値が1つずつ増えます。

コンテンツをキャッシュするには、次の手順を実行します。

  1. 第6.7項の説明に従って、有効期限ルールを作成します。

    「有効期限ポリシーの作成」ダイアログ・ボックスで、次の手順を実行します。

    1. オブジェクトの有効期限」セクションで、「エントリ・キャッシュの後」を選択し、「時間制限」フィールドに60と入力します。

    2. 期限切れのオブジェクトに対するアクション」セクションで、「即時削除」を選択します。

  2. 第6.8.6項の説明に従って、セッション・キャッシュ・ルールを作成します。

    セッション・キャッシュ・ルールを構成する場合は、次の手順を実行します。

    1. 「セッション構成」ページの「セッション定義」セクションで、セッション定義を作成します。

      • セッション名」フィールドに、ApacheSessionと入力します。

      • Cookie名」フィールドに、JSESSIONと入力します。

      • URL POST本体パラメータ」フィールドに、jsessionidと入力します。

    2. 「セッション構成」ページの「セッション・ポリシー構成」セクションで、ApacheSessionという名前の2つのポリシーを作成します。

      • 最初のApacheSessionポリシーの「キャッシュ」列で、「セッションを使用」オプションを選択します。

      • 2つ目のApacheSessionポリシーの「キャッシュ」列で、「セッションを使用しない」オプションを選択します。

      • デフォルト値の置換」チェック・ボックスは選択しないでください。

    3. Sessionに対する新しいキャッシュ・ルールを作成します。

      SessionServletサーブレット出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページの「一般」タブで次のように構成します。

      • キャッシュ」チェック・ボックスを選択します。

      • 有効期限」リストで、「キャッシュ・エントリの60秒後に期限が切れ、即時に削除」を選択します。

      • URL一致条件」セクションで、「パス接頭辞」を選択し、/examples/servlets/SessionServletと入力します。

      • HTTPメソッド」セクションで、「GET」をクリックします。

      「キャッシュ・ルールの作成」ページの「セッション」タブで、両方のApacheSessionセッションを選択し、一方には「セッションを使用」を設定し、もう一方には「セッションを使用しない」を設定します。

  3. 第6.8.6項の説明に従って、セッション・キャッシュ・ルールを作成します。

  4. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:WebCache-admin/examples/servlets/SessionServlet
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、Apache Tomcatから直接Sessionにアクセスした場合と同じです。この場合、Oracle Web CacheはSessionサーブレット出力をキャッシュします。ページを更新または再ロードした場合に、カウンタの数値が変わらないことに注意してください。これは、Oracle Web Cacheがコンテンツを表示し、リクエストがApache Tomcatに到達しないためです。

  5. 第8.6項の説明に従ってキャッシュの内容を表示し、Sessionサーブレットがキャッシュされていることを確認します。

    ページを再ロードすると、Apache Tomcatサーバーに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

    このURLの有効期限ルールは60秒に設定されているため、Oracle Web Cacheはキャッシュされた内容を60秒後に期限切れにし、ユーザーが次にページをリクエストしたときにその内容を反映させます。

12.4 Microsoft IIS

Microsoft IISのインストールには、いくつかのASPサンプルが含まれています。この項では、次のコンテンツをキャッシュするようにOracle Web Cacheを構成する方法について説明します。

12.4.1 ServerVariables_Jscript ASP

ServerVariables_JScript.aspは、ASPスクリプトからサーバー変数情報にアクセスする方法を説明するためのものです。これを使用して、Oracle Web Cacheが動的コンテンツをキャッシュする方法を説明します。

はじめに、次の手順を実行します。

  1. 第12.1.1項の説明に従って、Oracle Web CacheがIISと通信するように構成されていることを確認します。

  2. IISを起動し、次のURLにアクセスします。

    http://hostname/IISSamples/sdk/asp/interaction/ServerVariables_JScript.asp
    

    ブラウザにより送信されたリクエスト情報、ヘッダーおよびパラメータが表示されていることに注意してください。

コンテンツをキャッシュするには、次の手順を実行します。

  1. 第6.8項の説明に従い、次の情報を使用してServerVariables_JScript.aspに対するキャッシュ・ルールを作成します。

    ServerVariables_JScript.asp出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページで次のように構成します。

    • URL一致条件」セクションで、次のように入力します。

      /IISSamples/sdk/asp/interaction/ServerVariables_JScript.asp
      
    • HTTPメソッド」セクションで、「GET」をクリックします。

    • キャッシュ・レスポンス」セクションで、「キャッシュ」をクリックします。

  2. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:WebCache-admin_port/eIISSamples/sdk/asp/interaction/ServerVariables_JScript.asp
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、IISから直接ServerVariables_JScript.aspにアクセスした場合と同じです。この場合、Oracle Web CacheはServerVariables_JScript.asp出力をキャッシュし、リクエストをブラウザに送信します。

  3. 第8.6項の説明に従ってキャッシュの内容を表示し、ServerVariables_JScript.aspがキャッシュされていることを確認します。

    ページを再ロードすると、IISに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

12.4.2 Cookie_Jscript ASP

Cookie_JScript.aspは、Response.Cookiesコレクションを使用して、スクリプトでCookieを設定する方法や読み取る方法を説明します。これを使用して、Oracle Web CacheがセッションCookieを持つページをどのようにキャッシュしているのかを説明します。

はじめに、次の手順を実行します。

  1. 第12.1.1項の説明に従って、Oracle Web CacheがIISと通信するように構成されていることを確認します。

  2. IISを起動し、ブラウザがCookieを受け入れるように設定されていることを確認し、次のURLにアクセスします。

    http://hostname/IISSamples/sdk/asp/interaction/Cookie_JScript.asp
    

    URLにアクセスすると、そのページを最後に訪問した日付と時刻がページに表示されます。「Revisit this page」をクリックすると、日付と時刻が更新されます。

コンテンツをキャッシュするには、次の手順を実行します。

  1. 第6.7項の説明に従って、有効期限ルールを作成します。

    「有効期限ポリシーの作成」ダイアログ・ボックスで、次の手順を実行します。

    1. オブジェクトの有効期限」セクションで、「エントリ・キャッシュの後」を選択し、「時間制限」フィールドに60と入力します。

    2. 期限切れのオブジェクトに対するアクション」セクションで、「即時削除」を選択します。

  2. 第6.8.6項の説明に従って、セッション・キャッシュ・ルールを作成します。

    セッション・キャッシュ・ルールを構成する場合は、次の手順を実行します。

    1. 「セッション構成」ページの「セッション定義」セクションで、セッション定義を作成します。

      • セッション名」フィールドに、MSSessionと入力します。

      • Cookie名」フィールドに、CookieJSCriptと入力します。

      • URL POST本体パラメータ」フィールドに、jsessionidと入力します。

    2. 「セッション構成」ページの「セッション・ポリシー構成」セクションで、MSSessionという名前の2つのポリシーを作成します。

      • 最初のMSSessionポリシーの「キャッシュ」列で、「セッションを使用」オプションを選択します。

      • 2つ目のMSSessionポリシーの「キャッシュ」列で、「セッションを使用しない」オプションを選択します。

      • デフォルト値の置換」チェック・ボックスは選択しないでください。

    3. Cookie_JScript.aspに対する新しいキャッシュ・ルールを作成します。

      Cookie_JScript.asp出力に対するキャッシュ・ルールを作成するときは、「キャッシュ・ルールの作成」ページの「一般」タブで次のように構成します。

      • キャッシュ」チェック・ボックスを選択します。

      • 有効期限」リストで、「キャッシュ・エントリの60秒後に期限が切れ、即時に削除」を選択します。

      • URL一致条件」セクションで、/IISSamples/sdk/asp/interaction/Cookie_JScript.aspと入力します。

      • HTTPメソッド」セクションで、「GET」をクリックします。

      「キャッシュ・ルールの作成」ページの「セッション」タブで、両方のMSSSessionセッションを選択し、一方には「セッションを使用」を設定し、もう一方には「セッションを使用しない」を設定します。

  3. 次のURLを使用して、ブラウザにOracle Web Cacheを指定します。

    http://web_cache_hostname:WebCache-admin_port/eIISSamples/sdk/asp/interaction/Cookie_JScript.asp
    

    ポートを決定する方法は、第2.11.1.1項を参照してください。

    出力は、IISから直接Cookie_JScript.aspにアクセスした場合と同じです。この場合、Oracle Web CacheはCookie_JScript.asp出力をキャッシュします。キャッシュからこのコンテンツが表示されることを確認するには、ページを再表示するをクリックします。日付と時刻は更新されないことに注意してください。これは、Oracle Web Cacheがキャッシュされたコンテンツを表示し、リクエストがIISに到達しないためです。

  4. 第8.6項の説明に従ってキャッシュの内容を表示し、Cookie_JScript.aspがキャッシュされていることを確認します。

    ページを再ロードすると、IISサーバーに直接アクセスするよりも速く、キャッシュされたレスポンスが表示されます。

    このURLの有効期限ルールは60秒に設定されているため、Oracle Web Cacheはキャッシュされた内容を60秒後に期限切れにし、ユーザーが次にページをリクエストしたときにその内容を反映させます。