私はTomcatにデプロイされているWebアプリケーションを書くためにPlayを使用しています。アプリケーションは大量のデータを処理しないので、私はHibernateでデフォルトのH2データベースを使用しています。新しいバージョンのアプリケーションを展開したいときは、tomcatをシャットダウンし、古いwebappとWARを消去し、新しいWARを追加してバックアップを開始します。再生! H2を正しくシャットダウンしない
これは数日前、データベースコンポーネントを追加するまで機能しました。今、私はしばしばアプリを再デプロイできません。古いディレクトリを削除すると、次の構造で自動的に再生成されます。
$ ls -laR myapp/
myapp/:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 13 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 WEB-INF
myapp/WEB-INF:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 application
myapp/WEB-INF/application:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 3 root root 4096 Aug 24 17:20 db
myapp/WEB-INF/application/db:
total 24
drwxr-xr-x 3 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
drwxr-xr-x 2 root root 4096 Aug 24 17:20 h2
myapp/WEB-INF/application/db/h2:
total 24
drwxr-xr-x 2 root root 4096 Aug 24 17:20 .
drwxr-xr-x 3 root root 4096 Aug 24 17:20 ..
-rw-r--r-- 1 root root 100 Aug 24 17:20 play.lock.db
WARが解凍されても同じことが起こります。
私は最近、catalina.outログに、 "H2 File Lock Watchdog"のようなプロセスをシャットダウンしないというアプリケーションに不満を表明しました。 H2ドキュメントの簡単な検索に基づいて、私はプロセスが私のアプリを妨害していると思う。
EDIT
はここで文句ラインは、ログファイルにあります:
だから、どのように私はこのプロセスを殺すのですか?私のマシンではないのでマシンを再起動できません。top
またはps
でウォッチドッグを見つけることができません。私はPlayが自動的にそれをシャットダウンする方法を好むだろうが、私はそれを私の展開スクリプトに組み込むのではない。
これまでに読んだことがありがとうございました!
を使用します。もう1つのポイントは、明らかにデータベースプロセスが最終的に死ぬことです。どれくらい時間がかかるかは分かりませんが、それは数時間です。それを待っているのは一種の解決策に過ぎませんが、何よりも優れていますか? – andronikus