| Oracle® Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansのプログラミング 11gリリース1(10.3.6) B61624-04 |
|
![]() 前 |
![]() 次 |
以下の節では、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ヘッダーについては、付録A「デプロイメント記述子スキーマおよびドキュメント・タイプ定義リファレンス」を参照してください。
weblogic-cmp-jar.xmlファイルについては、付録C「weblogic-cmp-jar.xmlデプロイメント記述子のリファレンス」を参照してください。
EJB 1.1デプロイメント記述子の要素については、付録F「EJB 1.1ユーザーへの重要な情報」を参照してください。
完全なweblogic-ejb-jar.xsdスキーマは、http://www.oracle.com/technology/weblogic/weblogic-ejb-jar/1.2/weblogic-ejb-jar.xsdを参照してください。
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 or 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が8より小さい場合、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に設定することにより大容量のクラスタでの起動時間を短縮できます。
コロケートEJBの詳細は、『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エンティティEJBの詳細は、「読み書き対応エンティティ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 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が発生します。
|
注意: この要素はEJB 3.0に対して非推奨になっています。WebLogic Server 10.3.0以降では、この機能はFastSwapに替わりました。『Oracle WebLogic Serverへのアプリケーションのデプロイ』の「FastSwapデプロイメントによる再デプロイメントの最小化」を参照してください。 |
値の範囲: 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 WebLogic Serverへのアプリケーションのデプロイ』の「エンタープライズ・アプリケーションのデプロイメント記述子の要素」を参照してください。
値の範囲:なし
デフォルト値:なし
親要素:
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
デフォルト値: 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 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 or message-driven-descriptor or 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>
値の範囲: 0 - maxBeans
デフォルト値: 0
親要素:
weblogic-enterprise-bean stateless-session-descriptor or message-driven-descriptor or 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プロバイダが初期コンテキストの作成に使用する初期コンテキスト・ファクトリを指定します。『Oracle Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング』の「宛先を考慮した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 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)」を参照してください。
値の範囲: 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 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
値の範囲:有効なファイル・システム・ディレクトリ
デフォルト値: 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 or 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
InitialContextで使用されるURLを指定します。『Oracle Fusion Middleware Oracle WebLogic ServerメッセージドリブンBeanのプログラミング』の「宛先を考慮したMDBの構成」および「provider-urlの設定方法」を参照してください。
<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()を呼び出します。
値の範囲: 0 - maxSeconds。maxSecondsは整数の最大値です。
デフォルト値: 0
親要素:
weblogic-enterprise-bean
リモートRMIクライアントがタイムアウトするまでの待機時間を指定します。『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
Java EE Sandboxと関連するセキュリティ・パーミッションを指定します。
詳細は、セキュリティ・パーミッション仕様の実装を参照してください。
http://download.oracle.com/javase/1.3/docs/guide/security/PolicyFiles.html#FileSyntax
値の範囲:なし
デフォルト値:なし
親要素:
security-permission
セキュリティ・ポリシー・ファイル構文に基づいて単一のセキュリティ許可を指定します。
詳細は、セキュリティ・パーミッション仕様の実装を参照してください。
http://download.oracle.com/javase/1.3/docs/guide/security/PolicyFiles.html#FileSyntax
「java.vm.version」に「read」許可を与え、それが上書きされるのを防止するには:
次のようにsecurity-permission-specを設定します。
<security-permission>
<description>Optional explanation goes here</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 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-ejb-jar
値の範囲:なし
デフォルト値:なし
親要素:
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」を参照してください。
値の範囲: 0 - max
デフォルト値:ドメイン・レベルJTA構成によるもの。
親要素:
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 2.0 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 WebLogic Serverパフォーマンスおよびチューニング』の「WLS 10.0以前のバージョン方式のポーリングに対する下位互換性」を参照してください。