JBoss で実行されている Spring MVC Web アプリケーションがあり、一部のユーザー情報が ThreadLocal オブジェクトに格納されています。一部のリクエストが、別のリクエストが ThreadLocal に保存したデータを、それらのリクエストの実行が完了する前に上書きする場合があるように見えるという問題があります。これは可能ですか?
つまり、インターセプターの実行時や特定の種類の Bean へのアクセス時など、ある時点で JBoss リクエストが別のリクエストを優先する可能性はありますか?
JBoss のワーカー スレッドの数を 1 に減らしてみたところ、問題をかなり確実に再現することができました。これは私が使用した構成です:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>