Oracle® Fusion Middleware Oracle TopLinkのためのCoherence Grid統合ガイド 11g リリース1(11.1.1) B61395-02 |
|
前 |
次 |
この章では、TopLink Gridをバイト・コード・ウィービングおよび遅延ロードとともに使用する方法の推奨事項を示します。
バイト・コード・ウィービングは、コンパイル済Javaクラスのバイト・コードを変更する手法です。バイト・コード・ウィービングを構成して、1対1および多対1関係の遅延ロードのサポート、属性レベルの変更追跡、フェッチ・グループなど、いくつかのEclipseLink JPAパフォーマンス最適化を有効にできます。
ウィービングは、エンティティ・クラスのロード時に動的に実行するか、ビルド・プロセスの一部として静的に実行できます。静的バイト・コード・ウィービングは、EclipseLinkで提供されるweaver
タスクを使用してAntビルドに組み込むことができます。
動的バイト・コード・ウィービングは、Oracle WebLogicなどのJava EE 5対応アプリケーション・サーバーで自動的に有効になります。ただし、Java SEでは、JRE 1.5 javaagent
JVMコマンドライン引数を使用して明示的に有効にする必要があります。JRE 1.5.の動的バイト・コード・ウィービングの詳細は、次のURLでEclipseLinkエージェントを使用してJPAエンティティの動的ウィービングを構成する方法に関する項を参照してください。
Coherenceキャッシュ・サーバーでバイト・コード・ウィービングを有効にするには、-javaagent:<
PATH
>\eclipselink.jar
でJava VMを起動する必要があります。Java SEクライアント・アプリケーションは、-javaagent
引数を指定して実行する必要があります。
静的および動的バイト・コード・ウィービングの構成と無効化の詳細は、EclipsepediaのEclipseLink JPAウィービングの使用に関する項を参照してください。
http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Weaving
遅延ロードは、必要になるまでデータベースへのオブジェクトの問合せを遅延するために使用する手法です。これにより、アプリケーションによってロードされるデータ量を削減し、スループットを向上できます。TopLink Grid JPAまたはネイティブORMアプリケーションでは、すべての関係を遅延ロードする必要があります。JPAの1対多および多対多関係では遅延ロードがデフォルトですが、1対1および多対1関係では即時です。これらの関係タイプでは、遅延ロードを明示的に選択する必要があります。たとえば、関係注釈の多くでは遅延ロードを属性として指定できます。
... @ManyToOne(fetch=FetchType.LAZY) private Publisher parent ...
効率を最大化するために、TopLink GridがCoherenceキャッシュに格納するすべての1対1および多対1エンティティ関係に遅延ロードを指定する必要があります。遅延ロードは、EclipseLinkのバイト・コード・ウィービングを通じて実装され、Java EE 5準拠アプリケーション・サーバーで実行されていない場合は明示的に有効にする必要があります。詳細は、「バイト・コード・ウィービングでのコンパイル済Javaクラスの変更」を参照してください。