WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

weblogic-cmp-jar.xml デプロイメント記述子のリファレンス

以下の節では、WebLogic 固有の XML スキーマ ベース (XSD) デプロイメント記述子ファイル、weblogic-cmp-jar.xml の EJB 2.1 の要素について説明します。これらの定義を使用して、EJB デプロイメントを構成する WebLogic 固有の weblogic-cmp-jar.xml ファイルを作成します。このデプロイメント記述子ファイルを使用して、コンテナ管理による永続性 (CMP) の動作を指定します。

このリリースの WebLogic Server では、weblogic-cmp-jar.xml は XML スキーマ (XSD) に基づいています。旧リリースでは、weblogic-cmp-jar.xml は文書型定義 (DTD) に基づいていました。下位互換性を保持するために、このリリースの WebLogic Server は XSD ベースと DTD ベースの EJB 記述子をサポートしています。また、このリリースでは、EJB コンテナは従来の DTD ベースの記述子もすべてサポートしているので、DTD ベースのデプロイメント記述子を使用するアプリケーションも記述子を変更せずにデプロイできます。

EJB 1.1 デプロイメント記述子要素については、「EJB 1.1 ユーザへの重要な情報」を参照してください。

詳細情報

EJB 1.1 デプロイメント記述子の要素については、「EJB 1.1 ユーザへの重要な情報」を参照してください。

 


2.1 の weblogic-cmp-jar.xml デプロイメント記述子ファイルの構造

weblogic-cmp-jar.xml ファイルは、WebLogic Server の RDBMS ベースの永続性サービスを使用するエンティティ EJB のデプロイメント記述子を定義します。EJB コンテナでは、9.0 より前のバージョンの WebLogic Server で提供されていた XML とは異なるバージョンの weblogic-cmp-jar.xml を使用します。

旧バージョンの weblogic-cmp-jar.xml DTD Bean も引き続きこのリリースの WebLogic Server にデプロイできます。同様に、WebLogic Server 8.1 でサポートされていた weblogic-cmp-jar.xml DTD も引き続き使用できます。WebLogic Server 9.0 から、デプロイメント記述子は XSD ベースになりましたが、下位互換性を保持するために WebLogic Server は DTD ベースの記述子も引き続きサポートしています。ただし、CMP 2.1 の機能を使用する場合は、下記の XSD を使用する必要があります。

このリリースの WebLogic Server に対応させるため、DDConverter を実行して 9.0 より前のリリースの EJB デプロイメント記述子を変換することをお勧めします。DDConverter では、9.0 より前のリリースの WebLogic Server の DTD ベースの EJB デプロイメント記述子を、このリリースでサポートされている XSD ベースの記述子に変換します。

注意 : アプリケーションを新しい WebLogic Server リリースに移行するときには、必ず記述子を変換することをお勧めします。

WebLogic Server の weblogic-cmp-jar.xml の最上位要素は、weblogic-rdbms-jar 要素で構成されます。

weblogic-rdbms-jar
	weblogic-rdbms-bean
ejb-name
data-source-jndi-name
table-map
field-group
relationship-caching
		sql-shape
weblogic-query
delay-database-insert-until
use-select-for-update
lock-order
instance-lock-order
automatic-key-generation
check-exists-on-method
cluster-invalidation-disabled
	weblogic-rdbms-relation
relation-name
table-name
weblogic-relationship-role
order-database-operations
enable-batch-operations
create-default-dbms-tables
validate-db-schema-with
database-type
default-dbms-tables-ddl

compatibility
serialize-byte-array-to-oracle-blob
serialize-char-array-to-bytes
allow-readonly-create-and-remove
disable-string-trimming

 


2.1 の weblogic-cmp-jar.xml デプロイメント記述子の要素

以下の weblogic-cmp-jar.xml 要素のリストには、このリリースの WebLogic Server でサポートされているすべての要素が含まれています。

 


allow-readonly-create-and-remove

表 C-1 allow-readonly-create-and-remove
指定できる値 :
true | false
デフォルト値 :
false
親要素 :
weblogic-rdbms-jar
    compatibility

機能

WebLogic Server 8.1 SP02 で導入されたこの要素は、下位互換性のフラグです。ReadOnly 同時方式を使用する EJB で作成と削除を有効にするために使用します。

WebLogic Server 8.1 SP2 より前は、それらの処理は許可されていました (ただしトランザクションとしての意味はなかった)。ReadOnly Bean でより効率的なコードを生成できるように、また、それらを使用するのがプラクティスとして良くないという理由から、作成と削除は許可されなくなっています。

<compatibility> 
     <allow-readonly-create-and-remove>
     true
     </allow-readonly-create-and-remove>
</compatibility>

 


automatic-key-generation

表 C-2 automatic-key-generation
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

automatic-key-generation 要素は、主キーが自動的に生成される方法を指定します。この機能の詳細については、「主キーの自動生成」を参照してください。

以下のサンプル コードは、さまざまな主キー生成方法の automatic-key-generation 要素を示しています。サポートされている生成方法については、「generator-type」を参照してください。

コード リスト C-1 generator-type=Oracle の automatic-key-generation
<automatic-key-generation>
<generator-type>Oracle</generator-type>
<generator-name>test_sequence</generator-name>
<key-cache-size>10</key-cache-size>
</automatic-key-generation>
コード リスト C-2 generator-type=SQL-SERVER の automatic-key-generation
<automatic-key-generation>
<generator-type>SQL-SERVER</generator-type>
</automatic-key-generation>
コード リスト C-3 generator-type=NamedSequenceTable の automatic-key-generation
<automatic-key-generation>
<generator-type>NamedSequenceTable</generator-type>
<generator-name>MY_SEQUENCE_TABLE_NAME</generator-name>
<key-cache-size>100</key-cache-size>
</automatic-key-generation>

 


caching-element

表 C-3 caching-element
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          relationship-caching

機能

関連する Bean で cmr-field group-name を指定します。group-name を指定しなかった場合、デフォルトの group-name (全フィールドをロード) が使用されます。詳細については、「group-name」を参照してください。

caching-element では、relationship-caching の例のようにネストされたキャッシュ要素を格納できます。

リレーションシップ キャッシングについては、「リレーションシップ キャッシング」を参照してください。

relationship-caching」を参照してください。

 


caching-name

表 C-4 caching-name
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          relationship-caching

機能

caching-name 要素は、リレーションシップ キャッシュの名前を指定します。リレーションシップ キャッシングの詳細については、「リレーションシップ キャッシング」を参照してください。

relationship-caching」を参照してください。

 


check-exists-on-method

表 C-5 check-exists-on-method
指定できる値 :
True | False
デフォルト値 :
True
親要素 :
weblogic-rdbms-bean

機能

デフォルトでは、EJB コンテナはコンテナ管理による永続性 (CMP) エンティティ Bean の有無を、Bean 上で呼び出されたビジネス メソッドが完了する前にチェックします。これは、削除されたコンテナ管理のエンティティ Bean 上で何らかのビジネス メソッドが呼び出されると、直ちにコンテナがアプリケーションに対して通知を行うことを意味します。

EJB コンテナが、存在するかどうかのチェックをする前にトランザクションの完了を待機するように指定するには、check-exists-on-methodFalse に設定します。これにより、大半のアプリケーションで高いパフォーマンスを実現しつつ、十分なレベルのチェックが提供されます。

次の例では、削除された CMP エンティティ Bean 上でビジネス メソッドが呼び出されたことを WebLogic Server がアプリケーションに通知するように指定しています。

<check-exists-on-method>True</check-exists-on-method>

 


cluster-invalidation-disabled

表 C-6 cluster-invalidation-disabled
指定できる値 :
true | false
デフォルト値 :
false
親要素 :
weblogic-rdbms-bean

機能

WebLogic Server 9.0 で採用されたこのフラグは、Optimistic または ReadOnly 同時方式を使用する EJB がデプロイ先のクラスタのメンバーによって更新されたときにその EJB を無効化するかどうかを指定するために使用します。詳細については、「クラスタ内のオプティミスティックな同時方式の無効化オプション」を参照してください。

