Shoalベースのクラスタの場合、GlassFish 3.1からロードバランサ内包を除いて大きな変更点はないのですが、クラスタの構成の可用性サービスで、可用性サービスのチェックがONかつ永続性のタイプが「replicated」になっているでしょうか?これが「memory」または「file」の場合はレプリケーションが行われず、また「hazelcast」の場合はShoalではなくHazelcastベースのクラスタにする必要があります。
Webアプリケーション側はすべてをSerializableにする必要はありませんが、セッション情報として保持するクラスについては漏れなくSerializableにする必要があります。Serializableでないセッション情報はレプリケーションが失敗しその際ログにNotSerializableExceptionなどを出力していると思われます。念のためPayaraのログをご確認頂ければと思います。payara41/glassfish/domains/domain1/logs/server.log
Payaraに起因するエラーは上記ログに出力される仕様になっています(もしクラスタ構成に不具合があればそれもログに出力されています)。逆に、ログに不審な点がないにも関わらず挙動がおかしい場合は、Apacheかmod_proxy_ajpに問題があると考えられます。
なお、mod_proxy_ajpとPayaraの間をAJP通信にしている場合、PayaraのHTTP設定のいくつかが無視され、mod_proxy_ajpの設定(設定はTomcatに類似)が優先されるようです。
セッションレプリケーションを稼働させるために必要な設定、状態、または確認ポイント、あるべき通信状況などお教え頂くことはできますでしょうか。特に、KVMホスト上の仮想ノードの場合に必要となるものがありますと助かります。
また、セッションレプリケーションにおける管理サーバーの役割もお教え頂けますでしょうか。