17

私は tomcat 7 に問題があります。ここにそれに関する情報があります。

1 - 次のメッセージがあります。

INFO: Reloading Context with name [/WebApp] has started
Oct 04, 2013 12:20:50 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/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.

Oct 04, 2013 12:20:50 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/WebApp] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
Oct 04, 2013 12:20:51 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/WebApp] is completed

2 - アプリケーションをリロードすると、問題は約 20 時間解決された後、再び発生します。

3 - Tomcat に約 10 個のアプリケーションをデプロイしていますが、このエラーが発生するのはそのうちの 2 個だけです。

4 - この 2 つのアプリを使用した当初は問題はありませんでしたが、2 週間ほどで問題が発生しました。

どうすればこれを解決できますか?それは私のコードに関連していますか?

4

2 に答える 2

7

各 Web アプリケーションのディレクトリに Connector/J JDBC ドライバがある場合、この Web アプリケーションWEB-INF/libだけでなく、すべての Web アプリケーションで同様の問題が発生する可能性があります。

Tomcat の JDBC 接続プールを使用している場合は、Connector/J ドライバーを Tomcat のlib/ディレクトリに配置し、すべての Web アプリケーションから削除する必要があります。独自のアプリケーション内から独自の接続プールを維持している場合は、JDBC ドライバーがそれ自体を global に登録解除するように手配する必要がありますDriverManager。さらに良いことに、Connector/J の登録ドライバーの代わりに非登録ドライバーを使用すれば、Tomcat が実際に保護しているこの種のリークについて心配する必要はありません。

于 2013-10-04T20:18:49.393 に答える