<cluster-invalidation-disabled>true</cluster-invalidation-disabled>

 


cmp-field

表 C-7 cmp-field
指定できる値 :
Bean のフィールドの有効な名前。フィールドは、ejb-jar.xml 内に対応する cmp-entry エントリが必要。フィールド名は大文字と小文字が区別される。
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     field-map
および
weblogic-rdbms-relation
     field-group

機能

この名前は、Bean インスタンスのマップされたフィールドを指定します。Bean インスタンスのフィールドには、データベースから取得した情報が指定されている必要があります。

field-map」を参照してください。

 


cmr-field

表 C-8 cmr-field
指定できる値 :
Bean のフィールドの有効な名前。フィールドは、ejb-jar.xml に対応する cmr-field エントリが必要。
デフォルト値 :
なし
親要素 :
weblogic-rdbms-relation
   field-group
および
relationship-caching
   caching-element

機能

コンテナ管理による関係フィールドの名前を指定します。

<cmr-field>stock options</cmr-field>

 


column-map

表 C-9 column-map
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
<weblogic-rdbms-relation>
   <weblogic-relationship-role>
      <relationship-role-map>

機能

この要素は、データベース内のテーブルの外部キー カラムと対応する主キーのマッピングを表します。2 つのカラムは同じテーブルにある場合も別のテーブルにある場合もあります。カラムが属しているテーブルは、column-map 要素がデプロイメント記述子に表示されるコンテキストに対しては暗黙的です。

column-map 要素の例は以下のとおりです。

注意 : foreign-key-column がリモート Bean を参照する場合は、key-column 要素を指定する必要はありません。
<column-map>
<foreign-key-column>account-id</foreign-key-column>
<key-column>id</key-column>
</column-map>

 


compatibility

表 C-10 compatibility
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar

機能

WebLogic Server 8.1 SP02 で導入された <compatibility> 要素では、記述子ファイルで記述されているすべての cmp Bean の互換性フラグを指定する要素を設定します。

<compatibility> 
     <serialize-byte-array-to-oracle-blob>
     <serialize-char-array-to-bytes>
     <allow-readonly-create-and-remove>
     <disable-string-trimming>
</compatibility>

 


create-default-dbms-tables

表 C-11 create-default-dbms-table
指定できる値 :
Disabled | CreateOnly | DropAndCreate | DropAndCreateAlways
| AlterOrCreate
デフォルト値 :
Disabled
親要素 :
weblogic-rdbms-jar

機能

create-default-dbms-tables 要素は、以下の 2 つの機能を実行します。

この要素は、開発段階で役立つ場合にのみ使用します。使用する DBMS CREATE 文のテーブル スキーマがコンテナの最適な定義になります。プロダクション環境では通常、より正確なスキーマ定義が必要です。

自動テーブル作成

次の表は、WebLogic Server が create-default-dbms-tables の値に基づいてどのように自動テーブル作成を処理するのかを説明しています。

<create-default-dbms-tables> の設定値

自動テーブル作成に関連する動作
Disabled
EJB コンテナは自動テーブル作成に関して何も行わない。これがデフォルト値である。
CreateOnly
EJB コンテナは、スキーマの変更を検出すると自動的にテーブルを生成する。
コンテナは、デプロイメント ファイルおよび Bean クラス内の情報に基づいてテーブルを作成しようとする。テーブル作成が失敗した場合は、「Table Not Found」エラーが送出され、ユーザは手動でテーブルを作成する必要がある。
DropAndCreate
EJB コンテナは、スキーマの変更を検出すると自動的にテーブルを生成する。
コンテナは、カラムが変更されている場合はデプロイメント時にテーブルを削除してから再作成する。コンテナはデータを保存しない。
カラム タイプと cmp フィールド タイプの間に互換性があることを確認する必要がある。EJB コンテナは、カラム タイプと cmp フィールド タイプの間に互換性があることを確認しない。
DropAndCreateAlways
EJB コンテナは、スキーマの変更を検出すると自動的にテーブルを生成する。
コンテナは、カラムが変更されているかどうかに関係なくデプロイメント時にテーブルを削除してから作成する。コンテナはデータを保存しない。
AlterOrCreate
EJB コンテナは、スキーマの変更を検出すると自動的にテーブルを生成する。
コンテナは、まだ存在していない場合はテーブルを作成する。テーブルが存在する場合、コンテナはテーブル スキーマを変更する。データは保存される。

注意 : 新しいカラムが主キーとして指定されているか、値が null のカラムが新しい主キー カラムとして指定されている場合には、この設定を選択しないこと。

TABLE CREATION が失敗した場合、サーバは Table Not Found エラーを送出するので、テーブルを手動で作成しなければなりません。

自動テーブル作成 (開発のみ)」を参照してください。

自動的な Oracle SEQUENCE の生成

注意 : 自動 Oracle SEQUENCE 生成は、開発モードで動作しているサーバでのみ機能します。

次の表は、WebLogic Server が create-default-dbms-tables の値に基づいてどのように自動 SEQUENCE 生成を処理するのかを説明しています。

<create-default-dbms-tables> の設定値

得られる動作
Disabled
EJB コンテナは SEQUENCE 生成に関して何も行わない。これがデフォルト値である。
CreateOnly
EJB コンテナは SEQUENCE を作成し、generator-name 要素の値に「_WL」を追加してその名前を作成する。
DropAndCreate
EJB コンテナは SEQUENCE を作成し、generator-name 要素の値に「_WL」を追加してその名前を作成する。
SEQUENCE のインクリメント値が key-cache-size 要素の値と一致しない場合、コンテナは key-cache-size の値と一致するようにインクリメント値を変更する。
DropAndCreateAlways
EJB コンテナは SEQUENCE を作成し、generator-name 要素の値に「_WL」を追加してその名前を作成する。
SEQUENCE のインクリメント値が key-cache-size 要素の値と一致しない場合、コンテナは key-cache-size の値と一致するようにインクリメント値を変更する。
AlterOrCreate
EJB コンテナは SEQUENCE を作成し、generator-name 要素の値に「_WL」を追加してその名前を作成する。
SEQUENCE のインクリメント値が key-cache-size 要素の値と一致しない場合、コンテナは key-cache-size の値と一致するようにインクリメント値を変更する。

Oracle SEQUENCE の自動生成の詳細については、「Oracle SEQUENCE のサポート」を参照してください。

次の例では、create-default-dbms-tables 要素を指定します。

<create-default-dbms-tables>CreateOnly</create-default-dbms-tables>

 


database-specific-sql

表 C-12 database-specific-sql
指定できる値 :
 
デフォルト値 :
 
要件 :
database-type の指定が必要
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query
               sql-query

機能

database-specific-sql 要素では、データベース固有の SQL 文を指定します。

<database-specific-sql>
<database-type>SQLServer</database-type>
<sql>SELECT name, phone, location, testid FROM medrecappPharmacyBeanTable WHERE testid = ?1 AND SUBSTRING(testid, 1,5) = 'local' ORDER BY name</sql>
</database-specific-sql>

 


database-type

表 C-13 database-type
指定できる値 :
DB2 | Informix | MySQL | Oracle | POINTBASE | SQLServer | SQLServer2000 | Sybase
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar
および
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query
               sql-query
                    database-specific-sql

機能

database-type 要素では、基底 WebLogic Server DBMS またはベンダ固有の SQL 文の実行対象となる DBMS として使用するデータベースを指定します。weblogic-rdbms-jar 要素で database-type を指定した場合、指定したデータベースは、database-specific-sql 要素の別の database-type 要素によってオーバーライドされない限り、weblogic-rdbms-jar デプロイメント記述子ファイル全体に適用されます。

<database-type>POINTBASE</database-type>

 


data-source-jndi-name

表 C-14 data-source-jndi-name
指定できる値 :
有効な WebLogic Server JDBC データ ソース名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

この Bean のデータベース接続で使用する JDBC データ ソース名を指定します。データ ソースの詳細については、『WebLogic JDBC プログラマーズ ガイド』を参照してください。

注意 : WebLogic Server 9.0 より前では、この要素は data-source-name でした。

