ヘッダーをスキップ
Oracle TopLink開発者ガイド
10g(10.1.3.1.0)
B31861-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

71 永続層について

この章の内容は次のとおりです。

永続層の概要

アプリケーションの永続層の用途は、TopLinkのキャッシュ(「キャッシュ」を参照)、問合せおよび式(「問合せおよび式」を参照)ならびにトランザクション(「トランザクション」を参照)を使用して永続オブジェクトを作成、読取り、更新および削除するために、実行時にセッション(「セッション」を参照)を使用して、マッピング・メタデータ(「マッピング・メタデータ」を参照)とデータ・ソース(「データ・アクセス」を参照)を関連付けることです。

セッション

セッションは、クライアント・アプリケーションとTopLinkランタイムとの間のプライマリ・インタフェースで、基礎となるデータ・ソースへの接続を表します。

非CMPプロジェクトでは、TopLinkにはいくつかの異なるセッション・タイプ(「TopLinkセッションの概要」を参照)が用意されており、各タイプは様々な設計要件およびアーキテクチャについて最適化されています。最も一般的に使用されるセッションは、サーバー・セッションです。これは、クライアントがサーバー上でクライアント・セッションを介してアクセスするセッションです。サーバー・セッションは、共有キャッシュおよび共有接続リソースを提供します。

CMPプロジェクトの場合、TopLinkランタイムは、セッションを内部的に作成して使用しますが、アプリケーションがこのセッションを直接取得したり使用することはありません。使用するアプリケーション・サーバーに応じて、この内部セッションに対するパラメータのいくつかを指定できます(「<J2EE-Container>-ejb-jar.xmlファイル」を参照)。

データ・アクセス

セッションに関連付けられたログイン(存在する場合)により、TopLinkランタイムがプロジェクトのデータ・ソースに接続する方法が決まります。

ログインには、認証、接続プールの使用、および外部トランザクション・コントローラの使用などのデータソース・アクセスの詳細が含まれます。ログイン(Loginインタフェースのインスタンス)は、データ・ソース・プラットフォームを所有します。

プラットフォームには、バインディング、ネイティブSQLの使用、バッチ書込みの使用、順序付けなどを含む、特定のデータ・ソースに固有のオプションが含まれます。プラットフォームの詳細は、「データ・ソース・プラットフォームのタイプ」を参照してください。

データ・ソースに永続化しないプロジェクトの場合、ログインは必要ありません。データ・ソースに永続化するプロジェクトの場合、ログインは常に必要です。

詳細は、「データ・アクセスの概要」を参照してください。

キャッシュ

デフォルトでは、TopLinkセッションはオブジェクト・アイデンティティを保証するオブジェクト・レベルのキャッシュを提供し、アプリケーションがデータ・ソースにアクセスする回数を減らしてパフォーマンスを向上します。TopLinkは、ロック、リフレッシュ、無効化、分離およびコーディネーションなどの、様々なキャッシュ・オプションを提供します。キャッシュ・コーディネーションを使用して、デプロイされたアプリケーションの他のインスタンスと変更を同期化するようにTopLinkを構成できます。ほとんどのキャッシュ・オプションは、セッション・レベルで構成します。また、問合せ単位またはディスクリプタでキャッシュ・オプションを構成して、参照クラスのすべての問合せに適用されるようにできます。

詳細は、「キャッシュの概要」を参照してください。

問合せおよび式

TopLinkには、いくつかのオブジェクトおよびデータ問合せタイプが用意されており、問合せ選択条件に対して次のような柔軟なオプションが提供されています。

開発者は、これらのオプションを使用して、あらゆるタイプの問合せを作成できます。事前定義問合せを使用してアプリケーション問合せを定義することをお薦めします。事前定義問合せは、プロジェクトのメタデータ内に保持され、名前で参照されます。これにより、アプリケーション開発は簡単になり、問合せはカプセル化されてメンテナンス・コストが軽減します。

EJBエンティティBeanを使用する場合は、(他のTopLink問合せオプションとともに)EJB QLのみを使用して、ファインダをコーディングできます。これにより、アプリケーションをJ2EE仕様に準拠させることができます。

アーキテクチャまたは永続エンティティのタイプに関係なく、あらゆる問合せオプションを自由に使用できます。TopLink Workbenchには、問合せを定義するための最も簡単な方法が用意されています。また、TopLink APIを使用してコードで問合せを作成することもできます。

詳細は、次を参照してください。

トランザクション

TopLinkには、作業ユニットを使用して、基礎となるデータベースおよびスキーマから分離されたトランザクション・コードを記述するための機能が用意されています。

作業ユニットは、トランザクション内で行われた変更を、その変更がデータベースに正常にコミットされるまで、他のスレッドから分離します。その他のトランザクション・メカニズムとは異なり、作業ユニットはトランザクション内のオブジェクトに対する変更、変更の順序および他のTopLinkのキャッシュを無効にする可能性がある変更を自動的に管理します。作業ユニットは、最小のチェンジ・セットを計算し、参照整合性規則に準拠してデッドロックを回避するようにデータベース・コールを順序付けし、変更されたオブジェクトを共有キャッシュにマージして、これらの問題を管理します。クラスタ化環境では、作業ユニットはコーディネート・キャッシュ内の他のサーバーと変更を同期化することもできます。

アプリケーションがEJBエンティティBeanを使用する場合は、直接作業ユニットAPIにアクセスしませんが、その機能の利点を活用できます。TopLinkランタイムとJ2EEコンテナ間の統合により、自動的に作業ユニットが使用されます。

詳細は、「TopLinkトランザクションの概要」を参照してください。