【事象】
操作中に突然「セッションが既に終了しています。」というメッセージが表示されます。
事象発生時に、以下のログが出力されます。
[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 操作中に突然「セッションが既に終了しています。」というメッセージが表示されます。
