동적 캐시 서비스 사용

동적 캐시 서비스를 사용하면 서블릿, 웹 서비스 및 웹 서비스의 출력을 캐싱하여 애플리케이션 성능을 향상할 수 있습니다. WebSphere® Application Server 메모리에 명령을 내립니다.

시작하기 전에

애플리케이션에 대한 캐시 정책을 개발하십시오. 캐시 정책은 캐싱할 응답과 캐시에 응답을 보유해야 하는 시간에 관한 규칙을 정의합니다. 자세한 정보는 cachespec.xml 파일로 캐시 가능 오브젝트 구성 문서의 내용을 참조하십시오.

이 태스크 정보

동적 캐시 서비스는 기본적으로 사용 가능합니다. 다음과 같이 기본 캐시 인스턴스를 구성할 수 있습니다.

프로시저

  1. 딸깍 하는 소리 서버 > 서버 유형 > WebSphere® 애플리케이션 서버 > 서버 이름> 컨테이너 서비스 > 동적 캐시 서비스.
  2. 기본 캐시 인스턴스를 구성하거나 서블릿 또는 포틀릿 캐싱을 사용할 링크를 따르십시오.
    기본 캐시 설정에 대한 자세한 정보는 동적 캐시 서비스 설정 문서의 내용을 참조하십시오.

이 예는 캐시 ID 생성 규칙, 종속성 ID, 무효화 규칙의 사용을 보여주면서 cachespec.xml 파일을 통해 동적 캐시 서비스를 구성하기 위한 모든 단계를 설명합니다.

서블릿이 단순한 뉴스 사이트를 관리한다고 가정하십시오. 이 서블릿은 조회 매개변수 "action"을 사용하여 요청이 (관리자가 사용하는) 뉴스를 보는 것인지(조회 매개변수 "view") 또는 뉴스를 업데이트하는 것인지(조회 매개변수 "update") 여부를 판별합니다. 또 다른 조회 매개변수 "category"는 뉴스 카테고리를 선택합니다. 이 사이트에서는 속성 이름 "layout"을 사용하여 사용자의 세션에 저장된 선택적 사용자 정의 레이아웃이 지원된다고 가정하십시오. 다음은 이 서블릿에 대한 예제 URL 요청입니다.
  • http:// 귀하의 호스트/귀하의 웹앱 /newscontroller?action=view&category=sports (스포츠 카테고리에 대한 뉴스 페이지를 반환합니다)
  • http:// 귀하의 호스트/귀하의 웹앱 /newscontroller?action=view&category=money (돈 카테고리에 대한 뉴스 페이지를 반환합니다)
  • http:// 귀하의 호스트/귀하의 웹앱 /newscontroller?action=update&category=fashion (관리자가 패션 카테고리의 뉴스를 업데이트할 수 있도록 허용)

다음 단계는 cachespec.xml 파일로 이 예제에 대한 동적 캐시 서비스를 구성하는 방법을 설명합니다.

  1. Servlet을 식별하는 데 필요한 <cache-entry> 요소를 정의합니다. 이 경우, Servlet의 URI가 "newscontroller"이므로 이것이 캐시 항목의 <name> 요소가 됩니다. 이 예제는 서블릿 또는 JSP(JavaServer Pages) 파일을 캐싱하므로 캐시 항목 클래스는 "servlet"입니다.
    <cache-entry> 
    <name> /newscontroller </name>
    <class>servlet  </class>  
     </cache-entry>
  2. 캐시 ID 생성 규칙을 정의하십시오. 이 서블릿은 action=view일 때에만 캐싱하므로 값이 "view"일 때 캐시 ID의 한 컴포넌트는 매개변수 "action"입니다. 뉴스 카테고리도 캐시 ID의 본질적 파트입니다. 사용자 레이아웃에 대한 선택적 세션 속성은 캐시 ID에 포함됩니다. 캐시 항목은 이제 다음과 같습니다.
    <cache-entry> 
    	<name> /newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    		<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    		<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    </cache-entry>
  3. 종속성 ID 규칙을 정의하십시오. 이 서블릿의 경우 종속성 ID가 카테고리에 대해 추가됩니다. 나중에 업데이트 이벤트로 인해 카테고리가 무효화되면 이 뉴스 카테고리의 모든 보기가 무효화됩니다. 다음은 종속성 ID를 추가한 후의 캐시 항목 예제입니다.
    <cache-entry> 
    	<name>newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    		<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    		<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    	<dependency-id>category
    		<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    	</dependency-id>
    </cache-entry>
    
  4. 무효화 규칙을 정의하십시오. 카테고리 종속성 ID가 이미 정의되어 있으므로 action=update일 때 카테고리를 무효화하는 무효화 규칙을 정의하십시오. 조건부 논리를 통합하려면 "ignore-value" 컴포넌트를 무효화 규칙에 추가하십시오. 이 컴포넌트는 무효화 ID의 출력에 추가하지 않고 무효화 ID가 작성 또는 실행하는지 여부만을 판별합니다. 이제 최종 cache-entry는 다음과 같습니다.
    <cache-entry> 
    	<name>newscontroller </name>
    	<class>servlet  </class>  
     	<cache-id>
    		<component id="action" type="parameter">
    			<value>view</value>
    			<required>true</required>
    		</component>
    		<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    		<component id="layout" type="session">
    			<required>false</required>
    		</component>
    	</cache-id>
    	<dependency-id>category
    		<component id="category" type="parameter">
    			<required>true</required>
    		</component>
    	</dependency-id>
    	<invalidation>category
    		<component id="action" type="parameter" ignore-value="true">
    			<value>update</value>
    			<required>true</required>
    		</component>
    		<component id="category" type="parameter">
    			<required>true</required>
         </component>
    	</invalidation>
    </cache-entry>

다음에 수행할 내용

동적 캐시 디스크 오프로드를 사용하고자 할 수 있습니다. 이 옵션은 만기된 캐시 항목을 추후의 잠재적 액세스를 위해 메모리에서 디스크로 이동시킵니다. 디스크 오프로드 사용에 대한 자세한 정보는 동적 캐시 디스크 오프로드 구성의 내용을 참조하십시오.