Interstage Application Server J2EE ユーザーズガイド |
目次
索引
![]() ![]() |
第3部 EJB編 | > 第16章 EJBサービスの基本機能 | > 16.2 Entity Beanの実行環境 |
EJBサービスでは、EJB規約に準拠して、Entity Beanのインスタンス用領域を仮想メモリ上でプール管理しています。
ユーザは、プール管理するインスタンスの数を設定することができます。
インスタンスは、インスタンス生成モードに設定したタイミングで生成され、停止するまで保持されます。
設定したインスタンス数以上のデータ操作をした場合、アプリケーションの動作に問題はありませんが、データベースへのアクセスが行われるので処理性能に若干影響します。
EJBサービスでは、処理性能やメモリ性能の向上を図るため、ユーザの用途に合わせたきめ細かいインスタンス管理モードを用意しています。
インスタンス管理の種類とそれぞれの用途を以下に示します。
インスタンス管理モード |
用途 |
ReadWrite(デフォルト) |
トランザクション単位にインスタンスをキャッシュすることで、同一トランザクション内でデータアクセスの性能向上を図っています。検索および更新処理を行うオンライン処理に有効です。 |
ReadOnly |
トランザクションにまたがってインスタンスをキャッシュすることで、検索処理に特化して高速化を図っています。例えば、オンライン中に更新されないマスタ情報の検索処理などに有効です。 |
Sequential |
データを順番に取り出して操作するような処理に対して、メモリ性能の向上を図っています。大量データを操作するバッチ処理に有効です。ただし、上記モードと比べてレスポンス性能が若干低下します。 高速に呼び出すBeanにEntity Beanを指定した場合は、使用できません。 |
Interstage V2で作成したEJBアプリケーションの場合に使用するモードとして、上記のモード以外に“NoCache(トランザクション内でfinderメソッドにより同一レコードを検索した場合に、別のインスタンスが返却される)”があります。
EJB1.1以降で新たに提供された機能を使用しているEntity Beanで、インスタンス管理モードに"NoCache"を指定すると誤動作する場合があるため、使用しないでください。
Entity Beanに対して、「初期起動インスタンス数」に指定したインスタンスの生成タイミングを選択できます。
以下に、Enitty Beanインスタンスを生成するタイミングを示します。
Entity Bean起動処理の延長で、初期起動インスタンス数分のEntity Beanインスタンスを生成します。
高速呼出し機能を使用する場合は、本モードが初期値として設定されます。
Entity Bean起動完了後の初回アクセス時に、初期起動インスタンス数分Entity Beanインスタンスを生成します。
Entity Bean起動完了後、アクセス時にEntity Beanインスタンスがプールに存在しない場合、毎回生成を行います(注1)。生成したインスタンスは非活性化の延長(passivate時)でプーリングされます。
Light EJBコンテナ機能を使用する場合は、本モードが初期値として設定されます。
注1)
インスタンスの生成は、「Entity Beanのインスタンス数」を上限として行われます。
以下に、インスタンス生成モードの指定方法を示します。
“高速呼び出し定義”で指定する。
ejbcustxコマンドでEJBコンテナを指定して、“EJBアプリケーションの実行環境の定義”の“定義情報(2)タグ”で指定する。
Entity Beanのインスタンス生成モードを選択する基準を、以下の表に示します。
インスタンス生成オプション |
選択基準 |
At Start-Up |
1)Entity Beanの運用開始直後の処理性能を向上させたい場合 |
At First Access |
1)Entity Beanの起動性能を向上させたい場合 |
As Required |
1)Entity Beanの起動性能を向上させたい場合 |
インスタンス数、インスタンス管理モードおよびインスタンス生成モードは、Entity Bean単位に設定することができます。
目次
索引
![]() ![]() |