|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--com.infoteria.asteria.connection.ConnectionCloser
コネクションを閉じるためのクラス。
EngineImplで1つだけインスタンスを持つ。
MAIN_THREAD_LOOP_SLEEP_MILLISごとにループするスレッドがtermまで動き続ける。
ループ中にcloseするconnectionが見つかると、別スレッドでConnection.close()を実行する。
close用のスレッドの最大数はMAX_CLOSING_SIZE_PROPERTY_NAME+1個です。
スレッド最大数のコネクションがclose処理で無応答状態になると、他のコネクションもclose処理に入ることなく待つことになる。
| Inner Class Summary | |
static class |
ConnectionCloser.ClosingTask
|
| Method Summary | |
void |
add(Connection connection)
|
static ConnectionCloser |
getInstance()
|
Connection |
getNextCloseConnection()
次にクローズするべきコネクションを取得します。 すでにクローズ処理中のコネクションと同じ(種類の)コネクションは取得されません。 クローズ処理中のコネクションが最大サイズに達した場合でも、RDBコネクション以外のコネクションは1つだけ取得されます。つまり、実質的には、最大サイズは最大サイズ+1となっています。 |
void |
start()
|
void |
term()
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
public static ConnectionCloser getInstance()
public void start()
public void term()
public void add(Connection connection)
public Connection getNextCloseConnection()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||