table-name」を参照してください。

 


db-cascade-delete

表 C-15 db-cascade-delete
指定できる値 :
なし
デフォルト値 :

デフォルトでは、データベースのカスケード削除は使用されない。EJB コンテナは、個別に SQL DELETE を発行してカスケード削除を実行する。

親要素 :
weblogic-rdbms-bean
     weblogic-relationship-role

機能

アプリケーションが、データベースに組み込まれているカスケード削除のサポートを利用し、パフォーマンスが向上するようにします。この機能は、以下の場合にのみサポートされます。

weblogic-cmp-rdbms-jar.xmldb-cascade-delete が有効になっている場合は、以下のようにする必要があります。

注意 : db-cascade-delete を指定しない場合は、データベースのカスケード削除機能を有効にしないようにしてください (結果が不正確になる)。

Oracle でのカスケード削除の設定

次の Oracle テーブル定義では、データベースで親の dept が削除されると emp 行がすべて削除されます。

CREATE TABLE dept
(deptno NUMBER(2) CONSTRAINT pk_dept PRIMARY KEY,
dname VARCHAR2(9) );
CREATE TABLE emp
(empno NUMBER(4) PRIMARY KEY,
ename VARCHAR2(10),
deptno NUMBER(2) CONSTRAINT fk_deptno
REFERENCES dept(deptno)
ON DELETE CASCADE );

<weblogic-relationship-role>
    <db-cascade-delete/>
</weblogic-relationship-role>

 


dbms-column

表 C-16 dbms-column
指定できる値 :
有効なデータベース カラム
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     field-map

機能

フィールドがマップされるデータベース カラムの名前です。

注意 : 大文字/小文字を区別しないデータベースの場合でも、dbms-column では大文字/小文字を区別します。

field-map」を参照してください。

 


dbms-column-type

表 C-17 dbms-column-type
指定できる値 :
Blob | Clob | LongString | SybaseBinary
デフォルト値 :
 
要件 :
Blob または Clob を指定するには、dbms-default-valueOracle または DB2 に設定する必要がある
親要素 :
weblogic-rdbms-bean
     field-map

機能

cmp-field の型を指定します。現在のフィールドを Oracle または DB2 データベース内の Blob または Clob、または Sybase データベース内の LongString または SybaseBinary にマップします。

<field-map>
<cmp-field>photo</cmp-field>
<dbms-column>PICTURE</dbms-column>
<dbms_column-type>OracleBlob</dbms-column-type>
</field-map>

 


dbms-default-value

表 C-18 dbms-default-value
指定できる値 :
DB2 | Informix | MySQL | Oracle | POINTBASE | SQLServer | SQLServer2000 | Sybase
デフォルト値 :
 
親要素 :
weblogic-rdbms-bean
     field-map

機能

デフォルトの基底 DBMS として使用するデータベースを指定します。この値は、database-type 要素によってオーバーライドできます。

<dbms-default-value>Oracle</dbms-default-value>

 


default-dbms-tables-ddl

表 C-19 default-dbms-tables-ddl
指定できる値 :
有効なファイル名
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar

機能

EJB コンテナがテーブル作成スクリプトを記述する DDL ファイル名を指定します。

 


delay-database-insert-until

表 C-20 delay-database-insert-until
指定できる値 :
ejbCreate | ejbPostCreate
デフォルト値 :
ejbPostCreate
要件 :
 
親要素 :
weblogic-rdbms-bean

機能

新しい CMP Bean がいつデータベースに挿入されるのかを指定します。指定可能な値で、以下の動作が行われます。

この要素は、order-database-operationsFalse の場合のみ有効です。デフォルトでは、order-database-operationstrue です。デフォルトの場合は、トランザクションがコミットされたときに新しい Bean が挿入されます。

cmr-field が null 値を許可しない foreign-key カラムにマップされている場合、データベースの挿入は ejbPostCreate の後まで遅延する必要があります。この場合、cmr-fieldejbPostCreate で null 以外の値に設定してから Bean をデータベースに挿入しなければなりません。

最大限の柔軟性を実現するため、関連 Bean を ejbPostCreate メソッドで作成することは避けてください。ejbPostCreate で関連 Bean が作成され、データベースの制約によって関連 Bean が未作成の Bean を参照できない場合は、メソッドが完了するまでデータベースの挿入は実行できません。

注意 : cmr-field は、Bean の主キーが不明な段階で ejbCreate の中で設定することはできません。

<delay-database-insert-until>ejbPostCreate</delay-database-insert-until>

 


description

表 C-21 description
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query
または
weblogic-rdbms-jar
     weblogic-rdbms-bean
          sql-shape

機能

description 要素は、親要素を示すテキストの指定に使用します。

<description>Contains a description of parent element</description>

 


disable-string-trimming

表 C-22 disable-string-trimming
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
compatibility

機能

この要素は、WebLogic Server 9.0 で導入された互換性フラグです。この要素では、String[] 型の cmp-field を削除するかどうかを指定します。True に設定すると、文字列の削除が無効になります。文字列の削除の詳細については、「文字列値 CMP フィールドの削除」および「文字列の削除を無効にする」を参照してください。

<compatibility>
  <disable-string-trimming>True</disable-string-trimming>
</compatibility>

 


ejb-name

表 C-23 ejb-name
指定できる値 :
ejb-jar.xml で定義した CMP エンティティ Bean の ejb-name に一致していること。
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

ejb-cmp-rdbms.xml で定義した EJB を指定する名前です。この名前は、ejb-jar.xml で定義した CMP エンティティ Bean の ejb-name に一致している必要があります。

table-name」を参照してください。

 


ejb-ql-query

表 C-24 ejb-ql-query
指定できる値 :
 
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query

機能

ejb-ql-query 要素では、EJB-QL クエリを指定します。weblogic-cmp-jar.xml デプロイメント記述子では、EJB ファインダを実装しているか、または WebLogic 固有の拡張を備えている EJB-QL だけを指定します。標準 EJB-QL 機能だけを使用するクエリは ejb-jar.xml デプロイメント記述子で指定します。

weblogic-query」を参照してください。

 


enable-batch-operations

表 C-25 enable-batch-operations
指定できる値 :
True | False
デフォルト値 :
True
親要素 :
weblogic-rdbms-jar

機能

WebLogic Server 8.1 で導入されたこの要素は、EJB コンテナがデータベースのバッチ処理を許可するのかどうかを管理します (バッチ挿入、バッチ更新、およびバッチ削除を含む)。

この要素を True に設定すると、EJB はトランザクション中のデータベース処理をコミット時間まで遅延させます。

次の XML サンプルでは、enable-batch-operations 要素の使い方を示します。

<enable-batch-operations>True</enable-batch-operations>

 


enable-query-caching

表 C-26 enable-query-caching
指定できる値 :
True | False
デフォルト値 :
True
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query
および
weblogic-rdbms-jar
     weblogic-rdbms-relation

機能

WebLogic Server 9.0 で導入された要素で、読み込み専用エンティティ EJB をクエリ レベルでキャッシュするかどうかを指定します。読み込み専用エンティティ Bean をクエリ レベルでキャッシュすると、パフォーマンスが向上します。これは、ファインダがキャッシュ内の EJB にアクセスできるようになり、データベースへのアクセスを回避できるからです。この値を True に設定した場合、アプリケーションまたは Bean レベルでキャッシュされるクエリの最大数を指定できます。キャッシュされるクエリの最大数を指定するには、weblogic-ejb-jar.xml デプロイメント記述子の max-queries-in-cache を設定します。詳細については、「max-queries-in-cache」を参照してください。

次の XML サンプルでは、enable-query-caching 要素の使い方を示します。

<enable-query-caching>True</enable-query-caching>

 


field-group

表 C-27 field-group
指定できる値 :
なし
デフォルト値 :
field-group が指定されていないファインダと関係に対して、default という特殊なグループを使用する。デフォルト グループには、Bean の cmp-field がすべて含まれるが、cmr-field は含まれない。
親要素 :
weblogic-rdbms-relation

機能

