7.4.3.2. Externalizer Identifier
2 つ目は、生成されたペイロードで可能な限り最大領域を節約するために、高度なサイライザーは getId() 実装で識別されたポジュライザーの実装や、ペイロードのアンマーシャリング時に externalizer を識別する XML/programmatic 設定を介して特定される外部ャーの実装を必要とします。 ただし、これを機能させるには、高度なサイライザーを使用するには、次のセクションで説明される XML またはプログラムによる設定を介して、外部アーライザーをキャッシュマネージャーの作成時間に登録する必要があります。Externalizer と SerializeWith をベースにした外部ライザーでは、事前登録は必要ありません。内部では、Red Hat Data Grid はこの高度な外部データベースメカニズムを使用して、内部クラスをマーシャリング/アンマーシャリングします。
したがって、getId()は正の整数を返す必要があります。getId()が null を返す場合、この高度なサイライザーの ID は、次のセクションで説明される XML/programmatic 設定を介して定義されることを示します。
id のソースに関係なく、正の整数を使用すると、数値の変数長のエンコードが非常に効率的で、外部ナライザー実装クラス情報やクラス名よりも効率が高くなります。Red Hat Data Grid ユーザーは、システム内の他の識別子と競合しない限り、任意の正の整数を使用できます。内部 Red Hat Data Grid Core 外部データベースは特別なもので、ユーザー定義の外部ライザーに対して異なる数値を使用するため、ユーザー定義の外部ナライザーと、Red Hat Data Grid Core プロジェクトにある外部ャーと同じ数値を使用できる点を理解することが重要です。一方、ユーザーは、本記事の最後にある事前に割り当てられた識別子範囲内にある数字を使用しないようにする必要があります。Red Hat Data Grid は起動時に ID の重複の有無を確認し、見つかった場合は起動がエラーを出して停止します。
使用中の ID を維持する場合は、集中的に実行することを強く推奨します。たとえば、getId()実装は、別のクラスまたはインターフェースで静的に定義された識別子のセットを参照できます。このようなクラス/インターフェースは、使用中の識別子のグローバルビューを提供するので、新しい ID の割り当てが容易になります。