2011年3月8日 星期二

轉貼 Google App Engine Session 紀錄刪除

Google app engine(GAE) 將 session 的功能 打開之後,變會將所有的session 資料紀錄在

_ah_SESSION

這個JDO 資料庫欄位裡, 不過卻不會刪除的樣子, 積年累月下來也是佔一筆很可觀的資料空間

google 了一下 找到以下的解答

在 web.xml 中加入以下的code


<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>


此外 在 cron.xml 新增 以下的程式碼,沒有的話就在web-inf 下新增一筆


<cronentries>
<cron>
<url>/_ah/sessioncleanup?clear</url>
<description>Clean up sessions</description>
<schedule>every day</schedule>
</cron>
...
</cronentries>


http://groups.google.com/group/google-appengine-java/browse_thread/thread/4f0d9af1c633d39a?pli=1

沒有留言: