【现象】
操作EA时,突然出现“会话已结束”信息。
发生此现象时,输出以下日志。
[WARN] c.c.s.s.SessionImpl - [] java.io.StreamCorruptedException: invalid type code: EA
java.io.StreamCorruptedException: invalid type code: EA
at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2508) ~[na:1.7.0_55]
・
・
・
at com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:64) ~[resin.jar:4.0.45]
at com.caucho.server.session.SessionImpl.load(SessionImpl.java:810) ~[resin.jar:4.0.45]
at com.caucho.server.session.SessionImpl.load(SessionImpl.java:746) ~[resin.jar:4.0.45]
at com.caucho.server.session.SessionManager.createSession(SessionManager.java:1440) [resin.jar:4.0.45]
at com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:720) [resin.jar:4.0.45]
at com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:645) [resin.jar:4.0.45]
【发生条件】
仅在使用以下版本的Resin且将会话存储功能设置为有效的情况下,会发生此现象。
* Resin 4.0.44
* Resin 4.0.45
* Resin 4.0.46
【原因】
此现象是以下Resin的问题造成的。
http://bugs.caucho.com/view.php?id=5947 (英语)
如果会话的大小很大,从Resin的内部数据库中恢复会话的处理将失败。
【解决方法】
更新为Resin 4.0.47及以后版本的Resin,或者将会话存储功能设置为无效。
为了让会话存储功能无效,更改resin.properties的“session_store”。
------------------------------
session_store : false
------------------------------
【注意事项】
会话存储功能是Resin的会话失效转移功能。
如果将会话存储功能设置为无效,将不会继承停止的服务器的会话信息。
-- 适用对象 ----------------------------------------------------------------
iAP/Accel Platform/所有更新版本
--------------------------------------------------------------------------------
FAQID:597
[WARN] c.c.s.s.SessionImpl - [] java.io.StreamCorruptedException: invalid type code: 操作EA时,突然出现“会话已结束”信息。