웹 모듈 WEB-INF 또는 엔터프라이즈 Bean
META-INF 디렉토리 내에 있는 cachespec.xml 내에
캐시 가능 오브젝트를 정의하려면 이 태스크를 사용하십시오.
시작하기 전에
동적 캐시를 사용하십시오. 자세한 정보는 동적 캐시
서비스 사용 문서의 내용을 참조하십시오.
이 태스크 정보
글로벌 cachespec.xml을
Application Server 특성 디렉토리에 저장할 수 있지만 권장하는 방법은
캐시 구성 파일을 배치 모듈과 함께 두는 것입니다.
cachespec.xml 파일의 루트 요소는 <cache>이며,
<cache-entry> 요소를 포함합니다.
문제점 방지: Application Server
특성 디렉토리에 글로벌
cachespec.xml 파일이 있고
애플리케이션에
cachespec.xml 파일이 있는 상황에서는
두 가지 cachespec.xml 파일의 항목이
병합됩니다. 두 개의 파일에 충돌하는 항목이 있으면 애플리케이션에 있는
cachespec.xml 파일의 항목이 이 애플리케이션에 대한
글로벌
cachespec.xml 파일의 항목을
대체합니다.
gotcha
<cache-entry> 요소를
<cache> 요소나 <cache-instance>
요소 내에 중첩시킬 수 있습니다. <cache> 요소 내에 중첩되는 <cache-entry> 요소는
기본 캐시 인스턴스에 캐싱됩니다. <cache-instance> 요소에 있는
<cache-entry> 요소는 <cache-instance> 요소의
name 속성에 지정된
인스턴스에서 캐싱됩니다.
<cache-entry> 내에서 요소는
다음 태스크를 완료하여 cachespec.xml 파일로
동적 캐시를 사용할 수 있게 하는 매개변수입니다.
프로시저
- cachespec.xml 파일을 개발하십시오.
- 캐싱 구성 파일을 작성하십시오.
<app_server_root>/properties
디렉토리에서 cachespec.sample.xml 파일을 찾으십시오.
- cachespec.sample.xml 파일을
웹 모듈 WEB-INF의 cachespec.xml 또는
엔터프라이즈 Bean META-INF 디렉토리에 복사하십시오.
- 캐시 가능 오브젝트를 식별하는 데 필요한 cache-entry 요소를
정의하십시오. 요소 목록은 cachespec.xml 파일 주제의
내용을 참조하십시오.
- 캐시 ID 규칙을 개발하십시오.
오브젝트를 캐싱하려면 WebSphere® Application Server가
이 오브젝트의 여러 다른 호출에 고유 ID를 생성하는 방법을 알고 있어야 합니다.
<cache-id> 요소가 이 태스크를 수행합니다.
각 캐시 항목마다 규칙이 비어 있지 않은 cache-ID를
리턴하거나 실행할 규칙이 더 이상 남이 있지 않을 때까지 순서대로 실행하는
여러 cache-ID 규칙이 있을 수 있습니다. 유효한 캐시 ID를 생성하는
cache-ID 생성 규칙이 없으면 오브젝트가 캐싱되지 않습니다. 다음 두 가지 방법 중
하나로 캐시 ID를 개발하십시오.
- 캐시 항목의 캐시 정책에 정의된 <component> 요소를
사용하십시오(권장). <component> 요소에 대한
자세한 정보는 cachespec_xml 파일 주제의 내용을
참조하십시오.
- 입력 변수 및 시스템 상태에서 ID를 빌드할 사용자 정의
Java™
코드를 쓰십시오. ID 생성기를 사용하도록
캐시 항목을 구성하려면 <idgenerator> 태그를 사용하여
XML 파일에 IdGenerator를 지정하십시오. 예를 들면,
<cache-entry>
<class>servlet</class>
<name>/servlet/CommandProcessor</name>
<cache-id>
<idgenerator>com.mycompany.SampleIdGeneratorImpl</idgenerator>
<timeout>60</timeout>
</cache-id>
</cache-entry>
- 종속성 ID 규칙을 지정하십시오. 다수의 캐시 항목을
동일한 그룹 ID에 연관시키는 추가 캐시 그룹 ID를 지정하려면
종속성 ID 요소를 사용하십시오.
종속성 ID는
컴포넌트 요소가 리턴한 값을 종속성 ID 기본 문자열과 연결해서
생성됩니다. 필수 컴포넌트가
null 값을 리턴하면 전체 종속성 ID가 생성되지 않고 사용되지
않습니다. 동적인 캐시 API를 통해
명시적으로 종속성 ID의 유효성을 검증하거나 다른 캐시 항목 <invalidation> 요소를
사용할 수 있습니다. 캐시 항목마다
여러 종속성 ID 규칙이 존재할 수 있습니다. 모든 종속성 ID 규칙은 개별적으로
실행합니다. <component> 요소의 목록은
cachespec.xml 파일 주제의 내용을 참조하십시오.
- 관련된 경우 이 오브젝트 시작의 부작용으로, 다른 캐시 항목을
무효화시키십시오. 정확히 종속성 ID와
같은 방법으로 무효화 규칙을 정의할 수 있습니다. 하지만 무효화 규칙으로
생성된 ID는 동일한 종속성 ID가 있는 캐시 항목을 무효화하는 데
사용됩니다.
무효화 ID는 컴포넌트 요소가
리턴한 값을 무효화 ID 기본 문자열과 연결해서
생성됩니다. 필수 컴포넌트가
null 값을 리턴하면 전체 무효화 ID가 생성되지 않고 무효화가
발생하지 않습니다. cache-entry마다
여러 무효화 규칙이 존재할 수 있습니다. 모든 무효화 규칙은 개별적으로 실행합니다.
- 캐시 정책이 제대로 작동하는지 확인하십시오. 애플리케이션이
실행 중일 때 cachespec.xml 파일 내에서
정책을 수정할 수 있습니다. 동적 캐시는
업데이트한 파일을 자동으로 다시 로드합니다. 정적 컨텐츠를 캐싱 중이며
처음으로 캐시 정책을 애플리케이션에 추가하는 경우에는
애플리케이션을 다시 시작해야 합니다. 새 캐시 정책을 활성화하기 위해
Application Server를 다시 시작할 필요가 없습니다. 자세한 정보는
캐시 가능 페이지 확인 주제의 내용을 참조하십시오.
다음에 수행할 작업
일반적으로
cachespec.xml 파일 내에
여러
<cache-entry> 요소를 선언합니다.
cachespec.xml의
새 버전이 감지되면 이전 정책은 대체됩니다. 이전 정책 파일을
통해 캐싱한 오브젝트는 캐시에서 자동으로 무효화되지 않고,
새 정책과 함께 재사용되거나 교체 알고리즘을 통해
캐시에서 제거됩니다.
캐시 항목이 생성하는 각 세 가지 ID(캐시, 종속성, 무효화)마다
<cache-entry>에 여러 요소가 포함될 수 있습니다. 동적 캐시는 <cache-id> 규칙을
순서대로 실행하며 ID를 생성하는 첫 번째 규칙을 사용하여
해당 출력을 캐싱합니다. 오브젝트를 캐싱할 경우에는
<dependency-id> 요소 중 각각 하나를 실행해서
해당 캐시 항목에 대한 종속성 ID 세트를 빌드합니다. 마지막으로
이 오브젝트가 캐싱되는지 여부와 무관하게, 동적 캐시가
무효화하는 ID 목록을 빌드하면서 각 <invalidation> 요소가 실행됩니다.