ヘッダーをスキップ

Oracle® Application Server Containers for J2EE Enterprise JavaBeans開発者ガイド
10g リリース2(10.1.2)
B15634-02
目次
目次
索引
索引

戻る 次へ

A
ORION-EJB-JAR.XMLのXMLリファレンス

この付録では、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に示す推奨する開発用ディレクトリ構造に追加することをお薦めします。

図A-1    開発アプリケーションのディレクトリ構造


画像の説明

OC4J固有のEJBのデプロイメント・ディスクリプタ

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セクション

<enterprise-beans>セクションでは、すべてのEJB(Session Bean、Entity BeanおよびMessage-Driven Bean)の追加のデプロイ情報を定義します。各EJBのタイプごとにセクションが分かれています。

次の各項で、<enterprise-beans>要素内の要素を説明します。

Session Beanセクション

<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>要素の属性は次のとおりです。

表A-1    <session-deployment>要素の属性 
属性  説明 

pool-cache-timeout 

pool-cache-timeoutは、ステートレスSession EJBに適用されます。このパラメータは、プールにキャッシュされたステートレス・セッションを維持する期間を指定します。

ステートレスSession Beanの場合、pool-cache-timeoutを指定すると、pool-cache-timeoutごとに、プール内の対応するBeanタイプのBeanがすべて削除されます。値が0(ゼロ)または負の場合は、pool-cache-timeoutが無効になり、Beanはプールから削除されません。

デフォルト値は60(秒)です。 

call-timeout 

このパラメータは、ビジネス・メソッドまたはライフ・サイクル・メソッドを起動するリソースを待機する最大時間を指定します。これは、ビジネス・メソッドが起動するまでのタイムアウトではありません。

タイムアウトに達すると、TimedOutExceptionがスローされます。これによって、データベース接続が除外されます。

デフォルトは90000ミリ秒です。0(ゼロ)に設定すると、タイムアウトはありません。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 

copy-by-value 

EJBコールのすべての受信および送信パラメータをコピーする(クローンを作成する)かどうか。速度を上げるには、使用するアプリケーションがcopy-by-valueセマンティクスを前提としないことが確実な場合、この値をfalseに設定します。デフォルトはtrueです。 

location 

このBeanがバインドされるJNDI名。 

max-instances 

メモリー内に存在できるインスタンス化またはプールされたBeanインスタンスの数。この値に達すると、コンテナは最も古いBeanインスタンスをメモリーから非アクティブ化しようとします。非アクティブ化に失敗した場合、コンテナは、call-timeout属性に指定されたミリ秒数待機して、非アクティブ化、remove()メソッドまたはBeanの期限切れのいずれかによって、メモリーから削除されたBeanインスタンスがあるかどうかを確認し、その後でTimeoutExpiredExceptionをクライアントにスローします。Beanインスタンスの数を無限に許可する場合は、max-instances属性を0(ゼロ)に設定できます。デフォルトは0(ゼロ)で、無限を意味します。この属性は、ステートレスSession BeanおよびステートフルSession Beanの両方に適用されます。 

min-instances 

インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最小数。デフォルトは0です。この設定が有効なのは、ステートレスSession Beanのみです。 

max-tx-retries 

このパラメータは、システム・レベルの障害によってロールバックされたトランザクションの再試行回数を指定します。デフォルトは0(ゼロ)です。

通常は、再試行によって解決できるエラーがある場合のみ再試行の回数を追加することをお薦めします。たとえば、分離レベルserializableを使用していて、競合が発生したとき自動的にトランザクションが再試行されるようにする場合には、再試行を使用できます。ただし、競合の発生時にBeanに通知する場合は、max-tx-retries=0のままにしておく必要があります。

デフォルトは0(ゼロ)です。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 

tx-retry-wait 

このパラメータは、トランザクションの再試行の時間間隔を秒数で指定します。デフォルトは60秒です。 

name 

Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション(ejb-jar.xml)内のBeanの名前に一致します。 

persistence-filename 

再起動のたびにセッションが保存されるファイルへのパス。 

replication 

ステートフルSession Beanに対する状態レプリケーションの構成。値は、VMTerminationEndOfCallまたはNoneのいずれかです。Noneがデフォルトです。詳細は、「ステートフルSession Bean用のEJBレプリケーションの構成」を参照してください。 

