「Repeatable Read(RR)」のアクセス・インテントは、データの整合性をチェックし、整合性を確認し、チェック後は誰もデータを更新しないことを意味します。それに対し、「Read Committed(RC)」のアクセス・インテントは、データの整合性をチェックした際に整合性があることを意味しますが、チェックした後にデータが変更されないことを保障するものではありません。
「データの更新がほとんどない場合(例えば、本の価格など)、DBから読み込んだデータをキャッシュに保存しておき、コミット処理を確定する直前にDB上の値とキャッシュの値の整合性をチェックする」という仕組みを、WASでは「Read-read整合性チェック」という機能で提供しています。
先ほど説明した「Lifetime in Cache」を設定したBeanが保持するデータをほかのトランザクションが読み込むというシナリオにおいて有効です。例えば、CMPアプリケーションが、BMP(Bean-Managed Persistence)やJDBCを使ったアプリケーションと同じデータを共有するといったケースです。
「Read-read整合性チェック」では、以下の3つのオプションを提供しています。
AST(あるいは、RAD)を使用し、[WebSphere拡張機能]のアクセス・インテントに対する[パーシスタンス・オプション]に[読み取り専用データの検証]を設定します(図17)。
以下に、各オプションについて図解します。まず、読み取り専用データの検証に「NONE」を指定したシナリオです(図18)。
次に、読み取り専用データの検証に「AT_TRAN_END」を指定したシナリオです。
3つ目は、読み取り専用データの検証に「AT_TRAN_BEGIN」を指定したシナリオです。
このように、「読み取り専用データの検証」機能を使用することにより、データの整合性を保ちながら、高速なDBアクセスを実現可能になります。
WASは、「Lightweight Local Mode」(単純なローカル・モード)と呼ばれるEntity Beanの性能向上の仕組みを提供しています。「Lightweight Local Mode」は、「セッション・ファサード・パターン」というデザイン・パターンによって、利用されるEntity Bean向けにデザインされています。
「セッション・ファサード・パターン」において、Entity Bean Local HomeおよびLocal Businessメソッドは、Stateless Session Bean、あるいはStateful Session Beanのメソッド内から呼ばれます。
そして、そのリモートあるいはローカルから呼ばれるSession Beanのメソッドが、Session BeanによってアクセスされるEntity Beanのためのセキュリティ管理やトランザクション境界を提供します。
以下の条件に適する場合に、「Lightweight Local Mode」を使用できます。
なお、「Lightweight Local Mode」は、CMP BeanとBMP Beanの両Entity Beanタイプにも使用できます。
また、「Lightweight Local Mode」のパフォーマンス性能を最大限に利用するためには、Entity Beanメソッドがグローバル・トランザクションを開始しないことが条件になります。これには、以下の2つを満たす必要があります。
もし、Entity Bean メソッドがグローバル・トランザクションを開始する必要がある場合は、パフォーマンス向上の効果が減少します。
AST(あるいは、RAD)を使用して、「Lightweight Local Mode」の設定を行います。図21のように、「AssemblyEnt」を選択し、[WebSphere拡張機能]の中の[単純なローカル・モードの使用]をチェックします。
このように、前回と今回の前後編でEJBに関するチューニングを解説しましたが、いかがでしたでしょうか。特に、今回の内容は、過去の連載では取り上げたことのない「AST(あるいはRAD)」と呼ばれるツールを使用して設定を行いました。
本連載では、簡単な説明にとどめましたが、今回取り上げた項目についての詳細は、「InfoCenter」と呼ばれるオンライン・マニュアルに記載があります。設定を行う際には参照してみると有効でしょう。
@IT関連記事
JBOSSでかんたんEJB
無償で使えるEJBサーバ「JBOSS」とEclipseを使って、簡単なEJBプログラミングを体験し、EJBを理解します。この連載で苦手意識を払拭!
AntとXDocletでEJB開発を効率化
[連載]現場に生かすJakarta Project(3) ファイルが多いために煩雑になりやすいEJB開発。AntとXDocletを使うと非常に効率よく開発ができ、その問題が解決できます
「Java Solution」フォーラム 2003/2/19
さよならJDBC?EJBの出番はこれから?
[特別企画] EJBはEJB2.0の登場でEJB1.1時代のパフォーマンスの問題を解決したといわれる。EJB2.0は、EJBに実用期をもたらしたのか? EJB2.0のメリットを解説
「Java Solution」フォーラム 2002/12/25
J2EEの基礎
この講座では、これからサーバ・サイドJavaを学ぶ人のために、J2EEをWebとDBをつなぐミドルウェアという観点で捉えて説明していきます
樋口研究室 スマートなサーバ・サイドJava
Javaとノーツの研究記事で人気の樋口研究室が@ITにも参上。ベストなeビジネス・アプリケーションを実現するためのノウハウを、あなたの仕事にも生かしてみよう!
EJBの作成とデバッグ
[連載]初めてのWebアプリケーション・サーバ(最終回)
最終回は、いよいよEJBツールを使ってEJBを作成したあと、デバックまで行います
「Java Solution」フォーラム 2001/9/7
Webアプリケーションにおけるサーバ・サイドJavaの効果的な利用
EJB(Enterprise JavaBeans)はアプリケーション・サーバ上でのシステム構築に必要不可欠になりつつある。EJBの役割とアーキテクチャをわかりやすく解説する
日本アイ・ビー・エム 東京基礎研究所 アドバイザリー・リサーチャー
上野 憲一郎(うえの けんいちろう)
kenueno@jp.ibm.com
日本アイ・ビー・エムに入社後、システム・エンジニアとして10年ほど活動した後、米国IBMへ赴任。米国IBM Raleighソフトウェア開発研究所にて、WebSphere Application Server開発部門のパフォーマンス専門グループのメンバーとして活動。2003年に帰国後、IBM東京基礎研究所にて、XML、Web サービス、SOA関連技術の研究開発に従事。WebSphere Application Serverパフォーマンス専門家として、セミナーなどで講演も実施。
主な著書
「WebSphere V3.5 Handbook」(Prentice Hall)
主な訳書
「Webサービスプラットフォームアーキテクチャ」(エスアイビーアクセス)
Copyright © ITmedia, Inc. All Rights Reserved.