동적 캐시 서비스 사용
서블릿, 웹 서비스, WebSphere® Application Server 명령의 출력을 캐시하여 애플리케이션 성능을 개선하기 위해 동적 캐시 서비스를 사용합니다.
시작하기 전에
이 태스크 정보
프로시저
- 서버 > 서버 유형 > WebSphere® 애플리케이션 서버 > server_name > 컨테이너 서비스 > 동적 캐시 서비스를 클릭하십시오.
- 기본 캐시 인스턴스를 구성하거나 링크를 따라 서블릿 또는 포틀릿 캐싱을 사용하십시오. 기본 캐시 설정에 대한 자세한 정보는 동적 캐시 서비스 설정 문서를 참조하십시오.
예
다음 예에는 cachespec.xml 파일을 사용하여 동적 캐시 서비스를 구성하는 모든 단계가 나열되고 캐시 ID 생성 규칙, 종속성 ID, 무효화 규칙의 사용이 표시되어 있습니다.
서블릿이 단순 뉴스 사이트를 관리한다고
가정합니다. 이 서블릿에서는 조회 매개변수 "action"을 사용하여
요청에서 뉴스를 보는지(조회 매개변수 "view") 또는 뉴스를 업데이트하는지(조회
매개변수 "update") 여부를 판별합니다(관리자가 사용). 다른 조회
매개변수 "category"는 뉴스 카테고리를 선택합니다. 이 사이트에서
속성 이름 "레이아웃"을 사용하여 사용자의 세션에 저장되는 선택적
사용자 정의 레이아웃을 지원한다고 가정합니다. 다음은 이 서블릿에
제출되는 URL 요청 예입니다.
- http://yourhost/yourwebapp/newscontroller?action=view&category=sports (스포츠 카테고리의 뉴스 페이지를 리턴함)
- http://yourhost/yourwebapp/newscontroller?action=view&category=money (금융 카테고리의 뉴스 페이지를 리턴함)
- http://yourhost/yourwebapp/newscontroller?action=update&category=fashion (관리자가 패션 카테고리에서 뉴스를 업데이트할 수 있도록 함)
다음 단계에서는 cachespec.xml 파일을 사용하여 이 예제의 동적 캐시 서비스를 구성하는 방법을 설명합니다.
- 서블릿을 식별하는 데 필요한
<cache-entry>
요소를 정의합니다. 이 경우 서블릿의 URI가 "newscontroller"이므로
newscontroller가 cache-entry <name> 요소입니다. 이 예제에서는
서블릿 또는 JSP(JavaServer Pages) 파일을 캐시하므로 캐시 항목 클래스는
"servlet"입니다.
<cache-entry> <name> /newscontroller </name> <class>servlet </class> </cache-entry>
- 캐시 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>
- 종속성 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>
- 무효화 규칙을 정의합니다. 카테고리 종속성 ID가
이미
정의되어 있으므로 action=update인 경우 무효화 규칙을 정의하여 카테고리를
무효화하십시오. 조건 논리를 통합하기 위해 "ignore-value" 컴포넌트를
무효화 규칙에 추가합니다. 이 컴포넌트는 무효화 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> <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>