ヘッダーをスキップ
Oracle® Coherence開発者ガイド
リリース3.6.1
B61368-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

D POFユーザー定義型の構成要素

この付録には、POFユーザー定義型の指定に使用できる要素が一覧表示されています。POFユーザー定義型の構成要素は、coherence.jarファイルにあるpof-config.dtdファイルで定義されます。

POFユーザー定義型の構成ファイルの詳細は、JavadocのConfigurablePofContextクラスを参照してください。

POFユーザー定義型のデプロイメント・ディスクリプタ

POFユーザー定義型のデプロイメント・ディスクリプタを使用して、クラスタに渡される様々なユーザー定義型を指定します。

ドキュメントの場所

ディスクリプタのデフォルトの名前および場所はpof-config.xmlになります。このデフォルトのPOFユーザー定義型のディスクリプタはcoherence.jarにパッケージ化されており、カスタム・ファイルがアプリケーションのクラスパスに検出されないかぎり使用されます。ディスクリプタのデフォルトの名前および場所は、システム・プロパティtangosol.pof.configを使用して構成することもできます。クラスタ内のすべてのノードで使用するPOFユーザー定義型のディスクリプタを統一することをお薦めします。

ドキュメント・ルート

POFユーザー定義型のディスクリプタのルート要素はpof-configです。ユーザー定義型の指定はここから開始します。

ドキュメントの形式

POFユーザー定義型のディスクリプタは、次のDOCTYPE宣言から開始します。

<!DOCTYPE pof-config SYSTEM "pof-config.dtd">

要素のドキュメントの形式およびネストを例D-1に示します。

例D-1 POFユーザー定義型の構成ファイル(pof-config.xml)の形式

<pof-config>
   <user-type-list>
     ..
     <user-type>
       <type-id>53</type-id>
       <class-name>com.mycompany.data.Trade</class-name>
       <serializer>
         <class-name>com.tangosol.io.pof.PortableObjectSerializer</class-name>
         <init-params>
           <init-param>
             <param-type>int</param-type>
             <param-value>{type-id}</param-value>
           </init-param>
         </init-params>
       </serializer>
     </user-type>

     <user-type>
       <type-id>54</type-id>
       <class-name>com.mycompany.data.Position</class-name>
     </user-type>

     ..
     <include>file:/my-pof-config.xml</include>

     ..
   </user-type-list>

   <allow-interfaces>false</allow-interfaces>
   <allow-subclasses>false</allow-subclasses>
   <default-serializer>
      <class-name>com.mycompany.data.TradeSerializer</class-name>
      <init-params>
         <init-param>
            <param-type>int</param-type>
            <param-value>{type-id}</param-value>
         </init-param>
      </init-params>
   </default-serializer>
</pof-config>

コマンドラインのオーバーライド

Oracle Coherenceには強力なコマンドライン設定オーバーライド機能があり、このディスクリプタにsystem-property属性が定義されている場合は、ディスクリプタに定義された要素をJavaコマンドラインからオーバーライドできます。


要素の索引

表D-1には、POFユーザー定義型の構成で使用可能なすべての要素が一覧表示されています。


allow-interfaces

使用場所: <pof-config>

説明

allow-interfaces要素は、user-type class-nameでJavaクラス・タイプ以外にJavaインタフェース・タイプも指定できるかどうかを示します。

有効な値は、trueまたはfalseです。デフォルト値はfalseです。

要素

終端要素。


allow-subclasses

使用場所: <pof-config>

説明

allow-subclasses要素は、user-type class-nameで抽象的なJavaクラス・タイプを指定できるかどうか、および、指定したuser-type class-nameのサブクラスが実行時に許可され、シリアライザの取得を目的として指定したスーパークラスに自動的にマップされるかどうかを示します。

有効な値は、trueまたはfalseです。デフォルト値はfalseです。

要素

終端要素。


class-name

使用場所: <user-type>、<serializer>、<default-serializer>

説明

class-name要素は、JavaクラスまたはJavaインタフェースの名前を指定します。

user-type要素の中にはclass-name要素が必要であり、ユーザー定義型のすべての値にタイプの割当てが可能なJavaクラスまたはJavaインタフェースの完全修飾名を指定します。

serializer要素の中にはclass-name要素が必要です。

