自從整合quartz後
在solaris環境下shutdown tomcat
下ps指令還可以看到程序的process
必須手動kill掉
由於已確定是整合quartz後才發生
自然朝這個方向研究
就觀察結果猜測跟quartz thread不是daemon類型有關
如果shutdown完quartz thread還在使用
就可能造成這樣的情形
當下解決的想法有兩個
1.在tomcat shutdown前先將quartz scheduler shutdown
2.將quartz thread停止
著手實驗後
將scheduler shutdown
再關掉tomcat
就沒有發生這種情形了!
順便紀錄一下
關於這次如何在tomcat shutdown前執行
1.ServletContextListener
2.shutdown hook
3.quartz的shutdownHook plugin
最後是選擇用ServletContextListener來處理
過程中發現shutdown hook
似乎在solaris下執行.sh腳本來shutdown tomcat時無法使用
而window下直接在工作管理員關閉也無法偵測到
可能shutdown hook只針對syste.exit()和Ctrl+c這兩種狀況吧!?
推薦一個Blog 隔夜黃鶯
Quartz的文件翻譯的不錯
也跟他請教過不少問題
2009年8月11日 星期二
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言