2011-02-10 20 views
2

私はspring、hibernate、jsfなどを使用するアプリケーションを実行しています。アプリケーションはha-jdbcを使用してデータベースの可用性を高めています。アプリケーションが最初にデプロイされたときにアプリケーションは円滑に実行されますが、アンデプロイされてデプロイされると、Tomcatは次のエラーを返します。 以前の実行のクラスがまだメモリにロードされているため、メモリが発生します リーク(プロファイラを使用して確認してください):前回実行時のTomcatクラスが残っています

この問題を解決する方法は不思議です。どんな天才ですか?

ありがとうございます。

+0

yerスレッドを停止しないとどうなるのですか – bestsss

答えて

3

プロファイラーを使用してヒープスナップショットを行い、残っているオブジェクトを見つけて、参照チェーンを見つけ、それがまだ参照されている理由を熟考します。

、または展開ごとにtomcatを再起動するだけです。

+0

返信ありがとうございます。再起動はオプションではありません。最後の選択肢かもしれません。 Tomcatがundeploysを解除している間に、以前のクラスを消去する方法はありますか? – Ikthiander

+0

@ user582862 - はい、あなたのアプリでメモリリークを修正しました。 – OrangeDog

+1

の再起動が最初のオプションになります。それが同じサーバーであることがなぜ重要なのでしょうか?新しいサーバーを立ち上げ、古いサーバーを強制終了してください。 – irreputable

関連する問題