timeout 

秒数によるtimeout属性は、ステートフルSession EJBに適用されます。値が0(ゼロ)または負の数の場合、すべてのタイムアウトが使用禁止になります。

このtimeoutパラメータは、ステートフルSession Beanに関する非アクティブのタイムアウトです。30秒ごとに、プール・クリーンアップ・ロジックが起動します。プール・クリーンアップ・ロジックの実行中に、タイムアウト値を渡すことによって削除されるのは、タイムアウトしたセッションのみです。

アプリケーションでのステートフルSession Beanの使用状況に応じて、タイムアウトを調整します。たとえば、ステートフルSession Beanを明示的に削除しないアプリケーションの場合は、多数のステートフルSession Beanが作成されるため、タイムアウト値を短い時間に設定できます。

アプリケーションでステートフルSession Beanを1800秒(30分)以上使用可能にする必要がある場合は、タイムアウト値をそれにあわせて調整します。

デフォルト値は1800秒(30分)です。 

idletime 

各Beanに対してアイドル・タイムアウトを設定できます。このタイムアウトが経過すると、非アクティブ化が発生します。この属性を適切な秒数に設定します。デフォルトは300秒(5分)です。この属性を無効にするには、neverを指定します。 

memory-threshold 

非アクティブ化が発生するまでに使用可能なJVMメモリーの量に対するしきい値を定義します。

パーセンテージとして解釈される整数を指定します。

この値に達すると、アイドル・タイムアウトが経過していない場合でもBeanは非アクティブ化されます。デフォルトは80%です。この属性を無効にするには、neverを指定します。 

max-instances-
threshold
 

max-instances属性の定義に応じて、存在するアクティブBeanの数に対するしきい値を定義します。パーセンテージとして解釈される整数を指定します。max-instancesを100、max-instances-thresholdを90%に定義した場合は、アクティブBeanインスタンスの数が90を超えると、Beanの非アクティブ化が発生します。デフォルトは90%です。この属性を無効にするには、neverを指定します。 

resource-check-
interval
 

コンテナは、すべてのリソースをこの時間間隔でチェックします。この時点でいずれかのしきい値に達している場合は、非アクティブ化が発生します。デフォルトは180秒(3分)です。この属性を無効にするには、neverを指定します。 

passivate-count 

いずれかのリソースしきい値に達した場合に非アクティブ化されるBeanの数を定義する整数です。Beanの非アクティブ化は、最低使用頻度アルゴリズムを使用して実行されます。デフォルトは、max-instances属性の1/3です。この属性を無効にするには、カウントを0(ゼロ)または負の数に設定します。 

wrapper 

このBeanのOC4Jラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 

local-wrapper 

このBeanのOC4Jローカル・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 

Entity Beanセクション

<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>要素の属性は次のとおりです。

表A-2    <entity-deployment>要素の属性 
属性  説明 

call-timeout 

このパラメータは、ビジネス・メソッドまたはライフ・サイクル・メソッドを起動するリソースを待機する最大時間を指定します。これは、ビジネス・メソッドが起動するまでのタイムアウトではありません。

タイムアウトに達すると、TimedOutExceptionがスローされます。これによって、データベース接続が除外されます。

デフォルトは90000ミリ秒です。0(ゼロ)に設定すると、タイムアウトはありません。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 

clustering-schema 

使用しません。このリリースでは必要ありません。 

copy-by-value 

EJBコールのすべての受信および送信パラメータをコピーする(クローンを作成する)かどうか。速度を上げるには、使用するアプリケーションがcopy-by-valueセマンティクスを前提としないことが確実な場合、この値をfalseに設定します。デフォルトはtrueです。 

data-source 

コンテナ管理の永続性を使用している場合、データ・ソースの名前。 

exclusive-write-access 

EJBサーバーがバックエンド・データベースへの排他的書込み(更新)アクセスがあるかどうか。read_onlyのEntity Beanでのみ使用できます。使用した場合、共有のBean操作のパフォーマンスが向上し、キャッシングの効率が向上します。

