Middleware
Application Server
Oracle TopLink Gridについて 開発者は、Oracle TopLink Gridを使用することで、Oracle Coherenceのグリッドをエンティティのプライマリ・ストレージとして容易に活用できるだけでなく、特定の操作を必要とするいくつかのエンティ ティ・タイプについて、バックエンドのデータストアと直接接続して利用することもできます。 こうした柔軟性があることで、アプリケーションはOracle Coherenceの使用形態を簡単に調整でき、日々変化する要件や使用パターンに対応できるようになります。
JPA対応アプリケーションをOracle Coherence Data Gridと統合する場合、そのメリットと使用制限を理解することが重要となります。 グリッドはアプリケーションのスケーラビリティに対して優れた可能性を提供しますが、スケーラビリティを強化するには、グリッドの仕組みと使用するJPA 構成との関係を理解しなければなりません。 以下に、メリットをいくつか紹介します。
書込み
読取り/問合せ
Oracle TopLinkのL2キャッシュをグリッド全体に配信するOracle Coherenceの拡張性を活用することで大きなメリットが得られます。そのメリットに匹敵するのが、非主キー問合せのサポートです。 Oracle TopLink JPAを構成してOracle Coherenceから読取りを実行できるようにすると、非主キーJP QL問合せはOracle Coherenceのフィルタに自動変換され、フィルタと一致するオブジェクトがグリッドから取得されます。 Oracle Coherenceはクラスタの各メンバーに対して、全フィルタを並列に実行します。これにより、すべてのオブジェクトが単一メンバー内にある場合より も、はるかに短い時間で指定された問合せを実行できるようになります。
ロックとグリッド JPAソリューションが提供する一般的な同時実効性の保護では、アプリケーション操作間のロック・ メカニズムとしてリレーショナル・データベースを使用します。 ここでは、標準@Version列のサポートや最新のコミット時ロック戦略を含むOracle TopLinkのさまざまなコミット時ロック戦略、または即時ロック戦略(SELECT … .FOR UPDATE)のいずれかが実行されます。 コミット時ロックは、別の同時トランザクションがデータを修正していないことを確認するためにエン ティティをロードする際、データストアから読み取られる値を使用します。 JPAアプリケーション内でグリッドを利用するときにアプリケーションのプライマリ・データストアとしてグリッドを使用すると、ロックの確認場所が変更さ れるだけでなく、ロックされた列への増分を示すエンティティの状態も、関連するものはすべて変更されます。 Oracle TopLink Gridは、Oracle TopLink JPAのロック・ポリシーすべてを使用し、Oracle Coherence内に挿入された修正済みエンティティが分散処理アプローチを使用して、読み取られてから一度も修正されていない、グリッドへ最初に格納 されたメンバーのエンティティに対して変更を適用できるようにします。 即時ロックは、グリッドに対して変更が適用される前にアプリケーションがロックを要求します。これ により分散ロックは取得され、アプリケーションへの変更が終了するまで保持されます。 即時ロックがリレーショナル・データベースと直接関連する場合、使用時には注意が必要です。 間違って使用すると、スケーラビリティに関する問題を起こす可能性があるためです。
シーケンスの生成
リレーションシップ
このほか、実行される問合せはエンティティとその組込みリレーションシップの範囲に限定される形で のみ、グリッド全体に配信されます。 問合せがほかのエンティティ・タイプの表と結合する必要がある場合は、データベースから直接問合せを実行します。 今後のOracle TopLink Gridでは、リレーションシップのサポートを強化する予定です。
一般的なOracle TopLink Gridの構成 ほとんどのアプリケーションでは、以下の3つの一般的なOracle TopLink Grid構成を使用します。 |
|
|||||||||||||||||||||||||||||||||||||||||||||