ORACLE JAPAN Server Release 7.0

 

  |  

  WebLogic Server ホーム   |     エンタープライズ JavaBeans   |   前へ   |   次へ   |   目次   |   PDF 版

weblogic-cmp-rdbms-jar.xml 文書型定義

 

この章では、weblogic 固有の XML 文書型定義(DTD)ファイル、weblogic-cmp-rdbms-jar.xml ファイルの EJB 5.1 および EJB 6.0 デプロイメント記述子要素について説明します。これらの定義を使用して、EJB デプロイメントを構成する WebLogic 固有の weblogic-cmp-rdbms-jar.xml ファイルを作成します。

以下の節では、DOCTYPE ヘッダ情報を含めて、2 つのバージョンの WebLogic 固有の XML をリファレンス形式で詳細にまとめてあります。これらのデプロイメント記述子要素を使用して、コンテナ管理による永続性(CMP)を指定します。

 


EJB デプロイメント記述子

EJB デプロイメント記述子は、エンタープライズ Bean の構造およびアセンブリ情報を提供します。この情報を指定するには、3 つの EJB XML DTD ファイルのデプロイメント記述子に値を指定します。ファイルは次のとおりです。

この 3 つの XML ファイルを EJB および他のクラスと一緒にデプロイ可能なコンポーネント、通常は ejb.jar という JAR ファイルにパッケージ化します。

ejb-jar.xml ファイルは、Sun Microsystems の ejb.jar.xml ファイルのデプロイメント記述子に基づいています。その他の 2 つの XML ファイルは weblogic 固有のファイルで、weblogic-ejb-jar.xmlweblogic-cmp-rdbms-jar.xml のデプロイメント記述子に基づいています。

 


DOCTYPE ヘッダ情報

XML デプロイメント ファイルの編集、作成時に、各デプロイメント ファイルに対して正しい DOCTYPE ヘッダを指定することが重要です。特に、DOCTYPE ヘッダ内部に不正な PUBLIC 要素を使用すると、原因究明が困難なパーサ エラーになることがあります。各 XML デプロイメント ファイルで適切な PUBLIC 要素は、次のとおりです。

WebLogic Server 固有の weblogic-cmp-rdbms-jar.xml ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。

XML ファイル

PUBLIC 要素の文字列

weblogic-cmp-rdbms
-jar.xml

'-// BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB RDBMS20 Persistence//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-rdbms20-persistence-600.dtd'

weblogicmp-rdbms
-jar.xml

'-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB RDBMS Persistence//EN'

http://www.bea.com/servers/wls510/dtd/weblogic-rdbms-persistence.dtd

Sun Microsystems 固有の ejb-jar ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。

XML ファイル

PUBLIC 要素の文字列

ejb-jar.xml

'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' '

ejb-jar.xml

'-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN'

'http://www.java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'

たとえば、weblogic-cmp-rdbms-jar.xml ファイルの DOCTYPE ヘッダは次のようになります。

<!DOCTYPE weblogic-cmp-rdbms-jar PUBLIC 
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB RDBMS20 Persistence//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-rdbms20-persistence-600.dtd '>

XML の解析ユーティリティ(ejbc など)でヘッダ情報が不正な XML ファイルを解析すると、次のようなエラー メッセージが表示されることがあります。

SAXException: This document may not have the identifier 'identifier_name'

identifier_name には通常、PUBLIC 要素内の不正な文字列が表示されます。

検証用 DTD(Document Type Definitions : 文書型定義)

XML ファイルの内容および要素の配置は、使用する各ファイルの文書型定義(DTD)に準拠している必要があります。WebLogic Server ユーティリティでは、XML デプロイメント ファイルの DOCTYPE ヘッダ内に埋め込まれた DTD は無視され、代わりにサーバと共にインストールされた DTD の場所が使用されます。ただし、DOCTYPE ヘッダ情報には、パーサ エラーを避けるために有効な URL 構文を指定する必要があります。

注意: ほとんどのブラウザでは、.dtd ファイルの内容は表示されません。DTD ファイルの内容をブラウザで見るには、リンクをテキスト ファイルとして保存し、テキスト エディタで開いて表示します。

