public class IdleConnectionReaper
extends java.lang.Thread
長時間 HTTP コネクションプールで停止状態のままの接続は、最終的に AWS の接続限界により終了し、 CLOSE_WAIT 状態になります。 この状態になった場合、ソケットはクライアント側で操作するためのリソースを用いるまで、 CLOSE_WAIT 状態になります。 CLOAE_WAIT 内にスタックされた多くのソケットは、新規作成された接続から OS を守ることができます。
このクラスは CLOSE_WAITE 状態になる前に、空いてしまっている無駄な接続を閉じます。
このスレッドは重要であり、デフォルトでは、 Apache の HttpClient の失敗した接続を無効にし、 バックグラウンドで動作しているスレッドを用いず、動作的でなく、古い HTTP 接続をクリーンアップします。 また、失効した接続(例: AWS 側で閉じたもの)がコネクションプールに残っている際には、入出力例外を参照してください。 そして、リクエストはリクエストを実行するためにそれらのいずれかを取得します。
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static void |
registerConnectionManager(org.apache.http.conn.ClientConnectionManager connectionManager) |
static void |
removeConnectionManager(org.apache.http.conn.ClientConnectionManager connectionManager) |
void |
run() |
static void |
shutdown()
スレッドをシャットダウンし、クラスとインスタンスのデータを収集することを許可します。
|
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yieldpublic static void registerConnectionManager(org.apache.http.conn.ClientConnectionManager connectionManager)
public static void removeConnectionManager(org.apache.http.conn.ClientConnectionManager connectionManager)
public void run()
run インタフェース内 java.lang.Runnablerun クラス内 java.lang.Threadpublic static void shutdown()
これはデーモンスレッドであるため、実行しても JVM のシャットダウンを防ぐことはできません。 ただし、それが中断されるまで、このクラスがアンロードもしくは長時間実行されているコンテキストから不要なデータを収集してしまうことから防ぎます。 このメソッドはスレッドの実行を停止し、その状態がクリアされます。 サービスクライアントを任意に使用する際に、スレッドが再開されます。