동적 캐시 서비스에 대한 문제점 해결 팁

동적 캐시 서비스는 캐시 가능한 오브젝트로 호출을 인터셉트하면서 Application Server JVM(Java™ Virtual Machine) 내에서 작동합니다.

Servlet이 캐싱되지 않음

권장되는 응답

서블릿 캐싱을 사용으로 설정하십시오. 관리 콘솔의 웹 컨테이너 설정 페이지에서 Servlet 캐싱 사용 선택란을 선택하십시오.

캐시 항목이 디스크에 기록되지 않음

설명 권장되는 응답
캐시가 가득 찼거나 새 항목이 메모리 캐시에 추가되는 경우에는 캐시 항목을 디스크에 기록합니다. 캐시 항목은 또한 디스크로 비우기가 관리 콘솔에서 사용 가능하고 서버가 중지된 경우에 디스크에 쓰여집니다.

관리 콘솔의 동적 캐시 서비스 설정 페이지에서 디스크 오프로드가 사용 가능으로 설정되었는지 확인하십시오. 디스크에 기록된 캐시 항목이 직렬화 가능하고 PersistToDisk 구성을 false로 설정하지 않는지도 확인하십시오.

몇몇 Servlet이 복제되거나 디스크에 기록되지 않음

권장되는 응답
속성 및 응답이 직렬화 가능한지 확인하십시오. 속성을 저장하지 않으려면 캐시 정책에서 다음 특성을 사용하십시오.
<property name="save-attributes">false</property>

동적 캐시 서비스가 에지(Edge)에서 단편을 캐싱하지 않음

권장되는 응답
에지에서 캐싱될 항목의 캐시 정책에서 EdgeCacheable 특성을 true로 설정하십시오.
<property name="EdgeCacheable">true</property>

동적 캐시 무효화가 IBM HTTP Server 플러그인으로 전송되지 않음

설명 권장되는 응답
무효화를 외부 캐시로 전송하려면 DynaCacheEsi.ear 파일이 필요합니다.

관리 콘솔을 사용하여 DynaCacheEsi.ear 파일을 설치하십시오.

캐시 항목이 경우에 따라 제거됨

문제점 설명 권장되는 응답
캐시가 가득 찼고 새 항목이 캐시에 추가됩니다. 캐시가 가득 찼거나 새 항목이 캐시에 추가되는 경우에는 캐시 항목이 축출됩니다. 가장 최근 사용(LRU) 축출 메커니즘은 새 항목을 위한 공간을 만들기 위해 가장 이전에 사용된 항목을 제거합니다.

항목을 디스크에 기록할 수 있도록 관리 콘솔의 동적 캐시 서비스 설정 페이지에서 디스크 오프로드를 사용으로 설정하십시오. 또한 캐시에 더 많은 항목을 담을 수 있도록 캐시 크기를 늘릴 수 있습니다.

디스크에서 제한시간이 0으로 설정된 캐시 항목이 하루가 지난 후에 만기됨

설명 권장되는 응답
디스크 캐시에 있는 항목의 최대 지속 시간은 24시간입니다. 캐시 정책에서 시간 제한 0은 이러한 항목이 축출되지 않는 한 하루 동안 디스크 캐시에 머물도록 구성합니다. 캐시 정책의 제한시간을 0보다 작은 숫자로 설정하십시오.

에지에서 캐시 항목을 모니터할 수 없음

설명 권장되는 응답

동적 캐시 모니터를 사용하여 에지 캐시와 같은 외부 캐시, 메모리 캐시 및 디스크 캐시의 컨텐츠를 모니터하십시오. ESI 프로세서의 캐시가 캐시 모니터에 표시되도록 하려면 DynaCacheEsi.ear 애플리케이션이 설치되어야 하고 plugin-cfg.xml 파일에서 esiInvalidationMonitor 특성은 true로 설정되어야 합니다.

plugin-cfg.xml 파일의 esiInvalidationMonitor 특성을 true로 설정하십시오. 동적 캐시 서비스 활동 모니터링에 대한 자세한 정보는 캐시 정보 표시 주제를 참조하십시오.

캐시를 내 환경에 맞춰 미세 조정