weblogic-cmp-rdbms-jar.xml

以下のリンクでは、WebLogic Server で使用される weblogic-cmp-rdbms-jar.xml デプロイメント ファイル用のパブリック DTD の場所が示されています。

ejb-jar.xml

以下のリンクでは、WebLogic Server で使用される ejb-jar.xml デプロイメント ファイル用のパブリック DTD の場所が示されています。

注意: ejb-jar.xml デプロイメント記述子の説明については、該当する JavaSoft EJB 仕様を参照してください。

 


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

weblogic-cmp-rdbms-jar.xml は、WebLogic Server の RDBMS ベースの永続性サービスを使用するエンティティ EJB のデプロイメント記述子を定義します。EJB 2.0 コンテナでは、WebLogic Server バージョン 5.1 で提供されたものとは異なるバージョンの weblogic-cmp-rdbms-jar.xml を使用します。詳細については、エンティティ EJB のロック サービスを参照してください。

WebLogic Server バージョン 6.0 にデプロイする旧バージョンの EJB 1.1 用 weblogic-cmp-rdbms-jar.xml の DTDも使用できます。ただし、CMP 2.0 の新機能を使用する場合は、下記の新しい DTD を使用する必要があります。

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

description
weblogic-version
weblogic-rdbms-jar
	weblogic-rdbms-bean
ejb-name
data-source-name
table-name
field-name
field-map
field-group
weblogic-query
delay-database-insert-until
automatic-key-generation
	weblogic-rdbms-relation
relation-name
table-name
weblogic-relationship-role

 


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

 


automatic-key-generation

指定できる値 :

なし

デフォルト値 :

なし

要件 :

省略可能。

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

automatic-key-generation 要素は、シーケンス/キー生成機能の使い方を指定します。

XML スタンザには、以下の要素を指定できます。

<automatic-key-generation>
<generator-type>ORACLE</generator-type>
<generator-name>test_sequence</generator-name>
<key-cache-size>10</key-cache-size>
</automatic-key-generation>
<automatic-key-generation>
<generator-type>SQL-SERVER</generator-type>
</automatic-key-generation>
<automatic-key-generation>
<generator-type>NAMED_SEQUENCE_TABLE</generator-type>
<generator-name>MY_SEQUENCE_TABLE_NAME</generator-name>
<key-cache-size>100</key-cache-size>
</automatic-key-generation>

 


cmp-field

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

このフィールドは大文字/小文字を区別するので、Bean のフィールド名と正しく一致していること。また、ejb-jar.xmlcmp-entry が指定されていること。

親要素 :

weblogic-rdbms-bean
   field-map
weblogic-rdbms-relation
   field-group

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


cmp-field

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

cmr-field で参照されるフィールドが、対応する cmr-field エントリを ejb-jar.xml に持っていること。

親要素 :

weblogic-rdbms-relation
   field-group

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

cmr-field 要素は cmr-field 名を指定します。

XML スタンザには、以下の要素を指定できます。

<weblogic-rdbms-jar>
	<weblogic-rdbms-relation>
		<field-group>employee</field-group>
				<cmp-field>employee stock purchases</cmp-field>
				<cmr-field>stock options</cmr-field>
	</weblogic-rdbms-relation>
</weblogic-rdbms-jar>

 


column-map

指定できる値 :

なし

デフォルト値 :

なし

要件 :

foreign-key-column がリモート Bean を参照する場合は、 key-column 要素を指定しないこと。

親要素 :

weblogic-rdbms-bean
   weblogic-relationship-role

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

XML スタンザには、以下の要素を指定できます。

<weblogic-rdbms-jar>
<weblogic-rdbms-bean >
<column-map
<foreign-key-column>account-id</foreign-key-column>
<key-column>id</key-column>
</column-map>
  </weblogic-rdbms-bean>
</weblogic-rdbms-jar>

 


create-default-dbms-tables

指定できる値 :

True | False

デフォルト値 :

False

要件 :

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

親要素 :

weblogic-rdbms-jar

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

