Tomcat の Session relipcation で ReplicationValve が悪さをしてセッション共有できなかった
Tomcat 公式のドキュメントにある ReplicationValve
Apache Tomcat 8 (8.5.6) - Clustering/Session Replication HOW-TO
サンプルの一番簡単な場合では
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
とあるが、次のサンプルでは
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
となっている。
よく見ると「.htm」と「.html」もフィルターに含まれているので、htmlファイルがフィルターされて「hoge.html」などのファイルだとセッションが共有できない。
さらにこの状態だと、「index.html」を指定しないで「/hoge.com/hogehoge/」などにアクセスする場合はセッションが共有できる状態になる。
そのため、あるパターンでは全くセッションが共有できなくなり、あるページではセッションが共有できている状態になる。
この状態だと、どの状態で共有が失敗しているのかわからなくなって、「なんかTomcatのセッションが不安定でわけわからん」という状態になって途方に暮れてしまう。
というか途方に暮れた。
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.css|.*\.txt"/>
こんな感じに削れば良い