28.8. JBoss ASで SFSB とセッションのタイムアウトの設定
ステートフルセッション Bean のタイムアウトは、HTTP セッションのタイムアウトより長く設定しなければなりません。 これをしないとユーザーの HTTP セッションが終了する前にステートフルセッション Bean がタイムアウトする可能性があります。 JBoss AS のデフォルトのセッション Bean タイムアウトは 30 分で、 これは
server/default/conf/standardjboss.xml で設定されます。 これを変更するには default を希望の設定に置き換えます。
LRUStatefulContextCachePolicy キャッシュ設定で、max-bean-life の値を修正してデフォルトのステートフルセッション Bean のタイムアウトを変更します。
<container-cache-conf>
<cache-policy>
org.jboss.ejb.plugins.LRUStatefulContextCachePolicy
</cache-policy>
<cache-policy-conf>
<min-capacity>50</min-capacity>
<max-capacity>1000000</max-capacity>
<remover-period>1800</remover-period>
<!-- SFSB timeout in seconds; 1800 seconds == 30 minutes -->
<max-bean-life>1800</max-bean-life>
<overager-period>300</overager-period>
<max-bean-age>600</max-bean-age>
<resizer-period>400</resizer-period>
<max-cache-miss-period>60</max-cache-miss-period>
<min-cache-miss-period>1</min-cache-miss-period>
<cache-load-factor>0.75</cache-load-factor>
</cache-policy-conf>
</container-cache-conf>
JBoss Enterprise Application Platform 5.1 では、デフォルトの HTTP セッションタイムアウトを
server/default/deployer/jboss-web.deployer/conf/web.xml で変更できます。web.xml ファイルの次のエントリはすべての Web アプリケーションのデフォルトセッションタイムアウトを制御します。
<session-config>
<!-- HTTP Session timeout, in minutes -->
<session-timeout>30</session-timeout>
</session-config>
使用するアプリケーション用にこの値を上書きするには、 このエントリの修正バージョンをアプリケーションの
web.xml に含めるだけで可能です。