<<上篇 | 首页 | 下篇>>

如何清除Google app engine里data store过期的_ah_session

Google app engine把session数据存储在datastore里的_ah_session表里,并且不会清除,即使session已经过期了。这让我想到了weblogic似乎也不会清除过期了的jdbc session数据。

_ah_session不清除的话,_ah_session会越来越大,直到达到空间限制。那么应该清除过期了的_ah_session,新建一个cron job,定时请求servlet清除存储session的_ah_session。

阅读全文……

标签 : , ,

Unloading class sun.reflect.GeneratedMethodAccessor

是正常的现象,说明大量使用反射生成的class被jvm正确回收了。 

看来你应该是permgen区outofmermory了,可以尝试在启动配置中加大permgensize,不过不建议太大,不要超过300M,而且这样也只能治标不能治本。 

jdk dynamicproxy每次都会生成新的代理类,如果你不卸载这些代理类,permgen区outofmemory是迟早的事情。 
如果你真的不想卸载加载到jvm中的代理类,就要考虑复用生成的代理,这样的话,jdk的dynamicproxy是不行的,你要使用cglib来生成可复用的代理类。 

因此,你有两条路可以走 
1、继续使用jdk的dynamicproxy,但不要禁止class卸载。 
2、使用cglibproxy,复用代理类,避免大量生成的代理类。

加上-noclassgc,可使jvm不卸载加载的class

标签 : ,

我收藏的链接(46)

Keji Technology Blogs
一个英文科技博客和新闻网站,
包括了信息技术,web2.0,互联网,消费电子产品,社会网络媒体等文章

阅读全文……