この記事では、2017 Springでリリースされたセッション管理モジュールをご紹介させていただきます。
また、2014 Spring から 2016 Winterまでのバージョンでセッション管理モジュールを利用する方法も併せて紹介させていただきます。
概要
セッション管理モジュールは、アプリケーションサーバのセッション管理機能を利用せずに intra-mart Accel Platform にてセッション管理を行う機能です。
セットアップガイド - 11. 付録 - 11.5. セッション管理モジュール
この機能は 2017 Spring から利用可能です。
動機
intra-mart Accel Platformでは、 2017 Spring時点 で以下の3つのアプリケーションサーバをサポートしています。
- Resin
- WebSphere Application Server
- Oracle WebLogic Server
この内、Resinをお使いのお客様から、セッションのデータ量やマシンの負荷状況によって内部データベースが壊れるという問い合わせが寄せられていました。
FAQ: Resin が「exit reason: HEALTH (exit code=9)」で再起動してしまいます。
一方、内部データベースが壊れるという問題に対して、セッション永続化機構を無効化するという回避手段があります。
この回避手段を利用すると、セッション情報を内部データベースに保持しなくなるため、内部データベースへのアクセス頻度が大幅に減ります。
これにより、結果的に内部データベースが壊れる可能性を大幅に減らすことができます。
しかし、セッションの永続化やフェイルオーバーが行われなくなるという制限があるため、この回避手段を利用できないお客様もいらっしゃいました。
そこで、Resinのセッション永続化機構を無効化してもセッションの永続化やフェイルオーバーが利用できるように、それらの機能を含めたセッション管理機構を独自に用意して提供するという判断に至りました。
利用方法
セッション管理モジュールを利用することで、Resinのセッション永続化機構を無効化してもセッションの永続化やフェイルオーバーを行うことができます。
2017 Spring以降の場合
利用方法については、セットアップガイドを参照ください。
セットアップガイド - 11. 付録 - 11.5. セッション管理モジュール
2014 Spring から 2016 Winterまでの場合
利用方法については、Product File Download から「im_session_store_for_2014spring_2016winter.zip」をダウンロードし、その中に含まれる readme.txtに記載された「インストール方法」を参照ください。
注意事項
セッション管理モジュールを利用される場合に、いくつか制限事項がありますので必ず以下のドキュメントをご確認ください。
- リリースノート - 8. 制限事項 - 8.2.15. セッション管理
セッション管理モジュールは、データベースにセッションを永続化します。
永続化の設定を行った場合、リクエストの都度データベースに読み/書きが発生する可能性があるため、運用環境に応じてデータベースのチューニングを行う必要があります。
また、アーカイブログを有効にしている場合、データベース製品のアーカイブログが大量に出力される可能性があります。
最後に
セッション管理モジュールについて簡単にご紹介させていただきました。
Resinをご利用中で内部データベースが壊れるという問題に対して対策を実施したいが、セッションの永続化やフェイルオーバーは担保したいというお客様は、是非ご活用ください。