권장되는 응답
애플리케이션에 대한 캐싱 동작을 연구하려면 Tivoli® Performance viewer를 사용하십시오. 또한 다음 조치의 수행도 고려하십시오.
  • 재생성하기에는 비용이 많이 드는 캐싱 항목의 우선순위를 높이십시오.
  • 항목이 유효한 동안에는 최대한 오래 메모리에 머물 수 있도록 제한시간을 수정하십시오.
  • LRU 축출된 항목을 저장하기 위해 디스크 오프로드를 사용으로 설정하십시오.
  • 캐시 크기를 늘리십시오.

수정팩이나 새 릴리스를 설치한 후 디스크 캐시 파일 정리

증상 문제점 권장되는 응답
디스크 캐시를 사용하도록 서버를 구성한 경우 디스크 캐시 파일이 이전 버전과 호환되지 않으므로 디스크 캐시 파일을 삭제해야 합니다. 이전 디스크 캐시 파일을 제거하지 않으면 디스크에서 캐시에 액세스할 때 systemerr.log 파일에 ClassCastException 오류가 발생합니다.
참고: 이 주제는 하나 이상의 애플리케이션 서버 로그 파일을 참조합니다. 권장되는 대안은 분배 및 IBM® i 시스템에서 SystemOut.log, SystemErr.log, trace.logactivity.log 파일을 사용하는 대신 HPEL(High Performance Extensible Logging) 로그를 사용하고 인프라를 추적하도록 서버를 구성하는 것입니다. 원시 z/OS® 로깅 기능과 연계하여 HPEL을 사용할 수도 있습니다. HPEL을 사용하는 경우 서버 프로파일 바이너리 디렉토리의 LogViewer 명령행 도구를 사용하여 모든 로그에 액세스하고 정보를 추적할 수 있습니다. HPEL 사용에 대한 자세한 정보는 HPEL을 사용한 애플리케이션 문제점 해결 정보를 참조하십시오.
디스크 캐시를 삭제하려면 다음 단계를 수행하십시오.
  1. 디스크 오프로드 위치를 기록하십시오. 디스크 캐시 오프로드 위치를 모르면 다음 단계를 수행하십시오.
    1. 관리 콘솔 탐색 트리에서 서버 > 애플리케이션 서버 > server_name > 컨테이너 서비스 > 동적 캐시 서비스를 클릭하십시오.
    2. 위치는 디스크 오프로드 필드에 지정됩니다. 위치를 지정하지 않는 경우, 기본 디렉토리 profile_root/temp/your_node/server_name/_dynacache가 사용됩니다.
  2. 서버를 중지하고 오프로드 위치 아래의 파일을 모두 삭제했는지 확인하십시오.
  3. WebSphere® Application Server, Network Deployment 제품을 사용하는 경우 각 서버에 대한 디스크 캐시 파일을 삭제하십시오.

캐시 가능한 JavaServer Pages 파일의 모든 <jsp:include> 태그를 켜도록 비우기 속성 설정

캐시 가능한 JavaServer Pages 파일의 모든 <jsp:include> 태그에서 비우기 속성을 true로 설정하는지 확인하십시오.

증상 문제점 설명 권장되는 응답
JSP(JavaServer Pages) 파일을 동적 캐시에서 가져오면 페이지의 일부가 표시되지 않습니다. 비우기 속성이 JSP 파일의 <jsp: include> 태그에서 false로 설정되어 있습니다. 캐시 가능한 JSP 파일에 다른 JSP 파일이 포함되고 비우기 속성이 <jsp: include> 태그에서 false로 설정된 경우 <jsp: include> 태그 앞의 상위 출력 스트림에 기록한 데이터는 캐시되지 않습니다. 캐시 가능한 JSP 파일에서 모든 <jsp: include> 태그에서 flush=true를 설정하십시오.
[z/OS]

애플리케이션 서버가 대기 상태일 때의 파일 시스템 I/O 활동

증상 설명 가능한 응답 권장되는 응답
애플리케이션 서버가 대기 상태인 경우 파일 시스템 I/O 활동이 발생합니다. WebSphere Application Server는 캐시 정책이 정의되지 않은 경우에도 cachespec.xml 파일에 대해 HFS(Hierarchical File System)를 폴링합니다. 동적 캐시는 캐시 정책 파일의 업데이트를 확인하기 위해 30초마다 파일 시스템을 조회합니다. 캐시 정책 파일 업데이트를 확인하여 동적 캐시는 변경된 모든 캐시 정책을 자동으로 업데이트할 수 있습니다.

