サーブレットのフェールオーバ
サーブレットのフェールオーバ
ここでは、Tomcat・JBoss・WebLogic Serverにおけるサーブレットのフェイルオーバーを比較します。各アプリケーションサーバが対応しているセッションの永続化方式は以下の通りです。
| アプリケーションサーバ | 永続化方式 |
| Tomcat |
|
| JBoss |
|
| WebLogic |
|
一般的にインメモリ方式を利用することが多いと思います。TomcatとWebLogic Serverの場合は、インメモリ方式に加えてファイルやデータベースなどの方式もサポートしています。さらにWebLogic Serverは、Cookieを利用したレプリケーションにも対応しています。
この方式は、HttpSessionオブジェクトに大量のデータを格納する必要がない場合、簡単に利用できる機能です。
しかしここでは、「文字列属性しか書き込めない」「文字列でカンマ (,) を使用できない」など、他の方式に比べて制限があることに注意してください。JBossについては、インメモリ方式によるレプリケーションですが、JBossCacheのキャッシュ内容をファイルやデータベースに永続化する方法(CacheLoader)もサポートしています。
それでは、よく利用されているインメモリ方式のレプリケーションを比較します。
Tomcatと比較して、JBossのレプリケーション機能(JBossCache)は様々な設定が用意されているので、細かいチューニングができます。また、将来のバージョンでは、setAttributeで渡されるオブジェクトの変更されたメンバ変数のみをレプリケーションすることにより、通信コストを削減する機能拡張が予定されています。
WebLogic Serverは、Tomcat・JBossと比べるとカスタマイズの幅が狭いように思われますが、デフォルトの状態でもパフォーマンスがよく、機能不足も見当たらないため、チューニングに悩む必要はありません。
