前述した、「Concurrency Control (Locking Strategy)」と「トランザクション分離レベル」に加え、アクセス・タイプとして、「Read処理」か「Update処理」かを加味して、7種類「アクセス・インテント」ポリシーの中から1つを決定します。「アクセス・インテント」ポリシーの設定を以下にまとめます。
ポリシー (プロファイル名) |
Concurrency Control | アクセス・タイプ | トランザクション分離レベル |
---|---|---|---|
wsOptimisticRead | optimistic | read | Read Committed |
wsOptimisticUpdate | optimistic | update | Read Committed |
wsPessimisticUpdate -NoCollision |
pessimistic | update | Read Committed |
wsPessimisticRead | pessimistic | read | Repeatable Read |
(Oracle:Read Committed) wsPessimisticUpdate |
pessimistic | update | Repeatable Read |
(Oracle:Read Committed) wsPessimisticUpdate-WeakestLockAtLoad (省略時ポリシー) |
pessimistic | update | Repeatable Read |
(Oracle:Read Committed) wsPessimisticUpdate-Exclusive |
pessimistic | update | Serializable |
表3 「アクセス・インテント」ポリシー |
WASでの「アクセス・インテント」ポリシーの設定は、AST(あるいは、RAD)を使用します。[EJBデプロイメント記述子]→[アクセス]タブ→[WebSphere拡張機能]→[Entities 2.x のデフォルトのアクセス・インテント(Bean レベル)]で、各Entity Beanに対して設定します。
図6は、「wsOptimisticRead」を指定した例です。
図7は、「wsPessimisticUpdate-WeakestLockAtLoad」(デフォルト値)を指定した例です。
WASでは、トランザクションをまたがるデータのキャッシュを設定できます。これは、「Lifetime in Cache」あるいは、「データ・キャッシュ」と呼ばれるオプションです。
指定したキャッシュ生存時間が経過するまで、データはキャッシュに保持されます。データがキャッシュに保持されている間は、そのデータに対するリクエストに対して、DBへの問い合わせは行われません。データ・キャッシュの「Invalidation Timer」(無効果までの時間)を指定することにより、キャッシュ内でのデータの保持時間を設定します。
AST(あるいは、RAD)を用い、「キャッシュ使用での存続時間」および「キャッシュ内での存続時間」を指定します。「キャッシュ使用での存続時間」には、「OFF」「ELAPSED_TIME」「CLOCK_TIME」「WEEK_TIME」のいずれかを指定します。
WASでは、EJBの「コミット・オプション」の設定をすることにより、Entity Beanキャッシュを利用可能です。Entity Beanに対応するデータをDBからいつロードし、どのようにキャッシュするかを設定でき、コミット・オプション A、B、Cに対応しています。
コミット・オプションの設定は、AST(あるいは、RAD)を使用します(図9)。
[Beanのキャッシュ]の設定で、[アクティブ化]と[ロード]の組み合わせで決定されます(表4)。
コミット・オプション | アクティブ化 | ロード |
---|---|---|
Option A | ONCE | ACTIVATION |
Option B | ONCE | TRANSACTION |
Option C | TRANSACTION | TRANSACTION |
表4 コミット・オプションの指定 |
[アクティブ化]の「ONCE」は、Beanが最初にアクセスされた際にアクティブになります。「TRANSACTION」は、トランザクション開始時にアクティブになります(省略時設定)。
[ロード]の「ACTIVATION」は、Beanがアクティブになった際にロードされ、DBに対する排他的アクセスを行います。「TRANSACTION」は、トランザクション開始時にBeanがロードされ、DBへは共有アクセスを行います。
Copyright © ITmedia, Inc. All Rights Reserved.