API로 공개 된 서비스에 캐시 기능을 추가하려고하므로 반복되는 요청이 캐시 된 응답을 얻을 수 있습니다. 하지만 캐시 된 응답 대신 중재자가 클라이언트에서 보낸 메시지를 반환합니다.캐시 조정자가 EI 6.1에서 캐시 된 응답을 반환하지 않습니다.
이<?xml version="1.0" encoding="UTF-8"?>
<api context="/config" name="myAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET">
<inSequence>
<cache collector="false" hashGenerator="org.wso2.carbon.mediator.cache.digest.DOMHASHGenerator" id="testCache" scope="per-mediator" timeout="200">
<onCacheHit/>
<implementation maxSize="100" type="memory"/>
</cache>
<property expression="$url:intg" name="uri.integration" scope="default" type="STRING"/>
<property expression="$url:inst" name="uri.institution" scope="default" type="STRING"/>
<payloadFactory media-type="xml">
<format>
<con:show xmlns:con="http://com.dvg.wso2/configservice">
<con:SEL_INTG_NAME>$1</con:SEL_INTG_NAME>
<con:SEL_INSTITUTION>$2</con:SEL_INSTITUTION>
</con:show>
</format>
<args>
<arg evaluator="xml" expression="get-property('uri.integration')"/>
<arg evaluator="xml" expression="get-property('uri.institution')"/>
</args>
</payloadFactory>
<header name="Action" scope="default" value="urn:show"/>
<send>
<endpoint>
<address format="soap11" uri="local:///services/INTG_DVG_ConfigService/"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<cache collector="true" scope="per-mediator" id="testCache"/>
<send/>
</outSequence>
<faultSequence/>
</resource>
</api>
내 예상 출력 뭔가해야한다 :
여기 내 api.It의 구성은 두 개의 쿼리 매개 변수를 수신하고 로컬 DSS 서비스에 보내는 payoad을 만들을 사용하는 GET 자원을 설명합니다 다음 같은 :
<soapenv:Body>
<properties>
<property>
<key>A</key>
<value>A</value>
</property>
</properties>
</soapenv:Body>
하지만이 같은 캐시 된 응답을 수신하고있어이 :
<con:show xmlns:con="http://com.dvg.wso2/configservice"><con:SEL_INTG_NAME>A</con:SEL_INTG_NAME><con:SEL_INSTITUTION>A</con:SEL_INSTITUTION></con:show>
콘텐츠는 어느 내가 작성하는 페이로드의 순서대로. 캐시 미스의 경우 예상되는 응답을 받았다고 명시해야합니다.
캐시 조정자를 그대로 구성하면 캐시 미스의 응답을 저장하고 캐시 적중시이를 반환해야합니까?
잘못된 콘텐츠로 응답하는 이유는 무엇입니까?
--- 편집 ---, 나는 캐시 중재자는 실제로 저장하는 대신 입력 메시지를 복원하는 것을 conirm 할 수 있었다
org.wso2.carbon.mediator.cache.CacheMediator 로그에 대한 구성을 변경 한 후 응답의.
API에서만 proxyService에서 재생하려고하면이 동작이 발생하지 않습니다.
캐시 유형으로 인해 캐시 검색이 가능할 수도 있습니다 (응답 메시지가 아닌 수신 메시지 캐시) – simar
@simar 캐시가 작동하려면 수집기/검색기 조정자 쌍이 필요하지 않습니까? 하나는 들어오는 메시지의 요청 해시를 검색하고 다른 하나는 캐시에서 응답 메시지를 수집하는 것입니다. –
맞습니다. 문서를 읽는 데주의를 기울이지 않았습니다. – simar