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ファイルに追加します.
<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)に対してはキャッシュを行わず、エラーなし要求のみをバッファにします.