Hi everybody again. I've just created
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PopulateCache async="false" continueOnError="false" enabled="true" name="OpenCache"> <DisplayName>OpenCache</DisplayName> <Properties/> <CacheKey> <KeyFragment ref="MessageID"/> </CacheKey> <CacheResource>SessionCache</CacheResource> <Scope>Global</Scope> <ExpirySettings> <TimeoutInSec>3600</TimeoutInSec> </ExpirySettings> <Source>uuid</Source> </PopulateCache>
and then build the simple chain LookupCache --> InvalidateCache --> LookupCache. the issue is that invalidate cache doesn't work. My second LookupCache still see the value stored in cache
My Invalidate Cache
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateSession"> <DisplayName>InvalidateSession</DisplayName> <Properties/> <CacheKey> <KeyFragment ref="UUIDfromCache"/> </CacheKey> <CacheResource>SessionCache</CacheResource> <Scope>Exclusive</Scope> <!--<CacheContext>--> <!-- <APIProxyName>CachedProxy</APIProxyName>--> <!-- <ProxyName>default</ProxyName>--> <!-- <TargetName>default</TargetName>--> <!--</CacheContext>--> <PurgeChildEntries>false</PurgeChildEntries> </InvalidateCache>
And Lookup
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <LookupCache async="false" continueOnError="false" enabled="true" name="GetUUIDFromCache"> <DisplayName>GetUUIDFromCache</DisplayName> <Properties/> <CacheKey> <KeyFragment>rrt333ea-2722-940940-1</KeyFragment> </CacheKey> <CacheResource>SessionCache</CacheResource> <Scope>Global</Scope> <AssignTo>UUIDfromCache</AssignTo> </LookupCache>
And I have one more question. I use messageid as key. Is it a good idea?
@Oleksandr Skoryi , What do mean message id , Apigee message processor id ?
@Oleksandr Skoryi, please verify if the CacheKey and Scope is same in all the three policies.
messageId and UUIDfrom cache can be different.
User | Count |
---|---|
6 | |
2 | |
1 | |
1 | |
1 |