アイデンティティ・マップの使用

TopLinkではパフォーマンスのためのオブジェクトのキャッシュと、オブジェクト・アイデンティティの保持にアイデンティティ・マップが使用されます。次の種類のアイデンティティ・マップを「アイデンティティ」タブ(図4-13を参照)で選択できます。

図4-2 アイデンティティ・マップ  

アイデンティティ・マップ 説明
完全アイデンティティ・マップ 完全なキャッシュと保証されたアイデンティティを提供します。すべてのオブジェクトをキャッシュし、オブジェクトを削除しません。この方法は、多数のオブジェクトが読み取られると、メモリーを集中的に使用する場合があります。バッチ・タイプ処理では使用できません。
ソフト・キャッシュの弱いアイデンティティ・マップ(JDK 1.2のデフォルト、JDK 1.2以上で使用可能) 最も使用頻度の高いサブキャッシュを保持すること以外は、弱いアイデンティティ・マップとほぼ同様です。サブキャッシュのサイズは、ディスクリプタのsetIdentityMapSize()メソッドで指定されているとおりアイデンティティ・マップのサイズに比例します。サブキャッシュは、システムのメモリーが不足した場合のみこれらのオブジェクトでガベージ・コレクションが行われるようにするため、弱い参照を使用します。
ハード・キャッシュの弱いアイデンティティ・マップ(JDK 1.2以上で使用可能) サブキャッシュでハード参照を使用すること以外は、ソフト・キャッシュの弱いアイデンティティ・マップとほぼ同様です。ソフト参照がプラットフォーム上で正しく動作しない場合は、このアイデンティティ・マップを使用します。
弱いアイデンティティ・マップ(JDK 1.2以上で使用可能) 弱い参照を使用してマップがオブジェクトを保持すること以外は、完全アイデンティティ・マップとほぼ同様です。この方法では完全ガベージ・コレクションが可能です。完全なキャッシュと保証されたアイデンティティも提供されます。
キャッシュ・アイデンティティ・マップ キャッシュとアイデンティティを提供しますが、アイデンティティは保証しません。キャッシュ・アイデンティティ・マップは、アプリケーションで指定された決まった数のオブジェクトを保持します。オブジェクトは最も使用順序の低いキャッシュから削除されます。この方法では最も使用頻度の高いオブジェクトのオブジェクト・アイデンティティが許可されます。
アイデンティティ・マップなし オブジェクト・アイデンティティを保持せず、オブジェクトもキャッシュしません。

関連項目

TopLinkディスクリプタについて

オプティミスティック・ロックの指定
アイデンティティ・マップ・サイズの設定
設計ガイドライン
オブジェクト・アイデンティティの使用
オブジェクトのキャッシュ

ディスクリプタの使用

 

Copyright © 1997, 2004, Oracle. All rights reserved.