field-group 要素は、Bean の cmp-fieldcmr-field のサブセットを表します。Bean 内の関連フィールドを、障害のあったグループに 1 つのユニットとしてまとめることができます。グループをファインダまたは関係に関連付けることができます。それによって、ファインダを実行するか、または関係に従った結果として Bean がロードされたときに、グループ内の指定フィールドのみがロードされます。

フィールドは複数のグループに関連付けられている場合があります。この場合、フィールドに対して getXXX メソッドを実行すると、そのフィールドを含む最初のグループで障害が発生します。

field-group 要素には、以下の要素を指定できます。

<weblogic-rdbms-bean>
<ejb-name>XXXBean</ejb-name>
<field-group>
<group-name>medical-data</group-name>
<cmp-field>insurance</cmp-field>
<cmr-field>doctors</cmr-fields>
</field-group>
</weblogic-rdbms-bean>

 


field-map

表 C-28 field-map
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

field-map 要素は、データベースの特定のカラムと Bean インスタンスの cmp-field の間のマッピングを表します。

任意指定の group-name 要素は、cmp-fieldgetXXX メソッドが呼び出され、値がメモリにないために、EJB コンテナが DBMS から値を読み込む必要がある場合にロードされるフィールド グループを指定します。group-name を省略すると、cmp-field がどのフィールド グループでも明示的にリストされていない場合はデフォルト グループ (すべての cmp-field が含まれている) が使用されます。明示的にリストされている場合には、cmp-field のあるフィールド グループが選択されます。したがって、cmp-field が複数のフィールド グループでリストされている場合、またはコンテナがグループのいずれかを任意に選択する場合、開発者は group-name を指定する必要があります。

dbms-column-type」要素は任意で指定します。

field-map 要素には、以下の要素を指定できます。

<field-map>
<cmp-field>....</cmp-field>
<dbms-column>...</dbms-column>
<dbms-column-type>...</dbms-column-type>
<group-name>...</group name>
</field-map>

 


finders-return-nulls

表 C-29 finders-return-nulls
指定できる値 :
True | False
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar
     compatibility
          weblogic-query

機能

この要素は、WebLogic Server 9.0 で導入された互換性フラグです。ファインダが結果として NULL を返すことができるかどうかを指定します。

デフォルト

<compatibility>
  <finders-return-nulls>
  True
  </finders-return-value>
</compatibility>

 


foreign-key-column

表 C-30 foreign-key-column
指定できる値 :
有効な外部キー データベース カラム名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     column-map

機能

foreign-key-column 要素は、データベース内の外部キーのカラムを表します。

column-map」を参照してください。

 


foreign-key-table

表 C-31 foreign-key-table
指定できる値 :
有効なデータベース テーブル名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-relation
          weblogic-relationship-role
               relationship-role-map

機能

foreign-key-table 要素は、外部キーを格納する DBMS テーブル名を指定します。

relationship-role-map」を参照してください。

 


generator-name

表 C-32 generator-name
指定できる値 :
 
デフォルト値 :
 
親要素 :
weblogic-rdbms-bean
     automatic-key-generation

機能

generator-name 要素は、主キー ジェネレータの名前を指定する場合に使用します。

automatic-key-generation」を参照してください。

 


generator-type

表 C-33 generator-type
指定できる値 :
Identity | Sequence | SequenceTable
デフォルト値 :
 
親要素 :
weblogic-rdbms-bean
     automatic-key-generation

機能

generator-type 要素は、使用する主キー生成方法を指定します。

注意 : automatic-key-generation を使用する際は、database-type 要素を設定する必要があります。

また、generator-type は Oracle SEQUENCE の自動生成でも使用します。「Oracle SEQUENCE のサポート」を参照してください。

注意 : generator-type に対しては、次のデータベースがサポートされています。

automatic-key-generation」を参照してください。

 


group-name

表 C-34 group-name
指定できる値 :
なし
デフォルト値 :
field-group
および
caching-element
および
weblogic-query
および
field-map
および
weblogic-relationship-role
親要素 :
weblogic-rdbms-relation
   field-group

機能

フィールド グループの名前を指定します。

field-group」を参照してください。

 


include-updates

表 C-35 include-updates
指定できる値 :
True | False
デフォルト値 :
Optimistic 同時方式を使用する Bean では False
他の同時方式を使用する Bean では True
親要素 :
weblogic-rdbms-bean
     weblogic-query

機能

現在のトランザクション中の更新を必ずクエリの結果に反映するかどうかを指定します。この要素を True に設定した場合、コンテナは現在のトランザクションによる変更をすべてディスクにフラッシュしてからクエリを実行します。値を False にすると、最高のパフォーマンスが得られます。

<weblogic-query>
<query-method>
<method-name>findBigAccounts</method-name>
<method-params>
<method-param>double</method-param>
</method-params>
</query-method>
<ejb-ql-query>
<weblogic-ql>WHERE BALANCE>10000 ORDER BY NAME</weblogic-ql>
</ejb-ql-query>
<include-updates>True</include-updates>
</weblogic-query>

 


instance-lock-order

表 C-36 instance-lock-order
指定できる値 :
AccessOrder | ValueOrder
デフォルト値 :
AccessOrder
親要素 :
weblogic-rdbms-bean

機能

特定 EJB のインスタンスのロックまたは処理順序を指定します。この要素は、この要素を使用しなければデッドロックが起こるアプリケーションでデッドロックを防止するために使用できます。instance-lock-order は、同じ EJB の複数のインスタンスに適用されるデータベース操作 (更新など) がコンテナによって実行される場合に常に使用します。この要素は、Bean インスタンスでデータベース ロックを取得させる操作の順序を指定します。

たとえば、instance-lock-order を使用すると、Database 同時方式を使用する特定の EJB インスタンスで EJB コンテナが ejbStore を呼び出す順序を指定できます。ejbStore は、データベースが更新されるときに排他的ロックを取得できます。instance-lock-order は、Optimistic 同時方式を使用する Bean がオプティミスティック チェックの実行時にロックされる順序も制御します。

注意 : ValueOrder が指定されている場合、EJB の主キー クラスは java.lang.Comparable インタフェースを実装する必要がありません (ただし、全体的な順序付けになる)。主キーが java.lang.Comparable を実装しない場合、Bean は主キーのハッシュ コード値を使用して部分的に順序付けされます。

<instance-lock-order>ValueOrder</instance-lock-order>

 


key-cache-size

表 C-37 key-cache-size
指定できる値 :
 
デフォルト値 :
1
親要素 :
weblogic-rdbms-bean
     automatic-key-generation

機能

自動主キー生成機能で利用可能な主キー キャッシュのサイズをオプションとして指定します。また、EJB コンテナは自動 SEQUENCE 生成が有効なときにはこの値を使用して Oracle SEQUENCE のインクリメント値を計算します。「Oracle SEQUENCE のサポート」を参照してください。

generator-type の値が、

automatic-key-generation」を参照してください。

 


key-column

表 C-38 key-column
指定できる値 :
有効な主キー カラム名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     column-map

機能

key-column 要素は、データベース内の主キーのカラムを表します。

column-map」を参照してください。

 


lock-order

表 C-39 lock-order
指定できる値 :
すべての正の整数
デフォルト値 :
0
親要素 :
weblogic-rdbms-bean

機能

このフラグを使用すると、トランザクションに複数の Bean および排他的同時実行性が関与する場合に、エンティティ Bean のデータベース ロックの順番を指定できます。最も小さい数値を付けられた Bean が最初にロックされます。

このフラグは、デッドロック状況を回避するためのみに使用します。現時点では、トランザクションがカスケード削除を実行する場合にのみ適用されます。

lock-order 要素の例は次のとおりです。

<lock-order>1</lock-order>
     <!ELEMENT lock-order (PCDATA)>

 


max-elements

表 C-40 max-elements
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     weblogic-query

機能

max-elements は多値クエリによって返される要素の最大数を指定します。この要素は、JDBC の maxRows 機能とほぼ同じです。

max-elements 要素の例は次のとおりです。

<max-elements>100</max-elements>
      <!ELEMENT max-element (PCDATA)>

 


method-name

表 C-41 method-name
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     query-method

機能

