日期:2014-05-17  浏览次数:20629 次

weblogic10如何干掉用户session
web.xml设置
<session-config> 
  <session-timeout>15</session-timeout> 
</session-config> 
今天有一个用户说昨天突然断电,今天早上登录不了系统,我很奇怪为什么session没有失效。
白天一般有100多人同时在线,不能重启weblogic服务,有其他方法干掉该用户session吗?

------解决方案--------------------
ps -ef|grep 用户名
然后kill掉,你试试看好用不
------解决方案--------------------
所以你还得加一个定时跑批程序,每天凌晨清掉昨天的单点登录信息
------解决方案--------------------
是不是单点登录?不是的话,应该是用户自己的问题吧?另外,使用cookie没?检查一下。session肯定早清空了,没有关系。看看其他方面的问题吧。
------解决方案--------------------
这个sessionlistener是Application级别的吧,那就跟session时间无关了,关闭网页跟断电不一样,关闭网页你可以有个onunload事件通知一下服务器,断电就跟浏览器崩溃一样,是不会通知服务器的,不信你把网页的那个onunload去掉后关掉网页试试,sessionlistener中的userid会不会清掉
------解决方案--------------------
估计是你用了类似缓存的东西,没及时清理无用的信心造成的。
------解决方案--------------------
Java code

public void valueBound(HttpSessionBindingEvent event) {
            HttpSession session = event.getSession();
            ServletContext application = session.getServletContext();
            // 把用户名放入在线列表
            List onlineUserList = (List) application.getAttribute("onlineUserList");
            // 第一次使用前,需要初始化
            if (onlineUserList == null) {
                onlineUserList = new ArrayList();
                
            }
            onlineUserList.add(this.username);
            application.setAttribute("onlineUserList", onlineUserList);
        }

------解决方案--------------------
那不对啊,如果session没失效,用户再开浏览器访问应该是新session了啊?