default-serializer要素の中にはclass-name要素が必要です。

要素

終端要素。


default-serializer

使用場所: <pof-config>

説明

この要素は、pof-config要素内で定義されるすべてのユーザー定義型のシリアライズおよびデシリアライズの際に使用するPofSerializerを指定します。シリアライザがuser-type内に指定されている場合、そのユーザー定義型にはデフォルトのシリアライザのかわりにそのシリアライザが使用されます。

default-serializer要素を省略すると、特定のユーザー定義型に対して定義されたシリアライザが使用されます。そのユーザー定義型のserializer要素も省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPofSerializerとして使用されることになります。

default-serializer要素からinit-params要素を省略した場合は、そのPofSerializer実装に対して次の4つのコンストラクタが、ここに示された順序で試行されます。

要素

表D-2は、default-serializer要素で定義可能なサブ要素について説明しています。

表D-2 default-serializerのサブ要素

要素 必須/オプション 説明

<class-name>

必須

PofSerializer実装の名前を指定します。

<init-params>

オプション

(それぞれがinit-paramとして)ゼロ個以上の引数を指定し、それらの引数は、構成されているクラスのコンストラクタのパラメータに対応します。



include

使用場所: <user-type-list>

説明

include要素は、user-type要素のロード元であるpof-configファイルの場所を指定します。この値は、ロード先のpof-configファイルの場所を特定するロケータ文字列(有効なパスとULRのいずれか)です。

要素

終端要素。


init-param

使用場所: <init-params>

説明

init-param要素では、構成パラメータの型、および引数として渡す対応値を指定します。

要素

表D-3は、init-param要素で定義可能なサブ要素について説明しています。

表D-3 init-paramのサブ要素

要素 必須/オプション 説明

<param-type>

必須

param-type要素は、初期化パラメータのJavaタイプを指定します。サポートされているタイプは次のとおりです。

  • string: 値がjava.lang.Stringであることを示します。

  • boolean: 値がjava.lang.Booleanであることを示します。

  • int: 値がjava.lang.Integerであることを示します。

  • long: 値がjava.lang.Longであることを示します。

  • double: 値がjava.lang.Doubleであることを示します。

  • decimal: 値がjava.math.BigDecimalであることを示します。

  • file: 値がjava.io.Fileであることを示します。

  • date: 値がjava.sql.Dateであることを示します。

  • time: 値がjava.sql.Timedatetimeであることを示します。

  • datetime: 値がjava.sql.Timestampであることを示します。

  • xml: 値がinit-param XmlElement全体であることを示します。

値は指定された型に変換されます。インスタンス化を正常に実行するには、ターゲットのコンストラクタまたはメソッドにその型のパラメータが存在している必要があります。

<param-value>

必須

param-value要素は、初期化パラメータの値を指定します。この値は、パラメータの型に固有の形式にします。指定できる値が4つ予約されています。これらの値がそれぞれ、実行時に特定のランタイム値に置換されてから、コンストラクタが起動されます。

  • {type-id}: ユーザー定義型のタイプIDに置換されます。

  • {class-name}: ユーザー定義型のクラスの名前に置換されます。

  • {class}: ユーザー定義型のクラスに置換されます。

  • {class-loader}: ConfigurablePofContextContextClassLoaderに置換されます。



init-params

使用場所: <serializer>、<default-serializer>

説明

init-params要素には、(それぞれがinit-paramとして)ゼロ個以上の引数を記述し、それらの引数は、構成されているクラスのコンストラクタのパラメータに対応します。

要素

表D-4は、init-params要素で定義可能なサブ要素について説明しています。

表D-4 init-paramsのサブ要素

要素 必須/オプション 説明

<init-param>

必須

init-param要素では、構成パラメータの型、および引数として渡す対応値を指定します。



param-type

使用場所: <init-param>

説明

param-type要素は、初期化パラメータのJavaタイプを指定します。

サポートされているタイプは次のとおりです。

値は指定されたデータ型に変換されます。インスタンス化を問題なく実行するには、ターゲット・コンストラクタまたはメソッドにその型のパラメータが存在している必要があります。

要素

終端要素。


param-value

使用場所: <init-param>

説明

param-value要素は、初期化パラメータの値を指定します。この値は、パラメータの型に固有の形式にします。

