![]() |
![]() |
|
|
| |
RDBMS デプロイメント記述子
weblogic-cmp-rdbms-jar.xml デプロイメント記述子
この章では、バージョン 6.1 の WebLogic Server に固有の XML 要素について説明します。これらの要素は weblogic600-cmp-rdbms-jar.xml ファイルを構成し、WebLogic Server EJB コンテナ内のデプロイメント記述子を定義するために使われるものです。 これらの要素は、WebLogic Server Administration Console のほぼ同じ名前のフィールドに対応します。これらのデプロイメント記述子はバージョン 2.0 の EJB に対して使用します。
automatic-key-generation
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
省略可能 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
automatic-key-generation 要素では、シーケンス/キー生成機能を使用するかどうかを指定します。
cmp-field
機能
この名前は、データベースから取得された情報が入る、Bean インスタンス内のマッピング対象フィールドを指定します。
cmr-field
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
cmr-field で参照されるフィールドに対して、値が一致する cmr-field エントリが ejb-jar.xml に必要である。 |
親要素 |
weblogic-rdbms-relation field-group |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
cmr-field 要素は、cmr-field の名前を指定します。
column-map
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
foreign-key-column がリモート Bean を参照する場合、key-column 要素は指定されない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
この要素は、データベースの 1 つのテーブル内の外部キー列から、対応する主キーへのマッピングを表現します。 2 つの列は同じテーブルに存在していても、していなくてもかまいません。 列が属するテーブルは、column-map 要素がデプロイメント記述子に出現するコンテキストから暗黙のうちに自明です。
create-default-dbms-table
機能
create-default-dbms-table 要素では、デプロイメント ファイルの記述および Bean クラスに基づいてデフォルト テーブルを自動的に作成する機能を有効または無効にします。 False に設定すると、この機能は無効になり、テーブルは自動的に生成されません。 True に設定すると、この機能が有効になりテーブルが自動的に作成されます。 TABLE CREATION が失敗すると、Table Not Found エラーが送出されます。その場合、テーブルを手動で作成しなければなりません。
data-source-name
値の範囲 |
この Bean のすべてのデータベース接続に使われるデータ ソースの有効な名前 |
デフォルト値 |
なし |
要件 |
データベース接続用の、標準の WebLogic Server JDBC データ ソースとして定義しなければならない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
data-source-name 要素では、この Bean のすべてのデータベース接続で使われる JDBC データ ソース名を指定します。
db-cascade-delete
値の範囲 |
|
デフォルト値 |
なし |
要件 |
Oracle データベースだけに対応する要素。 1 対 1 または 1 対多の関係に対してのみ指定可能。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
db-cascade-delete 要素では、データベース カスケード機能を有効にするかどうかを指定します。
dbms-column
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
dbms-column では大文字/小文字が保持されるが、すべてのデータベースで大文字/小文字が区別されるとは限らない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
フィールドがマッピングされるデータベース列の名前です。
dbms-column-type
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
Oracle データベースとの組み合わせでのみ使用可能。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
dbms-column-type 要素は、現在のフィールドを Oracle データベースの BLOB または CLOB にマッピングします。 この要素には OracleBlob または OracleClob のどちらかを使用できます。
delay-database-insert-until
機能
delay-database-insert-until 要素では、RDBMS CMP を使用する新しい Bean がデータベースに挿入されるときの正確な時間を指定します。
ejbPostCreate メソッドが Bean の永続フィールドを変更し終えるまでの間、データベースへの挿入操作を遅延することが推奨されます。 これにより、不必要なストア操作が回避され、パフォーマンスが向上する可能性があります。
柔軟性を最大限に高めるためには、互いに関連する Bean を ejbPostCreate メソッドで作成しないようにすることをお勧めします。 このような処理を行うと、まだ作成されていない Bean を関連する Bean が参照することを禁じるデータベース制約がある場合に、データベース挿入の遅延を実施できなくなる場合があります。
ejb-name
値の範囲 |
EJB の有効な名前 |
デフォルト値 |
なし |
要件 |
ejb-jar.xml で定義される、CMP エンティティ Bean の ejb-name と一致しなければならない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
ejb-cmp-rdbms.xml で定義される EJB を指定する名前。この名前は ejb-jar.xml における、CMP エンティティ Bean の ejb-name と一致しなければなりません。
field-group
機能
field-group 要素は、Bean の cmp-field および cmr-field のサブセットを表現します。 Bean 内の互いに関連するフィールドは、1 つの単位としてメモリに展開されるグループにまとめることができます。 グループをファインダまたは関係と関連付けることによって、ファインダを実行した、または関係を追跡した結果として Bean がロードされるとき、グループに指定したフィールドだけがロードされるようにすることができます。
フィールドは複数のグループに属することができます。 この場合、フィールドに対しての getXXX メソッドでは、そのフィールドを含む最初のグループが対象となります。
field-map
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
データベースの列にマッピングされるフィールドは、Bean の CMP フィールドに対応しなければならない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
Bean インスタンスの CMP フィールドに対応し、データベースの特定の列にマッピングされるフィールドの名前です。
foreign-key-column
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
外部キーの列に対応しなければならない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
foreign-key-column 要素は、データベースの外部キーの列を表します。
generator-name
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
省略可能 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
generator-name 要素は、ジェネレータの名前を指定するために使われます。
次に例を示します。
generator-type
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
省略可能 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
generator-type 要素では、使用するキー生成メソッドを指定します。 指定できる値には、次のものがあります。
group-name
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-relation field-group weblogic-rdbms-bean finder finder-query |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
group-name 要素では、フィールド グループの名前を指定します。
include-updates
値の範囲 |
True | False |
デフォルト値 |
False |
要件 |
パフォーマンスを優先する場合、デフォルト値の False を使用する。 |
親要素 |
weblogic-rdbms-bean weblogic-query |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
include-updates 要素では、現在のトランザクションの間に行われる更新を、クエリの結果に反映する必要があるかどうかを指定します。 この要素を True に設定すると、コンテナはクエリを実行する前に、現在のトランザクションによって行われるすべての変更をディスクに書き出します。
key-cache-size
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
省略可能 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
key-cache-size 要素は、主キー自動生成機能で利用できる主キー キャッシュのサイズを指定します。この要素は省略可能です。
key-column
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
主キーの列に対応しなければならない。 |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
key-column 要素は、データベースの主キーの列を表します。
max-elements
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean weblogic-query |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
max-elements 要素では、多値クエリによって返される要素数の上限を指定します。 この要素は JDBC の maxRows 機能に似た働きをします。
method-name
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
ワイルドカードとしての「*」文字は使用できない。 |
親要素 |
weblogic-rdbms-bean query-method |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
method-name 要素では、ファインダまたは ejbSelect メソッドの名前を指定します。
method-param
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean method-params |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
method-param 要素では、メソッド パラメータの Java 型名を指定します。型名は完全修飾形式で指定します。
method-params
値の範囲 |
有効な名前のリスト |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean query-method |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
method-params 要素では、メソッド パラメータの Java 型名の順序付きリストを指定します。型名は完全修飾形式で指定します。
query-method
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
query-method 要素では、weblogic-query と関連付けられるメソッドを指定します。 この要素の指定には、デプロイメント記述子 ejb-jar.xml と同じ形式を使用します。
relation-name
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
関連付けられた記述子ファイル ejb-jar.xml 内の ejb-relation 要素の子である ejb-relation-name と一致しなければならない。 |
親要素 |
weblogic-rdbms-relation |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
relation-name 要素では、関係の名前を指定します。
relationship-role-name
機能
relationship-role-name 要素では、関係ロールの名前を指定します。
table-name
値の範囲 |
データベース内のソース テーブルの有効な SQL 名(完全修飾形式) |
デフォルト値 |
なし |
要件 |
table-name は常に設定しなければならない。 |
親要素 |
weblogic-rdbms-bean weblogic-rdbms-relation |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
テーブルの完全修飾 SQL 名。 この Bean の data-source に対して定義されるユーザは、このテーブルに対して読み取りおよび書き込みの権限を持つ必要がありますが、スキーマ変更の権限は必ずしも必要ではありません。
weblogic-ql
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean weblogic-query |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
weblogic-ql 要素には、EJB QL 言語に対する WebLogic 固有の機能拡張を含むクエリを指定します。 EJB QL 言語の標準機能だけを使用するクエリについては、デプロイメント記述子 ejb-jar.xml に指定することを推奨します。
weblogic-query
値の範囲 |
なし |
デフォルト値 |
なし |
要件 |
なし |
親要素 |
weblogic-rdbms-bean |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
weblogic-query 要素では、WebLogic 固有の属性を必要に応じてクエリと関連付けることができます。 たとえば、weblogic-query 要素を使って、EJB QL に対する WebLogic 固有の機能拡張を含むクエリを指定することができます。 EJB QL に対する WebLogic の機能拡張を利用しないクエリについては、デプロイメント記述子 ejb-jar.xml に指定することを推奨します。
また、weblogic-query 要素には、クエリによって事前にキャッシュにロードしておくことが望ましいエンティティ Bean をクエリが取得する場合に、フィールド グループ(field-group 要素で指定)をクエリと関連付ける用途もあります。
weblogic-relationship-role
値の範囲 |
有効な名前 |
デフォルト値 |
なし |
要件 |
テーブルへのロールのマッピングは、関連する weblogic-rdbms-bean および ejb-relation 要素で指定される。 |
親要素 |
weblogic-rdbms-relation |
デプロイメント ファイル |
weblogic-cmp-rdbms-jar.xml |
機能
weblogic-relationship-role 要素は、外部キーから主キーへのマッピングを表現するために使われます。 関係がローカルであるとき、1 対 1 関係に対する 1 つのマッピングだけが指定されます。 多対多の関係については、2 つのマッピングを指定しなければなりません。
キーが複雑な場合、1 つのロールに対して複数の列マッピングが指定されます。 ロールが単にグループ名を指定しているだけの場合、column-map は指定されません。
この節では、バージョン 6.1 の WebLogic Server に固有の XML 要素について説明します。これらの要素は weblogic510-cmp-rdbms-jar.xml ファイルを構成し、WebLogic Server EJB コンテナ内のデプロイメント記述子を定義するために使われるものです。 これらの要素は、WebLogic Server Administration Console のほぼ同じ名前のフィールドに対応します。これらのデプロイメント記述子はバージョン 1.1 の EJB に対して使用します。
RDBMS 定義要素
ここでは、RDBMS 定義要素について説明します。
pool-name
pool-name 要素では、この EJB のデータベース接続で使われる WebLogic Server 接続プールの名前を指定します。
schema-name
schema-name 要素では、ソース テーブルがデータベース内に位置するスキーマを指定します。 この要素は、EJB の接続プールに定義されたユーザにとってのデフォルト スキーマではないスキーマを使用する場合にのみ必要です。
注意: このフィールドでは大文字/小文字が区別されますが、多くの SQL 実装では大文字/小文字の区別は無視されます。
table-name
table-name 要素では、データベース内のソース テーブルを指定します。 この要素は常に必要です。
注意: EJB の接続プールに定義されるユーザは、指定されたテーブルに対して読み取りおよび書き込みの権限を持つ必要がありますが、スキーマ変更の権限は必ずしも必要ではありません。 このフィールドでは大文字/小文字が区別されますが、多くの SQL 実装では大文字/小文字の区別は無視されます。
EJB フィールド マッピング要素
ここでは、EJB フィールド マッピング要素について説明します。
attribute-map
attribute-map 属性は、EJB インスタンスの 1 つのフィールドをデータベース テーブルの特定の列とリンクします。 attribute-map では、WebLogic Server の RDBMS ベースの永続性を利用する EJB の各フィールドに対して、厳密に 1 つのエントリを指定しなければなりません。
object-link
個々の attribute-map エントリは、データベースの列および EJB インスタンスのフィールド間のリンクを表現する object-link 属性で構成されます。
bean-field
bean-field 属性では、データベースから取得されたデータが入る EJB インスタンスのフィールドを指定します。 この要素では大文字/小文字が区別され、要素の値は Bean インスタンスのフィールドの名前と厳密に一致しなければなりません。
また、この要素で参照されるフィールドに対応する cmp-field 要素が、Bean の ejb-jar.xml ファイルで定義されている必要があります。
dbms-column
dbms-column 要素では、EJB のフィールドがマッピングされるデータベースの列を指定します。 この要素では大文字/小文字が区別されますが、多くのデータベースでは大文字/小文字の区別は無視されます。
注意: WebLogic Server では、dbms-column 要素の値として、引用符で囲んだ RDBMS キーワードを使用できません。 たとえば、"create" や "select" のような列名を使った属性マップは、使用するデータストアでそれらの語が予約済みである場合には作成できません。
ファインダ要素
ここでは、ファインダ要素について説明します。
finder-list
finder-list 要素は、Bean 集合の位置を特定するために生成される全ファインダの集合を定義します。
finder-list には、findByPrimarykey メソッドを除き、ホーム インターフェースに定義される個々のファインダ メソッドに対して必ず 1 つのエントリを定義しなければなりません。 findByPrimaryKey に対応するエントリが定義されない場合、コンパイル時にエントリが生成されます。
注意: findByPrimaryKey に対応するエントリを指定しない場合、WebLogic Server はコンパイル時に生成されるエントリを、妥当性を検証することなく使用します。 ほとんどの場合、findByPrimaryKey に対応するエントリの定義を省略して、デフォルトで生成されるメソッドを使うことが推奨されます。
finder
finder 要素は、ホーム インターフェースに定義されるファインダ メソッドを定義します。 WebLogic Server は finder 要素の子要素を参照することによって、ホーム インターフェースのどのメソッドが記述対象となっているかを識別し、必要なデータベース操作を実行できます。
method-name
method-name 要素では、ホーム インターフェースのファインダ メソッドの名前を定義します。 この要素にはメソッドの正確な名前を指定しなければなりません。
method-params
method-params 要素では、method-name に指定されているファインダ メソッドに渡されるパラメータの集合を定義します。
注意: WebLogic Server はこのリストを、EJB のホーム インターフェースに定義されたファインダ メソッドのパラメータ型と照合します。パラメータ リストの順序および型は、ホーム インターフェースに定義された順序および型と厳密に一致しなければなりません。
method-param
method-param 要素では、パラメータの型の名前を完全修飾形式で定義します。 型名は java.lang.Class オブジェクトに評価され、評価結果のオブジェクトは、EJB のファインダ メソッドの各パラメータと厳密に一致しなければなりません。
パラメータのプリミティブ名(double や int など)を使って、プリミティブ型のパラメータを指定することができます。 プリミティブでないデータ型を method-param 要素で使用する場合は、完全修飾名を指定しなければなりません。 たとえば、Timestamp ではなく java.sql.Timestamp と指定します。 修飾名を使用しないと、デプロイメント ユニットのコンパイル時に ejbc によってエラー メッセージが返されます。
finder-query
finder-query 要素は、このファインダでデータベースから値を取得するために使われる WebLogic Query Language(WLQL)文字列を指定します。
注意: finder-query 要素の値であるテキストは、常に XML の CDATA 属性を使って定義します。 CDATA を使うことにより、ファインダのコンパイル時に、WLQL 文字列内の特殊文字が原因でエラーが発生することがなくなります。
finder-expression
finder-expression 要素では、このファインダでのデータベース クエリで変数として使用する Java 言語拡張を指定します。
注意: WebLogic Server EJB コンテナの将来のバージョンでは、(EJB 2.0 仕様の要件に従って)EJB QL クエリ言語が使われる予定です。 EJB QL では、埋め込み形式の Java 式を使用できません。 そのため、将来の EJB コンテナへのアップグレードを容易にするために、エンティティ EJB のファインダを作成するときは、WLQL に Java 式を埋め込まないようにしてください。
![]() |
![]() |
![]() |