Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. In this example, the first message is sent to the endpoint specified as cache is not hit. The response will come to the Cache Mediator inside the out mediator, which caches the response. The second similar message will match the cache and the response will be directly fetched from the cache and sent to the requester. This happens because no onCacheHit sequence is defined.

    Code Block
    XML
    XML
    <definitions xmlns="http://ws.apache.org/ns/synapse">
      <in>
        <cache timeout="20" scope="per-host" collector="false"
          hashGenerator="org.wso2.caching.digest.DOMHASHGenerator">
          <implementation type="memory" maxSize="100"/>
        </cache>
    
        <send>
          <endpoint>
            <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
          </endpoint>
        </send>
      </in>
    
      <out>
        <cache collector="true"/>
        <send/>
      </out>
    </definitions>
  2. According to this example configuration, if you define a cache collector using the cache mediator in the in sequence, you need to add the RESPONSE property to consider the message as a response message.

    Code Block
    languagexml
    <api xmlns="http://ws.apache.org/ns/synapse" name="cacheAPI" context="/cache">
       <resource methods="POST GET" uri-template="/headerapi/*">
    	<inSequence>
    		<cache       <inSequence>
             <cache id="cache-sample" scope="per-host" collector="false" hashGenerator="org.wso2.carbon.mediator.cache.digest.DOMHASHGenerator" timeout="5000">
    			<protocol
                <implementation type="HTTP">
    				<methods>GET, POST</methods>
    				<headersToExcludeInHash>*</headersToExcludeInHash>
    				<responseCodes>.*</responseCodes>
    				<hashGenerator>org.wso2.carbon.mediator.cache.digest.HttpRequestHashGenerator</hashGenerator>
    			</protocol>
    		</cache>
    		<call>
    			<endpoint>
    				memory" maxSize="1000"/>
             </cache>
             <call>
                <endpoint>
                   <address uri="http://localhost:9000/services/SimpleStockQuoteService"/>
    			
                </endpoint>
    		         </call>
    		
             <property name="RESPONSE" value="true" scope="default" type="STRING"/>
    		<enrich>
    			
             <enrich>
                <source type="inline" clone="true">
    				
                   <ax21:newvalue 					xmlns:ax21="http://services.samples/xsd">testsamplevalue
    				                </ax21:newvalue>
    			
                </source>
    			<target
    				            <target xmlns:ax21="http://services.samples/xsd" 				xmlns:ns="http://services.samples" action="sibling" xpath="//ns:getQuoteResponse/ns:return/ax21:volume"/>
    			         </enrich>
    			<cache 
             <cache scope="per-host" collector="true"/>
    			
             <respond/>
    		
          </inSequence>
       </resource>
    </api>
    Excerpt
    hiddentrue

    Description of the Cache Mediator in WSO2 ESB.