指定できる値が4つ予約されています。これらの値がそれぞれ、実行時に特定のランタイム値に置換されてから、コンストラクタが起動されます。

要素

終端要素。


pof-config

ルート要素

説明

pof-config要素は、POFユーザー定義型のディスクリプタのルート要素です。

要素

表D-5は、pof-config要素で定義可能なサブ要素について説明しています。

表D-5 pof-configのサブ要素

要素 必須/オプション 説明

<allow-interfaces>

オプション

allow-interfaces要素は、user-type class-nameでJavaクラス・タイプ以外にJavaインタフェース・タイプも指定できるかどうかを示します。有効な値は、trueまたはfalseです。デフォルト値はfalseです。

<allow-subclasses>

オプション

allow-subclasses要素は、user-type class-nameで抽象的なJavaクラス・タイプを指定できるかどうか、および、指定したuser-type class-nameのサブクラスが実行時に許可され、シリアライザの取得を目的として指定したスーパークラスに自動的にマップされるかどうかを示します。有効な値は、trueまたはfalseです。デフォルト値はfalseです。

<user-type-list>

必須

user-type-list要素には、ゼロ個以上のuser-type要素を記述します。使用されるPOFユーザー定義型はそれぞれ、user-type-listに一覧表示されている必要があります。user-type-list要素には、ゼロ個以上のinclude要素も記述できます。それぞれのinclude要素は、別のpof-configファイルで定義されたuser-type要素の追加に使用されます。

<default-serializer>

オプション

default-serializerは、pof-configで定義されたすべてのユーザー定義型のシリアライズおよびデシリアライズに使用するPofSerializerを指定します。user-typeに対してシリアライザが指定されている場合、そのユーザー定義型にはデフォルトのシリアライザのかわりにそのシリアライザが使用されます。



serializer

使用場所: <acceptor-config>、<distributed-scheme>、<initiator-config>、<invocation-scheme>、<optimistic-scheme>、<replicated-scheme>、<user-type>

説明

この要素は、proxy-scheme/acceptor-configdistributed-schemeなどのサービス・スキーム要素の一部として使用するか、またはPOF構成ファイル内でuser-type要素の一部としてPOFSerializerを指定するために使用できます。

サービス・スキーム内での使用

ユーザー定義型をシリアライズおよびデシリアライズするためにサービスによって使用される、com.tangosol.io.Serializer実装のクラス構成情報を指定します。

次の例は、デフォルトのcoherence-pof-config.xml構成ファイルを使用してストリームに対するオブジェクトの読取りおよび書込みを行う、ConfigurablePofContextを構成しています。

<serializer>
  <class-name>com.tangosol.io.pof.ConfigurablePofContext</class-name>
</serializer>

user-type内での使用

serializer要素は、特定のユーザー定義型のシリアライズおよびデシリアライズに使用するPofSerializerを指定します。

PofSerializerは、POFストリームとの間でのユーザー定義型の値のシリアライズおよびデシリアライズに使用されます。serializer要素の中にはclass-name要素が必要であり、init-params要素の中にはゼロ個以上のコンストラクタ・パラメータを定義できます。

serializer要素を省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPofSerializerとして使用されることになります。

serializer要素からinit-params要素を省略した場合は、そのPofSerializer実装に対して次の4つのコンストラクタが、ここに示された順序で試行されます。

要素

表D-6は、serializer要素で定義可能な要素について説明しています。

表D-6 serializerのサブ要素

要素 必須/オプション 説明

<class-name>

必須

シリアライザの名前を指定します。

<init-params>

オプション

init-params要素には、(それぞれがinit-paramとして)ゼロ個以上の引数を記述し、それらの引数は、構成されているクラスのコンストラクタのパラメータに対応します。



type-id

使用場所: <user-type>

説明

type-id要素は、ユーザー定義型を一意に識別する整数値(n >= 0)を指定します。

user-type要素のいずれもtype-id要素を記述していない場合には、ユーザー定義型の型IDは、user-type-listに表示される順序に基づきます。そこでは、最初に割り当てられるユーザー定義型の型ID0、2番目に割り当てられるユーザー定義型の型ID1になります(以下同様)。

