GAE has not input automatic removal service for expired _ah_SESSION entities. I found the following way, solve by examining sessionCleanupServlet. It delete expired session using cron jobs. The App Engine Cron Service allows you to configure regularly scheduled tasks that operate at defined times or regular intervals.
First time, I decided not to post this in my blog coz all are copied. It is meaningless. But I did not find this configuration in official site. So, I copied this from original as a note. That’s all. Be happy with my note. 😀
We’ll add this to code.google.com shortly. In the meantime,
here’s what you can do:
In web.xml:
<web-app…>
<servlet>
<servlet-name>_ah_sessioncleanup</servlet-name>
<servlet-class>com.google.apphosting.utils.servlet.SessionCleanupServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>_ah_sessioncleanup</servlet-name>
<url-pattern>/_ah/sessioncleanup</url;-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>session-cleanup</web-resource-name>
<url-pattern>/_ah/sessioncleanup</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
…
</web-app>
————————-
And in cron.xml:
<cronentries>
<cron>
<url>/_ah/sessioncleanup?clear</url>
<description>Clean up sessions</description>
<schedule>every day</schedule>
</cron>
…
</cronentries>
Nice contribution!!
Thank you for posting this. One remark: the “every day” doesn’t parse. It needs a time e.g.
every day 08:00
can’t seems to work for me. It doesn’t get cleaned up. is it still working?
thanks
it really working for me