method-name 要素は、ファインダ メソッドまたは ejbSelect メソッドの名前を指定します。

注意 : 「*」文字はワイルドカードとして使用できません。

weblogic-query」を参照してください。

 


method-param

表 C-42 method-param
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     method-params

機能

method-param 要素には、Java タイプのメソッド パラメータの完全修飾名が含まれます。

<method-param>java.lang.String</method-param>

 


method-params

表 C-43 method-params
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     query-method

機能

method-params 要素には、Java タイプのメソッド パラメータの完全修飾名の順序付きリストが含まれます。

weblogic-query」を参照してください。

 


optimistic-column

表 C-44 optimistic-column
指定できる値 :
有効なデータベース カラム名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     table-map

機能

optimistic-column 要素は、オプティミスティックな同時実行性を実装するためのバージョン値またはタイムスタンプ値を格納するデータベース カラムを示します。オプティミスティックな同時実行性の詳細については、「同時方式の選択」を参照してください。

注意 : すべてのデータベースで大文字と小文字が区別されるわけではありませんが、この要素では、大文字と小文字を区別します。

次の XML 例では、optimistic-column 要素の使い方を示します。

<optimistic-column>ROW_VERSION</optimistic-column>

ROW_VERSION は、同時方式のチェックに使用する値が格納されるデータベース カラムの名前です。

 


order-database-operations

表 C-45 order-database-operations
指定できる値 :
True | False
デフォルト値 :
True
親要素 :
weblogic-rdbms-jar

機能

WebLogic Server 8.1 で導入されたこの要素は、EJB コンテナが、トランザクション内のすべてのデータベース処理をコミット時間まで遅延し、処理間でのデータベースの依存関係を自動的にソートし、これらの処理を、一切のデータベース制約エラーが生じない方式でデータベースに送るかどうかを決定します。

enable-batch-operationsTrue の場合、コンテナは自動的に order-database-operationsTrue に設定します。order-database-operations を無効にするには、order-database-operationsenable-batch-operations の両方を False に設定します。

ejb-ql-query」と「delay-database-insert-until」も参照してください。

<order-database-operations>True</order-database-operations>

 


pass-through-columns

表 C-46 pass-through-columns
指定できる値 :
任意の正の整数
デフォルト値 :
 
親要素 :
weblogic-rdbms-bean
     sql-shape

機能

WebLogic Server 9.0 で導入された要素で、マップされずに SQL クエリの結果セットに渡される集合カラムの数を指定します。

sql-shape」を参照してください。

 


primary-key-table

表 C-47 primary-key-table
指定できる値 :
有効なデータベース テーブル名
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-relation
          weblogic-relationship-role
               relationship-role-map

機能

primary-key-table 要素は、主キーを格納する DBMS テーブル名を指定します。主キーの詳細については、「主キーの使用」を参照してください。

注意 : すべてのデータベースで大文字と小文字が区別されるわけではありませんが、この要素では、大文字と小文字を区別します。

例については、「relationship-role-map」および「関係の主キー側の Bean の複数テーブルへのマッピング」を参照してください。

 


query-method

表 C-48 query-method
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

weblogic-query と関連付けられたメソッドを指定します。ejb-jar.xml 記述子と同じ形式を使用します。

weblogic-query」を参照してください。

 


relation-name

表 C-49 relation-name
指定できる値 :
関連する ejb-jar.xml デプロイメント記述子ファイルで定義した ejb-relationejb-relation-name に一致していること。ejb-relation-name は省略可能な要素だが、関連する ejb-jar.xml デプロイメント記述子ファイルで定義した ejb-relation ごとに必要になる。
デフォルト値 :
なし
親要素 :
weblogic-rdbms-relation

機能

relation-name 要素は関係の名前を指定します。

コンテナ管理による関係の詳細については、「コンテナ管理による関係 (CMR) の使用」を参照してください。

relationship-name 要素の例は次のとおりです。

<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<relation-name>stocks-holders</relation-name>
<table-name>stocks</table-name>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>

 


relationship-caching

表 C-50 relationship-caching
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean

機能

relationship-caching 要素では、リレーションシップ キャッシングを指定します。リレーションシップ キャッシングの詳細については、「リレーションシップ キャッシング」を参照してください。

relationship-caching 要素には、以下の要素を指定できます。

<relationship-caching>
<caching-name>cacheMoreBeans</caching-name>
<caching-element>
<cmr-field>accounts<</cmr-field>
<group-name>acct_group</group-name>
<caching-element>
<cmr-field>address</cmr-field>
<group-name>addr_group</group-name>
</caching-element>
</caching-element>
<caching-element>
<cmr-field>phone</cmr-field>
<group-name>phone_group</group-name>
</caching-element>
</relationship-caching>

 


relationship-role-map

表 C-51 relationship-role-map
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-relation
     weblogic-relationship-role

機能

relationship-role-map 要素は、ある関係に加わっている Bean のキーカラム マッピングに対する外部キー カラムを指定します。

関係の中で呼び出される CMP Bean は、複数の DBMS テーブルにマップできます (詳細については、table-map 要素を参照)。1 対 1 または 1 対多の関係の外部キー側の Bean が複数のテーブルにマップされている場合は、外部キー カラムが含まれるテーブルの名前を foreign-key-table 要素で指定する必要があります。

逆に、1 対 1 または 1 対多の関係の主キー側の Bean または多対多の関係に参加している Bean が複数のテーブルにマップされている場合は、主キーが含まれるテーブルの名前を primary-key-table 要素で指定する必要があります。

関係のどちら側の Bean も複数のテーブルにマップされていない場合、foreign-key-table 要素と primary-key-table 要素は省略可能です (使用されるテーブルが暗黙的であるため)。

コンテナ管理による関係の詳細については、「コンテナ管理による関係 (CMR) の使用」を参照してください。

関係の外部キー側の Bean の複数テーブルへのマッピング

1 対 1 の関係の外部キー側の Bean (Fk_Bean) は、複数のテーブルにマップされます。外部キー カラムを持つテーブルは、foreign-key-table 要素で指定する必要があります。

Fk_Bean は、2 つのテーブル Fk_BeanTable_1Fk_BeanTable_2 にマップされます。関係の外部キー カラムは、テーブル Fk_BeanTable_2 にあります。外部キー カラムの名前は、Fk_column_1Fk_column_2 です。主キー側の Bean (Pk_Bean) は、主キー カラム Pk_table_pkColumn_1Pk_table_pkColumn_2 を持つ 1 つのテーブルにマップされています。

<relationship-role-map
<foreign-key-table>Fk_BeanTable_2</foreign-key-table>
<column-map>
<foreign-key-column>Fk_column_1</foreign-key-column>
<key-column>Pk_table_pkColumn_1</key-column>
</column-map>
<column-map>
<foreign-key-column>Fk_column_2</foreign-key-column>
<key-column>Pk_table_pkColumn_2</key-column>
</column-map>
</relationship-role-map>

外部キー カラムのあるテーブルをコンテナが確認できるように、foreign-key-table 要素は必ず指定します。

関係の主キー側の Bean の複数テーブルへのマッピング

1 対 1 の関係の主キー側の Bean (Pk_bean) は複数のテーブルにマップされますが、その関係の外部キー側の Bean (Fk_Bean) は 1 つのテーブル Fk_BeanTable にマップされます。外部キー カラムの名前は、Fk_column_1Fk_column_2 です。

Pk_bean は、以下のテーブルにマップされます。

<relationship-role-map>
     <primary-key-table>Pk_BeanTable_1</primary-key-table>
     <column-map>
          <foreign-key-column>Fk_column_1</foreign-key-column>
          <key-column>Pk_table1_pkColumn_1</key-column>
     </column-map>
     <column-map>
          <foreign-key-column>Fk_column_2</foreign-key-column>
          <key-column>Pk_table1_pkColumn_2</key-column>
     </column-map>
</relationship-role-map>

 


relationship-role-name

表 C-52 relationship-role-name
指定できる値 :
関連する ejb-jar.xml で定義した ejb-relationship-roleejb-relationship-role-name に一致していること。
デフォルト値 :
なし
親要素 :
weblogic-rdbms-relation
     weblogic-relationship-role

