如何使用 JESI 失效标记来使缓存的内容无效

OracleAS Web Cache

日期:2003 年 10 月 22 日

如何使用 JESI 失效标记来使缓存的内容无效

完成此方法文档后,您应该能够:
  • 使用 JESI 失效标记来使缓存的内容无效

引言

OracleAS Web Cache 是对内容敏感的高速缓存服务器,它既能够缓存静态,也能够缓存动态内容。一旦文档被缓存,所有对被缓存的文档的请求都将从缓存服务器中得到支持,直到该文档变为无效为止。当文档的内容发生变化时,必须使文档无效。当被缓存的文档变为无效时,下一个对该文档的请求将从源服务器中获取,并在缓存服务器中缓存,然后从该缓存服务器提交给浏览器。

运行示例的前提条件

您需要以下条件才能运行此示例 -

  • Oracle Application Server(9.0.3 或更高版本)。可以从此处
    下载。
  • Oracle JDeveloper (9.0.3 或更高版本)。可以从此处下载。 这是可选的,并且仅当您希望从 JDeveloper 中进行部署时才需要。

说明

可以用以下方法之一来使缓存的内容无效。

  • 基于时间 — 当缓存的文档过期时,根据为缓存的内容设置的过期策略。
  • 基于事件 — 出现了一个应用程序事件,该事件使数据发生了变化。可以用以下方法来使缓存的文档无效。
    • JESI/ESI 标记
    • Java API
    • PL/SQL API
  • 人工使页面无效 — 使用 OracleAS Web Cache 管理员工具。

该文档说明了如何使用 JESI 失效标记来使缓存的内容无效。该示例显示了响应每一个请求随机生成的一个数字集合。当页面被缓存时,对于每一个请求,页面将显示相同的数字集合,直到该页面变为无效为止。当单击了该页面上的 'Invalidate' 按钮时,该示例程序使用 JESI 失效标记使被缓存的内容变为无效,并得到了一个新的数字集合。

以下是用来使缓存的内容无效的代码片断。

.....
<jesi:invalidate config="/WEB-INF/jesi.xml">
<jesi:object uri="lotto.jsp" maxRemovalDelay="0"/>
</jesi:invalidate>
....

在上面的代码片断中,<jesi:invalidate> 标记的 config 属性引用了 jesi.xml,该文件包含了缓存服务器的详细信息(如主机名、失效端口和失效口令)。使用 <jesi:object> 标记将要使之无效的文档列出。maxRemovalDelay 指定在文档变为无效后,其可在缓存中保留多长时间(以秒为单位)。在文档变为无效后,如果不能从源服务器中获取文档,那么缓存服务器将能够返回无效的文档而不是源服务器忙错误。默认值是 '0',这意味着该文档在变为无效后必须马上被删除。

部署示例

此示例的完整源代码可以在此获得。这一节讨论运行示例程序的相关指导

第 1 步使用 Winzip,或使用下面的命令解压缩 jesiinvalidate.jar

> jar xvf jesiinvalidate.jar

这创建了一个目录 jesiinvalidate。

第 2 步

如果您使用的是 JDeveloper,那么按照下面的步骤做

  • 打开 Oracle9i JDeveloper,使用 File/Open 选项来从 jesiinvalidate 目录选择 jesiinvalidate.jws
  • 接下来,从主菜单中选择 Project/Make jesiinvalidate.jws
  • 编辑 jesi.xml,修改以下标记
    • url — Web Cache 主机名和失效端口。默认的失效端口是 4001。
    • 口令 — 失效口令。它默认为 invalidator。
  • 创建应用服务器连接
    • 转至 Connections -> Application Server Connection。单击右键,然后单击 New connection。
    • 在第一步中,输入连接名称并选择 Oracle9i Application Server
    • 在第二步中,输入用户名和口令
    • 在第三步中,输入 Enterprise Manager 的主机名、端口号和远程 Oracle AS 主目录(仅当在远程计算机上进行部署时才需要)。
    • 在第四步中,单击 Next,然后测试该连接。单击 Finish 按钮。
  • 现在,单击右键 jesiinvalidate.deploy,然后为 Deploy 选择 <connection name> — 您在之前的步骤中创建的应用服务器连接。
第 3 步按照以下步骤利用 EM 来部署应用程序。
  • 为失效操作设置 Web Cache 的详细信息
    • <SAMPLE_HOME>/deploy 目录中,解压缩 jesiinvalidate.earjesiinvalidate.war
      jar -xvf jesiinvalidate.ear jesiInvalidate.war
      jar -xvf jesiinvalidate.war WEB-INF/jesi.xml
    • 编辑 <SAMPLE_HOME>/deploy/WEB-INF/jesi.xml,修改以下标记
      • url — Web Cache 主机名和失效端口。默认的失效端口是 4001。
      • 口令 — 失效口令。它默认为 invalidator
    • 更新 ear 和 war 文件
      jar -uvf jesiinvalidate.war WEB-INF/jesi.xml
      jar -uvf jesiinvalidate.ear jesiInvalidate.war
  • 转至 EM web 站点 -> 默认的 oc4j 主页。
  • 选择部署 EAR 文件
  • 输入 J2EE 应用程序名称,单击 Browse 按钮,并从 <SAMPLE_HOME>/deploy/jesiinvalidate.ear 选择jesiinvalidate.ear
  • 输入应用程序名称为 jesiinvalidate,单击 Next
  • 输入 URL 映射为 /jesiinvalidate,然后单击 Finish
  • 单击 Deploy 部署应用程序。

运行示例

在浏览器中使用下面的 URL 来访问页面

http://<host_name>:<port>/jesiinvalidate/lottery.jsp

其中,<host_name> 是安装了 Web Cache 的计算机,<port> 是 Web Cache 监听器运行的端口。

例如,http://incq185b.idc.oracle.com:7777/jesiinvalidate/lottery.jsp

反复点击 'Fetch Again' 按钮将为所有请求显示相同的随机生成的数字集合。这是因为该动态页面被缓存在缓存服务器中,并从缓存服务器中提供服务。点击 'Invalidate & Fetch' 按钮将使在缓存服务器中缓存的内容变为无效,并得到一个新的随机生成的数字集合。

资源


请在 OTN 示例代码论坛中发表您对此示例的意见


寄送此页面
Printer View 打印机视图