10.3. Externalizable API
Externalizer
クラスは、以下を実行するクラスです。
- 該当するオブジェクトタイプをバイトアレイにマーシャリングします。
- バイトアレイの内容のオブジェクトタイプのインスタンスに対するマーシャリングを解除します。
エクスターナライザーは Red Hat JBoss Data Grid により使用され、ユーザーはオブジェクトタイプをどのようにシリアライズするかを指定できます。JBoss Data Grid で使用されるマーシャリングインフラストラクチャーは、JBoss Marshalling に基づいて構築され、効率的なペイロード配信を提供し、ストリームをキャッシュすることを可能にします。ストリームキャッシングを使用すると、データに複数回アクセスできますが、通常はストリームは 1 度だけ読み取ることができます。
Externalizable インターフェースはシリアライゼーションを使用し、拡張します。このインターフェースは、JBoss Data Grid でシリアライゼーションとシリアライゼーション解除を制御するために使用されます。
10.3.1. 高度なエクスターナライザーの登録 (宣言的)
高度なエクスターナライザーがセットアップされた後に、Red Hat JBoss Data Grid で使用するためにこれを登録します。登録は以下のように宣言的に (XML で) 実行されます。
手順10.1 高度なエクスターナライザーの登録
<infinispan> <cache-container> <serialization> <advanced-externalizer class="Book$BookExternalizer" /> </serialization> </cache-container> </infinispan>
serialization
要素をcache-container
要素に追加します。advanced-externalizer
要素を追加して、カスタムエクスターナライザーをclass
属性で定義します。必要に応じて Book$BookExternalizer 値を置き換えます。
10.3.2. カスタムエクスターナライザー ID 値
高度なエクスターナライザーには必要な場合にカスタム ID を割り当てることができます。一部の ID 範囲は他のモジュールやフレームワーク用に予約されるため、その使用を避ける必要があります。
ID 範囲 | 対象 |
---|---|
1000-1099 | Infinispan Tree モジュール |
1100-1199 | Red Hat JBoss Data Grid Server モジュール |
1200-1299 | Hibernate Infinispan 2 次キャッシュ |
1300-1399 | JBoss Data Grid Lucene Directory |
1400-1499 | Hibernate OGM |
1500-1599 | Hibernate Search |
1600-1699 | Infinispan Query モジュール |
1700-1799 | Infinispan Remote Query モジュール |
10.3.2.1. エクスターナライザー ID のカスタマイズ (宣言的)
高度なエクスターナライザー ID を以下のように宣言的に (XML で) カスタマイズします。
手順10.2 エクスターナライザー ID のカスタマイズ (宣言的)
<infinispan> <cache-container> <serialization> <advanced-externalizer id="123" class="Book$BookExternalizer"/> </serialization> </global> </infinispan>
serialization
要素をcache-container
要素に追加します。advanced-externalizer
要素を追加して、新規の高度なエクスターナライザーについての情報を追加します。id
属性を使用してエクスターナライザー ID を定義します。選択した ID が他のモジュール用に予約された ID の範囲にないことを確認します。class
属性を使用してエクスターナライザークラスを定義します。必要に応じて Book$BookExternalizer 値を置き換えます。