機能

relationship-role-name 要素は関係のロール名を指定します。

コンテナ管理による関係の詳細については、「コンテナ管理による関係 (CMR) の使用」を参照してください。

weblogic-relationship-role」の例を参照してください。

 


serialize-byte-array-to-oracle-blob

表 C-53 serialize-byte-array-to-oracle-blob
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
weblogic-rdbms-jar
     compatibility

機能

WebLogic Server 8.1 SP02 で導入されたこの要素は、互換性フラグです。この要素では、Oracle データベース内の Blob にマップされた byte[] 型の cmp-field をシリアライズするかどうかを指定します。デフォルトでは、このフラグの値は false です。つまり、コンテナは byte[] を直接保持し、シリアライズしません。

WebLogic Server 8.1 SP02 より前のバージョンでは、デフォルトによって、Oracle データベース内の Blob にマップされた byte[] 型の cmp-field はシリアライズされました。旧式の動作に戻るには、erialize-byte-array-to-oracle-blob の値を true に設定します。

<compatibility>
  <serialize-byte-array-to-oracle-blob>
  true
  </serialize-byte-array-to-oracle-blob>
</compatibility>

 


serialize-char-array-to-bytes

表 C-54 serialize-char-array-to-bytes
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
weblogic-rdbms-jar
     compatibility

機能

この要素は、WebLogic Server 9.0 で導入された互換性フラグです。この要素では、char[] 型の cmp-field をシリアライズするかどうかを指定します。デフォルトでは、このフラグの値は False です。つまり、EJB コンテナは char[] を直接保持し、シリアライズしません。char[] をシリアライズするには、この値を True に設定します。

<compatibility>
  <serialize-char-array-to-bytes>
  true
  </serialize-char-array-to-bytes>
</compatibility>

 


sql

表 C-55 sql
指定できる値 :
有効な SQL
デフォルト値 :
なし
要件 :
データベース固有の SQL を使用するには、その対象となるデータベースを database-type 要素で指定する必要がある
親要素 :
weblogic-rdbms-bean
     weblogic-query
          sql-query
および
weblogic-rdbms-bean
     weblogic-query
          sql-query
               database-specific-query

機能

sql 要素には、標準またはデータベース固有の SQL クエリを指定します。EJB-QL 言語の標準機能だけを使用するクエリは、ejb-jar.xml デプロイメント記述子に指定しなければなりません。標準 SQL、データベース固有の SQL、または EJB-QL の WebLogic 拡張を使用するクエリは、weblogic-cmp-jar.xml デプロイメント記述子に指定します。

...

<weblogic-rdbms-bean>
    <weblogic-query>
        <sql-query>
            <sql>SELECT date_prescribed, dosage, drug, id, frequency, instructions, pat_id, issuing_phys_id, record_id, refills_remaining FROM medrecappPrescription WHERE testid = ?1</sql>
        </sql-query>
    </weblogic-query>

...

</weblogic-rdbms-bean>

 


sql-query

表 C-56 sql-query
指定できる値 :
 
デフォルト値 :
なし
要件 :
データベース固有の SQL を使用するには、その対象となるデータベースを database-type で指定する必要がある
親要素 :
weblogic-rdbms-bean
     weblogic-query

機能

sql-query 要素では、標準およびデータベース固有の SQL クエリを指定できます。EJB-QL の WebLogic の拡張機能を使用しない EJB-QL クエリは、ejb-jar.xml デプロイメント記述子に指定する必要があります。

WebLogic Server 9.0 より前のリリースでは EJB-QL クエリ (WebLogic 拡張あり、なし) だけがサポートされていましたが、このリリースでは SQL クエリ、EJB-QL クエリ (WebLogic 拡張あり、なし)、またはこの 2 つの組み合わせがサポートされています。

<sql-query>
  <sql-shape-name>...</sql-shape-name>
    <sql>...</sql>
  <database-specific-sql>...</database-specific-sql>
    <database-type>...</database-type>
      <sql>...</sql>
  <unknown-primary-key-field>...</unknown-primary-key-field>
  <cmp-field>...</cmp-field>
</sql-query>

 


sql-select-distinct

注意 : この要素は非推奨です。同じ機能を得るには、ファインダ クエリで SELECT DISTINCT 句を直接使用してください。
表 C-57 sql-select-distinct
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
weblogic-query

機能

sql-select-distinct 要素は、生成される SQL SELECT 文に DISTINCT 修飾子が含まれるかどうかを指定します。DISTINCT 修飾子を使用すると、データベースからユニークな行が返されます。

Oracle データベースでは、FOR UPDATE 句を SELECT DISTINCT と一緒に使用することはできません。したがって、呼び出しチェーンの Bean に isolation-levelTransactionReadCommittedForUpdate のメソッドがある場合は、sql-select-distinct 要素を使用できません。transaction-isolation 要素は weblogic-ejb-jar.xml で指定します。

この要素を含む XML の例を示します。

<sql-select-distinct>True</sql-select-distinct>

 


sql-shape

表 C-58 sql-shape
指定できる値 :
 
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          sql-query

機能

sql-shape 要素では、SQL クエリによって返されるデータを指定します。この情報は常にデータベース側で提供されるわけではないので、sql-shape の指定が必要になります。通常、sql-shape 要素では返されるデータベースのテーブルとカラムを指定します。より複雑なクエリの場合、sql-shape では、データベースによって返されるデータに存在する関係と、渡される必要がある (マップされてはならない) 集合カラムが存在するかどうかも指定します。

sql-shape

     description

     sql-shape-name

     table

     pass-through-columns

     ejb-relation-name

 


sql-shape-name

表 C-59 sql-shape-name
指定できる値 :
 
デフォルト値 :
 
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-bean
          weblogic-query
               sql-query
                    sql-shape

機能

sql-shape-name 要素を使用すると、sql-shape を複数のクエリに関連付けることができます。同じ sql-shape を使用するクエリが複数存在する場合、その形式をいったん定義すれば、sql-shape-name を参照することによって何度でも使用できます。

sql-shape」を参照してください。

 


table-map

表 C-60 table-map
指定できる値 :
 
デフォルト値 :
 
要件 :
table-map 要素に、その Bean の主キー フィールドのマッピングが含まれること。
親要素 :
weblogic-rdbms-bean

機能

CMP Bean は、1 つまたは複数の DBMS テーブルにマップできます。table-map 要素は、Bean の cmp-field と、テーブルにマップされたすべての cmp-field のテーブル カラムの間のマッピングを指定します。CMP Bean を複数の DBMS テーブルにマップする場合は、テーブルごとに table-map 要素を指定する必要があります。

1 つの CMP Bean を複数のテーブルにマップする場合、各テーブルには、1 つの特定の Bean インスタンスにマップする 1 行が含まれます。そのため、すべてのテーブルにはどの時点でも同数の行が含まれます。また、各テーブルには均一の主キーの値の並びが含まれます。したがって、各テーブルには均一の主キー カラムが含まれ、別々のテーブルの対応している主キー カラムどうしは名前は違うとしても同じタイプでなければなりません。

table-map 要素は、特定テーブルの主キー カラムから、Bean の主キー カラム フィールドへのマッピングを指定しなければなりません。主キー以外のフィールドは 1 つのテーブルにマップできるのみです。

verify-rows、verify-columns、および optimistic-column 要素の使い方については、「Optimistic 同時方式でのデータ有効性のチェック」を参照してください。

table-map 要素には、以下の要素を指定できます。

<table-map>
<table-name>DeptTable</table-name>
<field-map>
<cmp-field>deptId1</cmp-field>
<dbms-column>t1_deptId1_column</dbms-column>
</field-map>
<field-map>
<cmp-field>deptId2</cmp-field>
<dbms-column>t1_deptId2_column</dbms-column>
</field-map>
<field-map>
<cmp-field>location</cmp-field>
<dbms-column>location_column</dbms-column>
</field-map>
<cmp-field>budget</cmp-field>
<dbms-column>budget</dbms-column>
</field-map>
<verify-rows>Read</verify-rows>
<verify-columns>Version</verify-columns>
<optimistic-column>ROW_VERSION</optimistic-column>
<trigger-updates-optimistic-column>False
</trigger-updates-optimistic-column>
<version-column-initial-value>0</version-column-initial-value>
</table-map>

 