create-default-dbms-table 要素は、デプロイメント ファイルおよび Bean クラスの記述に基づいてデフォルト テーブルを自動作成する機能を有効化/無効化します。False に設定すると、この機能は無効化されるので、テーブルは自動的に作成されません。True に設定すると、この機能は有効化されるので、テーブルは自動的に作成されます。TABLE CREATION が失敗した場合、Table Not Found エラーが送出されるので、テーブルを手動で作成しなければなりません。

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

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

 


data-source-name

指定できる値 :

この Bean に対するすべてのデータベース接続で使用するデータ ソースの有効な名前

デフォルト値 :

なし

要件 :

データベース接続の標準 WebLogic Server JDBC データ ソースとして定義すること。詳細については、『WebLogic JDBC プログラミング ガイド』を参照。

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

この Bean のすべてのデータベース接続に使用する JDBC データ ソース名を指定する data-source-name です。

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

 


db-cascade-delete

指定できる値 :


デフォルト値 :

なし

要件 :

Oracle データベースに対してのみサポート。1 対 1 または 1 対多関係についてのみ指定可能。

親要素 :

weblogic-rdbms-bean
   weblogic-relationship-role

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

db-cascade-delete 要素は、データベース カスケード機能を有効にするかどうかを指定します。この要素を指定しなかった場合、WebLogic Server では、データベース カスケード削除が指定されていないものと見なされます。

カスケード削除メソッドを参照してください。

 


dbms-column

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

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

親要素 :

weblogic-rdbms-bean
   field-map

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


dbms-column-type

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

Oracle データベースでのみ使用可能。

親要素 :

weblogic-rdbms-bean
   field-map

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

dbms-column-type 要素は、現在のフィールドを Oracle データベースの Blob または Clob、あるいは Sybase データベースの LongString にマップします。この要素は、次のいずれかです。

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

 


delay-database-insert-until

指定できる値 :


デフォルト値 :

ejbPostCreate

要件 :

cmr-field が null 値を許可しない foreign-key column にマップされている場合、データベースの挿入は ejbPostCreate の後に遅延される。この場合、 cmr-fieldejbPostCreate で null でない値に設定してから Bean をデータベースに挿入しなければならない。

cmr-fields は、Bean の主キーが不明な段階で ejbCreate の中で設定することができない。

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

delay-database-insert-until 要素は、RDBMS CMP を使用する新しい Bean をデータベースに挿入する正確な時間を指定します。

ejbPostCreate メソッドが Bean の永続フィールドを変更するまで、データベースの挿入を遅らせることをお勧めします。これにより、不要な保存操作を行わずに済むので、パフォーマンスが向上します。

最大限の柔軟性を実現するには、関連 Bean を ejbPostCreate メソッドで作成することは避ける必要があります。データベースの制約によって関連 Bean が未作成の Bean を参照できない場合、データベースの挿入を遅らせることができなくなる可能性があります。

次の例では、delay-database-insert-until 要素を指定します。

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

 


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 に一致している必要があります。

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

 


enable-tuned-updates

注意: このデプロイメント記述子は、EJB 1.1 に対してのみ適用されます。

指定できる値 :

True/False

デフォルト値 :

True

要件 :


親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

enable-tuned-updates 要素は、ejbStore が呼び出された場合に、EJB コンテナがコンテナ管理フィールドの変更の有無を自動的に判定し、変更されたフィールドだけをデータベースに書き込むように指定します。

次の例では、enable-tuned-updates 要素の指定方法を示します。

<enable-tuned-updates>True</enable-tuned-updates>

 


field-group

指定できる値 :

有効な名前

デフォルト値 :

指定したグループを持たないファインダと関係に対して、default という特殊なグループを使用します。

要件 :

デフォルト グループには、Bean の cmp-field がすべて含まれるが、cmr-field は含まれない。

親要素 :

weblogic-rdbms-relation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

XML スタンザには、以下の要素を指定できます。

<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

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

データベースのカラムにマップされたフィールドが、Bean の CMP フィールドに対応していること。

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

データベースの特定のカラム用にマップされたフィールド名です。Bean インスタンスの CMP フィールドに対応しています。

XML スタンザには、以下の要素を指定できます。

<weblogic-rdbms-jar>
<weblogic-rdbms-bean >
	<field-map>
