2017-07-04 11 views
0

私は非同期要求を投稿するためにorg.asynchttpclientを使用しています。メモリリークを防ぐためにorg.asynchttpclientで作成されたスレッドを停止するには?

Tomcatをシャットダウンしている間、私は丸太の下に取得しています:

SEVERE:Webアプリケーション[/テストは]という名前のスレッドを開始しているように見えます[プール-1-スレッド-1]それに失敗しましたそれをやめなさい。これはメモリリークを引き起こす可能性が非常に高いです。
2017年7月4日10時53分00秒AM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

SEVERE:Webアプリケーション[/テストは]という名前のスレッドを開始しているように見えます[AsyncHttpClient-2-1]が、それを止められなかった。これはメモリリークを引き起こす可能性が非常に高いです。
2017年7月4日10時53分00秒AM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads

SEVERE:Webアプリケーション[/テストは]という名前のスレッドを開始しているように見えます[AsyncHttpClient-2-2]が、それを止められなかった。これはメモリリークを引き起こす可能性が非常に高いです。
2017年7月4日10時53分00秒AM org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks

SEVERE:Webアプリケーション[/テスト]はタイプのキーでThreadLocalのを作成し、[java.lang.ThreadLocal](値[[email protected]])を削除することはできませんでしたが、値が[io.netty.util.internal.InternalThreadLocalMap](値[[email protected]] Webアプリケーションが停止しました。スレッドは時間の経過とともに更新され、メモリリークの可能性を回避しようとしています。

メモリリークを防ぐためにこれらのスレッドを閉じる方法。

答えて

1

これは実際には警告のほうが多く、ほとんどの場合無視することができます。コンテキストがリロードまたはシャットダウンされると、このエラーが表示されます。サーバーをシャットダウンすると、JVMもシャットダウンされ、osはすべてのメモリーをクリーンアップします。
AsyncHttpClientClosableを実装しようとすると、この問題が発生することがあります。接続ファクトリーを完全に閉じるには、おそらくそこに待たなければなりません。 Tomcatのライフサイクルを見て、クライアントの終了を処理するシャットダウンハンドラを追加することができます。

関連する問題