Seasar DI Container with AOP

本ドキュメントはS2.4.13について記述しています.旧バージョンについては該当バージョンの配布ファイルに含まれているドキュメントを参照してください.

DBセッションレプリケーションを使って、HttpSessionのレプリケーションを実現できます。 その際にアプリケーションサーバのセッション機能は利用しません。 クラスタリングをサポートしていないアプリケーションサーバを使って、 セッションレプリケーションを実現できるのです。 セッション情報はデータベースに書き出されます

セットアップ

s2-xxx.zipのresources/dbsession.diconをクラスパスに通します。 dbsession.diconのDbSessionStateManagerImplのdataSourceプロパティを適切に設定します。 セッション情報は、できる限り速度の速いデータベースに書き込んでください。 インメモリデータベースなどを使うことを推奨します。 dbsession.diconは、app.diconでincludeします。

定義したデータソースに次のようなテーブル定義を追加します。

CREATE MEMORY TABLE S2SESSION(
  SESSION_ID VARCHAR NOT NULL,
  NAME VARCHAR(255) NOT NULL,
  VALUE VARBINARY(10485760),
  LAST_ACCESS TIMESTAMP,
  PRIMARY KEY(SESSION_ID,NAME))

web.xmlに次のようにfilterの設定を追加します。 DbSessionFilterはfilterの中で最初に記述してください。

<filter>
    <filter-name>dbSessionFilter</filter-name>
    <filter-class>org.seasar.extension.dbsession.DbSessionFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>dbSessionFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>