성능상의 이유로 여러 시스템 컴포넌트가 동적 캐시를 사용하므로 동적 캐시는 기본적으로 사용 가능합니다. wsadmin 스크립트를 사용하거나 관리 콘솔을 통해 동적 캐시 서비스를 사용 안함으로 설정할 수 있습니다. 동적 캐시 서비스 사용 설정에 대한 자세한 정보는 동적 캐시 서비스 사용 주제를 참조하십시오.

경고:
동적 캐시를 사용 안함으로 설정하면 동적 캐시 서비스의 분배된 맵핑 기능을 사용하므로 보안 성능이 저하될 수 있습니다.
캐시 가능한 JSP 파일에서 모든 <jsp: include> 태그에서 flush=true를 설정하십시오.

JSTL <c:import> 태그를 사용하여 단편을 포함할 경우 동적 캐시 제한사항

문제점 설명 권장되는 응답
JSTL(JavaServer Pages Standard Tag Library) <c:import> 태그를 사용하여 캐시 가능한 단편이 포함된 경우, 캐시 히트 시 페이지 컨텐츠의 일부는 사라지고 일부는 두 번 표시될 수 있습니다. 동적 캐시는 단편 포함 이전 및 이후에 컨텐츠 비우기에 종속되어 포함 이전의 상위 컨텐츠가 유실되지 않으므로 하위 컨텐츠가 상위 단편으로 풀(pull)되지 않게 합니다.

그러나 JSTL <c:import> 태그의 경우, 실제로 하위 단편이 호출되기 전에 상위 작성자를 비우는 flush=true 속성은 지원되지 않습니다. 또한 JST은 응답을 버퍼에 넣으므로 하위 단편이 완료된 후에 하위 작성자가 비워지지 않습니다. 그 후, 하위 응답은 상위 단편으로 풀(pull)됩니다.

제한사항:
동적 캐시는 JSTL <c:import> 태그가 캐시된 JSP(JavaServer Pages) 파일에 사용되는 경우 여러 개의 포함 명령문을 리턴합니다.
이러한 문제점을 방지하려면 다음과 같이 <c:import>문을 out.flush 메소드 명령문으로 묶으십시오.
<% out.flush(); %>
<c:import url="DNCParent2.jsp" />
<% out.flush(); %> 

서비스 통합 버스 메시지가 반복됨

서비스 통합 버스 메시지가 프로덕션 애플리케이션을 호스팅하는 클러스터 멤버의 로그에서 반복됩니다.

문제점 권장되는 응답
다중 셀 환경에서, 프로덕션 애플리케이션을 호스팅하는 클러스터 멤버의 로그에서 다음 메시지가 반복됩니다.
[time_stamp] CWSIT0007W: It is not possible to contact
 the bootstrap server at 
 9.9.9.9:7299:BootstrapBasicMessaging because of exception: 
 com.ibm.websphere.sib.exception.SIResourceException: 
 CWSIC1001E: 
A client attempted to connect with a remote messaging
 engine (9.9.9.9:7299 - BootstrapBasicMessaging) but
 the connection cannot be completed. Ensure the
 messaging engine is started: exception com.ibm.ws.sib
 .jfapchannel.JFapConnectFailedException: CWSIJ0063E: A 
 network connection to host name 9.9.9.9, port 7299
 cannot be established...
[time_stamp] 00000023 SystemOut O RemoteInvalidator
 unable to connect to ...
먼저, 원격 셀의 각 서비스 통합 버스 멤버가 시작되었는지 확인하십시오. 다음으로, 원격 셀 또는 코어 그룹에서 서비스 통합 버스 멤버마다 SIB_ENDPOINT_ADDRESS 포트가 올바르게 지정되었는지 확인하십시오. 잘못된 포트가 지정되는 경우 아웃바운드 구성 "--setup=dynacacheOutSIB --delete..."를 삭제하고 올바른 포트를 사용하여 재구성하십시오. 모든 것이 올바르게 작동 중일 때 다음 메시지와 유사한 메시지가 로그에 표시됩니다.
[time_stamp] 0000000a RemoteInvalid I   
DYNA1075I: The "RemoteJMSInvalidator" external 
cache group is connected. The configured JNDI name
of the queue connection factory is 
"DynacacheDestination-cell2" and the JNDI name of 
the targeted destination is 
"jms/DynacacheOutBoundConnectionFactory-cell1".