table-name

表 C-61 table-name
指定できる値 :
データベース内にあるソース テーブルの有効な完全修飾 SQL 名
デフォルト値 :
 
要件 :
table-name を必ず設定すること。
親要素 :
weblogic-rdbms-bean
     weblogic-rdbms-relation

機能

テーブルの完全修飾 SQL 名です。この Bean の data-source 用に定義したユーザには、指定したテーブルの読み取りおよび書き込み特権が必要ですが、スキーマ変更特権は必要ありません。

<weblogic-rdbms-jar>
     <weblogic-rdbms-bean>
        <ejb-name>containerManaged</ejb-name>
        <data-source-jndi-name>examples-dataSource-demoPool</data-source-jndi-name>
        <table-name>ejbAccounts</table-name>
     </weblogic-rdbms-bean>
</weblogic-rdbms-jar>

 


trigger-updates-optimistic-column

表 C-62 trigger-updates-optimistic-column
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
weblogic-rdbms-bean
     table-map

機能

WebLogic Server 9.0 で導入された trigger-updates-optimistic-column 要素は、同時方式のチェックに使用される optimistic-column で指定されたデータベース カラム値を EJB コンテナが自動更新するかどうかを指定します。trigger-updates-optimistic-column のデフォルト値は False で、EJB コンテナは JDBC に SQL UPDATE 文を送信するときに optimistic-column で指定されたデータベース カラムを自動更新します。データベース行の更新時にデータベース トリガを使用してバージョン値を更新する従来のアプリケーションが存在し、EJB コンテナによってバージョン値が自動更新されないようにする場合、この要素の値を True に設定します。

注意 : trigger-updates-optimistic-column を True に設定した場合、Bean の作成時にデータベース トリガによってデータベース内のバージョン カラムが初期化されるようにしておく必要があります。

table-map」を参照してください。

 


unknown-primary-key-field

表 C-63 unknown-primary-key-field
指定できる値 :
有効なデータ型
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean

機能

unknown-primary-key-field 要素では、主キーが ejb-jar.xml 記述子で指定されていない場合に主キーとして使用される cmp フィールドを指定できます。指定した主キー フィールドは、field-map 要素でデータベース カラムにマップしなければなりません。指定した主キー フィールドが ejb-jar.xml 記述子で cmp フィールドとして宣言されなかった場合、自動キー生成を有効にしなければならず、主キー タイプは java.lang.Long になります。

weblogic-rdbms-bean」を参照してください。

 


use-select-for-update

表 C-64 use-select-for-update
指定できる値 :
True | False
デフォルト値 :
False
親要素 :
weblogic-rdbms-bean

機能

Bean 単位でペシミスティックな同時方式を強制します。True を指定すると、Bean がデータベースからロードされるときは常に SELECT ... FOR UPDATE が使用されます。TransactionReadCommittedForUpdate のトランザクション アイソレーション レベルとの相違点は、これがトランザクション レベルではなく、Bean レベルで設定されるということです。

注意 : Sybase JConnect ドライバでペシミスティックなロック方式 (HOLDLOCK など) を使用している場合、クエリに FOR UPDATE 句が含まれている場合にカーソルが生成されるように、SELECT_OPENS_CURSOR=true を指定する必要があります。

<weblogic-rdbms.jar>
     <weblogic-rdbms-bean>
          <ejb-name>containerManaged</ejb-name>
          <use-select-for-update>True</use-select-for-update>
     </weblogic-rdbms-bean>
</weblogic-rdbms-jar>

 


validate-db-schema-with

表 C-65 validate-db-schema-with
指定できる値 :
MetaData | TableQuery
デフォルト値 :
TableQuery
親要素 :
weblogic-rdbms-jar

機能

validate-db-schema-with 要素を指定すると、デプロイメント時に Bean が有効なデータベース スキーマにマップされているかどうかをコンテナ管理による永続性でチェックします。

MetaData を指定すると、WebLogic Server は、JDBC メタデータを使用してスキーマを検証します。

TableQuery (デフォルト設定) を指定すると、WebLogic Server は、テーブルを直接クエリし、CMP 実行時によって予期されているスキーマがテーブルにあるかどうかを確認します。

validate-db-schema-with 要素の例は次のとおりです。

<validate-db-schema-with>TableQuery</validate-db-schema-with>

 


verify-columns

表 C-66 verify-columns
指定できる値 :
Read | Modified | Version | Timestamp
デフォルト値 :
なし
要件 :
table-name を必ず設定すること。
親要素 :
weblogic-rdbms-bean
     table-map

機能

verify-columns 要素は、Optimistic 同時方式を使用したときに、WebLogic Server に有効性をチェックさせたいテーブル カラムを指定します。WebLogic Server は、トランザクションの終了時、データベースにコミットする前にカラムをチェックし、他のどのトランザクションもそのデータを変更していないことを確かめます。

詳細については、「同時方式の選択」を参照してください。

<verify-columns>Modified</verify-columns>

 


verify-rows

表 C-67 verify-rows
指定できる値 :
Read | Modified
デフォルト値 :
Modified
要件 :
table-name を必ず設定すること。
親要素 :
weblogic-rdbms-bean
     table-map

機能

verify-rows 要素は、オプティミスティックな同時実行性の使用時に EJB コンテナがチェックすべきである、テーブル内の行を指定します。

注意 : verify-rowsRead に設定されていると、verify-columns 要素では Modified の値を指定できません。この組み合わせでは、修正された行だけが EJB コンテナによってチェックされることになるためです。

詳細については、「同時方式の選択」を参照してください。

<verify-rows>Modified</verify-rows>

 


version-column-initial-value

表 C-68 version-column-initial-value
指定できる値 :
0 または任意の正の整数
デフォルト値 :
なし
親要素 :
weblogic-rdbms-bean
     table-map

機能

WebLogic Server 9.0 で導入された version-column-initial-value 要素では、オプティミスティックな同時方式を実装するために使用されるバージョン カラムの初期値を指定します。バージョン カラムは、optimistic-column 要素で指定するデータベース カラムです。詳細については、「optimistic-column」を参照してください。

table-map」を参照してください。

 


weblogic-ql

表 C-69 weblogic-ql
指定できる値 :
 
デフォルト値 :
 
親要素 :
weblogic-rdbms-bean
     weblogic-query

機能

weblogic-ql 要素は、EJB-QL に対する WebLogic 固有の拡張機能を含むクエリを指定します。ejb-jar.xml デプロイメント記述子では、EJB-QL 言語の標準機能だけを使用するクエリを指定しなければなりません。

weblogic-query」を参照してください。

 


weblogic-query

表 C-70 weblogic-query
指定できる値 :
なし
デフォルト値 :
mA
親要素 :
weblogic-rdbms-bean

機能

weblogic-query 要素では、標準またはデータベース固有の SQL クエリ、または EJB-QL の WebLogic 固有の拡張機能を使用するクエリを指定できます。SQL または EJB-QL の WebLogic 拡張機能を使用しないクエリは、ejb-jar.xml デプロイメント記述子で指定する必要があります。

クエリによってあらかじめキャッシュにロードしておく必要があるエンティティ Bean をクエリで取得する場合は、weblogic-query 要素を使用して、field-group をクエリに関連付けます。

weblogic-query 要素には、以下の要素を指定できます。