<cmp-field>accountId</cmp-field>
<dbms-column>id</dbms-column>
</field-map>
	<field-map>
<cmp-field>balance</cmp-field>
<dbms-column>bal</dbms-column>
</field-map>
    <field-map>
<cmp-field>accountType</cmp-field>
<dbms-column>type</dbms-column>
</field-map>
  </weblogic-rdbms-bean>
</weblogic-rdbms-jar>

 


foreign-key-column

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

外部キーのカラムに対応していること。

親要素 :

weblogic-rdbms-bean
   column-map

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


generator-name

指定できる値 :

なし

デフォルト値 :

なし

要件 :

省略可能。

親要素 :

weblogic-rdbms-bean
   automatic-key-generation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

次に例を示します。

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

 


generator-type

指定できる値 :

なし

デフォルト値 :

なし

要件 :

省略可能。

親要素 :

weblogic-rdbms-bean
   automatic-key-generation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

generator-type 要素は、使用するキー生成方法を指定します。オプションは以下のとおりです。

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

 


group-name

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-relation
   field-group
weblogic-rdbms-bean
   finder
       finder-query

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

group-name 要素はフィールド グループ名を指定します。

XML スタンザには、以下の要素を指定できます。

<weblogic-rdbms-jar>
	<weblogic-rdbms-relation>
			<field-group>employee</field-group>
				<cmp-field>employee stock purchases</cmp-field>
				<cmr-field>stock options</cmr-field>
					<group-name>financial data</group-name>
	</weblogic-rdbms-relation>
</weblogic-rdbms-jar>

 


include-updates

指定できる値 :

True | False

デフォルト値 :

False

要件 :

デフォルトは False で、この設定は最大限のパフォーマンスを実現する。

親要素 :

weblogic-rdbms-bean
   weblogic-query

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

include-updates element は、現在のトランザクション中の更新を必ずクエリの結果に反映するように指定します。この要素を True に設定した場合、コンテナは現在のトランザクションによる変更をすべてディスクにフラッシュしてからクエリを実行します。

XML スタンザには、以下の要素を指定できます。

	<include-updates>False</include_updates>

 


key-cache-size

指定できる値 :

なし

デフォルト値 :

1

要件 :

省略可能。

親要素 :

weblogic-rdbms-bean
   automatic-key-generation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

key-cache-size 要素は、自動主キー生成機能で利用可能な主キー キャッシュのサイズをオプションとして指定します。

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

 


key-column

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

主キーのカラムに対応していること。

親要素 :

weblogic-rdbms-bean
   column-map

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


max-elements

指定できる値 :

なし

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean
   weblogic-query

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

XML スタンザには、以下の要素を指定できます。

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

 


method-name

指定できる値 :

なし

デフォルト値 :

なし

要件 :

「*」文字はワイルドカードとして使用できない。

親要素 :

weblogic-rdbms-bean
   query-method

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


method-param

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean
   method-params

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

XML スタンザには、以下の要素を指定できます。

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

 


method-params

指定できる値 :

有効な名前のリスト

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean
   query-method

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


query-method

指定できる値 :

なし

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

query-method 要素は、weblogic-query と関連付けるメソッドを指定します。ejb-jar.xml 記述子と同じ形式を使用します。

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

 


relation-name

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

関連する ejb-jar.xml 記述子ファイルで定義した ejb-relation の ejb-relation-name に一致していること。

親要素 :

weblogic-rdbms-relation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

relation-name 要素は関連名を指定します。

XML スタンザには、以下の要素を指定できます。

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

 


relationship-role-name

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

関連する ejb-jar.xml 記述子ファイルで定義した ejb-relationship-roleejb-relationship-role-name に一致していること。

親要素 :

weblogic-rdbms-relation
   weblogic-relationship-role

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

XML スタンザには、以下の要素を指定できます。

<weblogic-rdbms-jar>
	<weblogic-rdbms-relation>
		<weblogic-relationship-role>stockholder</weblogic- relationship-role>
			<relationship-role-name>stockholders</relationship- role-name>
	</weblogic-rdbms-relation>
</weblogic-rdbms-jar>

 


sql-select-distinct

指定できる値 :

True | False

デフォルト値 :

False

要件 :