플랫폼 메시징 컴포넌트가 사용자 ID를 인증할 수 없음

설명 권장되는 응답
다중 셀 환경에서 서비스 통합 버스 멤버에 다음과 같은 오류가 있습니다.
[time_stamp] 00000022 SibMessage   E  [:] CWSII0050E: 
The Platform Messaging Component can not authenticate 
the user ID.
동적 캐시 서비스가 보안 버스를 사용하지 않기 때문에 이 메시지는 오해 소지가 있을 수 있습니다.
이 메시지는 다음 문제점 중 하나를 표시할 수 있습니다.

서비스 통합 버스 서버가 존재하지 않는 버스 대상에 대한 요청을 수신 중입니다. 송신하는 셀에서 "--setup=dynacacheOutSIB" 및 "--setup=dynacacheECA"를 실행할 때 올바른 원격 셀 이름이 사용되었는지 확인하십시오.

서비스 통합 버스 멤버를 사용할 수 없습니다. 이 문제점은 종종 인바운드 설정 "--setup=dynacacheInSIB"를 수행할 때 잘못된 클러스터가 지정되어서 발생합니다. "--cluster" 옵션에 서비스 통합 버스 클러스터가 지정되고 다른 클러스터가 지정되지 않도록 확인하십시오.

메시징 엔진의 고유 ID가 데이터 저장소에 있는 ID와 일치하지 않음

설명 권장되는 응답
다중 셀 환경에서 서비스 통합 버스 멤버에 다음과 같은 오류가 있습니다.
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1535E: The messaging engine's unique id does not
 match that found in the data store. 
 ME_UUID=D520787E8CA7F18A, ME_UUID(DB)=980C0B42B3A904F3
[time_stamp] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1546I: The messaging engine, 
 ME_UUID=D520787E8CA7F18A, INC_UUID=7228ea45e216f3ef,
 has lost an existing lock or failed to gain an initial
 lock on the data store.
[time_stamp] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1519E: Messaging engine edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2 
 cannot obtain the lock on its data store, which ensures 
 it has exclusive access to the data.
[time_stamp] 0000002d SibMessage    E   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS0002E: The messaging engine encountered an exception
 while starting. Exception: com.ibm.ws.sib.msgstore.
 PersistenceException: 
 CWSIS1501E: The data source has produced an unexpected
 exception: com.ibm.ws.sib.msgstore.persistence.
 DatasourceWrapperStateException: New connections cannot
 be provided because the persistence layer has been
 stopped	at com.ibm.ws.sib.msgstore.persistence.impl.
 PersistentMessageStoreImpl.start
 (PersistentMessageStoreImpl.java:188)
	at com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.
   start(MessageStoreImpl.java:1175)
	at com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.
	 start(JsMessagingEngineImpl.java:491)

서버를 중지하고, 서비스 통합 버스 멤버에 해당되는 WAS_INSTALL_ROOT\profiles\AppSrv01\filestores\com.ibm.ws.sib에서 디렉토리를 삭제한 후 서버를 다시 시작하십시오.

dynacacheJMSSIB 스크립트가 DynacacheMessageHandler.ear 파일을 찾을 수 없음

설명 권장되는 응답
다중 셀 환경에서, dynacacheJMSSIB 스크립트가 DynacacheMessageHandler.ear 파일을 찾을 수 없어서 다음 메시지가 로그에 표시됩니다.
WASX7017E: Exception received while running file
"../../../util/dynacacheJMSSIB.py"; exception 
information: 
com.ibm.ws.scripting.ScriptingException: WASX7115E: 
Cannot read input file "/opt/WAS/6.1/cf270928.19
 /profiles/AppSrv01/logs/DynacacheMessageHandler.ear"
적절한 상대 경로에서 ../../../util/dynacacheJMSSIB.py와 ../../../installableApps/DynacacheMessageHandler.ear을 찾을 수 있도록 WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin에서 dynacacheJMSSIB 스크립트를 실행하십시오.

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_trb
파일 이름:rdyn_trb.html