ホームページ > データベース > mysql チュートリアル > Tomcat 7.x が JDBC データ ソースの使用時にメモリ リーク警告を発行するのはなぜですか?

Tomcat 7.x が JDBC データ ソースの使用時にメモリ リーク警告を発行するのはなぜですか?

DDD
リリース: 2024-11-07 18:39:02
オリジナル
1040 人が閲覧しました

Why Does Tomcat 7.x Issue a Memory Leak Warning When Using JDBC Data Sources?

Tomcat JDBC データ ソースの警告: メモリ リーク

設定された Tomcat JDBC データ ソースを使用して Tomcat 7.x をシャットダウンすると、次のような問題が発生する可能性があります。 catalina.out ログに次の警告が記録されるfile:

Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJDBC
SEVERE: The web application [/my_webapp] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
ログイン後にコピー

この警告は、Web アプリケーションの停止時に JDBC ドライバーが適切に登録解除されていないためにメモリ リークが発生する可能性があることを示します。この問題を解決するには、DataSource に destroy メソッドを設定しているにもかかわらず、警告が表示され続けます。

メモリ リークの別の潜在的な原因が別の警告によって強調表示されます:

Mar 26, 2013 1:17:52 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/my_webapp] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.
ログイン後にコピー

対処方法両方の警告:

  1. MySQL JDBC ドライバーを Tomcat ライブラリに移動しますフォルダー:

MySQL コネクタ/ドライバー JAR ファイルを WAR ファイルから Tomcat lib フォルダーに移動します。ドライバーが含まれている WAR ファイルをデプロイすると、不適切なガベージ コレクションが原因でメモリ リークが発生する可能性があります。

  1. MySQL ステートメント キャンセル タイマー スレッドを調査してください:

「MySQL ステートメントキャンセルタイマー」スレッドが停止しない理由を特定します。このスレッドの開始場所を特定するために使用されているアプリケーション コードまたはサードパーティ ライブラリを確認し、アプリケーションのシャットダウン時にスレッドが適切に停止されていることを確認します。

これらの対策を実装することで、メモリ リークやメモリ リークを効果的に防ぐことができます。 catalina.out ログ ファイルの警告を回避してください。

以上がTomcat 7.x が JDBC データ ソースの使用時にメモリ リーク警告を発行するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート