Oracle® Fusion Middleware Oracle WebLogic Server エンタープライズ JavaBeans (EJB) プログラマーズ ガイド 11g リリース 1 (10.3.1) B55528-01 |
|
![]() 戻る |
![]() 次へ |
以下の節では、WebLogic 固有のデプロイメント記述子である weblogic-ejb-jar.xml
の要素について説明します。このリリースの WebLogic Server では、weblogic-ejb-jar.xml
は XML スキーマ (XSD) に基づいています。旧リリースでは、weblogic-ejb-jar.xml
は文書型定義 (DTD) に基づいていました。下位互換性を保持するために、このリリースの WebLogic Server は XSD ベースと DTD ベースの EJB 記述子をサポートしています。また、このリリースでは、EJB コンテナは従来の DTD ベースの記述子もすべてサポートしているので、DTD ベースのデプロイメント記述子を使用するアプリケーションも記述子を変更せずにデプロイできます。
詳細情報
weblogic-ejb-jar.xml
に必要な XML スキーマ定義とネームスペース宣言、および文書型定義と DOCTYPE ヘッダについては、「デプロイメント記述子スキーマおよび文書型定義リファレンス」を参照してください。
weblogic-cmp-jar.xml
ファイルについては、「weblogic-cmp-jar.xml デプロイメント記述子のリファレンス」を参照してください。
EJB 1.1 デプロイメント記述子の要素については、「EJB 1.1 ユーザへの重要な情報」を参照してください。
WebLogic Server の weblogic-ejb-jar.xml
デプロイメント記述子ファイルには、WebLogic Server 固有の要素を記述します。
WebLogic Server の weblogic-ejb-jar.xml
の最上位要素は次のとおりです。
description
weblogic-enterprise-bean
ejb-name
entity-descriptor | stateless-session-descriptor | stateful-session-descriptor | message-driven-descriptor
transaction-descriptor
iiop-security-descriptor
enable-call-by-reference
network-access-point
clients-on-same-server
run-as-principal-name
create-as-principal-name
remove-as-principal-name
passivate-as-principal-name
jndi-name
local-jndi-name
dispatch-policy
remote-client-timeout
stick-to-first-server
security-role-assignment
run-as-role-assignment
security-permission
transaction-isolation
message-destination-descriptor
idempotent-methods
retry-methods-on-rollback
enable-bean-class-redeploy
timer-implementation
disable-warning
work-manager
component-factory-class-name
weblogic-compatibility
以下の weblogic-ejb-jar.xml
要素のリストには、このリリースの WebLogic Server でサポートされているすべての要素が含まれています。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean
stateful-session-descriptor
ステートフル セッション Bean インスタンスがメソッドの同時呼び出しを許可するかどうかを指定します。デフォルトでは、EJB の仕様に従って allows-concurrent-calls
は False
であり、ステートフル セッション Bean のインスタンスでメソッド呼び出しを処理しているときにまた別の (同時) メソッド呼び出しがサーバに到着すると WebLogic Server から RemoteException
が送出されます。
True
に設定すると、EJB コンテナはメソッドの同時呼び出しをブロックするため、前の呼び出しが完了してから次のメソッドが呼び出されるようになります。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean stateful-session-descriptor
ステートフル セッション Bean の remove
メソッドをトランザクション コンテキスト内で呼び出すことができることを指定します。
注意 : Synchronization インタフェースを実装しているステートフル セッション Bean では、このタグを使用し、その後トランザクション終了前に remove を呼び出すことがないようにしてください。それが行われた場合、EJB コンテナは同期コールバックを呼び出しません。 |
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache または entity cache-ref
以前の db-is-shared
要素に相当し、EJB コンテナがエンティティ Bean の永続データをトランザクション間でキャッシュするかどうかを指定します。
EJB コンテナによるデータの長期キャッシングの実行を有効にする場合、True
を指定します。EJB コンテナによるデータの短期キャッシングの実行を有効にする場合、False
を指定します。
読み込み専用 Bean の場合、WebLogic Server はこれの長期キャッシングを常に実行するので、cache-between-transactions
要素の値は無視されます。
詳細については、「cache-between-transactions によるデータベース読み込みの制限 (長期キャッシング)」を参照してください。
指定できる値 : NRU | LRU
デフォルト値 : NRU
親要素 :
weblogic-enterprise-bean stateful-session-cache
EJB がキャッシュから削除される順番を指定します。値は次のとおりです。
最長時間未使用 (LRU : Least Recently Used)
最近未使用 (NRU : Not Recently Used)
NRU の最小キャッシュ サイズは 8 です。max-beans-in-cache
が 3 より小さい場合、WebLogic Server では max-beans-in-cache
の値に 8 が使用されます。
指定できる値 : none | supported | required
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor
指定できる値 : none | supported | required
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor transport-requirements
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean
EJB がデプロイされた際、WebLogic Server がこの EJB に JNDI の通知を送るかどうかが指定されます。この属性が False
(デフォルト) の場合、WebLogic Server クラスタでは、ある特定のサーバ上にあるこの EJB の場所を示すために、自動的に JNDI ツリーを更新します。これにより、そのクライアントが同じサーバ上で連結されてなくても、すべてのクライアントがこの EJB にアクセスできるようになります。
EJB にアクセスするクライアントのすべてが、その Bean がデプロイされているのと同じサーバ上からアクセスすることが分かっている場合には、clients-on-same-server
を True
に設定できます。この場合、EJB がデプロイされる際、WebLogic Server クラスタは JNDI の通知をこの EJB に送信しません。クラスタ内の JNDI の更新ではマルチキャスト トラフィックが利用されるため、clients-on-same-server
を True
に設定することにより大容量のクラスタでの起動時間を短縮できます。
詳細については、『Oracle Fusion Middleware Oracle WebLogic Server クラスタの使い方』の「連結されたオブジェクトの最適化」を参照してください。
指定できる値 : Exclusive | Database | ReadOnly | Optimistic
デフォルト値 : Database
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache
または
weblogic-enterprise-bean entity-descriptor entity-cache-ref
コンテナがエンティティ Bean への同時アクセスを管理する方法を指定します。以下の 4 つの値のいずれかに設定します。
Exclusive
を指定すると、Bean がトランザクションに関連付けられている場合、WebLogic Server はキャッシュされたエンティティ EJB インスタンスを排他的にロックする。EJB インスタンスに対する要求は、トランザクションが完了するまでブロックされます。このオプションは、WebLogic Server 3.1 ~ 5.1 までのデフォルトのロック動作です。
Database
を設定すると、WebLogic Server はエンティティ EJB に対する要求のロックを基底のデータストアに委ねる。Database
同時方式では、WebLogic Server は、独立したエンティティ Bean インスタンスを割り当て、ロックとキャッシングをデータベースが処理できるにようにします。これは現在のデフォルト オプションです。
ReadOnly
は、読み込み専用エンティティ Bean で使用される。複数の要求が並行して処理されるように各トランザクションで新しいインスタンスをアクティブ化します。WebLogic Server は、read-timeout-seconds
パラメータに基づいて ReadOnly
Bean の ejbLoad()
を呼び出します。
Optimistic
では、トランザクションの間に EJB コンテナまたはデータベースでロックを行わない。EJB コンテナは、トランザクションをコミットする前に、あるトランザクションが更新したデータが変化していないことを確かめます。更新データのどれかが変わっていた場合、EJB コンテナはトランザクションをロールバックします。
注意 : concurrency-strategy が Optimistic である Bean がクラスタにデプロイされており、クラスタのメンバーがその Bean を更新した場合、EJB コンテナは、クラスタ内のすべてのサーバに存在するその Bean のすべてのコピーを無効にしようとします。この動作を無効にするには、weblogic-cmp-jar.xml の cluster-invalidation-disabled を True に設定します。詳細については、「クラスタ内のオプティミスティックな同時方式の無効化オプション」を参照してください。 |
Exclusive
および Database
のロック動作の詳細については、「同時方式の選択」を参照してください。read-only
エンティティ Bean の詳細については、「読み書き対応エンティティ Bean と読み込み専用エンティティ Bean」を参照してください。
指定できる値 : none | supported | required
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor transport-requirements
EJB における転送の機密性の要件を指定します。confidentiality
要素を使用すると、他のエンティティに内容を見られることなく、クライアントとサーバ間でデータが送信されるようになります。
指定できる値 : 有効な JNDI 名
デフォルト値 : この要素が指定されていない場合、デフォルトは weblogic.jms.MessageDrivenBeanConnectionFactory
(config.xml
の JMSConnectionFactory
要素で宣言されていなければならない)。
親要素 :
weblogic-enterprise-bean message-driven-descriptor
メッセージ駆動型 EJB がキューとトピックを作成するためにルックアップする JMS 接続ファクトリの JNDI 名を指定します。「送り先を考慮した MDB のコンフィグレーション」および「connection-factory-jndi-name の設定方法」を参照してください。
指定できる値 : JMS モジュール内の有効なリソース
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean message-destination-descriptor
指定できる値 : 有効なプリンシパル名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
WebLogic Server 8.1 SP01 で導入され、本来は ejbCreate
が匿名プリンシパルで実行される状況で使用されるプリンシパルを指定します。そのような状況では、どのプリンシパルを選択するかは次のルールで決まります。
create-as-principal-name
が設定されている場合
そのプリンシパルを使用します。
あるいは
ejb-jar.xml
で Bean に対して run-as
ロールが指定されている場合
run-as-role-assignment
を設定するためのルールに従ってプリンシパルを使用します。
あるいは
ejbCreate
を匿名プリンシパルとして実行します。
create-as-principal-name
要素は、ejbCreate
内の処理が匿名プリンシパルよりも高レベルのパーミッションを必要とする場合にのみ指定する必要があります。
この要素は、ステートレス セッション Bean とメッセージ駆動型 Bean の ejbCreate
メソッドに影響します。
「remove-as-principal-name」、「passivate-as-principal-name」、および「principal-name」も参照してください。
指定できる値 : True | False
デフォルト値 : True
親要素 :
weblogic-enterprise-bean entity-descriptor persistence
トランザクションの完了時にトランザクションですべての Bean の永続ストレージを更新するには、delay-updates-until-end-of-tx
要素を True
(デフォルト) に設定します。通常、この設定によって不要な更新を防ぐことができるため、パフォーマンスが向上します。ただし、データベース トランザクション内のデータベース更新の順序は保持されません。
データベースがアイソレーション レベルとして TransactionReadUncommitted
を使用している場合は、進行中のトランザクションに関する中間結果を他のデータベースのユーザに表示することもできます。この場合、delay-updates-to-end-of-tx
を False
に設定して、各メソッド呼び出しの完了時に Bean の永続ストレージを更新するように指定します。詳細については、「ejbLoad() と ejbStore() の動作について」を参照してください。
注意 : delay-updates-until-end-of-tx を False に設定しても、各メソッド呼び出しの後にデータベース更新が「コミットされた」状態になるわけではありません。更新はデータベースに送信されるだけです。更新は、トランザクションの完了時にのみデータベースにコミットまたはロールバックされます。 |
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
および
weblogic-ejb-jar transaction-isolation method
および
weblogic-ejb-jar idempotent-methods method
および
weblogic-ejb-jar retry-methods-on-rollback
指定できる値 : 有効な JNDI 名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean message-destination-descriptor
および
weblogic-enterprise-bean message-driven-descriptor
指定できる値 : JMS モジュール内の有効なリソース
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean message-destination-descriptor
指定できる値 : BEA-010001
| BEA-010054
| BEA-010200
| BEA-010202
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
ID を指定した警告メッセージを WebLogic Server が無効化するように指定します。以下の 4 つの値のいずれかに設定します。
BEA-010001
- 警告メッセージ「EJB class loaded from system classpath during deployment.」を無効化する。
BEA-010054
- 警告メッセージ「EJB class loaded from system classpath during compilation.」を無効化する。
BEA-010200
- 警告メッセージ「EJB impl class contains a public static field, method or class.」を無効化する。
BEA-010202
- 警告メッセージ「Call-by-reference not enabled.」を無効化する。
指定できる値 : 有効な実行キューの名前
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
EJB が実行されるべきスレッド プールをどのサーバが実行するかを指定します。ディスパッチ ポリシーは、エンティティ、セッション、メッセージ駆動型など、すべての種類の Bean でサポートされています。
dispatch-policy
が指定されていないか、指定された dispatch-policy
が存在しないサーバ実行スレッド プールを参照していた場合、代わりにサーバのデフォルトの実行スレッド プールが使用されます。
WebLogic Server は、対応する名前を持つ実行スレッド キューがホスト サーバ インスタンスになければ、dispatch-policy
を無視します。
メッセージ駆動型 Bean (MDB) が外部の (WebLogic 以外の) 送り先ソースによって駆動されている場合、MDB は外部プロバイダのスレッド メカニズムで実行される可能性があるので、WebLogic Server は dispatch-policy
を無視することがあります。たとえば、IBM WebSphere MQSeries メッセージング ソフトウェアの場合、dispatch-policy
は非トランザクション キューについては対応されていません。アプリケーション コードは MQSeries スレッド内で実行されます。MQSeries トランザクション キュー、および非トランザクションとトランザクションの両トピックにおいては、dispatch-policy
は受け付けられます。
同時に実行中の MDB インスタンスの最大数は、max-beans-in-free-pool
と dispatch-policy
の値の組み合わせによって指定されます。『Oracle Fusion Middleware Oracle WebLogic Server パフォーマンス チューニング ガイド』の「MDB スレッド管理」を参照してください。
指定できる値 : LocalOnly
| EveryMember
デフォルト値 : LocalOnly
親要素 :
weblogic-ejb-jar weblogic-enterprise-bean message-driven-descriptor
注意 : この要素は 9.0 以降の WebLogic JMS で有効です。 |
同じクラスタ内の WebLogic JMS 分散キューにアクセスする MDB が、リソースをすべての分散送り先メンバーから消費するか、現在の Weblogic Server のローカル メンバーのみから消費するかを指定します。
有効な値は以下のとおりです。
LocalOnly
- デプロイメント記述子とメッセージ駆動型 Bean が同じクラスタにある。
EveryMember
- デプロイメント記述子がリモート サーバ上にある。
EveryMember
に設定すると、合計接続数が (メッセージ駆動型 Bean がデプロイされているサーバの数) x (送り先の数)
に等しくなります。より大きなデプロイメントの場合、この接続数により、かなりのリソースが消費される場合があります。
EveryMember
設定では、リモート サーバからローカル MDB へメッセージを転送するため、ネットワークおよび CPU のオーバーヘッドが増大します。したがって、この設定は、現在のサーバにユニークな JMS セレクタ フィルタを使用する MDB など、限定的なケースで利用するようにしてください。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-ejb-jar weblogic-enterprise-bean message-driven-descriptor
指定できる値 : ejb-jar.xml
で定義されている EJB の名前 NMTOKEN の命名規則に準拠)
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
および
weblogic-enterprise-bean method
ejb-jar.xml
で指定された同じ名前を使用して、エンタープライズ Bean の名前を指定します。エンタープライズ Bean のコードは名前に左右されないので、アプリケーション アセンブリ処理中に名前を変更してもエンタープライズ Bean の機能には影響しません。デプロイメント記述子の ejb-name
と、デプロイヤがエンタープライズ Bean のホームに割り当てる JNDI 名との間には、構築された関係はありません。
指定できる値 : 関連する ejb-jar.xml
ファイルで指定されている有効な ejb-ref-name
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean ejb-reference-description
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-jar
デフォルトでは、EJB 実装クラスは他の EJB クラスと同じクラスローダにロードされます。enable-bean-class-redeploy
要素が有効化されていると、実装クラスは、スーパー クラスと共に、EJB モジュール クラスローダの子クラスローダにロードされます。これにより、EJB 実装クラスは EJB モジュール全体を再デプロイしなくても再デプロイできるようになります。
Bean クラスを子クラスローダにロードすると、いくつかの問題が発生する可能性があります。まず、Bean クラスが親クラスローダにロードされたどのクラスからも見えなくなってしまうため、これらのクラスが Bean クラスを参照できなくなったり、エラーが発生したりします。また、Bean クラスは別のクラスローダにロードされたクラスに対しては、パッケージ保護されたメソッドを呼び出せなくなります。したがって、Bean クラスが同じパッケージ内のヘルパー クラスを呼び出した場合、ヘルパー クラス メソッドは public として宣言する必要があります。そうしないと、IllegalAccessErrors
が発生します。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean
enable-call-by-reference
が False
の場合、EJB メソッドのパラメータは EJB がリモートから呼び出されるか、同じ EAR から呼び出されるかに関係なくコピーされます (または値で渡される)。
enable-call-by-reference
が True
の場合、同じ EAR ファイル内またはスタンドアロンの JAR ファイルから呼び出された EJB メソッドは引数を参照で渡します。パラメータはコピーされないので、これによってメソッド呼び出しのパフォーマンスが向上します。
注意 : メソッドのパラメータは、EJB がリモートで呼び出されたときには常に値で渡されます。 |
指定できる値 : True | False
デフォルト値 : True
親要素 :
weblogic-enterprise-bean entity-descriptor
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-ejb-jar weblogic-compatibility
WebLogic Server 9.0 で導入された要素で、エンティティ Bean が常にトランザクションを使用しなければならないかどうかを指定します。WebLogic Server 9.0 より前では、エンティティ Bean が不特定のトランザクションで動作している場合、EJB コンテナはそのエンティティ Bean のトランザクションを作成しました。現在は、エンティティ Bean が不特定のトランザクションで動作している場合、EJB コンテナはトランザクションを作成しません。この動作を無効にし、EJB コンテナが不特定のトランザクションで動作するエンティティ Bean のトランザクションを作成するようにする場合、この要素の値を True
に設定します。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
WebLogic Server 内のエンティティ EJB インスタンスのキャッシュに使用する以下のオプションを定義します。
max-beans-in-cache
idle-timeout-seconds
read-timeout-seconds
concurrency-strategy
詳細については、「エンティティのキャッシングについて」を参照してください。
<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> <persistence>...</persistence> <entity-clustering>...</entity-clustering> </entity-descriptor>
指定できる値 : weblogic-application.xml
でアプリケーション レベルのエンティティ キャッシュに割り当てられた名前
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache-ref
エンティティ Bean が使用する、アプリケーション レベルのエンティティ キャッシュを参照します。アプリケーション レベルのキャッシュは、同じアプリケーション内の複数エンティティ Bean によって共有されるキャッシュです。entity-cache-name
で指定する値は、weblogic-application.xml
ファイルでアプリケーション レベルのエンティティ キャッシュに当てた名前と一致させる必要があります。
weblogic-application.xml
ファイルの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server アプリケーションのデプロイメント』の「エンタープライズ アプリケーションのデプロイメント記述子の要素」の「module」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
同じアプリケーションに属する複数のエンティティ Bean のインスタンスをキャッシュできるアプリケーション レベルのエンティティ キャッシュを表します。アプリケーション レベルのエンティティ キャッシュは、weblogic-application.xml
ファイルで宣言されます。
concurrency-strategy を使用し、その Bean に使用させたい同時方式のタイプを定義します。同時方式はアプリケーション レベル キャッシュのキャッシュ戦略と適合していなくてはなりません。たとえば、
Exclusive
キャッシュは、concurrency-strategy
が Exclusive
である Bean だけをサポートします。MultiVersion
キャッシュは、Database
、ReadOnly
、および Optimistic
同時方式をサポートします。
<entity-cache-ref> <entity-cache-name>AllEntityCache</entity-cache-name> <read-timeout-seconds>600</read-timeout-seconds> <cache-between-transactions>true</cache-between-transactions> <concurrency-strategy>ReadOnly</concurrency-strategy> <estimated-bean-size>20</estimated-bean-size> </entity-cache-ref>
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
エンティティ Bean が WebLogic クラスタでどのようにレプリケートされるのかを指定します。
home-is-clusterable
home-load-algorithm
home-call-router-class-name
use-serverside-stubs
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
エンティティ Bean に適用する以下のデプロイメント パラメータを指定します。
pool
timer-descriptor
entity-cache (または entity-cache-ref)
persistence
entity-clustering
invalidation-target
enable-dynamic-queries
<entity-descriptor> <pool>...</pool> <timer-descriptor>...</timer-descriptor> <entity-cache>...</entity-cache> <persistence>...</persistence> <entity-clustering>...</entity-clustering> <invalidation-target>...</invalidation-target> <enable-dynamic-queries>...</enable-dynamic-queries> </entity-descriptor>
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
エンティティ Bean のインスタンスの推定平均サイズ (バイト単位) を指定します。各インスタンスが消費するメモリのバイト数の平均値です。
estimated-bean-size
要素は、Bean をキャッシュするのに使用する、アプリケーション レベルのキャッシュがともにバイト数や MB 単位で指定されている場合に併せて使用します。
エンティティ Bean インスタンスが消費する正確なバイト数が分からなくても、サイズを指定することにより、ある一時点でキャッシュを共有する Bean に対し相対的な重みを与えることができます。
たとえば、Bean A と Bean B が 1000 バイトのキャッシュを共有し、A のサイズが 10 バイト、B のサイズが 20 バイトであるとします。その場合、キャッシュに格納できるのは、最大で、A のインスタンスで 100、B のインスタンスで 50 です。A のインスタンスが 100 個キャッシュされた場合、B のインスタンスは 0 個キャッシュされたことになります。
指定できる値 : True | False
デフォルト値 : なし
親要素 :
weblogic-ejb-jar security-role-assignment
指定できる値 : True | False
デフォルト値 : True
親要素 :
weblogic-enterprise-bean entity-descriptor persistence
CMP エンティティ EJB でのみ有効です。finders-load-bean
は、ファインダ メソッドの呼び出しによって Bean への参照が返されてから WebLogic Server が EJB をキャッシュにロードするかどうかを指定します。この要素を True
に設定した場合、Bean への参照がファインダによって返されると、WebLogic Server はすぐにその Bean をキャッシュにロードします。この要素を False
に設定した場合、WebLogic Server は、最初のメソッドが呼び出されるまで Bean を自動的にロードしません。この動作は、EJB 1.1 の仕様と一致しています。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-ejb-jar weblogic-enterprise-bean message-driven-descriptor
global-role
要素は非推奨となっており、WebLogic Server 9.0 で削除されました。代わりに externally-defined
要素を使用してください。
指定できる値 : カスタム クラスタの有効な名前
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor entity-clustering
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-clustering
および
weblogic-enterprise-bean stateless-session-descriptor stateless-session-clustering
Bean のメソッド呼び出しのルーティングに使用するカスタム クラスの名前を指定します。このクラスは weblogic.rmi.cluster.CallRouter()
を実装する必要があります。指定すると、このクラスのインスタンスは各メソッド呼び出しの前に呼び出されます。ルータ クラスでは、メソッドのパラメータを基に、ルーティングするサーバを選択できます。このクラスは、サーバ名を返すか、または現在のロード アルゴリズムがサーバを選択する必要があることを示す null を返します。
指定できる値 : True | False
デフォルト値 : True
親要素 :
weblogic-enterprise-bean entity-descriptor entity-clustering
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-clustering
および
weblogic-enterprise-bean stateful-session-descriptor stateless-clustering
home-is-clusterable
が True
の場合、クラスタ内の複数の WebLogic Server から EJB をデプロイできます。ホーム スタブの呼び出しは、Bean がデプロイされるサーバ間で負荷が分散されます。Bean のホスト サーバにアクセスできなかった場合、呼び出しは、Bean を提供する他のサーバに自動的にフェイルオーバします。
指定できる値 : round-robin | random | weight-based | RoundRobinAffinity | RandomAffinity | WeightBasedAffinity
デフォルト値 : weblogic.cluster.defaultLoadAlgorithm
の値
親要素 :
weblogic-enterprise-bean entity-descriptor entity-clustering
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-clustering
および
weblogic-enterprise-bean entity-descriptor entity-clustering
クラスタ内の EJB ホームのレプリカ間のロード バランシングに使用するアルゴリズムを指定します。この要素を定義しない場合、WebLogic Server はサーバ要素、weblogic.cluster.defaultLoadAlgorithm
で指定されたアルゴリズムを使用します。
home-load-algorithm
は以下のいずれかの値に定義できます。
round-robin
- Bean のホスト サーバ間で順番にロード バランシングを実行する。
random
- Bean のホスト サーバ間で EJB ホームのレプリカがランダムにデプロイされる。
weight-based
- ホスト サーバの現在の負荷に従って、EJB ホームのレプリカをデプロイするサーバが決まる。
round-robin-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、ラウンドロビン ロード バランシングがサーバ インスタンス間の接続に使用される。
weight-based-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、重みベース ロード バランシングがサーバ インスタンス間の接続に使用される。
random-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、ランダム ロード バランシングがサーバ インスタンス間の接続に使用される。
詳細については、『Oracle Fusion Middleware Oracle WebLogic Server クラスタの使い方』の「EJB と RMI オブジェクトのロード バランシング」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
同じメソッドを同じ引数で繰り返し呼び出したとしても、1 回呼び出したときとまったく同じ結果になるように記述される、クラスタ化された EJB のメソッドのリストを定義します。これにより、フェイルオーバ ハンドラは、失敗したサーバ上で実際に呼び出しがコンパイルされるかどうかを知らなくても、失敗した呼び出しを再試行できるようになります。あるメソッドに対し多重呼び出し不変メソッドを有効にした場合、EJB スタブは、EJB のホスト サーバに接続できるかぎり、あらゆる失敗から自動的に回復することができます。
EJB でクラスタリングが有効である必要があります。クラスタ化を有効にするには、「entity-clustering」、「stateful-session-clustering」、および「stateless-clustering」を参照してください。
ステートレス セッション Bean ホームおよび読み込み専用エンティティ Bean のメソッドは、自動的に多重呼び出し不変に設定されます。これらについては多重呼び出し不変を明示的に設定する必要はありません。
指定できる値 : none | supported | required
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor
指定できる値 : 1
~ maxSeconds
。maxSeconds
は整数の最大値。
デフォルト値 : 600
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache
および
weblogic-enterprise-bean entity-descriptor entity-cache-ref
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-cache
および
weblogic-enterprise-bean, stateless-session-descriptor または message-driven-descriptor または entity-descriptor pool
EJB がキャッシュに保持される最長時間を定義します。この時間を過ぎると、キャッシュ内の Bean の数が max-beans-in-cache
で指定した値を超えている場合、WebLogic Server では Bean インスタンスが削除されます。削除された Bean インスタンスに対してはパッシベーションが行われます。詳細については、「ステートフル セッション EJB のキャッシュとパッシベーション」および「エンティティ Bean のプールとキャッシュの管理」を参照してください。
また、フリー プール内の EJB が削除されるまでの最長アイドル時間を定義します。この時間の経過後、WebLogic Server は Bean の数が initial-beans-in-free-pool
の値を下回らない限り、その Bean をフリー プールから削除します。
注意 : idle-timeout-seconds は entity-cache 要素で使用しますが、WebLogic Server 8.1 SP1 と SP2 では、エンティティ EJB のライフサイクルの管理にその値を使用しません。それらのサービス パックでは、idle-timeout-seconds はエンティティ Bean がいつキャッシュから削除されるのかに影響を与えません。 |
次のエントリでは、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>
指定できる値 : 任意の整数
デフォルト値 : 5
親要素 :
weblogic-enterprise-bean message-driven-descriptor
EJB コンテナが JMS リソースの停止を検出したときに MDB の JMS 接続を中断する初期秒数を指定します。詳細については、「JMS リソース停止中のメッセージ配信の中断のコンフィグレーション」を参照してください。
指定できる値 : 0
~ maxBeans
デフォルト値 : 0
親要素 :
weblogic-enterprise-bean, stateless-session-descriptor または message-driven-descriptor または entity-descriptor pool
initial-beans-in-free-pool
の値を指定する場合は、プールの初期サイズを設定することになります。WebLogic Server は起動時に、Bean クラスごとに指定された数の Bean インスタンスをフリー プールに格納します。この方法で Bean インスタンスをフリー プールに格納しておくと、要求が来てから新しいインスタンスを生成せずに Bean に対する初期要求が可能になるため、EJB の初期応答時間が短縮されます。
指定できる値 : 初期コンテキスト ファクトリの有効な名前
デフォルト値 : weblogic.jndi.WLInitialContextFactory
親要素 :
weblogic-enterprise-bean message-destination-descriptor
および
weblogic-enterprise-bean message-driven-descriptor
JMS プロバイダが初期コンテキストの作成に使用する初期コンテキスト ファクトリを指定します。「送り先を考慮した MDB のコンフィグレーション」および「initial-context-factory の設定方法」を参照してください。
<message-driven-descriptor> <initial-context-factory>fiorano.jms.rtl.FioranoInitialContextFactory </initial-context-factory> </message-driven-descriptor>
「message-destination-descriptor」も参照してください。
指定できる値 : none | supported | required
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor transport-requirements
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
コンテナ管理による永続性エンティティ EJB が変更された場合に、無効化する読み込み専用エンティティ EJB を指定します。
対象の ejb-name
は読み込み専用エンティティ EJB でなければならないので、この要素は EJB 2.x のコンテナ管理による永続性エンティティ EJB に対してのみ指定できます。
指定できる値 : 有効なエンティティ EJB メソッド名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor persistence
EJB の保存時に WebLogic Server によって呼び出されるメソッドを指定します。指定したメソッドはブール値を返す必要があります。メソッドを指定しない場合、WebLogic Server では、EJB は常に変更されていると見なされて保存されます。
メソッドを指定して適切な値を設定すると、EJB 1.1 準拠の Bean、および Bean 管理の永続性を使用する Bean のパフォーマンスが向上します。ただし、メソッドの戻り値にエラーがあると、データに矛盾が発生する場合があります。
注意 : isModified() は、EJB 2.x 仕様に基づく 2.x CMP エンティティ EJB では必要ありません。しかし、BMP および 1.1 CMP EJB には引き続き適用されます。コンテナ管理の永続性を使用して EJB 2.x エンティティ Bean をデプロイする場合、WebLogic Server によって、変更されている EJB フィールドが自動的に検出され、そのフィールドのみが基底のデータストアに書き込まれます。 |
指定できる値 : TransactionSerializable | TransactionReadCommitted | TransactionReadUncommitted | TransactionRepeatableRead | TransactionReadCommittedForUpdate | TransactionReadCommittedForUpdateNoWait
デフォルト値 : 基底のデータベースのデフォルト値
親要素 :
weblogic-ejb-jar transaction-isolation
EJB のメソッドレベルのトランザクション アイソレーション設定を定義します。有効な値は以下のとおりです。
TransactionSerializable
- このトランザクションを同時に複数回実行すると、トランザクションを順番に複数回実行することと同じことになる。
注意 : Oracle データベースの場合は、TransactionSerializable アイソレーション レベルの代わりに TransactionReadCommittedForUpdate アイソレーション レベルを使用することをお勧めします。Oracle データベースは、TransactionSerializable アイソレーション レベルではデータの読み取りをロックしないためです。また、TransactionSerializable アイソレーション レベルでは、Oracle データベースに対する現在のトランザクションが、Oracle 例外 ORA-08177「このトランザクションのアクセスをシリアル化できません 」を送出せずに続行することが可能です。TransactionReadCommittedForUpdate アイソレーション レベルの詳細については、「Oracle データベースのみのアイソレーション レベル」を参照してください。 |
TransactionReadCommitted
- コミットした他のトランザクションの更新のみをトランザクションで表示できる。
TransactionReadUncommitted
- コミットしていない他のトランザクションの更新をトランザクションで表示できる。
TransactionRepeatableRead
- トランザクションでデータの一部を読み取ると、そのデータが他のトランザクションで変更されても、最初の読み取り時と同じ値が返される。
以下の追加の値は、Oracle データベース、およびコンテナ管理による永続性 (CMP) EJB でのみサポートされています。
TransactionReadCommittedForUpdate
- Oracle データベース、およびコンテナ管理による永続性 (CMP) EJB でのみサポートされる。この値を使用すると、アイソレーション レベルは TransactionReadCommitted
に設定され、トランザクションの間、メソッドで実行される SQL SELECT
文はすべて FOR UPDATE
が付加されて実行されます。この結果、隔離された行が更新用にロックされます。Oracle データベースでクエリの影響を受ける行をすぐにロックできない場合は、それらの行が解放されるまで待ちます。この状況は、トランザクションで COMMIT
または ROLLBACK
が実行されるまで続きます。
このアイソレーション レベルを使用すると、次のエラーを防止できます。
java.sql.SQLException: ORA-08177: can't serialize access for this transaction
このエラーは、Oracle データベースで TransactionSerializable
アイソレーション レベルを使用したときに発生することがあります。
注意 : Oracle データベースの場合は、TransactionSerializable アイソレーション レベルの代わりにこのアイソレーション レベル (TransactionReadCommittedForUpdate ) を使用することをお勧めします。Oracle データベースは、TransactionSerializable アイソレーション レベルではデータの読み取りをロックしないためです。 |
TransactionReadCommittedForUpdateNoWait
- Oracle データベース、およびコンテナ管理による永続性 (CMP) EJB でのみサポートされる。
この値を使用すると、アイソレーション レベルは TransactionReadCommitted
に設定され、トランザクションの間、メソッドで実行される SQL SELECT
文はすべて FOR UPDATE NO WAIT が付加されて実行されます。この結果、選択された行が更新用にロックされます。
TransactionReadCommittedForUpdate
設定とは違って、必要なときロックがすぐに達成されない場合、TransactionReadCommittedForUpdateNoWait
では Oracle DBMS が NOT WAIT
になります。このため、影響を受ける SELECT
クエリは失敗し、コンテナから例外が送出されます。
異なるアイソレーション レベルのサポートの詳細については、各データベースのドキュメントを参照してください。
指定できる値 : なし
デフォルト値 : EJB の ejb-name
親要素 :
message-driven-descriptor
JMS 送り先に接続するときの MDB のクライアント ID を指定します。JMS トピックに対する恒久サブスクリプションで必須です。
connection-factory-jndi-name
で MDB が使用する接続ファクトリを指定した場合、クライアント ID は config.xml
内の関連付けられている JMSConnectionFactory
要素の ClientID
要素で定義できます。
config.xml
の JMSConnectionFactory
で ClientID
を指定しないか、デフォルト接続ファクトリを使用する (connection-factory-jndi-name
を指定しない) 場合、メッセージ駆動型 Bean は jms-client-id
値をそのクライアント ID として使用します。
指定できる値 : なし
デフォルト値 : 10 秒
親要素 :
message-driven-descriptor
JMS 送り先に再接続しにいく間隔の秒数を指定します。各メッセージ駆動型 Bean は、関連付けられている JMS 送り先でリスンします。JMS 送り先が別の WebLogic Server インスタンスまたは外部 JMS プロバイダに配置されている場合には、JMS 送り先にアクセスできなくなることもあります。この場合、EJB コンテナは自動的に JMS サーバに再接続しようとします。JMS サーバが再び起動した時点で、メッセージ駆動型 Bean は再びメッセージを受信できるようになります。
指定できる値 : 有効な JNDI 名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
および
weblogic-enterprise-bean resource-description
および
weblogic-enterprise-bean ejb-reference-description
および
weblogic-enterprise-bean ejb-local-reference-description
WebLogic Server で使用可能な実際の EJB、リソース、または参照の JNDI 名を指定します。
注意 : JNDI 名を Bean に割り当てるのは望ましくありません。グローバル JNDI 名は、クラスタ化されたサーバの起動時に大量のマルチキャスト トラフィックを引き起こします。より適切なプラクティスについては、「EJB リンクの使用」を参照してください。 EJB を含む EAR ライブラリがある場合、JNDI 名の衝突が起きるため、そのライブラリを参照するアプリケーションを複数デプロイすることはできません。これは、EAR ライブラリ内の個々の EJB に対してグローバル JNDI 名を設定できないからです。グローバル JNDI 名はライブラリ全体に対してのみ設定できます。 |
指定できる値 : 有効な JNDI 名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
指定できる値 : 1
~ maxBeans
デフォルト値 : 1000
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-cache
メモリの許容範囲内で、このクラスのオブジェクトの最大数を指定します。max-bean-in-cache
の値に達すると、WebLogic Server では、最近クライアントに使用されていない EJB の一部に対してパッシベーションが行われます。また、「ステートフル セッション EJB のキャッシュとパッシベーション」で説明されているように、max-beans-in-cache
の値は、EJB を WebLogic Server のキャッシュからいつ削除するかにも影響を与えます。
指定できる値 : 0
~ maxBeans
デフォルト値 : 1000
親要素 :
weblogic-enterprise-bean stateless-session-descriptor pool
および
weblogic-enterprise-bean message-driven-descriptor pool
および
weblogic-enterprise-bean entity-descriptor pool
WebLogic Server は、すべてのエンティティ Bean、ステートレス セッション Bean、およびメッセージ駆動型 Bean クラスについて EJB のフリー プールを保持します。max-beans-in-free-pool
要素は、このフリー プールのサイズを定義します。
指定できる値 : すべての正の整数
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean message-driven-descriptor
指定できる値 : すべての正の整数
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
WebLogic Server 9.0 で導入された要素です。Bean レベルでキャッシュできる読み込み専用エンティティ クエリの最大数を指定します。アプリケーション レベルでの読み込み専用エンティティ クエリのキャッシュについては、「クエリ キャッシングの使用 (読み込み専用エンティティ Bean)」を参照してください。
指定できる値 : 任意の整数
デフォルト値 : 60
親要素 :
weblogic-enterprise-bean message-driven-descriptor
EJB コンテナが JMS リソースの停止を検出したときに MDB の JMS 接続を中断する最大秒数を指定します。EJB コンテナが JMS リソースの停止を検出したときに JMS 接続が中断しないようにするには、この要素の値を 0
に設定します。詳細については、「JMS リソース停止中のメッセージ配信の中断のコンフィグレーション」を参照してください。
指定できる値 : ejb-jar.xml
ファイルにある有効なメッセージ定義参照名
デフォルト値 : なし
要件 : この要素は、EJB が ejb-jar.xml
のメッセージ定義参照を指定する場合に必要。
親要素 :
weblogic-enterprise-bean message-destination-descriptor
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
<message-driven-descriptor> <pool>...</pool> <timer-descriptor>...</timer-descriptor> <destination-jndi-name>...</destination-jndi-name> <initial-context-factory>...</initial-context-factory> <provider-url>...</provider-url> <connection-factory-jndi-name>...</connection-factory-jndi-name> <jms-polling-interval-seconds>...</jms-polling-interval-seconds> <jms-client-id>...</jms-client-id> <generate-unique-jms-client-id>...</generate-unique-jms-client-id> <durable-subscription-deletion>...</durable-subscription-deletion> <max-messages-in-transaction>...</max-messages-in-transaction> <distributed-destination-connection>...</distributed-destination-connection> <use81-style-polling>...</use81-style-polling> <init-suspend-seconds>...</init-suspend-seconds> <max-suspend-seconds>...</max-suspend-seconds> </message-driven-descriptor>
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar transaction-isolation
および
weblogic-ejb-jar idempotent-methods
および
weblogic-ejb-jar retry-methods-on-rollback
指定できる値 : Home | Remote | Local | Localhome
デフォルト値 : なし
親要素 :
weblogic-ejb-jar transaction-isolation method
および
weblogic-ejb-jar idempotent-methods method
指定できる値 : ejb-jar.xml
で定義した EJB の名前 | *
デフォルト値 : なし
親要素 :
weblogic-ejb-jar transaction-isolation method
および
weblogic-ejb-jar idempotent-methods method
WebLogic Server がアイソレーション レベルのプロパティを適用する個々の EJB メソッドの名前を指定します。アスタリスク (*) を使用すると EJB のホームおよびリモート インタフェースの全メソッドを指定できます。
method-name
を指定する場合、そのメソッドは指定の ejb-name
になければなりません。
指定できる値 : メソッド パラメータの完全修飾 Java タイプ名
デフォルト値 : なし
親要素 :
weblogic-ejb-jar transaction-isolation method method-params
および
weblogic-ejb-jar idempotent-methods method method-params
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar transaction-isolation method
および
weblogic-ejb-jar idempotent-methods method
指定できる値 : カスタム ネットワーク アクセス ポイントの名前
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
EJB でネットワーク通信に使用されるカスタム ネットワークを割り当てます。ネットワーク チャネルによって、一連の接続属性が定義されます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server サーバ環境のコンフィグレーション』の「ネットワーク リソースのコンフィグレーション」を参照してください。
指定できる値 : 有効な WebLogic Server プリンシパル
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
WebLogic Server 8.1 SP01 で導入された passivate-as-principal-name
要素は、本来は ejbPassivate
が匿名プリンシパルで実行される状況で使用されるプリンシパルを指定します。そのような状況では、どのプリンシパルを選択するかは次のルールで決まります。
passivate-as-principal-name
が設定されている場合
そのプリンシパルを使用します。
あるいは
ejb-jar.xml
で Bean に対して run-as
ロールが指定されている場合
run-as-role-assignment
を設定するためのルールに従ってプリンシパルを使用します。
あるいは
ejbPassivate
を匿名プリンシパルとして実行します。
passivate-as-principal-name
要素は、ejbPassivate
内の処理が匿名プリンシパルよりも高レベルのパーミッションを必要とする場合にのみ指定する必要があります。
この要素は、キャッシュのタイムアウトでパッシベーションが行われたときにステートレス セッション Bean の ejbPassivate
メソッドに影響します。
「remove-as-principal-name」、「create-as-principal-name」、および「principal-name」も参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須です。persistence
要素は、WebLogic Server のエンティティ EJB に対する永続性タイプ、トランザクション コミット動作、ejbLoad()
動作、および ejbStore()
動作を決定するプロパティを定義します。
is-modified-method-name
delay-updates-until-end-of-tx
finders-load-bean
persistence-use
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor persistence
指定できる値 : 有効なファイル システム ディレクトリ
デフォルト値 : pstore
親要素 :
weblogic-enterprise-bean stateful-session-descriptor
パッシベーションされたステートフル セッション Bean インスタンスの状態を WebLogic Server が格納するファイル システム ディレクトリを指定します。詳細については、「パッシベーションされた Bean の永続ストア ディレクトリの指定」を参照してください。
<stateful-session-descriptor> <stateful-session-cache>...</stateful-session-cache> <allow-concurrent-calls>...</allow-concurrent-calls> <persistent-store-dir>MyPersistenceDir</persistent-store-dir> <stateful-session-clustering>...</stateful-session-clustering> <allow-remove-during-transaction> </stateful-session-descriptor>
指定できる値 : ファイル システムの永続ストアの有効な名前
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor timer-descriptor
および
weblogic-enterprise-bean message-driven-descriptor timer-descriptor
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
stateless-session-descriptor または message-driven-descriptor
および
entity-descriptor
エンティティ EJB、ステートレス セッション EJB、およびメッセージ駆動型 EJB の WebLogic Server フリー プールの動作をコンフィグレーションします。オプションは以下のとおりです。
max-beans-in-free-pool
initial-beans-in-free-pool
idle-timeout-seconds
指定できる値 : 有効な WebLogic Server プリンシパル名
デフォルト値 : なし
親要素 :
weblogic-ejb-jar security-role-assignment
指定した role-name
に適用される実際の WebLogic Server プリンシパルの名前を指定します。security-role-assignment
要素に少なくとも 1 つの principal-name
が必要です。各 role-name
に対し複数の principal-name
を定義できます。
指定できる値 : 有効な URL
デフォルト値 : t3://localhost:7001
親要素 :
weblogic-enterprise-bean message-destination-descriptor
および
weblogic-enterprise-bean message-driven-descriptor
<message-driven-descriptor> <provider-url>WeblogicURL:Port</provider-url> </message-driven-descriptor>
「message-destination-descriptor」も参照してください。
指定できる値 : 0
~ maxSeconds
。maxSeconds
は整数の最大値。
デフォルト値 : 600
親要素 :
weblogic-enterprise-bean entity-descriptor entity-cache
または
weblogic-enterprise-bean entity-descriptor entity-cache-ref
Read-Only
エンティティ Bean で ejbLoad
を呼び出す間隔の秒数を指定します。値を 0 にすると、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>
指定できる値 : 0
~ maxSeconds
。maxSeconds
は整数の最大値。
デフォルト値 : 0
親要素 :
weblogic-enterprise-bean
リモート RMI クライアントがタイムアウトするまでの待機時間を指定します。『Oracle Fusion Middleware Oracle WebLogic Server RMI プログラマーズ ガイド』の「RMI タイムアウトの使用」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
このパラメータは、ejbRemove
内の処理が匿名プリンシパル以上のパーミッションを必要とする場合にのみ指定する必要があります。
WebLogic Server 8.1 SP1 で導入された remove-as-principal-name
要素は、本来は ejbRemove
が匿名プリンシパルで実行される状況で使用されるプリンシパルを指定します。そのような状況では、どのプリンシパルを選択するかは次のルールで決まります。
remove-as-principal-name
が設定されている場合
そのプリンシパルを使用します。
あるいは
ejb-jar.xml
で Bean に対して run-as
ロールが指定されている場合
run-as-role-assignment
を設定するためのルールに従ってプリンシパルを使用します。
あるいは
ejbRemove
を匿名プリンシパルとして実行します。
remove-as-principal-name
要素は、ejbRemove
内の処理が匿名プリンシパルよりも高レベルのパーミッションを必要とする場合にのみ指定する必要があります。
この要素は、ステートレス セッション Bean とメッセージ駆動型 Bean の ejbRemove
メソッドに影響します。
「passivate-as-principal-name」、「create-as-principal-name」、および「principal-name」も参照してください。
指定できる値 : InMemory | None
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean stateful-session-descriptor stateful-session-clustering
クラスタ内の WebLogic Server インスタンスのステートフル セッション EJB の状態を WebLogic Server がレプリケートするかどうかを指定します。InMemory
を指定した場合、EJB の状態はレプリケートされます。None
を指定した場合、状態はレプリケートされません。
指定できる値 : ejb-jar.xml
ファイルにある有効なリソース環境参照名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean resource-env-description
指定できる値 : ejb-jar.xml
ファイルにある有効なリソース参照名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean resource-description
resourcefactory
参照の名前を指定します。これは、EJB プロバイダによって ejb-jar.xml
デプロイメント記述子ファイル内に記載される参照です。EJB が ejb-jar.xml
のリソース参照を指定する場合にのみ必須になります。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar weblogic-enterprise-bean message-driven-descriptor
指定できる値 : JMS モジュール内の有効なリソース
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean message-destination-descriptor
指定できる値 : 任意の正の整数
注意 : この値を 0 以下に設定することは可能ですが、推奨されません。この値が 1 以上でない場合、EJB コンテナはトランザクションを再試行しません。 |
デフォルト値 : なし
親要素 :
weblogic-ejb-jar retry-methods-on-rollback
指定できる値 : 有効なアプリケーション ロール名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean security-role-assignment
EJB プロバイダが ejb-jar.xml
デプロイメント記述子に指定したアプリケーションのロール名を示します。要素の次の principal-name
要素で、WebLogic Server プリンシパルを、指定した role-name
にマップします。
指定できる値 : 有効なセキュリティ プリンシパル名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
注意 : run-as-identity-principal 要素は、このリリースの WebLogic Server では非推奨となりました。代わりに run-as-principal-name を使用します。 |
run-as-identity-principal
要素は、ejb-jar.xml
デプロイメント記述子で、セキュリティ ID run-as-role-name
を指定した Bean の run-as プリンシパルとして使用されるセキュリティ プリンシパル名を指定します。
run-as-role-name の run-as-identity-principal または run-as-principal-name へのマッピングがどのようにして生じるかの説明は、run-as-role-assignment
要素のコメントを参照してください。
指定できる値 : 有効なプリンシパル
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
ejb-jar.xml
デプロイメント記述子で、security-identity
run-as role-name
を指定した Bean の run-as プリンシパルとして使用されるセキュリティ プリンシパル名を指定します。
run-as role-name
の run-as-principal-name
へのマッピングがどのようにして生じるかの説明は、run-as-role-assignment
要素のコメントを参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
ejb-jar.xml
デプロイメント記述子ファイルで指定された security-identity run-as role-name
を run-as-principal-name
にマップします。
ここで指定した特定の role-name に対する run-as-principal-name
の値は、ejb-jar.xml
デプロイメント記述子内のすべての Bean を対象とし、role-name を security-identity run-as-role-name
として指定したすべての Bean に適用されます。
ここで指定した run-as-principal-name
値は、その Bean の weblogic-enterprise-bean
要素の下で run-as-principal-name を指定することによって、個々の Bean レベルでオーバーライドできます。
注意 : 特定の Bean について、run-as-role-assignment または Bean 固有の run-as-principal-name タグで run-as-principal-name が指定されていない場合、EJB コンテナは weblogic-enterprise-bean security-role-assignment のセキュリティ ユーザの最初の principal-name を role-name として選択し、その principal-name を run-as-principal-name として使用します。 |
ejb-jar.xml
デプロイメント記述子ファイルが、次のような状況であると仮定します。
Bean「A_EJB_with_runAs_role_X」および「B_EJB_with_runAs_role_X」
security-identity run-as role-name「runAs_role_X」を指定する。
Bean「C_EJB_with_runAs_role_Y」
security-identity run-as role-name「runAs_role_Y」を指定する。
対応するデプロイメント記述子ファイル weblogic-ejb-jar.xml
から抜粋した次のコードを検討してください。
<weblogic-ejb-jar> <weblogic-enterprise-bean> <ejb-name> A_EJB_with_runAs_role_x </ejb-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name> B_EJB_with_runAs_role_X </ejb-name> <run-as-principal-name> Joe </run-as-principal-name> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name> C_EJB_with_runAs_role_Y </ejb-name> </weblogic-enterprise-bean> <security-role-assignment> <role-name> runAs_role_Y </role-name> <principal-name> first_principal_of_role_Y </principal-name> <principal-name> second_principal_of_role_Y </principal-name> </security-role-assignment> <run-as-role-assignment> <role-name> runAs_role_X </role-name> <run-as-principal-name> Fred </run-as-principal-name> </run-as-role-assignment> </weblogic-ejb-jar>
各 Bean は、その run-as-principal-name
として異なるプリンシパル名を選択します。
この Bean の run-as-role-name は「runAs_role_X」です。使用するプリンシパルの名前のルックアップには、jar スコープの <run-as-role-assignment>
マッピングが使用されます。
<run-as-role-assignment>
マッピングにより、<role-name>
「runAs_role_X」に対して、<run-as-principal-name>
「Fred」を使用すべきであることが指定されます。
「Fred」が、使用されるプリンシパル名です。
この Bean の run-as-role-name も「runAs_role_X」です。この Bean は使用するプリンシパルの名前のルックアップに jar スコープの <run-as-role-assignment>
を使用することはありません。なぜなら、この値はこの Bean の <weblogic-enterprise-bean> <run-as-principal-name>
値である「Joe」でオーバーライドされているからです。
「Joe」が、使用されるプリンシパル名です。
この Bean の run-as-role-name は「runAs_role_Y」です。「runAs_role_Y」の run-as プリンシパル名としての明示的なマッピングはありません。つまり、「runAs_role_Y」に対する jar スコープの <run-as-role-assignment>
も、Bean スコープの <run-as-principal-name>
も、この Bean の weblogic-enterprise-bean
では指定されていません。
使用するプリンシパル名を決定するには、<role-name>
「runAs_role_Y」の <security-role-assignment>
を検証します。ユーザ (つまり、グループではない) に対応する最初の <principal-name>
が選択されます。
「first_principal_of_role_Y」が、使用されるプリンシパル名です。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
J2EE Sandbox と関連するセキュリティ パーミッションを指定します。
詳細については、Sun によるセキュリティ パーミッション仕様の実装を参照してください。
http://java.sun.com/j2se/1.3/docs/guide/security/PolicyFiles.html#FileSyntax
指定できる値 : なし
デフォルト値 : なし
親要素 :
security-permission
セキュリティ ポリシー ファイル構文に基づいて単一のセキュリティ パーミッションを指定します。
詳細については、Sun によるセキュリティ パーミッション仕様の実装を参照してください。
http://java.sun.com/j2se/1.3/docs/guide/security/PolicyFiles.html#FileSyntax
「java.vm.version」に「read」パーミッションを与え、それが上書きされるのを防止するには、次の手順に従います。
次のように security-permission-spec
を設定します。
<security-permission> <description>任意指定の説明がここに入る</description> <security-permission-spec> grant { permission java.util.PropertyPermission "java.vm.version", "read"; }; </security-permission-spec> </security-permission>
次のオプションを使用してサーバを起動するように startWeblogic
スクリプトを修正します。
JAVA_OPTIONS=-Djava.security.manager
ドメイン ディレクトリに lib
という名前のディレクトリを作成します。
次の表を %WL_HOME%\server\lib\weblogic.policy
ファイルに追加します。
add grant codeBase "file:/<Your user_projects dir>/YourDomain/lib/-" { permission java.security.AllPermission; };
これは、EJB スタブのクラスパスが lib
であるために必要です。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
ejb-jar.xml
内の Web サービス送り先の参照を、WebLogic Server の実際の Web サービスにマップします。
wsdl-url
- リモート Web サービスを呼び出すためのスタブを作成するためにクライアントによって使用される、参照対象 Web サービスの動的 wsdl
の URL。
port-info
- wsdl
に指定される wsdl:port
情報を定義する。
port-name
- wsdl:port
のローカル名を定義する。
stub-property
- クライアントサイドのスタブで設定されるプロパティ。javax.xml.rpc.Stub._setProperty(prop_name, prop_value)
と同じ効果がある。
<service-reference-description> <service-ref-name>service/WebServiceBroker</service-ref-name> <wsdl-url> http://@PROXY_SERVER@/webservice/BrokerServiceBean?wsdl </wsdl-url> <call-property>...</call-property> <port-info> <port-name>BrokerServiceIntfPort</port-name> <stub-property> <name>javax.xml.rpc.service.endpoint.address</name> <value>http://@PROXY_SERVER@/webservice/BrokerServiceBean<;/value> </stub-property> </port-info> </service-reference-description>
指定できる値 : (指定なし)
デフォルト値 : idle-timeout-seconds
親要素 :
weblogic-enterprise-bean stateful-session-descriptor stateful-session-cache
EJB コンテナがパッシベーションされたステートフル セッション Bean をどのくらいディスクに置いておくのかを指定します。コンテナは、Bean インスタンスをディスクにパッシベーションした後にパッシベーションされた EJB の session-timeout-seconds
を削除します。session-timeout-seconds
を指定しない場合、デフォルトは idle-timeout-seconds
で指定された値です。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean stateful-session-descriptor
ステートフル セッション EJB インスタンスのキャッシュに使用する以下のオプションを定義します。
max-beans-in-cache
idle-timeout-seconds
session-timeout-sections
cache-type
ステートフル セッション Bean のキャッシュの詳細については、「ステートフル セッション EJB のキャッシュとパッシベーション」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean stateful-session-descriptor
WebLogic Server がクラスタ内のステートフル セッション EJB インスタンスをレプリケートする方法を決める以下のオプションを指定します。
home-is-clusterable
home-load-algorithm
home-call-router-class-name
replication-type
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean
<stateful-session-descriptor><stateful-session-cache>...</stateful-session-cache>
<allow-concurrent-calls>...</allow-concurrent-calls>
<allow-remove-during-transaction>...
</allow-remove-during-transaction>
<persistent-store-dir>/myPersistenceStore</persistent-store-dir>
<stateful-session-clustering>...</stateful-session-clustering> </stateful-session-descriptor>
指定できる値 : 有効なカスタム クラス名
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean stateless-session-descriptor stateless-clustering
Bean のメソッド呼び出しのルーティングに使用するカスタム クラスの名前を指定します。このクラスは weblogic.rmi.cluster.CallRouter()
を実装する必要があります。指定すると、このクラスのインスタンスは各メソッド呼び出しの前に呼び出されます。ルータ クラスでは、メソッドのパラメータを基に、ルーティングするサーバを選択できます。このクラスは、サーバ名を返すか、または現在のロード アルゴリズムがサーバを選択する必要があることを示す null を返します。
指定できる値 : True | False
デフォルト値 : True
親要素 :
weblogic-enterprise-bean stateless-session-descriptor stateless-clustering
stateless-bean-is-clusterable
が True
の場合、EJB をクラスタ内の複数の WebLogic Server からデプロイできます。ホーム スタブの呼び出しは、Bean がデプロイされるサーバ間で負荷が分散されます。Bean のホスト サーバにアクセスできなかった場合、呼び出しは、Bean を提供する他のサーバに自動的にフェイルオーバします。
指定できる値 : round-robin | random | weight-based | RoundRobinAffinity | RandomAffinity | WeightBasedAffinity
デフォルト値 : weblogic.cluster.defaultLoadAlgorithm
の値
親要素 :
weblogic-enterprise-bean stateless-session-descriptor stateless-clustering
EJB ホームのレプリカ間のロード バランシングに使用するアルゴリズムを指定します。
stateless-bean-load-algorithm
を以下のいずれかの値で定義できます。
round-robin
- Bean のホスト サーバ間で順番にロード バランシングを実行する。
random
- Bean のホスト サーバ間で EJB ホームのレプリカがランダムにデプロイされる。
weight-based
- ホスト サーバの現在の負荷に従って、EJB ホームのレプリカをデプロイするサーバが決まる。
round-robin-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、ラウンドロビン ロード バランシングがサーバ インスタンス間の接続に使用される。
weight-based-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、重みベース ロード バランシングがサーバ インスタンス間の接続に使用される。
random-affinity
- サーバ アフィニティが外部 Java クライアントとサーバ インスタンスの接続を管理し、ランダム ロード バランシングがサーバ インスタンス間の接続に使用される。
詳細については、『Oracle Fusion Middleware Oracle WebLogic Server クラスタの使い方』の「EJB と RMI オブジェクトのロード バランシング」を参照してください。
指定できる値 : True | False
デフォルト値 : False
親要素 :
weblogic-enterprise-bean stateless-session-descriptor stateless-clustering
注意 : この要素はこのリリースでは非推奨になりました。 |
同一引数での同一メソッドの多重呼び出しが 1 回だけの呼び出しとまったく同じになるように設計されている Bean に対してのみ、stateless-bean-methods-are-idempotent
を True
に設定します。これによって、フェイルオーバ ハンドラは、失敗した呼び出しが失敗したサーバで実際に完了していたかどうかがわからなくても失敗した呼び出しを再試行できます。このプロパティを True
に設定すると、Bean を提供する他のサーバが使用できるようになっている限り、Bean スタブは障害から自動的に回復できます。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean stateless-session-descriptor
<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>
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor
または
message-driven-descriptor
または
stateless-session-descriptor
指定できる値 :
有効な値は以下のとおり。
Clustered
- タイマーがクラスタ対応であることを指定する。このオプションを選択すると、EJB タイマーに対して自動フェイルオーバ、ロード バランシング、クラスタ内の強化したアクセシビリティなどの機能が提供される。WebLogic Server のクラスタにデプロイされる EJB の場合はこのオプションを推奨。
Local
- タイマーが作成されたサーバ上でのみタイマーが動作し、そのサーバ上の Bean からしか見えないことを指定する。この要素を Local
に設定すると、EJB をクラスタにデプロイし、タイマーを作成するために EJB を呼び出した場合、その呼び出しはクラスタ内のいずれかのサーバに届く。別の呼び出し (タイマーの取り消しなど) もクラスタ内のどのサーバにも届く可能性があり、必ずしも、タイマーを作成する呼び出しが届いた同じサーバに届くとは限らない。たとえば、タイマーを作成する呼び出しが server1
にリダイレクトされ、タイマーを取り消す呼び出しが server2
にリダイレクトされた場合、server2
にある EJB には server1
にあるタイマーが見えないため、タイマーを取り消すことはできない。
ローカル タイマーを使用するときにこの制限を回避するには、以下のいずれかの方法を使用できる。
クラスタ内の 1 つのサーバに EJB デプロイメントを固定する。こうすると、EJB に対するすべての呼び出しは EJB が固定されているサーバに届き、すべてのタイマーはその同じサーバ上に存在することになる。ただし、この方法を使用すると、その EJB はロード バランシングやフェイルオーバなどのクラスタ化の利点を利用できなくなる。
JMS トピックをリスンするメッセージ駆動型 Bean (MDB) を使用して、クラスタ内のすべてのサーバにタイマーを取り消す呼び出しが届くようにする。タイマーを取り消すメッセージは JMS トピックにパブリッシュされ、各サーバ上の MDB によって処理される。次に、各サーバ上の MDB は Bean の cancelTimer
メソッドを呼び出す。ただし、この方法を使用するとアプリケーションがより複雑になり、すべてのサーバ上でタイマーを取り消そうとするのは効率がよくない。
デフォルト値 : Local
(ファイル ストアの現在の EJB タイマー サービスを使用)
親要素 :
weblogic-enterprise-bean entity-descriptor
または
message-driven-descriptor
または
stateless-session-descriptor
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
<transaction-isolation><isolation-level>...</isolation-level>
<method>
<description>...</description>
<ejb-name>...</ejb-name>
<method-intf>...</method-intf>
<method-name>...</method-name>
<method-params>...</method-params>
</method> </transaction-isolation>
詳細については、「isolation-level」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean iiop-security-descriptor
指定できる値 : 0
~ max
デフォルト値 : 30
親要素 :
weblogic-enterprise-bean transaction-descriptor
EJB のコンテナで初期化されたトランザクションの最長継続時間を指定します。トランザクションの継続時間が trans-timeout-seconds
の値を超えると、WebLogic Server によってトランザクションがロールバックされます。
指定できる値 : 有効な文字列。WebLogic_CMP_RDBMS
は WebLogic Server の RDBMS ベースの永続性を指定する。
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor persistence persistence-use
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須です。エンティティ EJB の永続性タイプを指定します。WebLogic Server RDBMS ベースの永続性では、WebLogic_CMP_RDBMS
という識別子を使用します。別の永続性ベンダを使用している場合の正しい type-identifier
についてはベンダのドキュメントを参照してください。
指定できる値 : 有効な文字列
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor persistence persistence-use
コンテナ管理の永続性サービスを使用するエンティティ EJB でのみ必須です。この永続性タイプのデータを格納するファイルの絶対パスを定義します。パスは、EJB のデプロイメント JAR ファイルまたはデプロイメント ディレクトリの最上位を基準にしたファイルの場所を指定する必要があります。
WebLogic Server RDBMS ベースの永続性では通常、Bean の永続性データを格納するのに weblogic-cmp-jar.xml
という XML ファイルを使用します。このファイルは、JAR ファイルの META-INF
サブディレクトリにあります。
指定できる値 : 有効な文字列
デフォルト値 : なし
親要素 :
weblogic-enterprise-bean entity-descriptor persistence persistence-use
同じ永続性タイプの複数バージョンがインストールされている場合に、コンテナ管理による永続性サービスを使用するエンティティ EJB の場合に必須です。指定した永続性タイプのバージョンを指定します。たとえば、WebLogic 1.1 CMP の永続性の場合は、次の値を使用します。
6.0
WebLogic 1.1 CMP の永続性の場合は、次の値を使用します。
5.1.0
この要素は、同じ永続性タイプの複数のバージョンがインストールされている場合に必須です。
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').
指定できる値 : true | false
デフォルト値 : false
親要素 :
weblogic-enterprise-bean entity-descriptor entity-clustering
および
weblogic-enterprise-bean stateful-session-descriptor stateful-session-clustering
および
weblogic-enterprise-bean entity-descriptor entity-clustering
指定できる値 : true | false
デフォルト値 : false
親要素 :
weblogic-ejb-jar weblogic-enterprise-bean message-driven-descriptor
WLS バージョン 8.1 方式のポーリングの下位互換性を有効にします。
WLS バージョン 8.1 以前では、バッチ処理が有効になっているトランザクション対応 MDB は、デプロイ済みの各 MDB ごとに専用のポーリング スレッドを作成していました。このポーリング スレッドは dispatch-policy
で指定されたプールから割り当てられるものではなく、システムで動作している他のすべてのスレッドに追加される、完全に新しいスレッドでした。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server パフォーマンス チューニング ガイド』の「WLS 10.0 以前のバージョン方式のポーリングに対する下位互換性」を参照してください。
指定できる値 : なし
デフォルト値 : なし
親要素 :
weblogic-ejb-jar
EJB の作業要求を管理するワーク マネージャを指定します。
ワーク マネージャの詳細については、『Oracle Fusion Middleware Oracle WebLogic Server サーバ環境のコンフィグレーション』の「ワーク マネージャを使用したスケジューリング済み作業の最適化」を参照してください。