ただし、スキーマのバージョニングおよび進化をサポートできるように、ユーザー定義型のIDを常に指定することを強くお薦めします。


注意:

予約ID: 最初の1000個のIDは、Coherenceの内部使用に予約されています。

要素

終端要素。


user-type

使用場所: <user-type-list>

説明

user-type要素には、POFユーザー定義型の宣言を記述します。POFユーザー定義型は、一意の識別、移植、バージョニングが可能なオブジェクト・クラスで、言語、オペレーティング・システム、ハードウェアおよび場所に関係なく、システム間で通信できます。

user-type要素の中ではtype-id要素を省略できますが、スキーマのバージョニングおよび進化をサポートできるように、使用することを強くお薦めします。

user-type要素の中にはclass-name要素が必要であり、ユーザー定義型のすべての値にタイプの割当てが可能なJavaクラスまたはJavaインタフェースの完全修飾名を指定します。

serializer要素を省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPofSerializerとして使用されることになります。

要素

表D-7は、user-type要素で定義可能な要素について説明しています。

表D-7 user-typeのサブ要素

要素 必須/オプション 説明

<class-name>

必須

class-name要素は、JavaクラスまたはJavaインタフェースの名前を指定します。user-type要素の中にはclass-name要素が必要であり、ユーザー定義型のすべての値にタイプの割当てが可能なJavaクラスまたはJavaインタフェースの完全修飾名を指定します。serializer要素の中にはclass-name要素が必要です。

<serializer>

オプション

serializer要素は、特定のユーザー定義型のシリアライズおよびデシリアライズに使用するPofSerializerを指定します。PofSerializerは、POFストリームとの間でのユーザー定義型の値のシリアライズおよびデシリアライズに使用されます。serializer要素の中にはclass-name要素が必要であり、init-params要素の中にはゼロ個以上のコンストラクタ・パラメータを定義できます。

serializer要素を省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPofSerializerとして使用されることになります。

serializer要素からinit-params要素を省略した場合は、そのPofSerializer実装に対して次の4つのコンストラクタが、ここに示された順序で試行されます。

  • (int nTypeId, Class clz, ClassLoader loader)

  • (int nTypeId, Class clz)

  • (int nTypeId)

  • ()

<type-id>

オプション

type-id要素は、ユーザー定義型を一意に識別する整数値(n >= 0)を指定します。user-type要素のいずれもtype-id要素を記述していない場合には、ユーザー定義型の型IDは、user-type-listに表示される順序に基づきます。そこでは、最初に割り当てられるユーザー定義型の型ID0、2番目に割り当てられるユーザー定義型の型ID1になります(以下同様)。ただし、スキーマのバージョニングおよび進化をサポートできるように、ユーザー定義型のIDを常に指定することを強くお薦めします。



user-type-list

使用場所: <pof-config>

説明

user-type-list要素には、ゼロ個以上のuser-type要素を記述します。使用されるPOFユーザー定義型はそれぞれ、user-type-listに一覧表示されている必要があります。

user-type-list要素には、ゼロ個以上のinclude要素も記述できます。それぞれのinclude要素は、別のpof-configファイルで定義されたuser-type要素の追加に使用されます。

要素

次の表は、user-type-list要素で定義可能な要素について説明しています。

表D-8 user-type-listのサブ要素

要素 必須/オプション 説明

<include>

オプション

include要素は、user-type要素のロード元であるpof-configファイルの場所を指定します。この値は、ロード先のpof-configファイルの場所を特定するロケータ文字列(有効なパスとULRのいずれか)です。任意の数の<include>要素を指定できます。

<user-type>

オプション

user-type要素には、POFユーザー定義型の宣言を記述します。POFユーザー定義型は、一意の識別、移植、バージョニングが可能なオブジェクト・クラスで、言語、オペレーティング・システム、ハードウェアおよび場所に関係なく、システム間で通信できます。任意の数の<user-type>要素を指定できます。

user-type要素の中ではtype-id要素を省略できますが、スキーマのバージョニングおよび進化をサポートできるように、使用することを強くお薦めします。

user-type要素の中にはclass-name要素が必要であり、ユーザー定義型のすべての値にタイプの割当てが可能なJavaクラスまたはJavaインタフェースの完全修飾名を指定します。

serializer要素を省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPofSerializerとして使用されることになります。