Thread-7 是什么?

ZhangFinder 发布于 2015/06/07 18:45
阅读 473
收藏 0

 前不久,遇到session丢失的问题,然后在论坛上提了问题(http://www.oschina.net/question/2011331_238365),然而并没有得到自己想要的结果。

网上有人说可以打印sessionID,或者打印session的内存地址,增加session监听器。

 按照此思路,我发现:

1 session并没有丢失,丢失的是session中保存的用户登陆信息(stuInfo);

2用户登陆信息(StuInfo类数据)丢失时,session的内存地址会发生变化,但是 session中的其它类型的数据(如String类型的数据)并没有因此而丢失。

3 增加session监听器,配置log4j日志输出后,我发现了thread-7。每次stuInfo丢失时,都能见到thread-7。stuInfo丢失时,客户端没有任何操作。下图是部分日志。


我的log4j输出格式是:%-d{yyyy-MM-dd HH\:mm\:ss}  [ %t\:%r ] - [ %p ]  %m%n。Thread-7应该是某个线程名。

这个Thread-7是什么呢?它怎么导致session中的属性数据丢失了呢?

加载中
0
小编辑
小编辑

Java 里每个线程都有一个名称,如果没有指定名称,系统会自动分配一个

ZhangFinder
ZhangFinder
回复 @Inside : 然后我并没有入职,你要是很牛的话,帮我解决下这个问题。
ZhangFinder
ZhangFinder
555555555。我只是想知道为什么session中的数据会丢...
Inside
Inside
小编辑你居然连这个都懂。。是不是前面那个辞职了,现在是新人?
0
翠翠
翠翠
就是一个线程而已。
0
南湖船老大
南湖船老大
Session丢失无非就是用了集群导致session找不到家、二次生成新的session这两种原因。
南湖船老大
南湖船老大
回复 @ZhangFinder : 不会的
ZhangFinder
ZhangFinder
垃圾回收机制可不可能回收session中的数据,南湖船老大?
ZhangFinder
ZhangFinder
sessionID没变,说明session没丢,只是其中的部分数据丢了。然而我也没有用集群........
0
柏show
柏show
我觉得的查下你是在什么时候触发的增加stuInfo的操作,什么时候触发的删除操作
ZhangFinder
ZhangFinder
windows上测试没问题,只是代码部署到Linux 上就出了这个问题...
ZhangFinder
ZhangFinder
我查过了,代码中并没有删除stuInfo的操作。由于代码量很少,我应该没有查漏。纠结中...
0
如比如比
如比如比
window和linux的tomcat版本和设置都一样么?
0
杨延庆
杨延庆
你先把session id打出来看一下,确定是否是同一个session
0
xdev
xdev

肯定是被什么代码删除拉,找下代码中操作session的地方,并且是操作session中stuInfo属性,

通过找session和属性(注意字符串“stuInfo”和引用该字符串的变量)应该可以找到的。

返回顶部
顶部