Tsutomu Yano
t_yano****@me*****
2010年 6月 16日 (水) 08:37:23 JST
矢野です。 DiskPageStoreの使うキャッシュファイルは,セッション毎にファイルサイズが一定サイズよりも大きくなると(デフォルトで100MB),古いデータから順に削除されて,常に一定サイズに収まります。DiskPageStoreのコンストラクタで上限サイズを指定することが出来ます。 さらに,ユーザがログアウト操作をしなかった場合でも,セッションファイルはWicketによって破棄されます。 ユーザがログアウトしなくとも,Servlet Containerに設定したセッション維持期間を過ぎれば,HttpSessionはServlet Containerが無効にします。 WicketのAbstractHttpSessionStore.SessionBindingListenerがサーブレット仕様にあるHttpSessionBindingListenerインタフェースを実装しており,WicketのSessionが生成されると同時にHttpSessionに格納されます。コンテナがHttpSessionを破棄しようとすると,合わせてHttpSessionに格納されたSessionBindingListenerが破棄されるため,SessionBindingListenerに破棄通知が行われます。Wicketはこの破棄通知を利用して,DiskPageStoreの使用していたセッションファイルを破棄します。 なので,私は「不要ファイルを消す」という操作自体が必要ないと思います。Wicketが適時削除するでしょうから。 DiskPageStoreの使用するファイルサイズが気になるのであれば,WebApplicationクラスのnewSessionStore()メソッドをオーバーライドすることで,DiskPageStoreのサイズを制御することができます。デフォルトでは次のように,サイズ無指定のコンストラクタが使用されています。 @Override protected ISessionStore newSessionStore() { return new SecondLevelCacheSessionStore(this, new DiskPageStore()); } この場合,デフォルト値としてセッションあたり100MBとなります。 オーバーライドして,DiskPageStoreのコンストラクタにサイズを指定すると,上限サイズを変えることが出来ます。 以上で回答になるでしょうか。 On 2010/06/15, at 13:57, ozawa wrote: > 小沢と申します。 > システム開発案件でWicketを利用しております。 > > 利用バージョン:Wicket1.4.8 > > DiskPageStoreのファイルの扱いについて以下質問させてください。 > > Q1.サーバーの起動、停止時やシステムログアウト後に何もしないとファイルが > 増え続けるように思いますが、不要ファイルの削除機能は存在しますか? > 存在する場合、設定等ご教授いただけないでしょうか? > > Q2.存在しない場合、みなさんはどのように不要なファイルを削除されていますか? > > > 実際のシステム運用環境においては、ディスク使用量の問題や見積もり時の容量検討など > 対処が必要な事項だと思っております。 > よい方法をご存じの方がいらっしゃいましたらご教授いただければ幸いです。 > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user --------------------------------------------------- 矢野 勉(やの つとむ) 電子メール: t_yano****@me***** ---------------------------------------------------