获取缓存列表,出现重复信息。
输入新的卡信息无效。提示不存在。
缓存貌似并没有起作用,每次仍然获取远程数据。
1. 检查缓存文件,的确是重复数据。
代码
<DeepCacheItem cachekey="C8431E35E4C10054AC77C2A76782AF85" createdate="2010-8-22 21:00:29" enddate="2010-8-28 21:00:29" hitrate="0">
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
<DeepCacheItem cachekey="16BCD5B1299E5A5D085F2E0E8D43AEBD" createdate="2010-8-22 21:02:11" enddate="2010-8-28 21:02:11" hitrate="0">
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
<DeepCacheItem cachekey="C8431E35E4C10054AC77C2A76782AF85" createdate="2010-8-22 21:09:12" enddate="2010-8-28 21:09:12" hitrate="0">
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
<DeepCacheItem cachekey="16BCD5B1299E5A5D085F2E0E8D43AEBD" createdate="2010-8-22 21:02:11" enddate="2010-8-28 21:02:11" hitrate="0">
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
<DeepCacheItem cachekey="C8431E35E4C10054AC77C2A76782AF85" createdate="2010-8-22 21:09:12" enddate="2010-8-28 21:09:12" hitrate="0">
<MethodName>SEARCHMEMBERINFORMATION</MethodName>
<MethodResponse>略</MethodResponse>
</DeepCacheItem>
从时间上看,是因为缓存到期了。
<DeepCacheItem cachekey="16BCD5B1299E5A5D085F2E0E8D43AEBD" createdate="2010-8-16 15:03:03" enddate="2010-8-22 15:03:03" hitrate="0">
所以发生了读取远程操作。
2. MRU容量,默认是50。获取的缓存内容:45. 没有到达最大值。
3. NOebe.MemoryCaches 和 remoting一样使用了MostRecentlyUsedList,因此不是这个问题。
4. 检查remoting是否能够获取网站信息。能够获取卡信息。
问题原因:
------------------
1. 即使使用了缓存,仍然需要先login、操作完毕logout,导致了性能低下。而且获取缓存在很多操作之后,需要修改这部分!
2. 由于每次都要登录链接网络,如果登录失败,和数据不存在的结果都是:卡信息不存在,因此终端看不出问题。
3. 缓存层,如果多次添加,并不会删除就记录,这里是导致了重复数据出现的原因。
综合来说,是因为22号数据过期,之后被重复插入的时候,一直判读过期,并且缓存容量为50,导致了重复数据出现。
bug就是过期数据覆盖没有生效。
解决方案:
------------------
1. 重新修改缓存远程操作。
2. 卡信息永久保存,不超时处理。
3. 添加缓存的时候,先删除重复数据。