プロが教えるわが家の防犯対策術!

同一セッションのリクエストを同一のTomcatに対して同時に行うと、セッションがシリアル化されずに、処理が同時に起こりますが、こういうものなのでしょうか?

以前ASP.NETで開発したときは、同一セッションの複数リクエストはシリアル化されていました。

また、同一セッションのリクエストをシリアル化する方法があれば教えてください。

A 回答 (1件)

シリアル化って、単純に「同時に処理しないようにしてほしい」


ということでよろしいですか?(FIFOでちょっとでも早いほうが先に処理される)
それなら、synchronizedを使えばよいとおもいます。

HttpServlet内で
service(){
Object lock;
lock = request.getSession();
synchronized(lock){
//本来service()に記述する処理
}
}
    • good
    • 0
この回答へのお礼

お礼が遅れて申し訳ありません。
なるほど、プログラム的にやるしかないのですね。

ASP.NETではアプリケーションレベル、ページレベルで宣言的に排他タイプを記述でき、デフォルトで書き込みの排他タイプとなるため、Javaもデフォルトでそうだろうと勝手に仮定しておりました。

あと、Struts2を使って開発しているため、serviceに手を入れるのも簡単ではなく、一工夫必要ですね。

でも、この回答をいただいて方向性は決まりました。感謝いたします。

お礼日時:2007/09/22 23:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!