- - PR -
F5連打アタックを防止する策って・・
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-07-24 02:01
こんばんわ。
最大数設定しています。 簡単な検索SQLしか走らないページであっても F5押しっぱなしでConnectionPoolないのActiveConnectionが 増えていきます。 最大数に到達すると、処理待ち状態で止まってしまうんですよね。 正常に複数クライアントからのアクセスでConnectionを使うのは良いのですが、 1クライアントで一時的に複数のリソースを占有されてしまうということが 問題なのです。 アプリ側で synchronized(session) しようとしたのですが、 どうやらTOMCATでは sessionIDは同じモノのインスタンスが同一のものとは 保証されていないようです。 でも、一応 HttpSession session = request.getSession(); synchronized(session){ Boolean reloadFlg = (Boolean)session.getAttribute("isResponsed"); if(reloadFlg == null){ sesson.setAttribute("isResponsed", Boolean.FALSE); } else { reloadFlg = Boolean.TRUE; // まだレスポンスおわってない。 } if(reloadFlg == Boolean.FALSE) { // 処理 // 必要な情報は全てセッションにぶちこむ } } RequestDispatcher rd = request.getRequestDispatcher("なんとか.jsp"); rd.forward(request, response); として JSPの最後に session.removeAttribute("isResponsed"); としたら、複数クライアントの同時アクセスはふせげるかなぁ。。。と 考えております。 今、パっと適当に書いたコードなので、おいおい。これやばいだろと いうところがあれば、ご指摘ください。 | ||||