Oracle データベースでは、SELECT DISTINCT を FOR UPDATE 句と一緒に使用できない。したがって、transaction-isolation 要素に isolation-level 下位要素を設定し、その下位要素の値を TRANSACTION_READ_COMMITED_FOR_UPDATE に設定したメソッドを、呼び出しチェーンの Bean が備えている場合、sql-select-distinct 要素を使用することはできない。transaction-isolation 要素は weblogic-ejb-jar.xml ファイルで定義する。

親要素 :

weblogic-query

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

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

 


table-name

指定できる値 :

データベース内にあるソース テーブルの有効な完全修飾 SQL 名

デフォルト値 :

なし

要件 :

table-name を必ず設定すること。

親要素 :

weblogic-rdbms-bean
   weblogic-rdbms-relation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

XML スタンザには、以下の要素を指定できます。

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

 


weblogic-ql

指定できる値 :

なし

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean
   weblogic-query

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

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

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

 


weblogic-query

指定できる値 :

なし

デフォルト値 :

なし

要件 :

なし

親要素 :

weblogic-rdbms-bean

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

weblogic-query 要素を使用すると、必要に応じて、WebLogic 固有の属性をクエリに関連付けることができます。たとえば、WebLogic 固有の EJB-QL に対する拡張機能を含むクエリを指定するために使用できます。EJB-QL に対する WebLogic の拡張機能を使用しないクエリは、ejb-jar.xml デプロイメント記述子で指定する必要があります。

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

XML スタンザには、以下の要素を指定できます。

<weblogic-query>
        <query-method>
          <method-name>findBigAccounts</method-name>
          <method-params>
				    <method-param>double</method-param>
          </method-params>
        <query-method>
				<weblogic-ql>WHERE BALANCE>10000 ORDERBY NAME</weblogic-ql>
		</weblogic-query>

 


weblogic-relationship-role

指定できる値 :

有効な名前

デフォルト値 :

なし

要件 :

ロールのテーブルへのマッピングを、関連する weblogic-rdbms-bean および ejb-relation 要素で指定すること。

親要素 :

weblogic-rdbms-relation

デプロイメント ファイル :

weblogic-cmp-rdbms-jar.xml

機能

weblogic-relationship-role 要素は、外部キーから主キーへのマッピングを表すのに使用します。1 つのみのマッピングは、関係がローカルの場合、1 対 1 の関係で指定します。ただし、多対多の関係では、2 つのマッピングを指定する必要があります。

キーが複数の場合、複数カラムのマッピングは単独のロールに対して指定します。ロールが group-name を指定しているだけの場合、column-map は指定されません。

XML スタンザには、以下の要素を指定できます。

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

 


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

weblogic-cmp-rdbms-jar.xml では、WebLogic Server RDBMS ベースの永続性サービスを使用するエンティティ EJB のデプロイメント要素を定義します。詳細については、エンティティ EJB のロック サービスを参照してください。

WebLogic Server 5.1 の weblogic-cmp-rdbms-jar.xml の最上位要素は、weblogic-enterprise-bean スタンザで構成されます。

description
weblogic-version
<weblogic-enterprise-bean>
   <pool-name>finance_pool</pool-name>
   <schema-name>FINANCE_APP</schema-name>
   <table-name>ACCOUNT</table-name>
   <attribute-map>
      <object-link>
         <bean-field>accountID</bean-field>
         <dbms-column>ACCOUNT_NUMBER</dbms-column>
      </object-link>
      <object-link>
         <bean-field>balance</bean-field>
         <dbms-column>BALANCE</dbms-column>
      </object-link>
   </attribute-map>
   <finder-list>
      <finder>
         <method-name>findBigAccounts</method-name>
         <method-params>
            <method-param>double</method-param>
         </method-params>
      <finder-query><![CDATA[(> balance $0)]]></finder-query>
      <finder-expression>. . .</finder-expression>
      </finder>
   </finder-list>
</weblogic-enterprise-bean>

 


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

RDBMS 定義要素

この節では RDBMS 定義要素について説明します。

pool-name

pool-name では、EJB のデータベース接続に使用する WebLogic Server 接続プールの名前を指定します。詳細については、『JDBC プログラミング ガイド』を参照してください。

