Glasfishで高可用性設定すると、セッションに直列化できないものは入れられないのだ

Glassfishは、当然のことながら、エンタプライズ用途にも使えるわけで、クラスタなどの、高可用性運用が可能になっている。
アプリケーション側で、高可用性設定して、サーバの設定を高可用性可にすると、できるようなんだけど、うっかり、落とし穴にはまることがある。

アプリケーション側で、web.xmlに<distributable/>というタグを入れてやることで、高可用性設定したことになる。
しかし、こうしたとたん、セッションを使っているアプリケーションが動かなくなることがある。
「セッションに直列化できないものは入れられないよ」とGlassfishが怒るのだ。

まあ、クラスタすると、ノード間でセッション情報をやりとりするために、直列化が必要。
サーバーの設定が、高可用性になっていなくても、アプリ側でさっきの設定がされているだけで、その制約が発生して、問題が発生してしまう。

知っていれば、簡単なことだけど、タグ入れたのを忘れていたり、他の人が試しで入れたりしていたときなんか、はまり込んでしまう。