【現象】
jp.co.intra_mart.system.hazelcast.nio.serialization.HazelcastSerializationException は 以下の条件で発生します。
・セッション管理モジュールを利用している。
・分散環境構築またはセッションの永続化を行っている
・HTTPセッションにシリアライズできないクラスインスタンスを保管している。
セッション管理モジュールでは、分散環境の場合、別サーバにセッション情報のコピーを保持します。
このとき、HTTPセッション内の情報をシリアライズし、別サーバに転送します。
また、セッション情報をDBなどに永続化する場合も同様にシリアライズし保管します。
これにより、HTTPセッションには、シリアライズ可能なクラスインスタンスを保管する必要があります。
【対応方法】
エラーメッセージを確認し、HTTPセッションにシリアライズできないクラスインスタンスを保管していないか確認してください。
保管している場合は、シリアライズ可能なクラスを保管するように変更してください。
一般的に、HTTPセッションに保管する情報について、以下を考慮することをお勧めします。
・シリアライズできないクラスインスタンスを保管しない。
・サイズの大きいクラスインスタンスを保管しない。
・必要以上にたくさんの情報を保管しない。
【参考情報】
HTTPセッションに保管する Java API
・https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSession.html#setAttribute-java.lang.String-java.lang.Object-
HTTPセッションに保管する スクリプト API
・https://api.intra-mart.jp/iap/apilist-ssjs/doc/platform/Client/index.html#method-set_5
なお、スクリプト開発の用いるオブジェクトは基本的にシリアライズ可能なオブジェクトです。
-- 対象 -------------------------------------------------------------------------
iAP/Accel Platform/全アップデート
--------------------------------------------------------------------------------
FAQID:1200