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

前
 
次
 

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

この付録では、POF構成デプロイメント・ディスクリプタのリファレンスと、ディスクリプタの簡単な概要を示します。バイナリ形式の詳細は、付録E「PIF-POFバイナリ形式」を参照してください。

この付録は、次の各項で構成されています。

D.1 POF構成デプロイメント・ディスクリプタ

POF構成デプロイメント・ディスクリプタは、POFを使用してシリアライズおよびデシリアライズされているオブジェクトの非固有の型(ユーザー定義型)を指定するために使用します。POF構成デプロイメント・ディスクリプタの名前と場所はオペレーション・デプロイメント・ディスクリプタで指定され、pof-config.xmlにデフォルト設定されます。サンプルのPOF構成ディスクリプタがcoherence.jarライブラリのルートに配置されており、アプリケーションのクラスパス内でcoherence.jarファイルより前にカスタムのpof-config.xmlファイルが検出されないかぎり、これが使用されます。すべてのクラスタ・メンバーで使用するPOF構成デプロイメント・ディスクリプタを統一してください。

POF構成デプロイメント・ディスクリプタ・スキーマは、coherence-pof-config.xsdファイルで定義します。このXSDファイルは、coherence.jarライブラリのルートおよび次のWeb URLにあります。

http://xmlns.oracle.com/coherence/coherence-pof-config/1.0/coherence-pof-config.xsd

<pof-config>要素はPOF構成デプロイメント・ディスクリプタのルート要素であり、通常はXSDおよびCoherenceネームスペース・リファレンスと、coherence-pof-config.xsdファイルの場所が含まれます。例:

<?xml version='1.0'?>

<pof-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-pof-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-pof-config
   coherence-pof-config.xsd">

注意:

  • coherence.jarライブラリにあるスキーマは、xsi:schemaLocation属性がWeb URLを参照する場合であっても、常に実行時に使用されます。

  • xsi:schemaLocation属性を省略すると、スキーマ検証を無効にできます。

  • デフォルトのキャラクタ・セットがASCIIではなくEBCDICである環境にCoherenceをデプロイする場合、デプロイメント・ディスクリプタ・ファイルがASCII形式であり、ランタイム環境にバイナリ形式でデプロイされることを確認してください。


Coherenceに固有のユーザー定義型は、同じくcoherence.jarライブラリのルートにあるcoherence-pof-config.xmlファイルで定義します。pof-config.xmlファイルを作成するときは、このファイルを次のように参照する必要があります。

<?xml version='1.0'?>

<pof-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-pof-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-pof-config
   coherence-pof-config.xsd">
   <user-type-list>
      <include>coherence-pof-config.xml</include>
   </user-type-list>
   ...
</pof-config>

要素の索引

表D-1は、POF構成デプロイメント・ディスクリプタのすべての非終端要素を示しています。

表D-1 POFの構成要素

要素 使用場所

<default-serializer>

<pof-config>

<init-param>

<init-params>

<init-params>

<serializer>

<pof-config>

ルート要素

<serializer>

<user-type>

<user-type>

<user-type-list>

<user-type-list>

<pof-config>



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として)ゼロ個以上の引数を指定し、それらの引数は、構成されているクラスのコンストラクタのパラメータに対応します。



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要素では、構成パラメータの型、および引数として渡す対応値を指定します。



pof-config

ルート要素

説明

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

要素

表D-5で、pof-config要素のサブ要素を説明します。

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

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

<user-type-list>

必須

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

<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です。

<enable-references>

オプション

enable-references要素は、Identity/Reference型のサポートを有効にするかどうかを指定します。有効な値は、trueまたはfalseです。デフォルト値はfalseです。

<default-serializer>

オプション

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



serializer

使用場所: <user-type>

説明

serializer要素は、特定のユーザー定義型のシリアライズおよびデシリアライズに使用するPOFシリアライザを指定します。PofSerializer実装は、POFストリームとの間でのユーザー定義型の値のシリアライズおよびデシリアライズに使用されます。

serializer要素を省略すると、ユーザー定義型によってPortableObjectインタフェースが実装され、PortableObjectSerializer実装がPOFシリアライザとして使用されることになります。POF注釈を使用する場合は、PofAnnotationSerializer実装がPOFシリアライザとして使用されます。

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

要素

表D-6で、serializer要素のサブ要素を説明します。

表D-6 serializerのサブ要素

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

<class-name>

必須

PofSerializer実装の完全修飾名を指定します。

<init-params>

オプション

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



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のサブ要素

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

<type-id>

オプション

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

<class-name>

必須

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

<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)

  • ()



user-type-list

使用場所: <pof-config>

説明

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

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

要素

表D-8で、user-type-list要素のサブ要素を説明します。

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

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

<user-type>

オプション

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

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

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

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

<include>

オプション

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