Tomcat7でのmaxActiveSessionsの扱いの変更

| | コメント(0) | トラックバック(0)

概要

Tomcat 6 から Tomcat 7 にかけて、context.xml の Manager タグで指定する maxActiveSessions の扱いに変更があった。
Tomcat 6.x to Tomcat 7.x の Migiration Guide には記載されていないので注意。

Tomcat6 での動作

アクティブセッション数が maxActiveSessions を超えるとスワップが開始される。ただし、minIdleSwap 秒経過していないセッションは除く。

Tomcat7 での動作

maxActiveSessions を超えて request.getSession() を呼びだそうとすると TooManyActiveSessionsException 例外が発生する。

Apache Tomcat Configuration Reference 内の maxActiveSessions の記述を見比べてみると、 Tomcat6 と比べ、Tomcat7 では次の記述が追加された。
When the limit is reached, any attempt to create a new session (e.g. with HttpServletRequest.getSession() call) will fail with an IllegalStateException.

詳細

ManagerBase の createSession() で次のコードが追加された。
if ((maxActiveSessions >= 0) &&
        (getActiveSessions() >= maxActiveSessions)) {
    rejectedSessions++;
    throw new TooManyActiveSessionsException(
        sm.getString("managerBase.createSession.ise"),
        maxActiveSessions);
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: Tomcat7でのmaxActiveSessionsの扱いの変更

このブログ記事に対するトラックバックURL: http://trasis.jp/cgi-bin/mt/mt-tb.cgi/526

コメントする

2015年6月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30