このパラメータは、使用するコミット・オプション(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に設定する必要があります。

詳細は、「データベースへの排他的書込みアクセス」を参照してください。 

do-select-before-insert 

falseの場合は、挿入前のSELECT文の実行を回避します。通常、この余分なSELECT文は、重複を回避するために、エンティティがすでに存在するかどうかを挿入前にチェックします。

エンティティに一意キー制約を定義している場合は、この属性をfalseに設定することをお薦めします。一意キー制約がない場合は、この属性をfalseに設定すると、重複した挿入が検出されなくなります。この場合に重複した挿入を防止するには、この属性をtrueのままにします。

パフォーマンスの理由から、この属性はfalseに設定し、挿入前の余分なSELECT文の実行を回避することをお薦めします。デフォルト値はtrueです。 

instance-cache-timeout 

エンティティ・ラッパー・インスタンスを識別情報に割り当てておく秒単位の時間。neverを指定すると、ラッパー・インスタンスは、ガベージ・コレクションが行われるまで維持されます。デフォルトは60秒です。 

location 

このBeanがバインドされるJNDI名。 

isolation 

データベース処理の分離レベルを指定します。Oracleデータベースに対する有効な値は、serializableおよびcommittedです。デフォルトはcommittedです。Oracleデータベース以外の場合は、none、committed、serializable、uncommittedおよび'repeatable_read'が有効です。

詳細は、「データベース分離モードによるリソース競合の回避」および「リソースの競合を処理するEntity Beanの同時実行性モードの構成」、および『Oracle Application Serverパフォーマンス・ガイド』を参照してください。 

locking-mode 

モードによって、リソースの競合を管理するためのブロック時期、またはパラレルで実行する時期を構成します。詳細は、「データベース分離モードによるリソース競合の回避」および「リソースの競合を処理するEntity Beanの同時実行性モードの構成」、および『Oracle Application Serverパフォーマンス・ガイド』を参照してください。次の同時実行性モードがあります。

  • PESSIMISTIC: リソースの競合を管理し、パラレル実行はできません。Entity Beanを実行できるのは、一度に
    1ユーザーのみです。

  • OPTIMISTIC: 複数のユーザーがパラレルでEntity Beanを実行できます。リソースの競合は監視しないため、データの一貫性を維持するには、データベース分離モードを使用する必要があります。これはデフォルトです。

  • READ-ONLY: 複数のユーザーがパラレルでEntity Beanを実行できます。コンテナでは、Beanの状態を更新できません。

 

max-instances 

インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最大数。デフォルトは0(ゼロ)で、無限を意味します。詳細は、「Entity Beanのプール・サイズの構成」を参照してください。 

min-instances 

インスタンス化またはプールされた状態で維持されるBean実装インスタンスの最小数。デフォルトは0(ゼロ)です。詳細は、「Entity Beanのプール・サイズの構成」を参照してください。 

max-tx-retries 

このパラメータは、システム・レベルの障害によってロールバックされたトランザクションの再試行回数を指定します。デフォルトは0(ゼロ)です。

通常は、再試行によって解決できるエラーがある場合のみ再試行の回数を追加することをお薦めします。たとえば、分離レベルserializableを使用していて、競合が発生したとき自動的にトランザクションが再試行されるようにする場合には、再試行を使用できます。ただし、競合の発生時にBeanに通知する場合は、max-tx-retries=0のままにしておく必要があります。

デフォルトは0(ゼロ)です。詳細は、『Oracle Application Serverパフォーマンス・ガイド』のEJBの項を参照してください。 

tx-retry-wait 

このパラメータは、トランザクションの再試行の時間間隔を秒数で指定します。デフォルトは60秒です。 

update-changed-fields-only 

ejbStoreの起動時に、コンテナが、CMP Entity Beanの永続記憶域に対して変更されたフィールドのみ更新するか、または全フィールドを更新するかを指定します。デフォルトはtrueで、変更されたフィールドのみ更新されます。詳細は、「永続性を使用した、Entity Beanのデータの一貫性の維持」を参照してください。 

name 

Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション(ejb-jar.xml)内のBeanの名前に一致します。 

pool-cache-timeout 

Bean実装インスタンスを、プールされた(割り当てられていない)状態で維持する秒単位の時間。neverを指定すると、ガベージ・コレクションが行われるまでインスタンスを維持します。デフォルトは60です。 

table 

コンテナ管理の永続性を使用している場合、データベース内の表の名前。 

validity-timeout 

エンティティがキャッシュ内で有効である(再ロードされるまでの)最大の期間(ミリ秒単位)。既存システムからの更新がほとんど発生しない疎結合環境で役立ちます。この属性は、locking-modeがread_onlyのEntity Beanについて、exclusive-write-access="true"(デフォルト)の場合にのみ有効です。

外部でのデータ変更がない場合(したがって、exclusive-write-access=trueに設定)は、0または-1に設定してこのオプションを使用禁止にすることをお薦めします。これは、外部での変更がない読取り専用のEJBの場合は、キャッシュ内のデータは常に有効であるためです。

EJBの外部での変更は通常ない(したがって、exclusive-write-access=trueに設定)が、表の更新があるため、キャッシュの更新がときどき必要な場合は、外部でのデータ変更の間隔に応じた値を設定します。 

force-update 

OC4Jで永続データの変更が不明の場合は、force-update属性をtrueに設定すると、OC4JはejbStoreメソッドを起動してEJBのライフ・サイクルを実行します。これによって、一時フィールドのデータが管理され、ejbStoreメソッドの実行時に適切な永続フィールドが設定されます。たとえば、イメージを、メモリー内に保持している形式とは異なる形式で、データベース内に格納することができます。デフォルトはfalseです。 

wrapper 

このBeanのOC4Jリモート・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 

local-wrapper 

このBeanのOC4Jローカル・ホーム・ラッパー・クラスの名前。内部サーバー値のため、編集しないでください。 

delay-updates-until-commit 

この属性は、CMP Entity Beanでのみ有効です。トランザクション・データのフラッシュをコミット・タイムまで遅延するかどうかを指定します。デフォルトはtrueです。この値をfalseに設定すると、EJBメソッド(ejbRemove()およびfinderメソッドを除く)の起動が完了するたびに、永続データが更新されます。 

Message-Driven Beanセクション

<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>要素の属性は次のとおりです。

表A-3    <message-driven-deployment>要素の属性 
属性  説明 

cache-timeout 

この要素は使用しません。 

connection-factory-
location
 

使用するコネクション・ファクトリのJNDIの場所。JMSのDestination Connection Factoryは、connection-factory-location属性で指定されます。構文は、java:comp/resource + リソース・プロバイダ名 + TopicConnectionFactoriesまたはQueueConnectionFactories + ユーザー定義名です。xxxConnectionFactoriesは、定義するファクトリのタイプを指定します。詳細は、「Oracle JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 

destination-location 

使用する接続先(キュー、トピック)のJNDIの場所。JMSのDestinationは、destination-location属性で指定されます。構文は、java:comp/resource + リソース・プロバイダ名 + TopicsまたはQueues + Destination名です。TopicまたはQueueは、定義されるDestinationタイプを指定します。Destination名は、データベースで定義された実際のキュー名またはトピック名です。詳細は、「Oracle JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 

max-instances 

この要素は使用しません。かわりに、listener-threadsを使用します。 

min-instances 

この要素は使用しません。 

name 

Beanの名前。これは、EJBデプロイメント・ディスクリプタのアセンブリ・セクション(ejb-jar.xml)内のBeanの名前に一致します。 

subscription-name 

これがトピックの場合、サブスクリプション名はsubscription-name属性で定義されます。詳細は、「Oracle JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 

listener-threads 

リスナー・スレッドは、JMSメッセージを並行してコンシュームするために使用されます。デフォルトのスレッドは1つです。トピックに指定できるスレッドは1つのみです。キューには複数のスレッドを指定できます。詳細は、「OracleAS JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 

transaction-timeout 

この属性によって、コンテナ管理のトランザクション型MDBのトランザクション・タイムアウト時間(秒)を制御します。デフォルトは1日(86,400秒)です。この時間枠内でトランザクションが完了しない場合、トランザクションはロールバックされます。詳細は、
「Oracle JMSを使用するOC4J固有のデプロイメント・ディスクリプタの作成」を参照してください。 

dequeue-retry-count 

データベース・フェイルオーバーの発生後、リスナー・スレッドによって試行されるJMSセッションの再取得頻度を指定します。デフォルトは0(ゼロ)です。この値は、MDB内のCMTトランザクションに対してのみ有効です。詳細は、「RACデータベース使用時のフェイルオーバー」を参照してください。 

dequeue-retry-
interval
 

再試行の間隔を指定します。デフォルトは60秒です。 

AC4JのアクティブEJBセクション

<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フィールド・マッピング・セクション

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>

使用可能なスタイルは、次のいずれかです。

  1. 指定したEnterprise Beanのホーム・インタフェースおよびリモート・インタフェースのすべてのメソッドを指す場合、次のようにしてメソッドを指定します。

    <method>
       <ejb-name>EJBNAME</ejb-name>
       <method-name>*</method-name>
    </method>
    
  2. 同じオーバーロードされた名前を持つ複数のメソッドを指す場合、次のようにしてメソッドを指定します。

    <method>
       <ejb-name>EJBNAME</ejb-name>
       <method-name>METHOD</method-name>
    </method>>
    
  3. オーバーロードされた名前を持つ一連のメソッドのうちの1つのメソッドを指す場合、次のようにしてメソッド内の各パラメータを指定します。

    <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ドキュメント・セットの次の項で説明されています。

要素の説明

<assembly-descriptor>

アセンブリ・ディスクリプタ要素のマッピング。

<called-by>

アプリケーション・デプロイヤは、AC4J Beanで定義された非同期メソッドの使用を管理または制限できます。この要素内で、Beanのすべてのメソッドを実行できるユーザーIDを指定します。AC4J Beanを実行できるIDは、1つ以上の<caller>要素で識別されます。

<caller>

AC4J Beanでメソッドを実行できるコール元IDは、それぞれ単一の<caller>要素内で定義されます。

属性:

<cmp-field-mapping>

コンテナ管理による永続的なフィールドのデプロイ情報。異なる動作を定義するサブタグが使用されていない場合、このフィールドは、シリアライズ化、または認識可能なプリミティブ型のネイティブ処理の際も維持されます。

属性:

<collection-mapping>

Collection型のリレーショナル・マッピングを指定します。Collectionは、n個の順序付けされていない(順序が指定されておらず、必要ない)アイテムで構成されます。マッピングを含んでいるフィールドは、java.util.Collection型である必要があります。

属性:

<context-attribute>

コンテキストに送信される属性。JNDIで必須の属性は、java.naming.factory.initialのみです。これは、コンテキスト・ファクトリ実装のクラス名です。

属性:

<data-bus>

AC4Jオブジェクトに対する特定データ・バスの名前とURL。

属性:

<default-method-access>

対応するメソッド許可が存在しないメソッド用の、デフォルトのメソッド・アクセス・ポリシー。

<description>

短い説明。

<ejb-name>

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の字句規則に従う必要があります。

<ejb-ref-mapping>

別のEnterprise Beanのホームの参照の宣言に使用されるejb-ref要素。ejb-ref-mapping要素は、デプロイ時にこれをJNDIの場所に関連付けます。

属性:

<enterprise-beans>

このEJB JARファイルに含まれているBean。

<entity-deployment>

Entity Beanのデプロイ情報。

属性:

<entity-ref>

主キーを通じてエンティティ参照を維持するための構成を指定。このタグの子タグは、主キーを維持するための指定です。

属性:

<env-entry-mapping>

アセンブリ・ディスクリプタのenv-entryの値をオーバーライドします。EARにデプロイ固有の値が指定されるのを防ぎます。本体が値です。

属性:

<fields>

このフィールドについて、フィールド・ベース(Javaクラス・フィールド)のマッピングの永続性の構成を指定します。永続的にするフィールドは、パブリックで非静的および非ファイナルであり、さらに含まれているオブジェクトの型には空のコンストラクタが存在する必要があります。

<finder-method>

コンテナ管理によるfinderメソッドの定義。これにより、BeanのホームのfindByXXX()メソッドの選択条件が定義されます。

属性:

<group>

この<security-role-mapping>が示すグループ。つまり、指定されたグループの全メンバーがこのロールに含まれます。

属性:

<ior-security-config>

<ior-security-config>要素は、相互運用性のCSIv2セキュリティ・ポリシーを構成します。詳細は、『Oracle Application Server Containers for J2EEサービス・ガイド』の相互運用性の章で説明されています。

<jem-deployment>

AC4JコンテナにデプロイするアクティブEJBを指定します。

属性:

<jem-server-extension>

データ・バスがインストールされているデータベース・サーバーを示します。

属性:

<lookup-context>

リソースの取得に使用される、オプションのjavax.naming.Context実装の仕様。サード・パーティ製のJMSサーバーなど、サード・パーティ製のモジュールを使用する場合、これが役立ちます。リソース・ベンダーが提供しているコンテキスト実装を使用するか、それが存在しない場合は、ベンダーのソフトウェアとネゴシエーションを行う実装を作成します。

属性:

<map-key-mapping>

マップ・キーのマッピングを指定します。マップ・キーは、常に不変です。

属性:

<message-driven-deployment>

MDBのデプロイ情報。

属性:

<method>

Beanのメソッド(および場合によってはメソッドのパラメータ)を指定します。

<method-intf>

method-intf要素により、method要素が、リモート・インタフェースおよびホーム・インタフェースで定義されている、同じ名前およびシグネチャを持つメソッドを区別できるようになります。method-intf要素は、HomeまたはRemoteのいずれかである必要があります。

<method-name>

method-name要素には、Enterprise Beanメソッドの名前、またはアスタリスク(*)記号が含まれます。アスタリスクは、要素が、Enterprise Beanのリモート・インタフェースおよびホーム・インタフェースのすべてのメソッドを示す場合に使用されます。

<method-param>

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

<method-params>

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

<orion-ejb-jar>

orion-ejb-jar.xmlファイルには、EJBのOC4J固有のデプロイ情報が含まれています。初期のデプロイ・プロパティの指定に使用されます。毎回デプロイ後に、追加情報用にサーバーによってデプロイ・ファイルが再フォーマットされ、修正されます。

属性:

<primkey-mapping>

主キーのマッピング方式を指定します。

<properties>

このフィールドについて、プロパティ・ベース(Beanプロパティ)のマッピングの永続性の構成を指定します。プロパティは、通常のJavaBeans仕様に従う必要があり、含まれているオブジェクトには、空のコンストラクタが存在する必要があります。これは、EJB仕様でも指定されています。

<resource-ref-mapping>

resource-ref要素は、データ・ソース、JMSキューまたはメール・セッションなどの外部リソースの参照の宣言に使用されます。resource-ref-mappingは、デプロイ時にこれをJNDIの場所に結合します。

属性:

<resource-env-ref-mapping>

resource-env-ref-mapping要素は、リソースの管理オブジェクトをマッピングするために使用されます。たとえば、JMSを使用するために、BeanはJMSファクトリ・オブジェクトと接続先オブジェクトの両方を取得する必要があります。これらのオブジェクトは、JNDIから同時に取得されます。<resource-ref>要素でJMSファクトリを宣言し、<resource-env-ref>要素を使用して接続先を宣言します。したがって、<resource-env-ref-mapping>要素は接続先オブジェクトをマッピングします。詳細は、「クライアントがMDBにアクセスするときに論理名を使用する方法」を参照してください。

属性:

<role-name>

<run-as-specified-identity>要素を使用するとき、AC4J EJBメソッドを実行するセキュリティ・ロール。

<run-as-specified-identity>

AC4J EJBのすべてのメソッドが特定の識別情報を使用して実行されるように指定できます。つまり、コンテナは、特定のメソッドを実行する許可について別のロールをチェックせず、かわりに、指定されたセキュリティ識別情報を使用してすべてのAC4J EJBメソッドを実行します。

<security-identity>

AC4Jデータ・バスでAC4J Beanセキュリティのコール元またはrun-as識別情報を使用するかどうかを記述します。

<security-role-mapping>

グループおよびユーザーへの、ロールの実行時のマッピング。アセンブリ・ディスクリプタ内で、同じ名前のsecurity-roleにマッピングされます。

属性:

<session-deployment>

セッションBeanのデプロイ情報。

属性:

<set-mapping>

Set型のリレーショナル・マッピングを指定します。Setは、n個の一意の順序付けされていない(順序が指定されておらず、必要ない)アイテムで構成されます。マッピングを含んでいるフィールドは、java.util.Set型である必要があります。

属性:

<use-caller-identity>

AC4J EJBのすべてのメソッドがコール元の識別情報を使用して実行されるように指定できます。

<user>

このsecurity-role-mappingによって示されるユーザー。

属性:

<value-mapping>

一連のフィールドの主キー部分のマッピングを指定します。

属性:


戻る 次へ
Oracle
Copyright © 2005 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引