Oracle TopLink

Oracle TopLink Gridについて


Oracle TopLink 11g(11.1.1.0.0)は、Oracle Coherenceと緊密に連携する新しいOracle TopLink Gridの機能を備えています。この機能は、Oracle Coherence Data Gridのスケーラビリティと分散処理能力をもったJava Persistence API(JPA)を使用して、アプリケーション開発の標準化と簡便性を実現します。

開発者は、Oracle TopLink Gridを使用することで、Oracle Coherenceのグリッドをエンティティのプライマリ・ストレージとして容易に活用できるだけでなく、特定の操作を必要とするいくつかのエンティ ティ・タイプについて、バックエンドのデータストアと直接接続して利用することもできます。 こうした柔軟性があることで、アプリケーションはOracle Coherenceの使用形態を簡単に調整でき、日々変化する要件や使用パターンに対応できるようになります。

Oracle TopLink Grid―Oracle CoherenceによるJPAのバックアップ


Oracle TopLink Gridについては、開発者がOracle TopLink JPAを簡単に構成して、Oracle Coherenceのプライマリ・データストアとしての使用、グリッドに対する問合せの実行、新規のエンティティと編集されたエンティティにおける永続性 の管理を実現させるといった機能に関心が集まっています。 この統合ソリューションでは、JPAとデータストア間のレイヤーでグリッドを活用することにより、全アプリケーション・インスタンスからのデータベース・ コールを直接オフロードします。その結果、これらのクラスタ化されたアプリケーションの配置では、データベース・バインドされた操作を超えるスケーラビリ ティが得られます。

Oracle TopLink Gridの構成

JPA対応アプリケーションをOracle Coherence Data Gridと統合する場合、そのメリットと使用制限を理解することが重要となります。 グリッドはアプリケーションのスケーラビリティに対して優れた可能性を提供しますが、スケーラビリティを強化するには、グリッドの仕組みと使用するJPA 構成との関係を理解しなければなりません。 以下に、メリットをいくつか紹介します。

書込み
Oracle TopLinkのJPAとCoherence間における重要な統合ポイントの1つに、エンティティのストレージが挙げられます。 アプリケーションからOracle Coherence Data Gridまで新規のオブジェクトと編集されたオブジェクトを維持し、実際の書込みはバックエンドのCacheStoreがおこなうようにOracle TopLink Gridを構成できます。 この方法ではOracle Coherenceの書込みバインド機能を使用し、非同期のデータベース書込みを有効化します。 これを利用することで、アプリケーションはデータベースからのリプライを待たずに処理を続行できます。

読取り/問合せ
Oracle Coherenceの主キー問合せのオブジェクトをすべて読み取るようにOracle TopLink JPAを構成すると、Oracle Coherenceのキャッシュにはその結果が'get'として記録されます。 この構成では、Oracle CoherenceがOracle TopLink JPAのL2(共有)キャッシュを提供します。 Oracle TopLink JPA CacheLoaderを構成することで、キャッシュ・ヒットがない場合でもオブジェクトをデータベースから読み取ることができ、さらには次の問合せで使 用できるようオブジェクトをキャッシュ内に配置できます。 Oracle Coherenceで膨大な数のオブジェクトをキャッシュ・ヒットのように扱えることで、あるメンバーで読み取ったオブジェクトは、即座にほかのオブジェ クトで読み取れるようになるのです。

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 JPAは、大手データベース・ベンダーの標準シーケンス生成スキーマをすべてサポートします。 こうしたシーケンス・スキーマは、新しい値を取得して使用するために、アプリケーションが直接データベースへアクセスする際、継続して使用できます。 このほか、JPAソリューションではグリッドで分散シーケンス生成メカニズムを提供するよう、簡単に拡張できます。これにより、データストア・コールを追 加で発生させることなく、新しい識別子を効率的に同時生成できます。

リレーションシップ
異なるOracle Coherenceの名前付きキャッシュ内にあるオブジェクト間で、リレーションシップを保つことはできません。 オブジェクトは、パーティション化やバックアップの目的でグリッド全体にシリアライズされています。 つまり、オブジェクト自体がシリアライズの範囲を越えてリレーションシップを保つことはできないのです。 初期のOracle TopLink Gridでは、組込みリレーションシップのみがサポートされています。 そのため、エンティティのマッピングされた表を越える範囲で、グリッド内に格納されるエンティティ・タイプがオブジェクトとのリレーションシップをもたな いようドメイン・モデルを開発する必要があります。

このほか、実行される問合せはエンティティとその組込みリレーションシップの範囲に限定される形で のみ、グリッド全体に配信されます。 問合せがほかのエンティティ・タイプの表と結合する必要がある場合は、データベースから直接問合せを実行します。 今後のOracle TopLink Gridでは、リレーションシップのサポートを強化する予定です。

一般的なOracle TopLink Gridの構成

ほとんどのアプリケーションでは、以下の3つの一般的なOracle TopLink Grid構成を使用します。



Left Curve
Learn More
Right Curve
 · Oracle TopLink News
 · 技術情報
 · How-To Documents
 · Frequently Asked Questions
 · ドキュメント
 · Discussion Forum
 · Quick Tour and Demos
 · Tutorial
 · Doug's Blog
 · Shaun's Blog

Left Curve
ダウンロード
Right Curve
   Oracle Coherence
   Oracle TopLink
   Oracle WebLogic Server
   Oracle Application Server
   Oracle Containers for J2EE (OC4J)
  

More ...


Left Curve
関連テクノロジ
Right Curve
 · Oracle Coherence
 · Oracle WebLogic Server
 · Oracle Application Server
 · Oracle JDeveloper
 · Oracle TimesTen In-Memory Database
 · EJB 3.0
 · Oracle Developer Depot
 · Oracle Application Server Containers for J2EE (OC4J)