Hitachi

Cosminexus V11 アプリケーションサーバ アプリケーション設定操作ガイド


9.10.3 Entity Beanの実行時プロパティの設定

アプリケーションを構成する個々のEntity Beanに対して,アプリケーション実行時のプロパティを設定します。

〈この項の構成〉

(1) 編集する属性ファイル

Entity Bean属性ファイル

(2) 編集する属性ファイルの取得と属性の設定

(3) 編集する属性設定項目

Entity Beanの実行時属性(<runtime>)のプロパティ設定項目を,次に示します。

項目

必須

対応するタグ名

Enterprise Beanのルックアップ名※1

<lookup-name>

リモートインタフェースを持つEnterprise Bean名の別名※1

<optional-name>

ローカルインタフェースを持つEnterprise Bean名の別名※1

<local-optional-name>

セッション最大数※2

<maximum-instances>

参照渡しの設定※3

<pass-by-reference>

プール内のインスタンスの最大値

<pooled-instance> - <maximum>

プール内のインスタンスの最小値

<pooled-instance> - <minimum>

データのキャッシュ方法

<caching-model>

EJBオブジェクトの存在期限

<entity-timeout>

(凡例) ○:必須 △:任意

注※1

JNDI名前空間に登録される名称の参照と変更については,「9.13.2 Enterprise Bean名の参照と変更」を参照してください。

注※2

Entity Beanに指定された最大セッション数は,EJBクライアントアプリケーションから利用できるEntity Beanの最大値です。0を指定した場合は,同時に生成できるEntity Beanのリモートオブジェクトの数は無制限(実際の最大値は2147483647)になります。

注※3

参照渡しの設定は,usrconf.propertiesファイルでも実施できます。プロパティまたはusrconf.propertiesファイルのどちらかで設定されていれば,参照渡しの設定は有効になります。

プロパティの設定項目については,マニュアル「アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「3.5.1 Entity Bean属性ファイルの指定内容」を参照してください。

プロパティ項目の設定と動作について,次に説明します。

プール内のインスタンスの最大値

メモリ上でプーリングされるEntity Beanには,次の二つの状態があります。

  • ready状態

    ready状態のEntity Beanは,データがデータベース上からインスタンス中に読み込まれた状態のもので,Entity Beanとしてのアイデンティティを持っています。ready状態のものはEJBクライアントアプリケーションからアクセスされた時点ですでに実行できるようになっています。

  • pool状態

    pool状態のEntity Beanは,データがデータベース上からインスタンス中に読み込まれていない状態のもので,Entity Beanとしてのアイデンティティを持っていません。pool状態のものは,一度活性化されready状態になってから実行できます。

ready状態のEntity Beanが多くなると,幾つかが非活性化されpool状態になります。ただし,このとき,ready状態のEntity Beanの中でトランザクション処理中のものについては,非活性化の対象になりません。

プール内のインスタンスの最大値(<pooled-instance> - <maximum>)には,プーリングされるready状態とpool状態のEntity Beanの最大数を指定します。これは,メモリ上に展開されるEntity Beanインスタンスの上限です。

プール内のインスタンスの最大値に「0」を指定した場合は,プーリングされるEntity Beanインスタンスの数は無制限になります。

プールされたインスタンスの数がこの値を超えると,J2EEサーバは,最も活性でないインスタンスを非活性化します。

プール内のインスタンスの最小値

プーリングされるready状態とpool状態のEntity Beanの最小数を指定します。この値は,メモリ上に展開されるEntity Beanインスタンスの下限です。J2EEアプリケーション起動時にここで指定した数のEntity Beanが生成され,pool状態,またはready状態になりプーリングされます。プーリングされるEntity Beanの数は,EJBクライアントアプリケーションからのアクセス量に応じて,最大数と最小数の間になります。

プール内のインスタンスの最小値(<pooled-instance> - <minimum>)に0を指定した場合は,J2EEアプリケーション起動時にEntity Beanが生成されません。クライアントに参照されないEntity Beanインスタンスを,最低幾つメモリに保持しておくかを指定します。この値は,プール内のインスタンスの最大値(<pooled-instance> - <maximum>)の値を超えてはいけません。

データのキャッシュ方法

Entity Beanのキャッシュモデル(コミットオプション)を指定します。

  • Full caching(commit option A)

    トランザクション開始時にデータベースからEntity Beanインスタンスにデータが読み込まれないため,Entity Beanが前回のトランザクションコミット時と同じ状態のままでトランザクションが開始されます(例えば,前回のトランザクションコミット時からトランザクション開始時の間にほかのJ2EEサーバがEntity Beanを更新した場合,Entity Beanの状態の一貫性が保たれません)。Full cachingは参照系のEntity Bean用のキャッシュモデルです。

  • Caching(commit cache option B)

    トランザクション開始時にデータベースからEntity Beanインスタンスにデータが読み込まれるため,Entity Beanがデータベースの最新状態と同じ状態でトランザクションが開始されます。Cachingは更新系のEntity Bean用のキャッシュモデルです。

  • No caching(commit cache option C)

    トランザクションコミット時にEntity Beanが非活性化されます。トランザクション開始時には,一度活性化され,データベースからEntity Beanインスタンスにデータが読み込まれます。このため,Entity Beanがデータベースの最新状態と同じ状態でトランザクションが開始されます。No cachingは更新系のEntity Bean用です。また,トランザクションコミット時に必ず非活性化されるため,多数のEntity Beanを利用する場合のキャッシュモデルです。

EJBオブジェクトの存在期限

タイムアウト値を秒単位で指定します。値は,0または正の整数値で指定します。パッシベイトされたEntity BeanのEJBオブジェクトは,最小でこのタイムアウト値に指定した時間,最大でこのタイムアウト値に指定した時間+usrconf.propertiesファイルのejbserver.container.passivate.scan.intervalに指定した値の時間だけ存在します。クライアントからタイムアウト値の時間を経過してもアクセスされない場合,該当するEJBオブジェクトは削除されます。

EJBオブジェクトの存在期限(<entity-timeout>)に「0」を指定した場合は,タイムアウトは発生しません。

(4) 注意事項