[解決済み] メモリリークを防ぐため、JDBCドライバの登録を強制的に解除しました。
質問
Webアプリケーションを実行すると、このメッセージが表示されます。正常に動作しているのですが、シャットダウン時にこのメッセージが表示されます。
<ブロッククオートSEVERE: WebアプリケーションでJBDCドライバ[oracle.jdbc.driver.OracleDriver]を登録しましたが、Webアプリケーションの停止時に登録解除に失敗しました。メモリリークを防ぐため、JDBCドライバは強制的に登録解除されました。
よろしくお願いします。
解決方法は?
バージョン6.0.24以降、Tomcatには
メモリリーク検出
この機能は、ウェブアプリの
/WEB-INF/lib
どの自動
登録
を使ってウェブアプリの起動時に自分自身を呼び出します。
ServiceLoader
API
が、自動化されていない
登録解除
は、ウェブアプリのシャットダウン中に このメッセージは単なる非公式なもので、Tomcatはすでにそれに応じてメモリリーク防止策をとっています。
どうすればいいのでしょうか?
-
これらの警告は無視してください。Tomcatはちゃんと仕事をしているのです。実際のバグは他の人のコード(問題のJDBCドライバ)にあり、あなたのコードにあるわけではありません。Tomcatが正しく仕事をしたことを喜び、JDBCドライバのベンダーがそれを修正し、あなたがドライバをアップグレードできるようになるまで待ってください。一方、JDBCドライバをwebappの
/WEB-INF/lib
のみであり、サーバーの/lib
. もし、まだウェブアプリの/WEB-INF/lib
を使用し、手動で登録と解除を行う必要があります。ServletContextListener
. -
Tomcat 6.0.23以前にダウングレードすると、これらの警告に悩まされることはありません。ただし、黙ってメモリリークをし続けることになります。結局のところ、それが良いことなのかどうかはわかりません。このようなメモリリークは、「Tomcat 6.0.23」以降のバージョンに移行する際の大きな原因の1つです。
OutOfMemoryError
問題 Tomcatのホットデプロイ時に発生します。 -
JDBCドライバをTomcatの
/lib
フォルダを作成し、ドライバを管理するためにコネクションプールされたデータソースを用意します。Tomcatの組み込みのDBCPは、クローズ時にドライバの登録を適切に解除しないことに注意してください。バグも参照してください DBCP-322 はWONTFIXとしてクローズされています。DBCP を、DBCP よりも優れた機能を持つ他の接続プールで置き換えたいと考えています。例えば 光CP あるいは Tomcat JDBCプール .
関連
-
エラー java.util.NoSuchElementException
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
IllegalArgumentException この例外を解決する方法
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
javaでよく使われる英単語
-
Exception: java.util.NoSuchElementException: 行が見つかりません
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
Enumとの組み合わせでswitchの使い方を一度覚えるために必要な定数式
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
Methodのinvokeメソッド実装のJavaリフレクション
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind