![]() |
![]() |
|
|
| |
weblogic-ejb-jar.xml 文書型定義
以下の節では、weblogic 固有の XML 文書型定義(DTD)ファイル、weblogic-ejb-jar.xml ファイルの EJB 5.1 および EJB 6.0 デプロイメント記述子要素について説明します。これらの定義を使用して、EJB デプロイメントを構成する WebLogic 固有の weblogic-ejb-jar.xml ファイルを作成します。
注意: 6.x バージョンの WebLogic Server では、6.0 デプロイメント記述子を使用してください。
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.xml と weblogic-cmp-rdbms-jar.xml のデプロイメント記述子に基づいています。
XML デプロイメント ファイルの編集、作成時に、デプロイメント ファイルに合わせて正しい DOCTYPE ヘッダを指定することが重要です。特に、DOCTYPE ヘッダ内部に不正な PUBLIC 要素を使用すると、原因究明が困難なパーサ エラーになることがあります。
WebLogic Server 固有の weblogic-ejb-jar.xml ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。
Sun Microsystems 固有の ejb-jar.xml ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。
たとえば、weblogic-ejb-jar.xml ファイルの DOCTYPE ヘッダは次のようになります。
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.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-ejb-jar.xml
以下のリンクでは、WebLogic Server で使用される weblogic-ejb-jar.xml デプロイメント ファイル用の新しいパブリック DTD の場所が示されています。
http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd には、weblogic-ejb-jar.xml の作成に使用する DTD が含まれています。この DTD では、WebLogic Server へのデプロイメントに使用する EJB プロパティを定義します。
ejb-jar.xml
以下のリンクでは、WebLogic Server で使用される ejb-jar.xml デプロイメント ファイル用のパブリック DTD の場所が示されています。
http://www.java.sun.com/dtd/ejb-jar_2_0.dtd には、すべての EJB で必要な標準 ejb-jar.xml デプロイメント ファイル用の DTD が含まれています。この DTD は、JavaSoft EJB 2.0 仕様の一部として保持されています。ejb-jar.dtd で使用される要素の詳細については JavaSoft 仕様を参照してください。
注意: ejb-jar.xml デプロイメント記述子の説明については、該当する JavaSoft EJB 仕様を参照してください。
6.0 の weblogic-ejb-jar.xml デプロイメント記述子ファイルの構造
WebLogic Server 6.0 の weblogic-ejb-jar.xml デプロイメント記述子ファイルには、WebLogic Server 固有の要素を記述します。どちらのバージョンのデプロイメント記述子も EJB コンテナで使用できますが、weblogic-ejb-jar.xml には、WebLogic Server 6.0 バージョンと WebLogic Server バージョン 5.1 の間で違いがあります。
WebLogic Serve 6.0 の weblogic-ejb-jar.xml には、ステートフル セッション EJB レプリケーションの有効化、エンティティ EJB ロック動作のコンフィグレーション、メッセージ駆動型 Bean への JMS キューとトピック名の割り当てを行うための要素が含まれています。
WebLogic Server 6.0 の weblogic-ejb-jar.xml の最上位要素は次のとおりです。
6.0 の weblogic-ejb-jar.xml デプロイメント記述子要素
機能
allow-concurrent-calls 要素は、ステートフル セッション Bean インスタンスがメソッドの同時呼び出しを許可するかどうかを指定します。デフォルトでは、allows-concurrent-calls は false です。ただし true に設定すると、EJB コンテナはメソッドの同時呼び出しをブロックするため、前の呼び出しが完了してから次のメソッドが呼び出されるようになります。
例
stateful-session-descriptorを参照してください。
指定できる値 : |
NRU | LRU |
デフォルト値 : |
NRU |
要件 : |
|
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
cache-type 要素は、EJB をキャッシュから削除する順序を指定します。値は次のとおりです。
例
次の例では、cache-type 要素の構造を示します。
<stateful-session-cache>
<cache-type>NRU</cache-type>
</stateful-session-cache>
機能
connection-factory-jndi-name 要素は、キューおよびトピックを作成するためにメッセージ駆動型 Bean がルックアップする JMS 接続ファクトリの JNDI 名を指定します。この要素を指定しなかった場合、config.xml. の weblogic.jms.MessageDrivenBeanConnectionFactory がデフォルトになります。
例
次の例では、connection-factory-jndi-name 要素の構造を示します。
<message-driven-descriptor>
<connection-factory-jndi-name>weblogic.jms.MessageDrivenBean
ConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
concurrency-strategy
指定できる値 : |
Exclusive | Database | ReadOnly |
デフォルト値 : |
Database |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
concurrency-strategy 要素は、コンテナがエンティティ Bean への同時アクセスを管理する方法を指定します。以下の 3 つの値のいずれかに設定します。
Exclusive および Database のロック動作の詳細については、エンティティ EJB のロック サービスを参照してください。read-only エンティティ EJB の詳細については、read-only マルチキャストの無効化を参照してください。
例
次の例では、AccountBean クラスを読み取り専用のエンティティ EJB として指定します。
<weblogic-enterprise-bean>
<ejb-name>AccountBean</ejb-name>
<entity-descriptor>
<entity-cache>
<concurrency-strategy>ReadOnly</concurrency-strategy>
</entity-cache>
</entity-descriptor>
</weblogic-enterprise-bean>
db-is-shared
指定できる値 : |
true | false |
デフォルト値 : |
true |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
db-is-shared 要素はエンティティ Bean に対してのみ有効です。true に設定すると、WebLogic Server では、EJB データがトランザクションで変更された可能性があると見なし、各トランザクションの開始時にデータを再ロードします。false に設定すると、WebLogic Server では、永続ストレージの EJB データに排他的にアクセスすると見なされます。詳細については、db-is-shared を使用した ejbLoad() の呼び出しの制限を参照してください。
例
persistenceを参照してください。
delay-updates-until-end-of-tx
指定できる値 : |
true | false |
デフォルト値 : |
true |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
トランザクションの完了時にトランザクションですべての Bean の永続ストレージを更新するには、delay-updates-until-end-of-tx 要素を true(デフォルト)に設定します。通常、この設定によって不要な更新を防ぐことができるため、パフォーマンスが向上します。ただし、データベース トランザクション内のデータベース更新の順序は保持されません。
データベースがアイソレーション レベルとして TRANSACTION_READ_UNCOMMITTED を使用している場合は、進行中のトランザクションに関する中間結果を他のデータベースのユーザに表示することもできます。この場合、delay-updates-until-end-of-tx を false に設定して、各メソッド呼び出しの完了時に Bean の永続ストレージを更新するように指定します。詳細については、エンティティ EJB に対する ejbLoad() と ejbStore() の動作を参照してください。
注意: delay-updates-until-end-of-tx を false に設定しても、各メソッド呼び出しの後にデータベース更新が「コミットされた」状態になるわけではありません。更新はデータベースに送信されるだけです。更新は、トランザクションの完了時にのみデータベースにコミットまたはロールバックされます。
例
次の例では、delay-updates-until-end-of-tx スタンザを示します。
<entity-descriptor>
<persistence>
<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>
</persistence>
</entity-descriptor>
description
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
description 要素は、親要素を示すテキストの指定に使用します。
例
次の例では、description 要素を指定します。
destination-jndi-name
指定できる値 : |
有効な JNDI 名 |
デフォルト値 : |
なし |
要件 : |
|
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
destination-jndi-name 要素は、WebLogic Server JNDI ツリーにデプロイされている実際の JMS キューまたはトピックにメッセージ駆動型 Bean を関連付けるために使用する JNDI 名を指定します。
例
message-driven-descriptorを参照してください。
ejb-name
指定できる値 : |
ejb-jar.xml で定義した EJB 名 |
デフォルト値 : |
なし |
要件 : |
method スタンザで必須。この名前は、NMTOKEN の命名規則に準拠しなければならない。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
ejb-name は、WebLogic Server がアイソレーション レベルのプロパティに適用する EJB の名前を指定します。この名前は、ejb-jar ファイルのデプロイメント記述子で割り当てます。名前は、同じ ejb.jar ファイル内のエンタープライズ Bean の名前の中で一意でなければなりません。エンタープライズ Bean のコードは名前に左右されないので、アプリケーション アセンブリ処理中に名前を変更してもエンタープライズ Bean の機能には影響しません。デプロイメント記述子の ejb-name と、デプロイヤがエンタープライズ Bean のホームに割り当てる JNDI 名との間には、組み込みの関係はありません。
例
methodを参照してください。
ejb-reference-description
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
ejb-reference-description 要素は、Bean によって参照される、WebLogic Server における EJB の JNDI 名を ejb-reference 要素にマップします。
例
ejb-reference-description スタンザを次に示します。
<ejb-reference-description>
<ejb-ref-name>AdminBean</ejb-ref-name>
<jndi-name>payroll.AdminBean</jndi-name>
</ejb-reference-description>
ejb-ref-name
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
ejb-ref-name 要素はリソース参照名を指定します。この要素は、EJB プロバイダが ejb-jar.xml デプロイメント ファイル内に配置する参照です。
例
ejb-ref-name スタンザを次に示します。
<reference-descriptor>
<ejb-reference-description>
<ejb-ref-name>AdminBean</ejb-ref-name>
<jndi-name>payroll.AdminBean</jndi-name>
</ejb-reference-description>
</reference-descriptor>
ejb-local-reference-description
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
ejb-local-reference-description 要素は、Bean が ejb-local ref で参照する WebLogic Server の EJB の JNDI 名をマップします。
例
次の例では、ejb-local-reference-description 要素を示します。
<ejb-local-reference-description>
<ejb-ref-name>AdminBean</ejb-ref-name>
<jndi-name>payroll.AdminBean</jndi-name>
</ejb-local-reference-description>
enable-call-by-reference
指定できる値 : |
true | false |
デフォルト値 : |
true |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean ejb-reference-description |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
デフォルトでは、同じサーバから呼び出された EJB メソッドは引数を参照で渡す。パラメータはコピーされないので、これによってメソッド呼び出しのパフォーマンスが向上します。
enable-call-by-reference を false に設定すると、EJBE 1.1 の仕様に従って EJB メソッドへのパラメータがコピーされ(値で渡され)ます。EJB がリモートで(同じサーバ以外から)呼び出される場合は、常に値で渡す必要があります。
例
次の例では、EJB メソッドが値で渡すことができるようになります。
<weblogic-enterprise-bean>
<ejb-name>AccountBean</ejb-name>
...
<enable-call-by-reference>false</enable-call-by-reference>
</weblogic-enterprise-bean>
entity-cache
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
entity-cache スタンザは省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
entity-cache 要素は、WebLogic Server 内のエンティティ EJB インスタンスのキャッシュに使用する以下のオプションを定義します。
WebLogic Server で使用可能なキャッシュ サービスについては、WebLogic Server における EJB のライフサイクルを参照してください。
例
<entity-descriptor>
<entity-cache>
<max-beans-in-cache>...</max-beans-in-cache>
<idle-timeout-seconds>...</idle-timeout-seconds>
<read-timeout-seconds>...<read-timeout-seconds>
<concurrency-strategy>...</concurrency-strategy>
</entity-cache>
<lifecycle>...</lifecycle>
<persistence>...</persistence>
<entity-clustering>...</entity-clustering>
</entity-descriptor>
entity-clustering
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。クラスタ内のエンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
entity-clustering 要素は、以下のオプションを使用して、エンティティ Bean を WebLogic クラスタ内でレプリケートする方法をしています。
例
次の例では、entity-clustering スタンザの構造を示します。
<entity-clustering>
<home-is-clusterable>true</home-is-clusterable>
<home-load-algorithm>random</home-load-algorithm>
<home-call-router-class-name>beanRouter</home-call-router-class-name>
</entity-clustering>
entity-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
.jar 内のエンティティ EJB ごとに 1 つの entity-descriptor スタンザが必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
entity-descriptor 要素は、エンティティ Bean に適用する以下のデプロイメント パラメータを指定します。
例
次の例では、entity-descriptor スタンザの構造を示します。
<entity-descriptor>
<entity-cache>...</entity-cache>
<lifecycle>...</lifecycle>
<persistence>...</persistence>
<entity-clustering>...</entity-clustering>
</entity-descriptor>
finders-load-bean
指定できる値 : |
true | false |
デフォルト値 : |
true |
要件 : |
省略可能。CMP エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
finders-call-ejbload は、ファインダ メソッドの呼び出しによって Bean への参照が返されてから WebLogic Server が EJB をキャッシュにロードするかどうかを決定します。この要素を true に設定した場合、Bean への参照がファインダによって返されると、WebLogic Server はすぐにその Bean をキャッシュにロードします。この要素を false に設定した場合、WebLogic Server は、最初のメソッドが呼び出されるまで Bean を自動的にロードしません。この動作は、EJB 1.1 の仕様と一致しています。
例
次のエントリでは、ファインダ メソッドによって Bean への参照が返されたら、EJB が自動的に WebLogic Server キャッシュにロードされるように指定します。
<entity-descriptor>
<persistence>
<finders-load-bean>true</finders-load-bean>
</persistence>
</entity-descriptor>
home-call-router-class-name
機能
home-call-router-class-name は、Bean メソッド呼び出しのルーティングに使用するカスタム クラスの名前を指定します。このクラスは weblogic.rmi.extensions.CallRouter() を実装する必要があります。指定すると、このクラスのインスタンスは各メソッド呼び出しの前に呼び出されます。ルータ クラスでは、メソッドのパラメータを基に、ルーティングするサーバを選択できます。このクラスは、サーバ名を返すか、または現在のロード アルゴリズムがサーバを選択する必要があることを示す null を返します。
例
entity-clusteringとstateful-session-clusteringを参照してください。
home-is-clusterable
機能
home-is-clusterable が true の場合、クラスタ内の複数の WebLogic Server から EJB をデプロイできます。ホーム スタブの呼び出しは、Bean がデプロイされるサーバ間で負荷が分散されます。Bean のホスト サーバにアクセスできなかった場合、呼び出しは、Bean を提供する他のサーバに自動的にフェイルオーバします。
例
entity-clusteringを参照してください。
home-load-algorithm
機能
home-load-algorithm では、EJB ホームのレプリカ間でのロード バランシングに使用するアルゴリズムを指定します。このプロパティを定義しない場合、WebLogic Server はサーバ プロパティ weblogic.cluster.defaultLoadAlgorithm で指定されたアルゴリズムを使用します。
home-load-algorithm は以下のいずれかの値に定義できます。
例
entity-clusteringとstateful-session-clusteringを参照してください。
idle-timeout-seconds
機能
idle-timeout-seconds では、ステートフル EJB がキャッシュに保持される最長時間を定義します。この時間を過ぎると、キャッシュ内の Bean の数が max-beans-in-cache で指定した値を超えている場合、WebLogic Server では Bean インスタンスが削除されます。削除された Bean インスタンスに対してはパッシベーションが行われます。詳細については、WebLogic Server における EJB のライフサイクルを参照してください。
例
次のエントリでは、max-beans-in-cache の値に達し、Bean がキャッシュに 20 分保持されている場合、ステートフル セッション EJB AccountBean が削除の対象になります。
<weblogic-enterprise-bean>
<ejb-name>AccountBean</ejb-name>
<stateful-session-descriptor>
<stateful_session-cache>
<max-beans-in-cache>200</max-beans-in-cache>
<idle-timeout-seconds>1200</idle-timeout-seconds>
</stateful-session-cache>
</stateful-session-descriptor>
</weblogic-enterprise-bean>
機能
initial-bean-in-free-pool の値を指定すると、WebLogic Server では、起動時に、すべての Bean クラスの指定した数の Bean インスタンスがフリー プールに生成されます。この方法で Bean インスタンスをフリー プールに格納しておくと、リクエストが来てから新しいインスタンスを生成せずに Bean に対する初期のリクエストが可能になるため、EJB の初期の応答時間が短縮されます。
例
poolを参照してください。
initial-context-factory
機能
initial-context-factory 要素は、コンテナが接続ファクトリを作成するために使用する初期 contextFactory を指定します。initial-context-factory を指定しなかった場合、デフォルトは weblogic.jndi.WLInitialContextFactory になります。
例
次の例では、initial-context-factory 要素の構造を示します。
<message-driven-descriptor>
<initial-context-factory>weblogic.jndi.WLInitialContextFactory
</initial-context-factory>
</message-driven-descriptor>
invalidation-target
機能
invalidation-target 要素は、コンテナ管理による永続性エンティティ EJB が変更された場合に、無効化する読み出し専用エンティティ EJB を指定します。
例
次の例では、EJB が変更されると StockReaderEJB という EJB が無効化されるように指定します。
<invalidation-target>
<ejb-name>StockReaderEJB</ejb-name>
</invalidation-target>
is-modified-method-name
指定できる値 : |
有効なエンティティ EJB メソッド名 |
デフォルト値 : |
なし |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
is-modified-method-name では、EJB の保存時に WebLogic Server によって呼び出されるメソッドを指定します。指定したメソッドはブール値を返す必要があります。メソッドを指定しない場合、WebLogic Server では、EJB は常に変更されていると見なされて保存されます。
メソッドを指定して適切な値を設定すると、EJB 1.1 準拠の Bean、および Bean 管理の永続性を使用する Bean のパフォーマンスが向上します。ただし、メソッドの戻り値にエラーがあると、データに矛盾が発生する場合があります。詳細については、is-modified-method-name を使用した ejbStore() の呼び出しの制限(EJB 1.1 のみ)を参照してください。
注意: isModified() は、EJB 2.0 仕様に基づく 2.0 CMP エンティティ EJB では不要ですが、BMP および 1.1 CMP の EJB では有効です。コンテナ管理の永続性を使用して EJB 2.0 エンティティ Bean をデプロイする場合、WebLogic Server によって、変更されている EJB フィールドが自動的に検出され、そのフィールドのみが基底のデータストアに書き込まれます。
例
次の例では、EJB が変更されると semidivine という EJB メソッドが WebLogic Server に通知するように指定します。
<entity-descriptor>
<persistence>
<is-modified-method-name>semidivine</is-modified-method-name>
</persistence>
</entity-descriptor>
isolation-level
指定できる値 : |
Serializable | ReadCommitted | ReadUncommitted | RepeatableRead |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
isolation-level は、すべての EJB データベース処理に対するアイソレーション レベルを指定します。isolation-level には以下の値を指定できます。
異なるアイソレーション レベルの関係と各アイソレーション レベルのサポートの詳細については、各データベースのマニュアルを参照してください。
例
transaction-isolationを参照してください。
jms-client-id
指定できる値 : |
なし |
デフォルト値 : |
EJB に対する EJB 名。 |
要件 : |
JMS トピックに対する恒久サブスクリプションに必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
jms-client-id 要素は、メッセージ駆動型 Bean に関連付けられるクライアント ID を指定します。JMS トピックに対する恒久サブスクリプションでは、この ID が必要です。
JMS の仕様では、JMS コンシューマは関連付けられる ID を指定できます。恒久サブスクリプションを使用するメッセージ駆動型 Bean では、関連付けられるクライアント ID が必要です。独立した接続ファクトリを使用する場合は、接続ファクトリにクライアント ID を設定できます。この場合、メッセージ駆動型 Bean はこのクライアント ID を使用します。
関連付けられるクライアント ID にクライアント ID がない場合、またはデフォルトの接続ファクトリを使用している場合は、メッセージ駆動型 Bean はクライアント ID として jms-client-id を使用します。
例
次の例は、jms-client-id 要素の使い方を示したものです。
<jms-client-id>MyClientID</jms-client-id>
jms-polling-interval-seconds
指定できる値 : |
なし |
デフォルト値 : |
10 秒 |
要件 : |
なし |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
jms-polling-interval-seconds 要素は、WebLogic Server が JMS 送り先への再接続を試みる間隔の秒数を決定します。
各メッセージ駆動型 Bean は、関連付けられている JMS 送り先をリスンします。JMS 送り先が別の WebLogic Server インスタンスまたは外部の JMS プロバイダに存在している場合、その JMS 送り先にアクセスできなくなることがあります。このような場合、EJB コンテナは、自動的に、JMS サーバへの再接続を試みます。JMS サーバが再び稼働したなら、メッセージ駆動型 Bean は再び JMS メッセージを受信できます。
異なるアイソレーション レベルの関係と各アイソレーション レベルのサポートの詳細については、各データベースのマニュアルを参照してください。
例
次の例は、jms-pollig-interval-seconds 要素の使い方を示したものです。
<jms-polling-interval-seconds>5</jms-polling-interval-seconds>
jndi-name
機能
jndi-name は、WebLogic Server で使用可能な実際の EJB、リソース、または参照の JNDI 名を指定します。
例
resource-descriptionとejb-reference-descriptionを参照してください。
local-jndi-name
指定できる値 : |
有効な JNDI 名 |
デフォルト値 : |
なし |
要件 : |
Bean がローカル ホームを持つ場合には必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
local-jndi-name 要素は、Bean のローカル ホームの jndi-name を指定します。Bean がリモート ホームとローカル ホームを持つ場合は、それぞれのホームに 1 つずつの JNDI 名を指定する必要があります。
例
次の例では、local-jndi-name 要素の構造を示します。
<local-jndi-name>weblogic.jndi.WLInitialContext
</local-jndi-name>
lifecycle
機能
lifecycle 要素は、WebLogic Server 内のステートフルおよびエンティティ EJB インスタンスのライフサイクルに関するオプションを定義します。現在、lifecycle 要素には、passivation-strategy という 1 つの要素だけがあります。
例
次の例では、lifecycle 要素の構造を示します。
<entity-descriptor>
<lifecycle>
<passivation-strategy>...</passivation-strategy>
</lifecycle>
</entity-descriptor>
機能
max-beans-in-cache 要素は、メモリに保持可能なこのクラスのオブジェクトの最大数を指定します。max-bean-in-cache の値に達すると、WebLogic Server では、最近クライアントに使用されていない EJB の一部に対してパッシベーションが行われます。また、エンティティ EJB のロック サービスで説明されているように、max-beans-in-cache の値は、EJB を WebLogic Server のキャッシュからいつ削除するかにも影響を与えます。
例
次の例では、WebLogic Server が AccountBean クラスのインスタンスを最大で 200 個キャッシュできるようにします。
<weblogic-enterprise-bean>
<ejb-name>AccountBean</ejb-name>
<entity-descriptor>
<entity-cache>
<max-beans-in-cache>200</max-beans-in-cache>
</entity-cache>
</entity-descriptor>
</weblogic-enterprise-bean>
指定できる値 : |
0 〜 maxBeans |
デフォルト値 : |
max Int |
要件 : |
省略可能。ステートレス セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
WebLogic Server は、すべてのステートレス セッション Bean およびメッセージ駆動型 Bean クラスに対して EJB のフリー プールを保持します。max-beans-in-free-pool 要素は、このフリー プールのサイズを定義します。デフォルトでは、max-beans-in-free-pool は無制限です。フリー プール内の Bean の最大数はメモリによってのみ制限されます。詳細については、メッセージ駆動型 Bean とステートレス セッション EJB との違いを参照してください。
例
poolを参照してください。
message-driven-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
|
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
message-driven-descriptor 要素は、メッセージ駆動型 Bean を WebLogic Server の JMS 送り先に関連付けます。この要素は、以下のデプロイメント パラメータを指定します。
例
次の例では、message-driven-descriptor スタンザの構造を示します。
<message-driven-descriptor>
<destination-jndi-name>...</destination-jndi-name>
</message-driven-descriptor>
method
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。複数の method スタンザを指定して複数の EJB メソッドをコンフィグレーションできる。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
method 要素は、エンタープライズ Bean のホームまたはリモート インタフェースのメソッドあるいはメソッドのセットを定義します。
例
method スタンザには、以下の要素を指定できます。
<method>
<description>...</description>
<ejb-name>...</ejb-name>
<method-intf>...</method-intf>
<method-name>...</method-name>
<method-params>...</method-params>
</method>
method-intf
指定できる値 : |
Home | Remote |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
method-intf は、WebLogic Server がアイソレーション レベル プロパティを適用する EJB インタフェースを指定します。この要素は、EJB のホームとリモート インタフェースで同じシグネチャを持つメソッドを区別する必要がある場合にのみ使用します。
例
methodを参照してください。
method-name
指定できる値 : |
ejb-jar.xml で定義した EJB の名前 | * |
デフォルト値 : |
なし |
要件 : |
method スタンザで必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
method-name は、WebLogic Server がアイソレーション レベルのプロパティを適用する個々の EJB メソッドの名前を指定します。アスタリスク(*)を使用して EJB のホームおよびリモート インタフェースの全メソッドを指定します。
method-name を指定すると、そのメソッドが指定した ejb-name で使用可能になります。
例
methodを参照してください。
method-param
指定できる値 : |
Java タイプのメソッド パラメータの完全修飾名 |
デフォルト値 : |
なし |
要件 : |
method-params で必須。 |
親要素 : |
weblogic-enterprise-bean transaction-isolation |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
method-param 要素には、Java タイプのメソッド パラメータの完全修飾名を指定します。
例
method-paramsを参照してください。
method-params
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean transaction-isolation |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
method-params スタンザには、各メソッド パラメータの Java タイプ名を定義する 1 つまたは複数の要素があります。
例
method-params スタンザには、次のように 1 つまたは複数の method-param 要素が含まれます。
<method-params>
<method-param>java.lang.String</method-param>
...
</method-params>
passivation-strategy
指定できる値 : |
default | transaction |
デフォルト値 : |
default |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
passivation-strategy 要素は、WebLogic Server がキャッシュにエンティティ EJB の中間的な状態を保持するかどうかを決定します。詳細については、エンティティ EJB のロック サービスを参照してください。
例
次の例では、WebLogic Server のロック動作およびキャッシュ動作に戻します。
<entity-descriptor>
<lifecycle>
<passivation-strategy>default</passivation-strategy>
</lifecycle>
</entity-descriptor>
persistence
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
persistence 要素は、WebLogic Server のエンティティ EJB に対する永続性タイプ、トランザクション コミット動作、ejbLoad() 動作、および ejbStore() 動作を決定するプロパティを定義します。
例
次の例では、persistence 要素の構造を指定します。
<entity-descriptor>
<persistence>
<is-modified-method-name>...</is-modified-method-name>
<delay-updates-until-end-of-tx>...</delay-updates-until-end-of-tx>
<finders-load-beand>...</finders-load-bean>
<persistence-type>...</persistence-type>
<db-is-shared>false</db-is-shared>
<persistence-use>...</persistence-use>
</persistence>
</entity-descriptor>
persistence-type
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
persistence-type 要素は、エンティティ EJB で使用可能な永続性サービスを定義します。複数の永続性サービスを持つ EJB をテストするために、weblogic-ejb-jar.xml で複数の persistence-type スタンザを定義できます。デプロイメントでは、persistence-use で定義した永続性タイプのみが実際に使用されます。
persistence-type には、永続性タイプを示す要素がいくつか含まれます。
例
次の例では、persistence-type スタンザのサンプルを示します。
<persistence>
<persistence-type>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>5.1.0</type-version>
<type-storage>META-INF\weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-type>
</persistence>
persistence-use
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
persistence-use 要素は persistence-type と似ていますが、この要素はデプロイ中に実際に使用される永続性サービスを定義します。persistence-use では、persistence-type で定義した type-identifier 要素と type-version 要素を使用してサービスを指定します。
例
persistence-type で定義した WebLogic Server RDBMS ベースの永続性サービスを使用して EJB をデプロイするには、次の persistence-use スタンザを使用します。
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>5.1.0</type-version>
</persistence-use>
persistent-store-dir
指定できる値 : |
完全修飾ファイルシステム パス |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
persistent-store-dir 要素は、WebLogic Server が、パッシベーションが行われたステートフル セッション Bean インスタンスの状態を格納するファイル システム ディレクトリを指定します。
例
stateful-session-descriptorを参照してください。
pool
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
pool 要素は、ステートレス セッション EJB およびメッセージ駆動型 Bean の WebLogic Server フリー プールの動作をコンフィグレーションします。オプションは以下のとおりです。
例
pool スタンザには、以下の要素を指定できます。
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>500</max-beans-in-free-pool>
<initial-beans-in-free-pool>250</initial-beans-in-free-pool>
</pool>
</stateless-session-descriptor>
principal-name
指定できる値 : |
有効な WebLogic Server プリンシパル名 |
デフォルト値 : |
なし |
要件 : |
security-role-assignment スタンザには、最低 1 つの principal-name が必須。各 role-name に対しては、複数の principal-name を定義できる。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
principal-name は、指定した role-name に適用される実際の WebLogic Server プリンシパルの名前を指定します。
例
security-role-assignmentを参照してください。
provider-url
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
initial-context-factory および connection-factory-jndi-name と組み合わせて使用する。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
provider-url 要素は、InitialContext が使用する URL プロバイダを指定します。通常、指定するのはホスト : ポートで、initial-context-factory および connection-factory-jndi-name と組み合わせて使用します。
例
次の例では、provider-url 要素の構造を指定します。
<message-driven-descriptor>
<provider-url>WeblogicURL:Port</provider-url>
</message-driven-descriptor>
read-timeout-seconds
指定できる値 : |
0 〜maxSeconds。maxSeconds は int の最大値。 |
デフォルト値 : |
600 |
要件 : |
省略可能。エンティティ EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
read-timeout-seconds 要素では、Read-Only エンティティ Bean での各 ejbLoad() 呼び出しの間隔を秒数で指定します。デフォルトでは、read-timeout-seconds は 600 に設定されており、WebLogic Server は、Bean がキャッシュされた場合にのみ ejbLoad() を呼び出します。
例
次の例では、インスタンスが最初にキャッシュされた場合にのみ WebLogic Server が AccountBean クラスのインスタンスに対して ejbLoad() を呼び出します。
<weblogic-enterprise-bean>
<ejb-name>AccountBean</ejb-name>
<entity-descriptor>
<entity-cache>
<read-timeout-seconds>0</read-timeout-seconds>
</entity-cache>
</entity-descriptor>
</weblogic-enterprise-bean>
reference-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
reference-descriptor 要素では、ejb-jar.xml ファイル内の参照が、WebLogic Server で実際に使用可能なリソース ファクトリと EJB の JNDI 名にマップされます。
例
reference-descriptor スタンザには、リソース ファクトリ参照および EJB 参照を定義するために 1 つまたは複数のスタンザが追加されます。次の例に、これらの要素の構造を示します。
<reference-descriptor>
<resource-description>
...
</resource-description>
<ejb-reference-description>
...
</ejb-reference-description>
</reference-descriptor>
relationship-description
現在、この要素は WebLogic Server でサポートされていません。
replication-type
機能
replication-type 要素は、クラスタ内の WebLogic Server インスタンスのステートフル セッション EJB の状態を WebLogic Server がレプリケートするかどうかを決定します。InMemory を指定した場合、EJB の状態はレプリケートされます。InMemory を指定した場合、状態はレプリケートされます。
詳細については、ステートフル セッション EJB のインメモリ レプリケーションを参照してください。
例
stateful-session-clusteringを参照してください。
res-env-ref-name
指定できる値 : |
ejb-jar.xml ファイルにある有効なリソース環境参照名 |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
res-env-ref-name はリソース環境参照名を指定します。
例
resource-descriptionを参照してください。
res-ref-name
機能
res-ref-name は resourcefactory 参照名を指定します。このリソース参照は、EJB プロバイダが ejb-jar.xml デプロイメント ファイル内に配置する参照です。
例
resource-descriptionを参照してください。
resource-description
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
resource-description 要素は、ejb-jar.xml で定義されたリソース参照を、WebLogic Server で使用可能な実際のリソースの JNDI 名にマップします。
例
resource-description スタンザには、以下のように要素を追加できます。
<reference-descriptor>
<resource-description>
<res-ref-name>.. .</res-ref-name>
<jndi-name>...</jndi-name>
</resource-description>
<ejb-reference-description>
<ejb-ref-name>.. .</ejb-ref-name>
<jndi-name>.. .</jndi-name>
</ejb-reference-description>
</reference-descriptor>
resource-env-description
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
resource-env-description 要素は、ejb-jar.xml で定義されたリソース環境参照を、WebLogic Server で使用可能な実際のリソースの JNDI 名にマップします。
例
resource-env-description スタンザには、以下のように要素を追加できます。
<reference-descriptor>
<resource-env-description>
<res-env-ref-name>.. .</res-env-ref-name>
<jndi-name>...</jndi-name>
<reference-env-description>
</reference-descriptor>
role-name
指定できる値 : |
ejb-jar.xml で定義した EJB ロール名 |
デフォルト値 : |
なし |
要件 : |
|
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
role-name 要素は、EJB プロバイダが ejb-jar.xml デプロイメント ファイルに指定したアプリケーションのロール名を示します。スタンザの次の principal-name 要素で、WebLogic Server プリンシパルを、指定した role-name にマップします。
例
security-role-assignmentを参照してください。
run-as-identity-principal
注意: この要素は廃止されています。以下の情報は、下位互換性のためだけに使用してください。
指定できる値 : |
ejb-jar.xml で定義した、ID として使用するプリンシパル |
デフォルト値 : |
なし |
要件 : |
|
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
run-as-identity-principal 要素は、ejb-jar.xml で設定した security-identity.run-as-specified-identity を持つ Bean の ID として使用するプリンシパルを指定します。
この要素で指定したプリンシパルは、run-as-specified--identity ロールにマップされるプリンシパルのいずれかである必要があります
例
run-as-identity-principal スタンザには、以下のように要素を追加できます。
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<run-as-identity-principal>Fred</run-as-identity-principal>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
security-role-assignment
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
ejb-jar.xml がアプリケーション ロールを定義する場合に必須。 |
親要素 : |
なし |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
security-role-assignment スタンザは、ejb-jar.xml ファイル内のアプリケーション ロールを、WebLogic Server で使用可能なセキュリティ プリンシパル名にマップします。
例
security-role-assignment スタンザには、以下の要素のうち 1 つまたは複数を指定できます。
<security-role-assignment>
<role-name>PayrollAdmin</role-name>
<principal-name>Tanya</principal-name>
<principal-name>system</principal-name>
...
</security-role-assignment>
stateful-session-cache
機能
stateful-session-cache 要素は、WebLogic Server 内のステートフル セッション EJB インスタンスのキャッシュに使用する以下のオプションを定義します。
WebLogic Server で使用可能なキャッシュ サービスについては、WebLogic Server における EJB のライフサイクルを参照してください。
例
次の例では、stateful-session-descriptor 要素の指定方法を示します。
<stateful-session-cache>
<max-beans-in-cache>...</max-beans-in-cache>
<idle-timeout-seconds>...</idle-timeout-seconds>
<cache-type>...<cache-type>
</stateful-session-cache>
stateful-session-clustering
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。クラスタ内のステートフル セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateful-session-clustering 要素には、WebLogic Server がクラスタ内のステートフル セッション EJB インスタンスをレプリケートする方法を決める以下のオプションを指定します。
例
次の例では、entity-clustering スタンザの構造を示します。
<stateful-session-clustering>
<home-is-clusterable>true</home-is-clusterable>
<home-load-algorithm>random</home-load-algorithm>
<home-call-router-class-name>beanRouter</home-call-router-class-name>
<replication-type>InMemory</replication-type>
</stateful-session-clustering>
stateful-session-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
.jar 内のステートフル セッション EJB ごとに 1 つの stateful-session-descriptor スタンザが必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateful-session-descriptor 要素は、WebLogic Server のステートフル セッション EJB に適用する以下のデプロイメント パラメータを指定します。
例
次の例では、stateful-session-descriptor スタンザの構造を示します。
<stateful-session-descriptor>
<stateful-session-cache>...</stateful-session-cache>
<lifecycle>...</lifecycle>
<persistence>...</persistence>
<allow-concurrent-calls>...</allow-concurrent-calls>
<persistent-store-dir>/weblogic/myserver</persistent-store-dir>
<stateful-session-clustering>...</stateful-session-clustering>
</stateful-session-descriptor>
stateless-bean-call-router-class-name
指定できる値 : |
有効なルータ クラス名 |
デフォルト値 : |
なし |
要件 : |
省略可能。クラスタのステートレス セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateless-bean-call-router-class-name 要素は、Bean メソッド呼び出しのルーティングに使用するカスタム クラスの名前を指定します。このクラスは weblogic.rmi.extensions.CallRouter() を実装する必要があります。指定すると、このクラスのインスタンスは各メソッド呼び出しの前に呼び出されます。ルータ クラスでは、メソッドのパラメータを基に、ルーティングするサーバを選択できます。このクラスは、サーバ名を返すか、または現在のロード アルゴリズムがサーバを選択する必要があることを示す null を返します。
例
stateless-clusteringを参照してください。
stateless-bean-is-clusterable
指定できる値 : |
true | false |
デフォルト値 : |
true |
要件 : |
省略可能。クラスタのステートレス セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateless-bean-is-clusterable が true の場合、EJB をクラスタ内の複数の WebLogic Server からデプロイできます。ホーム スタブの呼び出しは、Bean がデプロイされるサーバ間で負荷が分散されます。Bean のホスト サーバにアクセスできなかった場合、呼び出しは、Bean を提供する他のサーバに自動的にフェイルオーバします。
例
stateless-clusteringを参照してください。
stateless-bean-load-algorithm
機能
stateless-bean-load-algorithm は、EJB ホームのレプリカ間でのロード バランシングに使用するアルゴリズムを指定します。このプロパティを定義しない場合、WebLogic Server はサーバ プロパティ weblogic.cluster.defaultLoadAlgorithm で指定されたアルゴリズムを使用します。
stateless-bean-load-algorithm を以下のいずれかの値で定義できます。
例
stateless-clusteringを参照してください。
stateless-bean-methods-are-idempotent
指定できる値 : |
true | false |
デフォルト値 : |
false |
要件 : |
省略可能。クラスタのステートレス セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
この要素は、true または false に設定できます。同一引数での同一メソッドの多重呼び出しが 1 回だけの呼び出しとまったく同じになるように設計されている Bean に対してのみ、stateless-bean-methods-are-idempotent を「true」に設定します。これによって、フェイルオーバ ハンドラは、失敗した呼び出しが失敗したサーバで実際に完了していたかどうかがわからなくても失敗した呼び出しを再試行できます。このプロパティを true に設定すると、Bean を提供する他のサーバが使用できるようになっている限り、Bean スタブは障害から自動的に回復できます。
例
stateless-clusteringを参照してください。
stateless-clustering
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。クラスタのステートレス セッション EJB でのみ有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateless-clustering 要素は、WebLogic Server がクラスタ内のステートレス セッション EJB インスタンスをレプリケートする方法を決める以下のオプションを指定します。
例
次の例では、stateless-clustering スタンザの構造を示します。
<stateless-clustering>
<stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
<stateless-bean-load-algorithm>random</stateless-bean-load-algorithm>
<stateless-bean-call-router-class-name>beanRouter</stateless-bean-call-router-class-name>
<stateless-bean-methods-are-idempotent>true</stateless-bean-methods-are-idempotent>
</stateless-clustering>
stateless-session-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
.jar のステートレス セッション EJB ごとに 1 つの stateless-session-descriptor 要素が必須。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
stateless-session-descriptor 要素は、WebLogic Server のステートレス セッション EJB に対するキャッシュ、クラスタ化、および永続性などのデプロイメント パラメータを定義します。
例
次の例では、stateless-session-descriptor スタンザの構造を示します。
<stateless-session-descriptor>
<pool>...</pool>
<stateless-clustering>...</stateless-clustering>
</stateless-session-descriptor>
transaction-descriptor
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
transaction-descriptor 要素は、WebLogic Server のトランザクション動作を定義するオプションを指定します。現在、このスタンザには trans-timeout-seconds という要素のみがあります。 trans-timeout-seconds.
例
次の例では、transaction-descriptor スタンザの構造を示します。
<transaction-descriptor>
<trans-timeout-seconds>20</trans-timeout-seconds>
<transaction-descriptor>
transaction-isolation
指定できる値 : |
なし(XML スタンザ) |
デフォルト値 : |
なし(XML スタンザ) |
要件 : |
省略可能。 |
親要素 : |
weblogic-enterprise-bean |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
transaction-isolation 要素は、EJB に対してメソッド レベル トランザクションのアイソレーション設定を定義します。
例
transaction-isolation スタンザには、以下の要素を指定できます。
<transaction-isolation>
<isolation-level>Serializable</isolation-level>
<method>
<description>...</description>
<ejb-name>...</ejb-name>
<method-intf>...</method-intf>
<method-name>...</method-name>
<method-params>...</method-params>
</method>
</transaction-isolation>
trans-timeout-seconds
指定できる値 : |
0 〜 max |
デフォルト値 : |
30 |
要件 : |
省略可能。任意のタイプの EJB で有効。 |
親要素 : |
weblogic-enterprise-bean, |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
trans-timeout-seconds 要素は、EJB のコンテナで初期化されたトランザクションの最長継続時間を指定します。トランザクションの継続時間が trans-timeout-seconds の値を超えると、WebLogic Server によってトランザクションがロールバックされます。
例
transaction-descriptorを参照してください。
type-identifier
機能
type-identifier 要素には、エンティティ EJB の永続性タイプを示すテキストを指定します。WebLogic Server RDBMS ベースの永続性では WebLogic_CMP_RDBMS という識別子を使用します。別の永続性ベンダを使用している場合、正しい type-identifier の詳細についてはベンダのマニュアルを参照してください。
例
WebLogic Server RDBMS ベースの永続性に関する完全な persistence-type の定義の例については、persistence-typeを参照してください。
type-storage
指定できる値 : |
有効な文字列 |
デフォルト値 : |
なし |
要件 : |
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須。 |
親要素 : |
weblogic-enterprise-bean, persistence-type |
デプロイメント ファイル : |
weblogic-ejb-jar.xml |
機能
type-storage 要素では、この永続性タイプのデータを格納するファイルの絶対パスを定義します。パスは、EJB の .jar デプロイメント ファイルまたはデプロイメント ディレクトリの最上位を基準にしたファイルの場所を指定する必要があります。
WebLogic Server RDBMS ベースの永続性では通常、Bean の永続性データを格納するのに weblogic-cmp-rdbms-jar.xml という XML ファイルを使用します。このファイルは、.jar ファイルの META-INF サブディレクトリにあります。
例
WebLogic Server RDBMS ベースの永続性に関する完全な persistence-type の定義の例については、persistence-typeを参照してください。
type-version
機能
type-version 要素では、指定した永続性タイプのバージョンを指定します。
注意: WebLogic Server の RDBMS ベースの永続性を使用する場合、指定したバージョンは、WebLogic Server の RDBMS 永続性バージョンと完全に一致させる必要があります。バージョンが一致していないと、次のエラーが発生します。
weblogic.ejb.persistence.PersistenceSetupException: Error initializing the CMP Persistence Type for your bean: No installed Persistence Type matches the signature of (identifier 'Weblogic_CMP_RDBMS', version 'version_number').
例
WebLogic Server RDBMS ベースの永続性に関する完全な persistence-type の定義の例については、「persistence-type」を参照してください。
weblogic-ejb-jar
機能
weblogic-ejb-jar は、EJB デプロイメント記述子の weblogic コンポーネントのルート要素です。
weblogic-enterprise-bean
機能
weblogic-enterprise-bean 要素には、WebLogic Server 内で利用可能な Bean に関するデプロイメント情報が含まれます。
5.1 の weblogic-ejb-jar.xml デプロイメント記述子ファイルの構造
WebLogic Server 5.1 の weblogic-ejb-jar.xml ファイルは、EJB 1.1 Bean で使用する EJB 文書型定義(DTD)を定義します。これらのデプロイメント記述子要素は WebLogic 固有です。WebLogic Server 5.1 の weblogic-ejb-jar.xml の最上位要素は次のとおりです。
5.1 の weblogic-ejb-jar.xml デプロイメント記述子要素
以下の節では、WebLogic Server 5.1 の weblogic-ejb-jar.xml デプロイメント記述子の要素について説明します。
caching-descriptor
caching-descriptor スタンザは、WebLogic Server キャッシュ内の EJB の数、および EJB に対してパッシベーションが行われるまたは EJB がプールされるまでの時間の長さに影響します。このスタンザは、各要素だけでなく、スタンザ全体が省略可能です。要素が定義されていない場合、WebLogic Server ではデフォルト値が使用されます。
以下は、サンプルの caching-descriptor スタンザであり、この節で説明するキャッシング要素を示しています。
<caching-descriptor>
<max-beans-in-free-pool>500</max-beans-in-free-pool>
<initial-beans-in-free-pool>50</initial-beans-in-free-pool>
<max-beans-in-cache>1000</max-beans-in-cache>
<idle-timeout-seconds>20</idle-timeout-seconds>
<cache-strategy>Read-Write</cache-strategy>
<read-timeout-seconds>0</read-timeout-seconds>
</caching-descriptor>
max-beans-in-free-pool
注意: この要素は、ステートレス セッション EJB に対してのみ有効です。
WebLogic Server では、すべての Bean クラスに対して EJB のフリー プールが維持管理されています。この省略可能な要素では、フリー プールのサイズを定義します。デフォルトでは、max-beans-in-free-pool は無制限です。フリー プール内の Bean の最大数はメモリによってのみ制限されます。詳細については、WebLogic Server EJB コンテナとサポートされるサービスの ステートフル セッション EJB インスタンスのアクティブ化と使用を参照してください。
initial-beans-in-free-pool
注意: この要素は、ステートレス セッション EJB に対してのみ有効です。
initial-bean-in-free-pool の値を指定すると、WebLogic Server では、起動時に、指定した数の Bean インスタンスがフリー プールに生成されます。この方法で Bean インスタンスをフリー プールに格納しておくと、要求が来てから新しいインスタンスを生成せずに Bean に対する初期要求が可能になるため、EJB の初期応答時間が短縮されます。
initial-bean-in-free-pool が定義されていない場合のデフォルト値は 0 です。
max-beans-in-cache
注意: この要素は、ステートフル セッション EJB に対してのみ有効です。
この要素では、メモリの許容範囲内で、このクラスのオブジェクトの最大数を指定します。max-bean-in-cache の値に達すると、WebLogic Server では、最近クライアントに使用されていない EJB の一部に対してパッシベーションが行われます。また、ステートフル セッション EJB インスタンスの削除で説明されているように、max-beans-in-cache の値は、EJB を WebLogic Server のキャッシュからいつ削除するかにも影響を与えます。
max-beans-in-cache のデフォルト値は 100 です。
idle-timeout-seconds
idle-timeout-seconds では、ステートフル EJB がキャッシュに保持される最長時間を定義します。この時間を過ぎると、キャッシュ内の Bean の数が max-beans-in-cache で指定した値を超えている場合、WebLogic Server では Bean インスタンスが削除されます。詳細については、WebLogic Server における EJB のライフサイクルを参照してください。
定義されていない場合、idle-timeout-seconds のデフォルト値は 600 です。
cache-strategy
cache-strategy 要素には、以下のいずれかを指定できます。
デフォルト値は Read-Write です。詳細については、エンティティ EJB の read-only への設定を参照してください。
read-timeout-seconds
read-timeout-seconds 要素では、Read-Only エンティティ Bean での各 ejbLoad() 呼び出しの間隔を秒数で指定します。デフォルトでは、read-timeout-seconds は 600 秒に設定されています。この値を 0 に設定すると、WebLogic Server では、その Bean がキャッシュされた場合にのみ、ejbLoad が呼び出されます。
persistence-descriptor
persistence-descriptor スタンザでは、エンティティ EJB に対する永続性オプションを指定します。以下に、persistence-descriptor スタンザに含まれるすべての要素を示します。
<persistence-descriptor>
<is-modified-method-name>. . .</is-modified-method-name>
<delay-updates-until-end-of-tx>. . .</delay-updates-until-end-of-tx>
<persistence-type>
<type-identifier>. . .</type-identifier>
<type-version>. . .</type-version>
<type-storage>. . .</type-storage>
</persistence-type>
<db-is-shared>. . .</db-is-shared>
<stateful-session-persistent-store-dir>
. . .
</stateful-session-persistent-store-dir>
<persistence-use>. . .</persistence-use>
</persistence-descriptor>
is-modified-method-name
is-modified-method-name では、EJB の保存時に WebLogic Server によって呼び出されるメソッドを指定します。指定したメソッドはブール値を返す必要があります。メソッドを指定しない場合、WebLogic Server では、EJB は常に変更されていると見なされて保存されます。
メソッドを指定して適切な値を設定すると、パフォーマンスが向上します。ただし、メソッドの戻り値にエラーがあると、データに矛盾が発生する場合があります。詳細については、is-modified-method-name を使用した ejbStore() の呼び出しの制限(EJB 1.1 のみ)を参照してください。
delay-updates-until-end-of-tx
トランザクションの完了時にトランザクションですべての Bean の永続ストレージを更新するには、このプロパティを true (デフォルト)に設定します。通常、これによって不要な更新を防ぐことができるため、パフォーマンスが向上します。ただし、データベース トランザクション内のデータベース更新の順序は保持されません。
データベースがアイソレーション レベルとして TRANSACTION_READ_UNCOMMITTED を使用している場合は、進行中のトランザクションに関する中間結果を他のデータベースのユーザに表示することもできます。この場合、delay-updates-until-end-of-tx を false に設定して、各メソッド呼び出しの完了時に Bean の永続ストレージを更新するように指定します。詳細については、エンティティ EJB に対する ejbLoad() と ejbStore() の動作を参照してください。
注意: delay-updates-until-end-of-tx を false に設定しても、各メソッド呼び出しの後にデータベース更新が「コミットされた」状態になるわけではありません。更新はデータベースに送信されるだけです。更新は、トランザクションの完了時にのみデータベースにコミットまたはロールバックされます。
persistence-type
persistence-type では、EJB で使用可能な永続性サービスを定義します。複数の永続性サービスを持つ EJB をテストするために、weblogic-ejb-jar.xml で複数の persistence-type エントリを定義できます。デプロイメントでは、persistence-use で定義した永続性タイプのみが実際に使用されます。
persistence-type には、サービスのプロパティを定義する要素が含まれます。
注意: 指定したバージョンは、WebLogic Server の RDBMS の永続性のバージョンと正確に一致している必要があります。バージョンが一致していないと、次のエラーが発生します。
weblogic.ejb.persistence.PersistenceSetupException: Error initializing the CMP Persistence Type for your bean: No installed Persistence Type matches the signature of (identifier 'Weblogic_CMP_RDBMS', version 'version_number').
以下は、WebLogic Server RDBMS の永続性について適切な値が指定されている persistence-type スタンザの例です。
<persistence-type>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>5.1.0</type-version>
<type-storage>META-INF\weblogic-cmp-rdbms-jar.xml</type-storage>
</persistence-type>
db-is-shared
db-is-shared 要素はエンティティ Bean に対してのみ有効です。true(デフォルト値)に設定すると、WebLogic Server では、EJB データがトランザクション間で変更されると見なされ、各トランザクションの開始時にデータが再ロードされます。false に設定すると、WebLogic Server では、永続ストレージの EJB データに排他的にアクセスすると見なされます。詳細については、db-is-shared を使用した ejbLoad() の呼び出しの制限を参照してください。
stateful-session-persistent-store-dir
stateful-session-persistent-store-dir 要素では、WebLogic Server で、パッシベーションが行われたステートフル セッション Bean インスタンスの状態が格納されるファイル システム ディレクトリを指定します。
persistence-use
persistence-use プロパティは persistence-type とほぼ同じですが、このプロパティはデプロイ中に実際に使用される永続性サービスを定義します。persistence-use では、persistence-type で定義されている type-identifier 要素と type-version 要素を使用してサービスを指定します。
たとえば、persistence-type で定義されている WebLogic Server RDBMS ベースの永続性サービスを使用して実際に EJB をデプロイする場合、persistence-use スタンザは次のようになります。
<persistence-use>
<type-identifier>WebLogic_CMP_RDBMS</type-identifier>
<type-version>5.1.0</type-version>
</persistence-use>
clustering-descriptor
clustering-descriptor スタンザでは、WebLogic Server クラスタにデプロイされた EJB のレプリケーション プロパティと動作を定義します。clustering-descriptor スタンザとその各要素は省略可能であり、単一サーバ システムには適用できません。
以下に、clustering-descriptor スタンザに含まれるすべての要素を示します。
<clustering-descriptor>
<home-is-clusterable>. . .</home-is-clusterable>
<home-load-algorithm>. . .</home-load-algorithm>
<home-call-router-class-name>. . .</home-call-router-class-name>
<stateless-bean-is-clusterable>. . .</stateless-bean-is-clusterable>
<stateless-bean-load-algorithm>. . .</stateless-bean-load-algorithm>
<stateless-bean-call-router-class-name>. . .</stateless-bean-call-router-class-name>
<stateless-bean-methods-are-idempotent>. . .</stateless-bean-methods-are-idempotent>
</clustering-descriptor>
home-is-clusterable
この要素は、true または false に設定できます。home-is-clusterable が「true」の場合、クラスタ内の複数の WebLogic Server から EJB をデプロイできます。ホーム スタブの呼び出しは、Bean がデプロイされるサーバ間で負荷が分散されます。Bean のホスト サーバにアクセスできなかった場合、呼び出しは、Bean を提供する他のサーバに自動的にフェイルオーバします。
home-load-algorithm
home-load-algorithm では、EJB ホームのレプリカ間でのロード バランシングに使用するアルゴリズムを指定します。このプロパティを定義しない場合、WebLogic Server はサーバ プロパティ weblogic.cluster.defaultLoadAlgorithm で指定されたアルゴリズムを使用します。
home-load-algorithm は以下のいずれかの値に定義できます。
home-call-router-class-name
home-call-router-class-name では、Bean メソッド呼び出しのルーティングに使用するカスタム クラスを指定します。このクラスは weblogic.rmi.extensions.CallRouter() を実装する必要があります。指定すると、このクラスのインスタンスは各メソッド呼び出しの前に呼び出されます。ルータ クラスでは、メソッドのパラメータを基に、ルーティングするサーバを選択できます。このクラスは、サーバ名を返すか、または現在のロード アルゴリズムがサーバを選択する必要があることを示す null を返します。
stateless-bean-is-clusterable
このプロパティは home-is-clusterable に似ていますが、ステートレス セッション EJB にのみ適用できます。
stateless-bean-load-algorithm
このプロパティは home-load-algorithm に似ていますが、ステートレス セッション EJB にのみ適用できます。
stateless-bean-call-router-class-name
このプロパティは home-call-router-class-name に似ていますが、ステートレス セッション EJB にのみ適用できます。
stateless-bean-methods-are-idempotent
この要素は、true または false に設定できます。同一引数での同一メソッドの多重呼び出しが 1 回だけの呼び出しとまったく同じになるように設計されている Bean に対してのみ、stateless-bean-methods-are-idempotent を true に設定します。これによって、フェイルオーバ ハンドラは、失敗した呼び出しが失敗したサーバで実際に完了していたかどうかがわからなくても失敗した呼び出しを再試行できます。このプロパティを true に設定すると、Bean を提供する他のサーバが使用できるようになっている限り、Bean スタブは障害から自動的に回復できます。
注意: このプロパティは、ステートレス セッション EJB にのみ適用できます。
transaction-descriptor
transaction-descriptor スタンザには、WebLogic Server のトランザクション動作を定義する要素があります。現在、このスタンザには trans-timeout-seconds という要素のみがあります。
<transaction-descriptor>
<trans-timeout-seconds>20</trans-timeout-seconds>
<transaction-descriptor>
trans-timeout-seconds
trans-timeout-seconds 要素は、EJB のコンテナで初期化されたトランザクションの最長継続時間を指定します。トランザクションの継続時間が trans-timeout-seconds の値を超えると、WebLogic Server によってトランザクションがロールバックされます。
trans-timeout-seconds に値を指定しなかった場合、コンテナで初期化されたトランザクションはデフォルトで 30 秒後にタイムアウトになります。
reference-descriptor
reference-descriptor スタンザでは、ejb-jar.xml ファイル内の参照が、WebLogic Server で実際に使用可能なリソース ファクトリと EJB の JNDI 名にマップされます。
reference-descriptor スタンザには、リソース ファクトリ参照および EJB 参照を定義するために 1 つまたは複数のスタンザが追加されます。次の例に、これらの要素の構造を示します。
<reference-descriptor>
<resource-description>
<res-ref-name>.. .</res-ref-name>
<jndi-name>.. .</jndi-name>
</resource-description>
<ejb-reference-description>
<ejb-ref-name>.. .</ejb-ref-name>
<jndi-name>.. .</jndi-name>
</ejb-reference-description>
</reference-descriptor>
resource-description
以下の要素で、各 resource-description を定義します。
ejb-reference-description
以下の要素で、各 ejb-reference-description を定義します。
enable-call-by-reference
デフォルトでは、同じサーバから呼び出された EJB メソッドは引数を参照で渡す。パラメータはコピーされないので、これによってメソッド呼び出しのパフォーマンスが向上する。
enable-call-by-reference を false に設定すると、EJBE 1.1 の仕様に従って EJB メソッドへのパラメータがコピーされ(値で渡され)ます。EJB がリモートで(同じサーバ以外から)呼び出される場合は、常に値で渡す必要があります。
jndi-name
jndi-name 要素は、Bean、リソース、または参照の JNDI 名を指定します。
transaction-isolation
transaction-isolation スタンザでは、EJB メソッドに対するトランザクションのアイソレーション レベルを指定します。このスタンザは、EJB メソッドの範囲に適用される 1 つまたは複数の isolation-level 要素で構成されます。次に例を示します。
<transaction-isolation>
<isolation-level>Serializable</isolation-level>
<method>
<description>...</description>
<ejb-name>...</ejb-name>
<method-intf>...</method-intf>
<method-name>...</method-name>
<method-params>...</method-params>
</method>
</transaction-isolation>
以降の節では、transaction-isolation 内の各要素について説明します。
isolation-level
isolation-level では、特定の EJB メソッドに適用される有効なトランザクションのアイソレーション レベルを定義します。isolation-level には以下の値を指定できます。
異なるアイソレーション レベルの関係と各アイソレーション レベルのサポートの詳細については、各データベースのマニュアルを参照してください。
method
method スタンザは、アイソレーション レベルを適用する EJB メソッドを定義します。method では、以下の要素を使用してメソッドの範囲を定義します。
たとえば、次の method スタンザは、「AccountBean」 EJB 内のすべてのメソッドを示しています。
<method>
<ejb-name>AccountBean</ejb-name>
<method-name>*</method-name>
</method>
次の method スタンザは、「AccountBean」のリモート インタフェース内のすべてのメソッドを示しています。
<method>
<ejb-name>AccountBean</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
security-role-assignment
security-role-assignment スタンザでは、ejb-jar.xml ファイル内のアプリケーション ロールが、WebLogic Server で使用可能なセキュリティ プリンシパル名にマップされます。
security-role-assignment には、以下の要素のうち 1 つまたは複数を指定できます。
![]() |
![]() |
![]() |