WebSphere Application Server Network Deployment for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

複数行スキーマに関する考慮事項

WebSphere Application Server は、すべてのアプリケーション固有データが、 データベース内でそれぞれ別の行に保管されるようにする複数行スキーマ・オプションの使用をサポートします。 このようなセットアップにすると、1 つのセッションに入れられるデータの合計量を制限するのは、データベースの容量のみになります。 残された唯一の実質的な制限は、セッション属性オブジェクトのサイズです。

複数行スキーマは、潜在的に、特定の使用法シナリオでパフォーマンスが向上します。 例えば、大量のデータがセッションに保管されているにもかかわらず、 指定のサーブレットの HTTP 要求の処理中には特定の少量のデータにしかアクセスがない というようなシナリオの場合です。 このようなシナリオでは、不要な Java オブジェクト・シリアライゼーションを回避することによって、パフォーマンスが向上します。

複数行と単一行との切り替えが、決して些細 (ささい) な問題ではないことを理解してください。

複数行スキーマを使用すると、 より大きなセッション・レコードを取得でき、さらにパフォーマンスも向上させることができます。 ただし、次の表にあるように、 単一行スキーマから複数行スキーマに切り替えるには、 少し手間がかかります。

コーディングに関する考慮事項とテスト環境

ご使用のアプリケーションのニーズに適したオプションを調べると共に、 あるデータベースに対しては単一行の直接使用を、また、 別のデータベースに対しては複数行の使用を設定することを検討してください。 使用するデータ・ソースを切り替えて、コード内でこれを実行してください。 続いて、パフォーマンスをモニターします。

プログラミングの問題 アプリケーション・シナリオ
単一行を使用する理由
  • 一度のレコードの読み取りおよび書き込みだけで、 すべての値を読み取ったり、書き込んだりすることができます。
  • 各セッションがレコード 1 つ分の長さしかないことが保証されているため、 これがデータベース内で占めるスペースはより少なくなります。
単一行を使用しない理由 セッション当たり 2 メガバイトの保管データの制限。
複数行を使用する理由
  • アプリケーションは、データを無制限に保管できます。 つまり、ユーザーに課されるのは、データベースのサイズと、レコード当たり 2 メガバイトの制限だけです。
  • アプリケーションは、レコード全体の代わりに個々のフィールドを読み取ることができます。 セッション内に大量のデータが保管されているにもかかわらず、 サーブレットの HTTP 要求の処理中には特定の少量のデータにしかアクセスしない場合、 複数行セッションでは、不要な Java オブジェクトのシリアライゼーションを回避することによって、パフォーマンスを向上させることができます。
複数行を使用しない理由 データのサイズが小さい場合、全データを 1 行に保管できれば、 複数行読み取りによる余分なオーバーヘッドがなくなります。

複数行使用の場合、アプリケーション・データ・オブジェクト が相互参照を持たないよう、また、循環参照が発生しないように設計してください。 例えば、HttpSession.put(..) メソッドを使用するセッションに A と B という 2 つのオブジェクトを保管しており、A に B への参照が含まれているとします。 複数行の場合、オブジェクトはデータベースの複数の行に保管されているため、後にオブジェクト A および B を取り出したときに、A と B の間のオブジェクト・グラフが、保管されているものと違ってきます。 A と B は、独立したオブジェクトとして振る舞います。




関連タスク
複数行スキーマへの切り替え
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 8:28:52 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.iseries.doc/info/iseriesnd/ae/rprs_skem.html