동적 캐시 서비스 사용
동적 캐시 서비스를 사용하면 서블릿, 웹 서비스 및 웹 서비스의 출력을 캐싱하여 애플리케이션 성능을 향상할 수 있습니다. WebSphere® Application Server 메모리에 명령을 내립니다.
시작하기 전에
이 태스크 정보
프로시저
- 딸깍 하는 소리 서버 > 서버 유형 > WebSphere® 애플리케이션 서버 > 서버 이름> 컨테이너 서비스 > 동적 캐시 서비스.
- 기본 캐시 인스턴스를 구성하거나
서블릿 또는 포틀릿 캐싱을 사용할 링크를
따르십시오.기본 캐시 설정에 대한 자세한 정보는 동적 캐시 서비스 설정 문서의 내용을 참조하십시오.
예
이 예는 캐시 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 파일로 이 예제에 대한
동적 캐시 서비스를 구성하는 방법을 설명합니다.
- Servlet을 식별하는 데 필요한 <cache-entry> 요소를 정의합니다. 이 경우, Servlet의 URI가
"newscontroller"이므로 이것이 캐시 항목의 <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는 다음과
같습니다.
<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>