OCache Servletキャッシュアプリケーション
OscCacheは現在最も広く使われているキャッシュプログラムです.JBoss、Hibernate、Springなどがサポートされています.OscCacheの配置と使用過程を簡単に紹介します.1.インストールプロセスはhttp://www.opensymphony.com/oscache/download.actionから適当なOsccacheバージョンをダウンロードして、私がダウンロードしたのはoscache-2.4.2-fullバージョンです.ダウンロードしたファイルを解凍して指定ディレクトリからoscache.jarファイルを解凍して/WEB-INF/libまたは対応するクラスリストに入れます.jarファイル名はバージョン番号とリリース日時情報などを含んでいます.例えば、oscache-2.4.1.1.jarはjdkバージョンが1.3.xであれば、libにAsphe Comon Libのcomons Libのcollection.jallection.jace.jace.ject.jectを追加することを提案します.jdkが1.4以上であれば、ETCディレクトリからoscache.propertiesファイルを取得する必要はなく、srcルートディレクトリまたは発表環境の/WEB-INF/clasesディレクトリに入れて、ディスクキャッシュを確立する必要があれば、Ocache.propertiesのcache.path情報を修正する必要があります.Windowsクラスのパスはc:\myapp\cacheに似ています.
unix類の経路は/opt/myapp/cacheがETCディレクトリMETA-INFの下のOScacheラベルライブラリファイルoscache.tdから/WEB-INF/clasesディレクトリをコピーします.今あなたのアプリケーションのディレクトリは以下のようです.APPLICATION\WEB-INF\lib\oscache.jar$WEB_APPLICATION\WEB-INF\clases\oscache.properties$WEB_APPLICATION\WEB-INF\classies\oscache.tldは下記のコードをweb.xmlファイルに追加します.
=======================================================================================
test.do実行マニュアルリフレッシュページは以下の通りです.
unix類の経路は/opt/myapp/cacheがETCディレクトリMETA-INFの下のOScacheラベルライブラリファイルoscache.tdから/WEB-INF/clasesディレクトリをコピーします.今あなたのアプリケーションのディレクトリは以下のようです.APPLICATION\WEB-INF\lib\oscache.jar$WEB_APPLICATION\WEB-INF\clases\oscache.properties$WEB_APPLICATION\WEB-INF\classies\oscache.tldは下記のコードをweb.xmlファイルに追加します.
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/classes/oscache.tld</taglib-location>
</taglib>
調整ログの出力を容易にするために、commons-loging.jarとlog 4 j-1.2.jarを入れて、現在のクラスライブラリのパスの中でsrcディレクトリに次の2つのログ出力プロファイルを追加する必要があります.log4j.properties :
log4j.rootLogger=DEBUG,stdout,file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[start]%d{yyyy/MM/dd/ HH:mm:ss}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=oscache.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[start]%d{yyyy/MM/dd/ HH:mm:ss}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.logger.org.apache.commons=ERROR
log4j.logger.com.opensymphony.oscache.base=INFO
commons-logging.propertiesファイルの内容はorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
2.oscache.propertiesファイル構成ガイドcache.memory値はtrueまたはfalseであり、デフォルトはメモリにキャッシュされています.falseに設定されているなら、cacheはデータベースまたはハードディスクにしかキャッシュできません.cacheはまだ何の意味がありますか?cache.path情報cache.clusterをクラスタに関連して情報を設定しなければならない.cache.cluster.multicast.ipはブロードキャストIPアドレスcache.cache.propertiesのようなクラスタ属性3.OScacheの基本的な使い方です. default.doの内容は以下の通りです.<%@ page import="java.util.*" %>
<%@ taglib uri="oscache" prefix="cache" %>
<html>
<body>
: <%= new Date() %><p>
<!-- -->
<cache:cache time="30">
30 : <%= new Date() %>
</cache:cache>
<!-- -->
<cache:cache key="testcache">
: <%= new Date() %> <p>
</cache:cache>
<a href="rwg109/filter/test.do/"> </a>
</body>
</html>
=======================================================================================
test.do実行マニュアルリフレッシュページは以下の通りです.
<%@ taglib uri="oscache" prefix="cache" %>
<html>
<body>
...<p>
<cache:flush key="testcache" scope="application"/>
<a href="rwg109/filter/default.do"> </a>
</body>
</html>
あなたも次の文でCacheの有効範囲を定義してもいいです.scopeを定義しないなら、scopeはデフォルトでAppplcationです.<cache:cache time="30" scope="session">
...
</cache:cache>
4.キャッシュフィルタCachefilterは、web.xmlでキャッシュフィルタを定義し、特定のリソースのキャッシュを定義することができます.<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
<init-param>
<param-name>time</param-name>
<param-value>60</param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>session</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>/filter/*</url-pattern>
</filter-mapping>
上ではキャッシュのすべてのページを定義し、キャッシュリフレッシュ時間は60秒であり、キャッシュアクティブ領域はSessionであり、CachenFilterはHttpヘッダを200として取り込むページ要求のみを定義しています.つまり、他の要求(500,404,400)に対してはキャッシュを行わず、エラーなし要求のみをバッファにします.