- ベストアンサー
Tomcatでの同一セッション同時アクセスの挙動
同一セッションのリクエストを同一のTomcatに対して同時に行うと、セッションがシリアル化されずに、処理が同時に起こりますが、こういうものなのでしょうか? 以前ASP.NETで開発したときは、同一セッションの複数リクエストはシリアル化されていました。 また、同一セッションのリクエストをシリアル化する方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
シリアル化って、単純に「同時に処理しないようにしてほしい」 ということでよろしいですか?(FIFOでちょっとでも早いほうが先に処理される) それなら、synchronizedを使えばよいとおもいます。 HttpServlet内で service(){ Object lock; lock = request.getSession(); synchronized(lock){ //本来service()に記述する処理 } }
お礼
お礼が遅れて申し訳ありません。 なるほど、プログラム的にやるしかないのですね。 ASP.NETではアプリケーションレベル、ページレベルで宣言的に排他タイプを記述でき、デフォルトで書き込みの排他タイプとなるため、Javaもデフォルトでそうだろうと勝手に仮定しておりました。 あと、Struts2を使って開発しているため、serviceに手を入れるのも簡単ではなく、一工夫必要ですね。 でも、この回答をいただいて方向性は決まりました。感謝いたします。