Web アプリケーションで同時アクセスをテストしているときに、セッションの動作を追跡するのが困難です。
A、B、C の 3 人のユーザーがいるとします。
これら 3 人のユーザーで 3 つの異なるブラウザーを使用してアプリケーションにログインすると、実行時にユーザー オブジェクトが B から A、または B から C、または C から A に変化しますが、これはランダムに発生します。
私の UserContextHolder クラスは次のとおりです。
public final class UserObjContextHolder {
private static final ThreadLocal<UserObj> CONTEXT_HOLDER = new ThreadLocal<UserObj>();
private UserObjContextHolder() {
}
public static void setUserObj(UserObj userObj) {
CONTEXT_HOLDER.set(userObj);
}
public static UserObj getUserObj() {
return CONTEXT_HOLDER.get();
}
}
ORM と Spring MVC に Hibernate を使用しています
このセッションの動作の理由や同期方法を誰か教えてもらえますか?
ユーザー A がログインして検索操作を行っているときに、ユーザー B が同時にログインすると、userObj A が userObj B に変更されていることに気付きました。
アプリケーションサーバーの設定と関係ありますか?これは、認証を行っているときにのみ発生します。