| Oracle® Fusion Middleware Oracle TopLinkのためのCoherence Grid統合ガイド 11g リリース1(11.1.1) B61395-02 |
|
![]() 前 |
![]() 次 |
この章の内容は次のとおりです。
EclipseLink Native Object Relational Mapping(ORM)は、広範なオブジェクト・リレーショナル・マッピング・フレームワークを提供します。XMLを使用して宣言により構成される様々な機能とともに、高パフォーマンスのオブジェクト永続化を提供します。これらの様々な機能には、キャッシング(クラスタリングされたキャッシングを含む)、高度なデータベース固有機能、およびパフォーマンス・チューニングと管理のオプションが含まれます。
グリッド基盤のJPA構成と同様に、EclipseLink ORMを採用するアプリケーションはCoherenceキャッシュにアクセスできます。ただし、グリッド基盤のJPA構成とは異なり、EclipseLink ORMアプリケーションはキャッシュの使用方法を構成するために@Customizer注釈を使用しません。かわりに、通常は適切なキャッシュ動作を定義する修正メソッドを呼び出します。
EclipseLink Native ORMで使用されるキャッシュ・ストアおよびキャッシュ・ローダーAPIは、toplink-grid.jarファイルに含まれています。表3-1で、EclipseLink Native ORM.のAPIについて説明します。これらのクラスはoracle.eclipselink.coherence.integratedパッケージにあります。
表3-1 Native ORM構成用のEclipseLinkクラス
署名の2つ目の初期化パラメータsessionNameは、EclipseLink構成ファイルMETA-INF/sessions.xmlにリストされている必要のあるマッピング・プロジェクトの名前を表します。
EclipseLinkNativeCacheStoreクラスとEclipseLinkNativeCacheLoaderクラスでは、EclipseLink Native ORMを使用するアプリケーションがCoherenceキャッシュにアクセスできます。これらのクラスは、Coherenceキャッシュの動作が修正メソッドで構成されている場合に使用します。これらのクラスを使用して、第2章「グリッド基盤のJPA構成」で説明されているのと同じ方法で各永続クラスのキャッシュ・ストアまたはキャッシュ・ローダーを構成できます。
Coherenceキャッシュ構成ファイルcoherence-cache-config.xmlを使用して、キャッシュ・ストア・キャッシュ・スキームを定義し、デフォルトのCoherence設定をオーバーライドします。
構成では、ネイティブEclipseLink sessions.xmlファイルとproject.xmlファイルを使用します。sessions.xmlファイル、およびそこにリストされているすべてのデプロイメントXMLファイル(ユーザー定義の名前を持ちます)は、クラスパスで使用可能になっているか、META-INFディレクトリ内のJARファイルにパッケージ化されている必要があります。
適切なキャッシュ動作を定義するには、修正メソッドも構成する必要があります。詳細は、「修正メソッドの構成」を参照してください。
修正メソッドは、EclipseLink記述子APIを使用してクラスのORMマッピング・メタデータをカスタマイズするメソッドです。このメソッドは、実行時に記述子がロードされたときに呼び出されます。TopLink Gridで提供されている修正メソッドの目的は、Coherenceキャッシュの使用方法を定義することです。修正メソッドは、TopLinkネイティブORMで@Customizer注釈にかわるものです。これらは同じ構成を生成します。
toplink-grid.jarにあるTopLink Gridのカスタマイザ・クラス(CoherenceReadCustomizer、CoherenceReadWriteCustomizer、およびGridCacheCustomizer)は、適切なCoherenceキャッシュ動作を有効にするために選択できるafterLoad修正メソッドを提供します。
JDeveloperまたはEclipseLink Workbenchを使用して修正メソッドを選択できます。EclipseLink Workbenchでの修正メソッドの構成方法については、このドキュメントでは説明しません。このトピックの詳細は、Eclipsepediaの修正メソッドとロード後のメソッドに関する項を参照してください。
http://wiki.eclipse.org/Introduction_to_Descriptors_(ELUG)#Amendment_and_After-Load_Methods
目的のTopLink記述子要素を右クリックします。「アドバンスト・プロパティ」を選択して「アドバンスト・プロパティ」ダイアログ・ボックスを開きます。「ロード後」チェック・ボックスを選択し、「OK」をクリックします。
tlMap構成ウィンドウの「ロード後」タブで、選択したTopLink記述子に使用するafterLoad修正メソッドを含むクラスの名前を入力します。クラス・ブラウザを使用してクラスを検索することもできます。図3-3に、tlMap構成ウィンドウの「ロード後」タブを示します。
図3-4に、CoherenceReadCustomizerクラスが選択されているクラス・ブラウザを示します。
tlMap構成ウィンドウの「ロード後」タブで、「Staticメソッド」ドロップダウン・リストから修正メソッドを選択します。Coherence Customizerクラスの場合、これはafterLoadメソッドになります。
coherence-cache-config.xmlファイルでは、キャッシュ・ローダーまたはキャッシュ・ストア・クラスを指定し、キャッシュ名とセッション名(つまりプロジェクト名)のパラメータを提供する必要があります。次の例は、クラス名(EclipseLinkNativeCacheStoreまたはEclipseLinkNativeCacheLoader)の変更以外に、キャッシュ・ローダーまたはキャッシュ・ストアを使用しているかどうかに応じてCoherenceキャッシュ構成に対して変更を行わないことを示しています。
例3-1は、EclipseLink Native ORMアプリケーションと通信できるキャッシュのcoherence-cache-config.xmlファイル内の構成を示しています。class-name要素は、EclipseLinkNativeCacheStoreクラスをキャッシュ・ストア・スキームとして識別します。param-value要素は、クラスに渡されるキャッシュ名とセッション(プロジェクト)名を指定します。
例3-1 統合EclipseLinkNativeCacheStoreの構成
...
<distributed-scheme>
<scheme-name>eclipselink-native-distributed-store</scheme-name>
<service-name>EclipseLinkNative</service-name>
<serializer>
<class-name>oracle.eclipselink.coherence.integrated.cache.WrapperSerializer</class-name>
</serializer>
<backing-map-scheme>
<read-write-backing-map-scheme>
<internal-cache-scheme>
<local-scheme/>
</internal-cache-scheme>
<!-- Define the cache scheme -->
<cachestore-scheme>
<class-scheme>
<class-name>oracle.eclipselink.coherence.integrated.EclipseLinkNativeCacheStore</class-name>
<init-params>
<init-param>
<param-type>java.lang.String</param-type>
<param-value>{cache-name}</param-value>
</init-param>
<init-param>
<param-type>java.lang.String</param-type>
<param-value>coherence-native-project</param-value>
</init-param>
</init-params>
</class-scheme>
</cachestore-scheme>
</read-write-backing-map-scheme>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>
...
例3-2は、coherence-cache-config.xmlファイル内の統合EclipseLinkNativeCacheLoaderインスタンス構成を示しています。キャッシュ名({cache-name})およびセッション名(coherence-native-project)パラメータ値がクラスに渡されます。
例3-2 統合EclipseLinkNativeCacheLoaderの構成
...
<cachestore-scheme>
<class-scheme>
<class-name>oracle.eclipselink.coherence.integrated.EclipseLinkNativeCacheLoader</class-name>
<init-params>
<init-param>
<param-type>java.lang.String</param-type>
<param-value>{cache-name}</param-value>
</init-param>
<init-param>
<param-type>java.lang.String</param-type>
<param-value>coherence-native-project</param-value>
</init-param>
</init-params>
</class-scheme>
</cachestore-scheme>
...