schema-name

schema-name では、データベースに置かれるソース テーブルのスキーマを指定します。この要素は、EJB の接続プールで定義されたユーザに対してデフォルト スキーマではないスキーマを使用する場合にのみ必須です。

注意: 多くの SQL 実装では大文字小文字が無視されますが、このフィールドは大文字小文字が区別されます。

table-name

table-name では、データベース内のソース テーブルを指定します。この要素はすべての場合に必須です。

注意: EJB の接続プールで定義されたユーザには、指定されたテーブルに対する読み書き特権が必要です。ただし、スキーマ変更権限は必ずしも必要ありません。多くの SQL 実装では大文字小文字が無視されますが、このフィールドは大文字小文字が区別されます。

EJB フィールド マッピング要素

この節では EJB フォールド マッピング要素について説明します。

attribute-map

attribute-map スタンザでは、EJB インスタンスの単一フィールドがデータベース テーブル内の特定のカラムにリンクされます。attribute-map には、WebLogic Server RDBMS ベースの永続性を使用する EJB のフィールドごとに 1 つのエントリが必要です。

object-link

attribute-map エントリは、データベース内のカラムと EJB インスタンス内のフィールドとのリンクを表す object-link スタンザから構成されます。

bean-field

bean-field では、データベースからの移行が必要な EJB インスタンスのフィールドを指定します。この要素では大文字小文字が区別されます。この要素は、Bean インスタンスのフィールド名に正確に一致している必要があります。

また、このタグで参照されるフィールドは、Bean の ejb-jar.xml ファイル内に定義されている cmp-field 要素も持っている必要があります。

dbms-column

dbms-column では、EJB フィールドがマップされるデータベース カラムを指定します。多くのデータベースでは大文字小文字が無視されますが、このフィールドでは大文字小文字が区別されます。

注意: WebLogic Server では、引用符で囲まれた RDBMS キーワードは dbms-column のエントリとしてはサポートされていません。たとえば、基になるデータストアで「create」や「select」が予約語になっている場合、それらをカラム名にして属性マップを作成することができません。

ファインダ要素

この節ではファインダ要素について説明します。

finder-list

finder-list スタンザでは、Bean の集合を見つけるために生成されるすべてのファインダの集合を定義します。詳細については、EJB 1.1 CMP の RDBMS 永続性用の記述を参照してください。

findByPrimarykey の場合を除いて、finder-list には、ホーム インタフェース内に定義されているファインダ メソッドにごとに 1 つのエントリが必要です。findByPrimaryKey の場合は、エントリを指定しなくても、コンパイル時に finder-list が生成されます。

注意: findByPrimaryKey に対してエントリを指定すると、WebLogic Server では、正当性が検証されずにそのエントリが使用されます。ほとんどの場合では、findByPrimaryKey に対するエントリを定義せずに、デフォルトで生成されるメソッドを受け入れることをお勧めします。

finder

finder スタンザでは、ホーム インタフェース内に定義されるファインダ メソッドを記述します。finder スタンザに含まれる要素によって、WebLogic Server では、ホーム インタフェース内に記述されているメソッドが識別され、必要なデータベース操作を実行できるようになります。

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 クエリ言語(WLQL)文字列を指定します。詳細については、EJB 1.1 CMP 用の WebLogic クエリ言語(WLQL)の使用を参照してください。

注意: finder-query 値のテキストは、常に、XML CDATA 属性を使用して定義してください。CDATA を使用すると、WLQL 文字列中に特殊文字が入っていても、ファインダをコンパイルしたときにエラーが発生しないようになります。

finder-expression

finder-expression では、このファインダ用のデータベース クエリ中で変数として使用される Java 言語の式を指定します。

注意: WebLogic Server EJB コンテナの将来のバージョンでは、EJB QL クエリ言語が使用される予定です(このクエリ言語は EJB 2.0 仕様では必須です)。EJB QL では、埋め込まれた Java 式はサポートされていません。そのため、将来の EJB コンテナに簡単にアップグレードできるよう、WLQL でも Java 式を埋め込まずにエンティティ EJB ファインダを作成してください。

 

back to top previous page