tomcat セッション(PersistentManager, StandardSession)のデバッグ
概要
web アプリケーションの負荷試験などを行う際、tomcat のセッションの入出力状態をモニターしたくなることがある。
また、Hibernate + Seasar + Wicket でアプリケーション構築時、セッションのデシリアライズがうまくいかないことがあり、tomcat の PersistentManager や StandardSession の動作を追っていくことで問題を発見、修正できることがある。
Linux で tomcat 動作時のデバッグ手順
logging.properties を次のように修正する。
handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 1catalina.org.apache.juli.FileHandler.level = FINEST 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter #org.apache.catalina.level = INFO org.apache.catalina.level = FINEST org.apache.catalina.connector.level = INFO org.apache.catalina.loader.level = INFO org.apache.catalina.startup.level = INFO org.apache.catalina.mbeans.level = INFO
これで、catalina.out に詳細なログが出力される。
Eclipse + WTP + tomcat 環境でのデバッグ方法
Eclipse 上で次の操作を行う。
- [実行] メニュー ⇒ [実行ダイアログを開く]
- ダイアログ左側の一番上にある「Apache Tomcat」の中の、「localhost の tomcat v6.0 サーバー」をクリック。
- ダイアログ右側から「引数」タブを開く。
- VM引数に次のような記述を追加する。パスは自分の環境に合わせて適宜修正する。
-Djava.util.logging.config.file=”C:\usr\apache-tomcat-6.0.16\conf\my.logging.properties”
次に、c:\usr\apache-tomcat-6.0.16\conf\my.logging.properties ファイルを作成する。
handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler 1catalina.org.apache.juli.FileHandler.level = FINEST 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter #org.apache.catalina.level = INFO org.apache.catalina.level = FINEST org.apache.catalina.connector.level = INFO org.apache.catalina.loader.level = INFO org.apache.catalina.startup.level = INFO org.apache.catalina.mbeans.level = INFO
これで tomcat 起動時、catalina.out に詳細なログが出力されるようになる。
ちなみに、catalina.out の場所は workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\logs となる(Eclipse 3.3.2 Preiades All in One の場合)。