Interstage Application Server チューニングガイド |
目次
索引
![]() ![]() |
第2章 J2EEのチューニング | > 2.2 EJBコンテナのチューニング |
EJBアプリケーションを実行するために必要な実行環境定義の設定/変更を行います。
EJBアプリケーションとして、以下の各Beanにおけるチューニングについて説明します。
Session Beanには“STATEFUL Session Bean”と“STATELESS Session Bean”の2種類があります。STATELESS Session Beanを使用することで、メモリ資源やオブジェクトの生成回数が抑止されるため、処理性能が向上します。
以下に違いを示しますので、用途に合わせて使い分けてください。
STATEFUL |
STATELESS |
|
対話状態 |
createからremoveまで同一のオブジェクトにアクセスするため、クライアントとの対話状態を保持することが可能。 |
クライアントとの対話状態を持たないため、クライアントが情報を保持する必要がある。 |
トランザクション |
Session Beanのsynchronization機能を使って、トランザクションとの同期が可能。 |
1メソッド内でトランザクションを完了させる必要がある。 |
性能 |
クライアントごとにEJB objectを生成するため、STATELESSに比べてメモリ使用量が多い。 |
インスタンスを使い回す。また、EJBオブジェクトの共用オプションを使用することで、EJB objectも使い回すため、メモリ使用量を抑止することができる。また、オブジェクトの生成回数も抑止される。 |
V5のSession Beanには、以下の機能があります。
以下にそれぞれの機能について説明します。
EJBオブジェクトの共用によってクライアントでEJB資源が共用され、STATELESS Session Beanの初期起動インスタンス数は、スレッド多重度と同じ数値が自動的に設定されます。
サービスがクライアント単位の資源を獲得しないため、処理性能が向上します。また、クライアントからのビジネス処理が終了した後、removeメソッドの呼出しが不要となります。
EJBオブジェクトの共用を使用するか使用しないかの設定はカストマイズツールの“高速呼出し定義”で行います。初期値は、EJBオブジェクトの共用を使用しません。設定方法の例については“J2EEユーザーズガイド”の“カストマイズツールの使用方法”を参照してください。
EJBオブジェクトの共用の設定はEJBコンテナ定義で行います。EJBコンテナ定義ファイルの[Common]セクションにある“stateless_rapid_mode”に“true”(使用する)を設定します。EJBオブジェクトの共用を使用しない場合は“false”を設定してください。大文字/小文字の区別はありません。
EJBコンテナ定義ファイルの設定例については、“サンプル:EJBコンテナ定義ファイル”を参照してください。
EJBアプリケーションの起動時に、あらかじめ生成するSTATELESS Session Beanのインスタンス数のことを、“初期起動インスタンス数”といいます。初期起動インスタンス数には、1〜64までの数値を指定することができます。
初期起動インスタンス数は、カストマイズツールを使用して指定します。
詳細な設定方法については、“J2EEユーザーズガイド”の“カストマイズツールの使用方法”を参照してください。
STATELESS Session Beanの場合にだけ有効になります。
Session Beanは、クライアントがインスタンスを生成してから消去するまで存在し続けます。
Session BeanのEJB objectが生成(create)され、指定された時間内に消去(remove)されない場合、コンテナが自動的にEJB objectを消去します。
この機能を“セションタイムアウト”といい、その時間を“タイムアウト時間”といいます。
この機能を使用することにより、何らかの原因でクライアントアプリケーションがEJBアプリケーションを消去せずに終了してしまった場合、残ってしまうEJBアプリケーションを自動的に消去することができます。
セションタイムアウトのタイムアウト時間は、カストマイズツールで指定します。EJBアプリケーションごとに秒単位で設定できます。タイムアウト値に0秒を指定した場合、タイムアウトは発生しません。(デフォルト値は0秒です。)
詳細な設定方法については、“J2EEユーザーズガイド”の“カストマイズツールの使用方法”を参照してください。
Entity Beanは、プロセス外から自由に呼び出すことが可能ですが、プロセス外から呼び出すとIIOP通信が頻繁に発生することにより、性能が劣化するため、推奨しません。
Session BeanからEntity Beanを呼び出すように設計することをお勧めします。
Entity Beanのインスタンス生成は、Entity Beanのインスタンス数に指定された値を上限として行われます。
また、インスタンス管理モード、インスタンス生成オプションの設定もEntity Bean単位に設定します。
Entity Beanのインスタンス管理モード、インスタンス数、インスタンス生成オプションは、カストマイズツールを使用して設定します。設定の詳細については、“J2EEユーザーズガイド”の“カストマイズツールの使用方法”を参照してください。
あらかじめ起動しておくMessage-driven Beanのインスタンス数を設定することにより、同時にメッセージ処理を行うことが可能になります。
ただし、Message-driven Beanのトランザクション管理種別が"Container"で、トランザクション属性に"NotSupported"を設定している場合のみ有効です。
インスタンス数の設定値は1から10000000までの値を設定可能です。目安としては、キューにメッセージが蓄積されない程度まで値を増やします。
Message-driven Beanのインスタンス数の設定は、カストマイズツールを使用して行います。
設定の詳細については、“J2EEユーザーズガイド”の“カストマイズツールの使用方法”を参照してください。
クライアント数とMessage-driven Bean処理時間に依存するため、環境に合わせて試験運用を行い、調整後に設定する必要があります。
目次
索引
![]() ![]() |