Oracle® Application Server Containers for J2EE Enterprise JavaBeans開発者ガイド 10g リリース2(10.1.2) B15634-02 |
|
この付録では、OC4J固有のEJBデプロイメント・ディスクリプタであるorion-ejb-jar.dtd
に含まれている要素について説明します。この付録では、DTD内の構造と要素を簡単に説明しますが、ほとんどの要素は、このマニュアルの他の項で詳しく説明しています。
DTDは、http://xmlns.oracle.com/ias/dtds/orion-ejb-jar.dtd
にあります。
このデプロイメント・ディスクリプタについて、次の項で説明しています。
アプリケーションをデプロイするたびに、OC4Jにより、デフォルトの要素を持つOC4J固有のXMLファイルが自動的に生成されます。これらのデフォルトを変更する場合、orion-ejb-jar.xml
ファイルを、元のejb-jar.xml
ファイルが存在している場所にコピーし、ここで変更する必要があります。XMLファイルをデプロイした場所で変更すると、アプリケーションが再びデプロイされた場合に、OC4Jによってこれらの変更が上書きされます。開発ディレクトリで変更が行われた場合のみ、変更が維持されます。
オラクル社では、OC4J固有のXMLファイルを、図A-1に示す推奨する開発用ディレクトリ構造に追加することをお薦めします。
OC4J固有のデプロイメント・ディスクリプタには、Session Bean、Entity Bean、Message-Driven Bean、およびこれらのEJBのセキュリティに関する高度なデプロイ情報が含まれています。このデプロイメント・ディスクリプタ内の主な要素構造は、次のようになっています。
<orion-ejb-jar deployment-time=... deployment-version=...> <enterprise-beans> <session-deployment ...></session-deployment> <entity-deployment ...></entity-deployment> <message-driven-deployment ...></message-driven-deployment> <jem-deployment ...></jem-deployment> <jem-server-extension ...></jem-server-extension> </enterprise-beans> <assembly-descriptor> <security-role-mapping ...></security-role-mapping> <default-method-access></default-method-access> </assembly-descriptor> </orion-ejb-jar>
<orion-ejb-jar>
メイン・タグの下の各セクションは、それぞれ用途が決まっています。これらについては、次の項で説明します。
<enterprise-beans>
セクションでは、すべてのEJB(Session Bean、Entity BeanおよびMessage-Driven Bean)の追加のデプロイ情報を定義します。各EJBのタイプごとにセクションが分かれています。
次の各項で、<enterprise-beans>
要素内の要素を説明します。
<session-deployment>
セクションでは、このJARファイル内でデプロイされたSession Beanの追加のデプロイ情報を提供します。<session-deployment>
セクションには、次の構造が含まれています。
<session-deployment pool-cache-timeout=... call-timeout=... copy-by-value=... location=... max-instances=... min-instances=... max-tx-retries=... tx-retry-wait=... name=... persistence-filename=... replication=... timeout=... idletime=... memory-threshold=... max-instances-threshold=... resource-check-interval=... passivate-count=... wrapper=... local-wrapper=... <ior-security-config> <transport-config> <integrity></integrity> <confidentiality></confidentiality> <establish-trust-in-target></establish-trust-in-target> <establish-trust-in-client></establish-trust-in-client> </transport-config> <as-context> <auth-method></auth-method> <realm></realm> <required></required> </as-context> <sas-context> <caller-propagation></caller-propagation> </sas-context> </ior-security-config> <env-entry-mapping name=...> </env-entry-mapping <ejb-ref-mapping location=... name=... /> <resource-ref-mapping location=... name=... > <lookup-context location=...> <context-attribute name=... value=... /> </lookup-context> </resource-ref-mapping> <resource-env-ref-mapping location=... name=... /> </session-deployment>
各要素グループについては、OC4Jドキュメント・セットの次の項で説明されています。
<session-deployment>
要素を含むSession Beanの例は、第3章「Session Beanの実装」にある「デプロイメント・ディスクリプタの作成」で説明されています。
<ior-security-config>
要素は相互運用性の要素です。詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』の相互運用性の章で説明されています。
<env-entry-mapping>
要素は、環境変数をJNDI名にマッピングします。詳細は、
<ejb-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、
<resource-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、「リソース・マネージャのコネクション・ファクトリ参照への環境参照」で説明されています。
<resource-env-ref-mapping>
要素は、リソースの管理オブジェクトをマッピングするために使用されます。たとえば、JMSを使用するために、BeanはJMSファクトリ・オブジェクトと接続先オブジェクトの両方を取得する必要があります。これらのオブジェクトは、JNDIから同時に取得されます。<resource-ref>
要素でJMSファクトリを宣言し、<resource-env-ref>
要素を使用して接続先を宣言します。したがって、<resource-env-ref-mapping>
要素は接続先オブジェクトをマッピングします。詳細は、「クライアントがMDBにアクセスするときに論理名を使用する方法」を参照してください。
<session-deployment>
要素の属性は次のとおりです。
属性 | 説明 |
---|---|
|
pool-cache-timeoutは、ステートレスSession EJBに適用されます。このパラメータは、プールにキャッシュされたステートレス・セッションを維持する期間を指定します。 ステートレスSession Beanの場合、pool-cache-timeoutを指定すると、pool-cache-timeoutごとに、プール内の対応するBeanタイプのBeanがすべて削除されます。値が0(ゼロ)または負の場合は、pool-cache-timeoutが無効になり、Beanはプールから削除されません。 デフォルト値は60(秒)です。 |
|
このパラメータは、ビジネス・メソッドまたはライフ・サイクル・メソッドを起動するリソースを待機する最大時間を指定します。これは、ビジネス・メソッドが起動するまでのタイムアウトではありません。
タイムアウトに達すると、 デフォルトは90000ミリ秒です。0(ゼロ)に設定すると、タイムアウトはありません。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 |
|
EJBコールのすべての受信および送信パラメータをコピーする(クローンを作成する)かどうか。速度を上げるには、使用するアプリケーションがcopy-by-valueセマンティクスを前提としないことが確実な場合、この値をfalseに設定します。デフォルトはtrueです。 |
|
このBeanがバインドされるJNDI名。 |
|
メモリー内に存在できるインスタンス化またはプールされたBeanインスタンスの数。この値に達すると、コンテナは最も古いBeanインスタンスをメモリーから非アクティブ化しようとします。非アクティブ化に失敗した場合、コンテナは、 |
|
インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最小数。デフォルトは0です。この設定が有効なのは、ステートレスSession Beanのみです。 |
|
このパラメータは、システム・レベルの障害によってロールバックされたトランザクションの再試行回数を指定します。デフォルトは0(ゼロ)です。 通常は、再試行によって解決できるエラーがある場合のみ再試行の回数を追加することをお薦めします。たとえば、分離レベルserializableを使用していて、競合が発生したとき自動的にトランザクションが再試行されるようにする場合には、再試行を使用できます。ただし、競合の発生時にBeanに通知する場合は、max-tx-retries=0のままにしておく必要があります。 デフォルトは0(ゼロ)です。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 |
|
このパラメータは、トランザクションの再試行の時間間隔を秒数で指定します。デフォルトは60秒です。 |
|
Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション( |
|
再起動のたびにセッションが保存されるファイルへのパス。 |
|
ステートフルSession Beanに対する状態レプリケーションの構成。値は、 |
|
秒数によるtimeout属性は、ステートフルSession EJBに適用されます。値が0(ゼロ)または負の数の場合、すべてのタイムアウトが使用禁止になります。 このtimeoutパラメータは、ステートフルSession Beanに関する非アクティブのタイムアウトです。30秒ごとに、プール・クリーンアップ・ロジックが起動します。プール・クリーンアップ・ロジックの実行中に、タイムアウト値を渡すことによって削除されるのは、タイムアウトしたセッションのみです。 アプリケーションでのステートフルSession Beanの使用状況に応じて、タイムアウトを調整します。たとえば、ステートフルSession Beanを明示的に削除しないアプリケーションの場合は、多数のステートフルSession Beanが作成されるため、タイムアウト値を短い時間に設定できます。 アプリケーションでステートフルSession Beanを1800秒(30分)以上使用可能にする必要がある場合は、タイムアウト値をそれにあわせて調整します。 デフォルト値は1800秒(30分)です。 |
|
各Beanに対してアイドル・タイムアウトを設定できます。このタイムアウトが経過すると、非アクティブ化が発生します。この属性を適切な秒数に設定します。デフォルトは300秒(5分)です。この属性を無効にするには、neverを指定します。 |
|
非アクティブ化が発生するまでに使用可能なJVMメモリーの量に対するしきい値を定義します。 この値に達すると、アイドル・タイムアウトが経過していない場合でもBeanは非アクティブ化されます。デフォルトは80%です。この属性を無効にするには、neverを指定します。 |
|
max-instances属性の定義に応じて、存在するアクティブBeanの数に対するしきい値を定義します。パーセンテージとして解釈される整数を指定します。max-instancesを100、max-instances-thresholdを90%に定義した場合は、アクティブBeanインスタンスの数が90を超えると、Beanの非アクティブ化が発生します。デフォルトは90%です。この属性を無効にするには、neverを指定します。 |
|
コンテナは、すべてのリソースをこの時間間隔でチェックします。この時点でいずれかのしきい値に達している場合は、非アクティブ化が発生します。デフォルトは180秒(3分)です。この属性を無効にするには、neverを指定します。 |
|
いずれかのリソースしきい値に達した場合に非アクティブ化されるBeanの数を定義する整数です。Beanの非アクティブ化は、最低使用頻度アルゴリズムを使用して実行されます。デフォルトは、 |
|
このBeanのOC4Jラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 |
|
このBeanのOC4Jローカル・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 |
<entity-deployment>
セクションでは、このJARファイル内でデプロイされたEntity Beanの追加のデプロイ情報を提供します。<entity-deployment>
セクションには、次の構造が含まれています。
<entity-deployment call-timeout=... clustering-schema=... copy-by-value=... data-source=... exclusive-write-access=... do-select-before-insert=... instance-cache-timeout=... isolation=... location=... locking-mode=... max-instances=... min-instances=... max-tx-retries=... tx-retry-wait=... update-chnaged-fields-only=... name=... pool-cache-timeout=... table=... validity-timeout=... force-update=... wrapper=... local-wrapper=... delay-updates-until-commit=... findByPrimaryKey-lazy-loading=... > <ior-security-config> <transport-config> <integrity></integrity> <confidentiality></confidentiality> <establish-trust-in-target></establish-trust-in-target> <establish-trust-in-client></establish-trust-in-client> </transport-config> <as-context> <auth-method></auth-method> <realm></realm> <required></required> </as-context> <sas-context> <caller-propagation></caller-propagation> </sas-context> </ior-security-config> <primkey-mapping> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </primkey-mapping> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...> </cmp-field-mapping> <finder-method partial=... query=... lazy-loading=... prefetch-size=... > <method></method> </finder-method> <env-entry-mapping name=...></env-entry-mapping> <ejb-ref-mapping location=... name=... /> <resource-ref-mapping location=... name=... > <lookup-context location=...> <context-attribute name=... value=... /> </lookup-context> </resource-ref-mapping> <resource-env-ref-mapping location=... name=... /> </entity-deployment>
各要素グループについては、OC4Jドキュメント・セットの次の項で説明されています。
<entity-deployment>
要素を含むEntity Beanの例は、第4章「CMP Entity Bean」、
<ior-security-config>
要素は、相互運用性のCSIv2セキュリティ・ポリシーを構成します。詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』の相互運用性の章で説明されています。
<primkey-mapping>
要素は、主キーを対応するCMPフィールドにマッピングします。詳細は、「永続フィールドのデータベースへの明示的なマッピング」を参照してください。
<cmp-field-mapping>
要素は、各<cmp-field>
要素をそのデータベース行にマッピングします。詳細は、「永続フィールドのデータベースへの明示的なマッピング」を参照してください。
<finder-method>
要素は、EJB 1.1 Entity Beanのfinderメソッドを作成するために使用されます。EJB 2.0のfinderメソッドを作成する方法は、「EJB問合せ言語」を参照してください。
<env-entry-mapping>
要素は、環境変数をJNDI名にマッピングします。詳細は、
<ejb-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、
<resource-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、「リソース・マネージャのコネクション・ファクトリ参照への環境参照」で説明されています。
<resource-env-ref-mapping>
要素は、リソースの管理オブジェクトをマッピングするために使用されます。たとえば、JMSを使用するために、BeanはJMSファクトリ・オブジェクトと接続先オブジェクトの両方を取得する必要があります。これらのオブジェクトは、JNDIから同時に取得されます。<resource-ref>
要素でJMSファクトリを宣言し、<resource-env-ref>
要素を使用して接続先を宣言します。したがって、<resource-env-ref-mapping>
要素は接続先オブジェクトをマッピングします。詳細は、「クライアントがMDBにアクセスするときに論理名を使用する方法」を参照してください。
<entity-deployment>
要素の属性は次のとおりです。
属性 | 説明 |
---|---|
|
このパラメータは、ビジネス・メソッドまたはライフ・サイクル・メソッドを起動するリソースを待機する最大時間を指定します。これは、ビジネス・メソッドが起動するまでのタイムアウトではありません。
タイムアウトに達すると、 デフォルトは90000ミリ秒です。0(ゼロ)に設定すると、タイムアウトはありません。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 |
|
使用しません。このリリースでは必要ありません。 |
|
EJBコールのすべての受信および送信パラメータをコピーする(クローンを作成する)かどうか。速度を上げるには、使用するアプリケーションがcopy-by-valueセマンティクスを前提としないことが確実な場合、この値をfalseに設定します。デフォルトはtrueです。 |
|
コンテナ管理の永続性を使用している場合、データ・ソースの名前。 |
|
EJBサーバーがバックエンド・データベースへの排他的書込み(更新)アクセスがあるかどうか。 このパラメータは、使用するコミット・オプション(EJB仕様で定義されているA、BまたはC、)に対応しています。exclusive-write-access = trueの場合は、コミット・オプションAになります。 デフォルトは、Beanに対してlocking-modeがoptimisticまたはpessimisticの場合はfalse、locking-modeがread-onlyの場合はtrueです。 exclusive-write-access属性は、locking-modeがpessimisticまたはoptimisticの場合は必ずfalseに設定され、EJBクラスタリングでは使用されません。locking-modeがread-onlyの場合は、exclusive-write-access属性をfalseに設定できますが、パフォーマンスへの影響はありません。これは、変更されたフィールドがない場合はejbStoresメソッドがスキップされるためです。パフォーマンスを向上させ、読取り専用のBeanに対してejbLoadsメソッドを実行しないようにするには、exclusive-write-access=trueに設定する必要があります。 詳細は、「データベースへの排他的書込みアクセス」を参照してください。 |
|
falseの場合は、挿入前のSELECT文の実行を回避します。通常、この余分なSELECT文は、重複を回避するために、エンティティがすでに存在するかどうかを挿入前にチェックします。 エンティティに一意キー制約を定義している場合は、この属性をfalseに設定することをお薦めします。一意キー制約がない場合は、この属性をfalseに設定すると、重複した挿入が検出されなくなります。この場合に重複した挿入を防止するには、この属性をtrueのままにします。 パフォーマンスの理由から、この属性はfalseに設定し、挿入前の余分なSELECT文の実行を回避することをお薦めします。デフォルト値はtrueです。 |
|
エンティティ・ラッパー・インスタンスを識別情報に割り当てておく秒単位の時間。neverを指定すると、ラッパー・インスタンスは、ガベージ・コレクションが行われるまで維持されます。デフォルトは60秒です。 |
|
このBeanがバインドされるJNDI名。 |
|
データベース処理の分離レベルを指定します。Oracleデータベースに対する有効な値は、serializableおよびcommittedです。デフォルトはcommittedです。Oracleデータベース以外の場合は、none、committed、serializable、uncommittedおよび'repeatable_read'が有効です。 詳細は、「データベース分離モードによるリソース競合の回避」および「リソースの競合を処理するEntity Beanの同時実行性モードの構成」、および『Oracle Application Serverパフォーマンス・ガイド』を参照してください。 |
|
モードによって、リソースの競合を管理するためのブロック時期、またはパラレルで実行する時期を構成します。詳細は、「データベース分離モードによるリソース競合の回避」および「リソースの競合を処理するEntity Beanの同時実行性モードの構成」、および『Oracle Application Serverパフォーマンス・ガイド』を参照してください。次の同時実行性モードがあります。 |
|
インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最大数。デフォルトは0(ゼロ)で、無限を意味します。詳細は、「Entity Beanのプール・サイズの構成」を参照してください。 |
|
インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最小数。デフォルトは0(ゼロ)です。詳細は、「Entity Beanのプール・サイズの構成」を参照してください。 |
|
このパラメータは、システム・レベルの障害によってロールバックされたトランザクションの再試行回数を指定します。デフォルトは0(ゼロ)です。 通常は、再試行によって解決できるエラーがある場合のみ再試行の回数を追加することをお薦めします。たとえば、分離レベルserializableを使用していて、競合が発生したとき自動的にトランザクションが再試行されるようにする場合には、再試行を使用できます。ただし、競合の発生時にBeanに通知する場合は、max-tx-retries=0のままにしておく必要があります。 デフォルトは0(ゼロ)です。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 |
|
このパラメータは、トランザクションの再試行の時間間隔を秒数で指定します。デフォルトは60秒です。 |
|
|
|
Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション( |
|
Bean実装インスタンスを、プールされた(割り当てられていない)状態で維持する秒単位の時間。neverを指定すると、ガベージ・コレクションが行われるまでインスタンスを維持します。デフォルトは60です。 |
|
コンテナ管理の永続性を使用している場合、データベース内の表の名前。 |
|
エンティティがキャッシュ内で有効である(再ロードされるまでの)最大の期間(ミリ秒単位)。既存システムからの更新がほとんど発生しない疎結合環境で役立ちます。この属性は、locking-modeが 外部でのデータ変更がない場合(したがって、exclusive-write-access=trueに設定)は、0または-1に設定してこのオプションを使用禁止にすることをお薦めします。これは、外部での変更がない読取り専用のEJBの場合は、キャッシュ内のデータは常に有効であるためです。 EJBの外部での変更は通常ない(したがって、exclusive-write-access=trueに設定)が、表の更新があるため、キャッシュの更新がときどき必要な場合は、外部でのデータ変更の間隔に応じた値を設定します。 |
|
OC4Jで永続データの変更が不明の場合は、 |
|
このBeanのOC4Jリモート・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 |
|
このBeanのOC4Jローカル・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 |
delay-updates-until-commit |
この属性は、CMP Entity Beanでのみ有効です。トランザクション・データのフラッシュをコミット・タイムまで遅延するかどうかを指定します。デフォルトはtrueです。この値をfalseに設定すると、EJBメソッド( |
<message-driven-deployment>
セクションでは、このJARファイル内でデプロイされたMessage-Driven Beanの追加のデプロイ情報を提供します。<message-driven-deployment>
セクションには、次の構造が含まれています。
<message-driven-deployment cache-timeout=... connection-factory-location=...
destination-location=... name=... subscription-name=... listener-threads=... transaction-timeout=... dequeue-retry-count=... dequeue-retry-interval=... > <env-entry-mapping name=...></env-entry-mapping> <ejb-ref-mapping location=... name=... /> <resource-ref-mapping location=... name=... > <lookup-context location=...> <context-attribute name=... value=... /> </lookup-context> </resource-ref-mapping> <resource-env-ref-mapping location=... name=... /> </message-driven-deployment>
各要素グループについては、OC4Jドキュメント・セットの次の項で説明されています。
<message-driven-deployment>
要素を含むMessage-Driven Beanの例は、第9章「Message-Driven Bean」で説明されています。
<ejb-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、
<resource-ref-mapping>
要素は、EJB参照をJNDI名にマッピングします。詳細は、「リソース・マネージャのコネクション・ファクトリ参照への環境参照」で説明されています。
<resource-env-ref-mapping>
要素は、リソースの管理オブジェクトをマッピングするために使用されます。たとえば、JMSを使用するために、BeanはJMSファクトリ・オブジェクトと接続先オブジェクトの両方を取得する必要があります。これらのオブジェクトは、JNDIから同時に取得されます。<resource-ref>
要素でJMSファクトリを宣言し、<resource-env-ref>
要素を使用して接続先を宣言します。したがって、<resource-env-ref-mapping>
要素は接続先オブジェクトをマッピングします。詳細は、「クライアントがMDBにアクセスするときに論理名を使用する方法」を参照してください。
<message-driven-deployment>
要素の属性は次のとおりです。
属性 | 説明 |
---|---|
|
この要素は使用しません。 |
|
使用するコネクション・ファクトリのJNDIの場所。JMSの |
|
使用する接続先(キュー、トピック)のJNDIの場所。JMSの |
|
この要素は使用しません。かわりに、 |
|
この要素は使用しません。 |
|
Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション( |
|
これがトピックの場合、サブスクリプション名は |
|
リスナー・スレッドは、JMSメッセージを並行してコンシュームするために使用されます。デフォルトのスレッドは1つです。トピックに指定できるスレッドは1つのみです。キューには複数のスレッドを指定できます。詳細は、「OracleAS JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 |
|
この属性によって、コンテナ管理のトランザクション型MDBのトランザクション・タイムアウト時間(秒)を制御します。デフォルトは1日(86,400秒)です。この時間枠内でトランザクションが完了しない場合、トランザクションはロールバックされます。詳細は、 |
|
データベース・フェイルオーバーの発生後、リスナー・スレッドによって試行されるJMSセッションの再取得頻度を指定します。デフォルトは0(ゼロ)です。この値は、MDB内のCMTトランザクションに対してのみ有効です。詳細は、「RACデータベース使用時のフェイルオーバー」を参照してください。 |
|
再試行の間隔を指定します。デフォルトは60秒です。 |
<jem-server-extension>
セクションでは、AC4Jデータ・バスがインストールされているデータベースのJNDI名を定義します。<jem-server-extension>
セクションには、次の構造が含まれています。
<jem-server-extension data-source-location=... scheduling-threads=...> <description></description> <data-bus data-bus-name=... url=.../> </jem-server-extension>
この要素の詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』を参照してください。
<jem-deployment>
セクションでは、このJARファイル内でデプロイされたアクティブEJBの追加のデプロイ情報を提供します。<jem-deployment>
セクションには、次の構造が含まれています。
<jem-deployment jem-name=... ejb-name=...> <description></description> <data-bus data-bus-name=... url=.../> <called-by> <caller caller-identity=.../> </called-by> <security-identity> <description></description> <use-caller-identity></use-caller-identity> </security-identity> </jem-deployment>
called-by
要素によって、アプリケーション・デプロイヤは、AC4J Beanで定義された非同期メソッドの使用を管理または制限できます。次の例にある"CLIUSER"、"SVRUSER"および"XTRAUSER"は、name="ABean
"のEJBに対応するAC4JBeanA
で定義されているすべてのメソッドを起動できます。"USER1"または"USER2"がこのAC4JBeanA
を起動すると、コンテナはSecurityException
をスローします。
<jem-deployment jem-name="AC4JBeanA" ejb-name="ABean"> <called-by> <caller caller-identity="CLIUSER"/> <caller caller-identity="SVRUSER"/> <caller caller-identity="XTRAUSER"/> </called-by> </jem-deployment>
アプリケーション・デプロイヤがABean EJBのsecurity-roleをrole="USER1"ただし、called-by
要素が"USER1"に対して定義されていないかぎり、"USER1"は、AC4JBeanA
の同じ非同期メソッドを起動できません。
この要素の詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』を参照してください。
EJB 1.1 CMP Entity Beanを使用する場合は、次の要素を使用して、CMPフィールドをデータベースにマッピングします。
次に、orion-ejb-jar.xml
ファイル内で、CMP永続データ・フィールドのマッピングに使用されるXML要素を示します。
<cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...> <fields> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </fields> <properties> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </properties> <entity-ref home=...> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </entity-ref> <collection-mapping table=...> <primkey-mapping> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </primkey-mapping> <value-mapping immutable="true|false" type=...> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </value-mapping> </collection-mapping> <set-mapping table=...> <primkey-mapping> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </primkey-mapping> <value-mapping immutable="true|false" type=...> <cmp-field-mapping ejb-reference-home=... name=... persistence-name=... persistence-type=...></cmp-field-mapping> </value-mapping> </set-mapping> </cmp-field-mapping>
次の構造は、Beanのメソッド(および場合によってはメソッドのパラメータ)の指定に使用します。
<method> <description></description> <ejb-name></ejb-name> <method-intf></method-intf> <method-name></method-name> <method-params> <method-param></method-param> </method-params> </method>
使用可能なスタイルは、次のいずれかです。
<method> <ejb-name>EJBNAME</ejb-name> <method-name>*</method-name> </method>
<method> <ejb-name>EJBNAME</ejb-name> <method-name>METHOD</method-name> </method>>
<method> <ejb-name>EJBNAME</ejb-name> <method-name>METHOD</method-name> <method-params> <method-param>PARAM-1</method-param> <method-param>PARAM-2</method-param> ... <method-param>PARAM-n</method-param> </method-params> </method>
<method>
要素は、securityセクションおよびMDBセクション内で使用します。詳細は、
「EJBデプロイメント・ディスクリプタでの論理ロールの指定」を参照してください。
個別のBeanに対するデプロイ情報の指定以外に、<assembly-descriptor>
セクションで、セキュリティ用の追加デプロイ・マッピング情報を指定できます。<assembly-descriptor>
セクションには、次の構造が含まれています。
<assembly-descriptor> <security-role-mapping impliesAll=... name=...> <group name=... /> <user name=... /> </security-role-mapping> <default-method-access> <security-role-mapping impliesAll=... name=...> <group name=... /> <user name=... /> </security-role-mapping> </default-method-access> </assembly-descriptor>
各要素グループについては、OC4Jドキュメント・セットの次の項で説明されています。
<security-role-mapping>
要素については、「ユーザーおよびグループへの論理ロールのマッピング」で説明されています。
<default-method-access>
要素については、「未定義メソッドに対するデフォルト・ロール・マッピングの指定」で説明されています。
アセンブリ・ディスクリプタ要素のマッピング。
アプリケーション・デプロイヤは、AC4J Beanで定義された非同期メソッドの使用を管理または制限できます。この要素内で、Beanのすべてのメソッドを実行できるユーザーIDを指定します。AC4J Beanを実行できるIDは、1つ以上の<caller>
要素で識別されます。
AC4J Beanでメソッドを実行できるコール元IDは、それぞれ単一の<caller>
要素内で定義されます。
属性:
コンテナ管理による永続的なフィールドのデプロイ情報。異なる動作を定義するサブタグが使用されていない場合、このフィールドは、シリアライズ化、または認識可能なプリミティブ型のネイティブ処理の際も維持されます。
属性:
Collection型のリレーショナル・マッピングを指定します。Collectionは、n個の順序付けされていない(順序が指定されておらず、必要ない)アイテムで構成されます。マッピングを含んでいるフィールドは、java.util.Collection型である必要があります。
属性:
コンテキストに送信される属性。JNDIで必須の属性は、java.naming.factory.initial
のみです。これは、コンテキスト・ファクトリ実装のクラス名です。
属性:
AC4Jオブジェクトに対する特定データ・バスの名前とURL。
属性:
対応するメソッド許可が存在しないメソッド用の、デフォルトのメソッド・アクセス・ポリシー。
短い説明。
ejb-name要素は、Enterprise Beanの名前を指定します。この名前は、ejb-jarファイルの作成者により、ejb-jarファイルのデプロイメント・ディスクリプタ内のEnterprise Beanに対して割り当てられます。名前は、同じejb-jarファイル内のEnterprise Beanの名前の中で一意である必要があります。Enterprise Beanのコードは、名前に依存していません。そのため、アプリケーションのアセンブリ・プロセス中に名前を変更しても、Enterprise Beanの機能を損ねません。デプロイメント・ディスクリプタのejb-nameと、DeployerがEnterprise Beanのホームに割り当てるJNDI名の間には、設計上の関連性はありません。名前は、NMTOKENの字句規則に従う必要があります。
別のEnterprise Beanのホームの参照の宣言に使用されるejb-ref
要素。ejb-ref-mapping
要素は、デプロイ時にこれをJNDIの場所に関連付けます。
属性:
このEJB JARファイルに含まれているBean。
Entity Beanのデプロイ情報。
属性:
RemoteException
をスローしてデッドロックとして扱うまでの時間。これは、SQL問合せタイムアウトとしても使用されます。SQL問合せが完了する前にタイムアウトが発生すると、SQL例外がスローされます。タイムアウトに0(ゼロ)を指定すると、タイムアウトは使用禁止になります。デフォルトは90秒です。
エンティティに一意キー制約を定義している場合は、この属性をfalseに設定することをお薦めします。一意キー制約がない場合は、この属性をfalseに設定すると、重複した挿入が検出されなくなります。この場合に重複した挿入を防止するには、この属性をtrueのままにします。
パフォーマンスの理由から、この属性はfalseに設定し、挿入前の余分なSELECT文の実行を回避することをお薦めします。デフォルト値はtrueです。
read_only
のEntity Beanでのみ使用できます。使用した場合、共有のBean操作のパフォーマンスが向上し、キャッシングの効率が向上します。デフォルトはfalseです。詳細は、「データベースへの排他的書込みアクセス」を参照してください。
ejb-jar.xml
)内のBeanの名前に一致します。
read_only
のEntity Beanについて、exclusive-write-access="true"(デフォルト)の場合にのみ有効です。外部でのデータ変更がない場合(したがって、exclusive-write-access=trueに設定)は、0または-1に設定してこのオプションを使用禁止にすることをお薦めします。これは、外部での変更がない読取り専用のEJBの場合は、キャッシュ内のデータは常に有効であるためです。
EJBの外部での変更は通常ない(したがって、exclusive-write-access=trueに設定)が、表の更新があるため、キャッシュの更新がときどき必要な場合は、外部でのデータ変更の間隔に応じた値を設定します。
ejbStore
の起動時に、コンテナが、CMP Entity Beanの永続記憶域に対して変更されたフィールドのみ更新するか、または全フィールドを更新するかを指定します。デフォルトはtrueで、変更されたフィールドのみ更新されます。詳細は、「永続性を使用した、Entity Beanのデータの一貫性の維持」を参照してください。
主キーを通じてエンティティ参照を維持するための構成を指定。このタグの子タグは、主キーを維持するための指定です。
属性:
アセンブリ・ディスクリプタのenv-entry
の値をオーバーライドします。EARにデプロイ固有の値が指定されるのを防ぎます。本体が値です。
属性:
このフィールドについて、フィールド・ベース(Javaクラス・フィールド)のマッピングの永続性の構成を指定します。永続的にするフィールドは、パブリックで非静的および非ファイナルであり、さらに含まれているオブジェクトの型には空のコンストラクタが存在する必要があります。
コンテナ管理によるfinderメソッドの定義。これにより、BeanのホームのfindByXXX()
メソッドの選択条件が定義されます。
属性:
この<security-role-mapping>
が示すグループ。つまり、指定されたグループの全メンバーがこのロールに含まれます。
属性:
<ior-security-config>
要素は、相互運用性のCSIv2セキュリティ・ポリシーを構成します。詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』の相互運用性の章で説明されています。
AC4JコンテナにデプロイするアクティブEJBを指定します。
属性:
データ・バスがインストールされているデータベース・サーバーを示します。
属性:
data-sources.xml
ファイルで構成されます。
リソースの取得に使用される、オプションのjavax.naming.Context
実装の仕様。サード・パーティ製のJMSサーバーなど、サード・パーティ製のモジュールを使用する場合、これが役立ちます。リソース・ベンダーが提供しているコンテキスト実装を使用するか、それが存在しない場合は、ベンダーのソフトウェアとネゴシエーションを行う実装を作成します。
属性:
マップ・キーのマッピングを指定します。マップ・キーは、常に不変です。
属性:
MDBのデプロイ情報。
属性:
Destination
Connection
Factory
は、connection-factory-location
属性で指定されます。構文は、java:comp/resource
+ リソース・プロバイダ名 + TopicConnectionFactories
またはQueueConnectionFactories
+ ユーザー定義名です。xxxConnectionFactories
は、定義するファクトリのタイプを指定します。
Destination
は、destination-location
属性で指定されます。構文は、java:comp/resource
+ リソース・プロバイダ名 + Topics
またはQueues
+ Destination
名です。Topic
またはQueue
は、定義されるDestination
タイプを指定します。Destination
名は、データベースで定義された実際のキュー名またはトピック名です。
ejb-jar.xml
)内のBeanの名前に一致します。
subscription-name
属性で定義されます。
Beanのメソッド(および場合によってはメソッドのパラメータ)を指定します。
method-intf要素により、method要素が、リモート・インタフェースおよびホーム・インタフェースで定義されている、同じ名前およびシグネチャを持つメソッドを区別できるようになります。method-intf要素は、HomeまたはRemoteのいずれかである必要があります。
method-name要素には、Enterprise Beanメソッドの名前、またはアスタリスク(*)記号が含まれます。アスタリスクは、要素が、Enterprise Beanのリモート・インタフェースおよびホーム・インタフェースのすべてのメソッドを示す場合に使用されます。
method-param要素には、メソッド・パラメータの完全修飾のJavaタイプ名が含まれます。
method-params要素には、メソッド・パラメータの完全修飾のJavaタイプ名のリストが含まれます。
orion-ejb-jar.xml
ファイルには、EJBのOC4J固有のデプロイ情報が含まれています。初期のデプロイ・プロパティの指定に使用されます。毎回デプロイ後に、追加情報用にサーバーによってデプロイ・ファイルが再フォーマットされ、修正されます。
属性:
主キーのマッピング方式を指定します。
このフィールドについて、プロパティ・ベース(Beanプロパティ)のマッピングの永続性の構成を指定します。プロパティは、通常のJavaBeans仕様に従う必要があり、含まれているオブジェクトには、空のコンストラクタが存在する必要があります。これは、EJB仕様でも指定されています。
resource-ref
要素は、データ・ソース、JMSキューまたはメール・セッションなどの外部リソースの参照の宣言に使用されます。resource-ref-mapping
は、デプロイ時にこれをJNDIの場所に結合します。
属性:
resource-env-ref-mapping
要素は、リソースの管理オブジェクトをマッピングするために使用されます。たとえば、JMSを使用するために、BeanはJMSファクトリ・オブジェクトと接続先オブジェクトの両方を取得する必要があります。これらのオブジェクトは、JNDIから同時に取得されます。<resource-ref>
要素でJMSファクトリを宣言し、<resource-env-ref>
要素を使用して接続先を宣言します。したがって、<resource-env-ref-mapping>
要素は接続先オブジェクトをマッピングします。詳細は、「クライアントがMDBにアクセスするときに論理名を使用する方法」を参照してください。
属性:
<run-as-specified-identity>
要素を使用するとき、AC4J EJBメソッドを実行するセキュリティ・ロール。
AC4J EJBのすべてのメソッドが特定の識別情報を使用して実行されるように指定できます。つまり、コンテナは、特定のメソッドを実行する許可について別のロールをチェックせず、かわりに、指定されたセキュリティ識別情報を使用してすべてのAC4J EJBメソッドを実行します。
AC4Jデータ・バスでAC4J Beanセキュリティのコール元またはrun-as識別情報を使用するかどうかを記述します。
グループおよびユーザーへの、ロールの実行時のマッピング。アセンブリ・ディスクリプタ内で、同じ名前のsecurity-roleにマッピングされます。
属性:
セッションBeanのデプロイ情報。
属性:
never
です。ステートレスSession Beanの場合、pool-cache-timeoutを指定すると、pool-cache-timeoutごとに、プール内の対応するBeanタイプのBeanがすべて削除されます。値が0(ゼロ)または負の場合は、pool-cache-timeoutが無効になり、Beanはプールから削除されません。デフォルト値は60(秒)です。
RemoteException
がスローされ、EJBはデッドロックにあるとみなされます。値が0に設定されている場合、OC4Jは永久にEJBを待機します。これはデフォルトです。
max-instances: メモリー内に存在できるインスタンス化またはプールされたBeanインスタンスの数を制御します。この値に達すると、コンテナは最も古いBeanインスタンスをメモリーから非アクティブ化しようとします。非アクティブ化に失敗した場合、コンテナはcall-timeout
属性に設定されたミリ秒数待機して、非アクティブ化、remove()
メソッドまたはBeanの期限切れのいずれかによって、メモリーから削除されたBeanインスタンスがあるかどうかを確認し、その後でTimeoutExpiredException
をクライアントにスローします。Beanインスタンスの数を無限に許可する場合は、max-instances
属性を
0(ゼロ)に設定できます。デフォルトは0(ゼロ)で、無限を意味します。この属性は、ステートレスSession BeanおよびステートフルSession Beanの両方に適用されます。
ejb-jar.xml
)内のBeanの名前に一致します。
max-instances
属性の1/3です。この属性を無効にするには、カウントを0(ゼロ)または負の数に設定します。
アプリケーションでのステートフルSession Beanの使用状況に応じて、タイムアウトを調整します。たとえば、ステートフルSession Beanを明示的に削除しないアプリケーションの場合は、多数のステートフルSession Beanが作成されるため、タイムアウト値を短い時間に設定できます。
アプリケーションでステートフルSession Beanを30分より長く使用可能にする必要がある場合は、タイムアウト値をそれにあわせて調整します。
Set型のリレーショナル・マッピングを指定します。Setは、n個の一意の順序付けされていない(順序が指定されておらず、必要ない)アイテムで構成されます。マッピングを含んでいるフィールドは、java.util.Set型である必要があります。
属性:
AC4J EJBのすべてのメソッドがコール元の識別情報を使用して実行されるように指定できます。
このsecurity-role-mappingによって示されるユーザー。
属性:
一連のフィールドの主キー部分のマッピングを指定します。
属性:
|
![]() Copyright © 2005 Oracle Corporation. All Rights Reserved. |
|