这是我的一位前辈问我的问题。
1)我们有两个不同的J2EE应用服务器节点:节点1和节点2.(如下图所示。)
2)还启用了休眠二级缓存。
3)问题如下:用户点击登录页面URL并假设此请求进入节点1和用户登录,然后用户登出。
4)再次用户请求登录页面,这次请求转到节点2.现在用户登录并更改密码并注销。
现在问题是当用户尝试使用他的新密码登录时 请求转到节点1.他是否可以登录系统?
如果他无法做到,可以做些什么来让用户登录 他在Node 1上的新密码。
Note: We have a LoginUser table where the Username and passwords are stored.
我的回答:
根据我的观点,当用户尝试使用节点1登录然后注销时可能会出现这种情况。
Hibernate触发此查询:
从登录中选择*,其中username =" John&#34 ;;
此条目缓存在节点1的二级缓存中。
现在,当他使用节点2登录系统并更改密码时。再次尝试登录节点1,他无法使用新密码登录,因为此时节点1的二级缓存包含旧密码,因此他可以使用旧密码登录。
这就是他无法使用新密码登录节点1的原因。
现在这个问题的解决方案可能是复制二级缓存。
请分享您对同一问题的意见。