| | 2 | 1、升级后发现编辑报障有个别商情页有报错。 |
| | 3 | 2、查看memcache使用概况。登陆memcache所在服务器,使用命令xmem参看。 |
| | 4 | 未发现memcache异常 |
| | 5 | 3、查看应用日志 |
| | 6 | 发现有memcache异常信息,stderr_m.pconline.log: |
| | 7 | [10-09 14:24:32.841] 13404745 [http-m.pconline-8082-39] ERROR com.danga.MemCached.MemCachedClient - ++++ exception thrown while trying to get object from cache for key: /company_price_new.jsp?productID=558826&area=全国&pageSize=20&pageNo=1&part=2 |
| | 8 | [10-09 14:24:32.841] 13404745 [http-m.pconline-8082-39] ERROR com.danga.MemCached.MemCachedClient - MemcachedClient Error! Expect key:/company_price_new.jsp?productID=558826&area=全国&pageSize=20&pageNo=1&part=2, but return key: /company_price_new.jsp?productID=558826&area=??????ú&pageSize=20&pageNo=1&part=2 |
| | 9 | [10-09 14:24:32.841] java.lang.RuntimeException: MemcachedClient Error! Expect key:/company_price_new.jsp?productID=558826&area=全国&pageSize=20&pageNo=1&part=2, but return key: /company_price_new.jsp?productID=558826&area=??????ú&pageSize=20&pageNo=1&part=2 |
| | 10 | [10-09 14:24:32.843] at com.schooner.MemCached.AscIIClient.get(AscIIClient.java:735) |
| | 11 | [10-09 14:24:32.843] at com.schooner.MemCached.AscIIClient.get(AscIIClient.java:630) |
| | 12 | [10-09 14:24:32.843] at com.schooner.MemCached.AscIIClient.get(AscIIClient.java:626) |
| | 13 | [10-09 14:24:32.843] at com.danga.MemCached.MemCachedClient.get(MemCachedClient.java:1094) |
| | 14 | [10-09 14:24:32.843] at cn.com.pconline.enterprise.web.tag.CacheTag.doStartTag(CacheTag.java:372) |
| | 15 | [10-09 14:24:32.843] at _jsp._yp._company_0price__jsp._jspService(_company_0price__jsp.java:1079) |
| | 16 | 4、判断是memcache对特殊字符处理出错 |
| | 17 | 5、修复 |
| | 18 | 修改CacheTag.java,对缓存key进行md5转换[key = cn.com.pconline.enterprise.util.MD5.compute(key)] |
| | 19 | 6、结果 |
| | 20 | 经过md5转换后的key不再抛出异常 |
| | 21 | |
| | 22 | 总结: |
| | 23 | 升级memcache要注意key的不同处理方式的兼容性。升级后留意观察日志。 |