<weblogic-query>
   <description>...</description>
   <query-method>
      <method-name>findBigAccounts</method-name>
         <method-params>
            <method-param>double</method-param>
         </method-params>
   </query-method>
   <ejb-ql-query>
      <weblogic-ql>WHERE BALANCE>10000 ORDER BY NAME
      </weblogic-ql>
      <group-name>...</group-name>
      <caching-name>...</caching-name>
   </ejb-ql-query>
   <sql-query>
      <sql-shape>...</sql-shape>
      <sql>SELECT date_prescribed, dosage, drug, id, frequency, instructions, pat_id, issuing_phys_id, record_id, refills_remaining FROM medrecappPrescription WHERE testid = ?1</sql>
      <database-specific-sql>
         <database-type>SQLServer</database-type>
         <sql>SELECT name, phone, location, testid FROM medrecappPharmacyBeanTable WHERE testid = ?1 AND SUBSTRING(testid, 1,5) = 'local' ORDER BY name</sql>
      </database-specific-sql>
   </sql-query>
   <max-elements>...</max-elements>
   <include-updates>...</include-updates>
   <sql-select-distinct>...</sql-select-distinct>
</weblogic-query>

 


weblogic-rdbms-bean

表 C-71 weblogic-rdbms-bean
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar

機能

weblogic-rdbms-bean は、WebLogic RDBMS CMP 永続性タイプによって管理されるエンティティ Bean を指定します。

weblogic-rdbms-bean
ejb-name
data-source-jndi-name
unkonown-primary-key-field
table-map
field-group
relationship-caching
weblogic-query
dalay-database-insert-until
automatic-key-generation
check-exists-on-method

 


weblogic-rdbms-jar

機能

weblogic-rdbms-jar 要素は、WebLogic RDMBS CMP デプロイメント記述子の最上位の要素です。この要素には、1 つまたは複数のエンティティ Bean と、一連の関係 (これについては省略可能) についてのデプロイメント情報が含まれます。

weblogic-rdbms-jarXML 構造を示します。

weblogic-rdbms-jar
weblogic-rdbms-bean
weblogic-rdbms-relation
create-default-dbms-tables
validate-db-schema-with
database-type

 


weblogic-rdbms-relation

表 C-72 weblogic-rdbms-relation
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar

機能

weblogic-rdbms-relation 要素は、WebLogic CMP 永続性タイプによって管理されている 1 つの関係を表します。WebLogic Server では、以下の 3 種類の関係のマッピングをサポートしています。

コンテナ管理による関係の詳細については、「コンテナ管理による関係 (CMR) の使用」を参照してください。

1 対 1、1 対多、および多対多の関係のコンフィグレーション方法の例については、以降の節を参照してください。

1 対 1 の関係の定義

コード リスト 8-3 は、コード リスト 8-1コード リスト 8-2 で定義されているエンティティ間の 1 対 1 の関係を定義する weblogic-rdbms-bean 要素を示しています。weblogic-rdbms-relation 要素は、weblogic-cmp-jar.xml ファイルの weblogic-rdbms-bean 要素の後に存在します。

コード リスト 8-1 Bean 1

<weblogic-rdbms-bean>
   <ejb-name>CountryEJB</ejb-name>
   <data-source-jndi-name>wlsd21-datasource</data-source-jndi-name>
   <table-map>
      <table-name>EXAMPLE07_COUNTRY</table-name>
      <field-map>
         <cmp-field>name</cmp-field>
         <dbms-column>NAME</dbms-column>
      </field-map>
      <field-map>
         <cmp-field>continent</cmp-field>
         <dbms-column>CONTINENT</dbms-column>
      </field-map>
   </table-map>
</weblogic-rdbms-bean>

コード リスト 8-2 Bean 2
<weblogic-rdbms-bean>
   <ejb-name>CapitalEJB</ejb-name>
   <data-source-jndi-name>wlsd21-datasource</data-source-jndi-name>
      <table-map>
      <table-name>EXAMPLE07_CAPITAL</table-name>
      <field-map>
         <cmp-field>CAPITAL_NAME</cmp-field>
         <dbms-column>NAME</dbms-column>
      </field-map>
      <field-map>
         <cmp-field>continent</cmp-field>
         <dbms-column>CONTINENT</dbms-column>
      </field-map>
   </table-map>
</weblogic-rdbms-bean>
コード リスト 8-3 1 対 1 の関係の <weblogic-rdbms-relation> 要素
<weblogic-rdbms-relation>
   <relation-name>CountryCapitalRel</relation-name>
   <weblogic-relationship-role>
      <relationship-role-name>CountryRole</relationship-role-name>
      <relationship-role-map>
          <column-map>
             <foreign-key-column>CAPITAL_NAME</foreign-key-column>
             <key-column>NAME</key-column>
          </column-map>
      </relationship-role-map>
   </weblogic-relationship-role>
</weblogic-rdbms-relation>
注意 : CAPITAL_NAME は、Country テーブルの外部キーのカラム名です。
注意 : NAME は、Capital テーブルの主キーのカラム名です。
注意 : <relationship-role-name> には、ejb-jar.xml の <ejb-relationship-role> 要素の <cmr-field> で指定された関連フィールドが入ります。

1 対多の関係の定義

コード リスト 8-4 は、1 対多の関係を定義するサンプルの <weblogic-rdbms-relation> 要素を示しています。

コード リスト 8-4 1 対多の関係の <weblogic-rdbms-relation> 要素
<weblogic-rdbms-relation>
   <relation-name>OwnerDogRel</relation-name>
   <weblogic-relationship-role>
      <relationship-role-name>DogRole</relationship-role-name>
      <relationship-role-map>
         <column-map>
            <foreign-key-column>OWNER_NAME</foreign-<key-column>
            <key-column>NAME</key-column>
         </column-map>
      <relationship-role-map>
   </weblogic-relationship-role>
</weblogic-rdbms-relation>
注意 : <relationship-role-name> には、ejb-jar.xml の <ejb-relationship-role> 要素の <cmr-field> で指定された関連フィールドが入ります。
注意 : <foreign-key-column> は、関係の「多」側のテーブルのカラムを指定する必要があります。

多対多の関係の定義

WebLogic Server の多対多の関係には、結合テーブルの物理的なマッピングが伴います。結合テーブルの各行には、関係に関与するエンティティの主キーに対応する 2 つの外部キーが格納されます。

次の例は、FRIENDS Bean と EMPLOYEES Bean の間の多対多の関係を示しています。

コード リスト 8-5 多対多の関係の <weblogic-rdbms-relation> 要素
<weblogic-rdbms-relation>
   <relation-name>friends</relation-name>
   <table-name>FRIENDS</table-name>
   <weblogic-relationship-role>
      <relationship-role-name>friend</relationship-role-name>
      <relationship-role-map>
         <column-map>
            <foreign-key-column>first-friend-id</foreign-key-column>
            <key-column>id</key-column>
         </column-map
      </relationship-role-map>
   </weblogic-relationship-role>
   <weblogic-relationship-role>
      <relationship-role-name>second-friend</relationship-role-name>
         <relationship-role-map>
            <column-map>
               <foreign-key-column>second-friend-id</foreign-key-column>
               <key-column>id</key-column>
         </column-map>
      </relationship-role-map>
   </weblogic-relationship-role>
</weblogic-rdbms-relation>

コード リスト 8-4 で、FRIENDS 結合テーブルには first-friend-id および second-friend-id という 2 つのカラムがあります。各カラムには、別の従業員の友人である特定の従業員を示す外部キーが格納されます。EMPLOYEES テーブルの主キー カラム (key-column) は id です。この例では、EMPLOYEES Bean が 1 つのテーブルにマップされています。EMPLOYEES Bean が複数のテーブルにマップされている場合、主キー カラム (key-column) を格納するテーブルを relationship-role-map で指定する必要があります。詳細については、「relationship-role-map」を参照してください。

 


weblogic-relationship-role

表 C-73 weblogic-relationship-role
指定できる値 :
なし
デフォルト値 :
なし
親要素 :
weblogic-rdbms-jar
     weblogic-rdbms-relation

機能

weblogic-relationship-role 要素は、ejb-jar.xml で指定された ejb-relationship-role の以下の DBMS スキーマ情報を指定します。

コンテナ管理による関係の詳細については、「コンテナ管理による関係 (CMR) の使用」を参照してください。

<weblogic-relationship-role>
    <relationship-role-name>...</relationship-role-name>
    <group-name> ....</group-name>
    <relationship-role-map>...
       ....
    </relationship-role-map>
    <db-cascade-delete/>
</weblogic-relationship-role>

ページの先頭       前  次