WebOTX Manual V10.2 (第4版) 目次を表示 |
この章では主に配備処理を高速化する方法について解説します。 アプリケーションの開発時には、配備/配備解除が頻繁に繰り返されるため、配備処理の高速化を意識することで開発効率が向上します。
TPモニタでは、オペレーション毎にトランザクション等の実行時情報を管理する機能を備えています。 あるモジュールが配備されると、TPモニタでは個々のオペレーションを識別するために番号を付与して、内部管理テーブルと状態情報との関連付けを行います。 EJBモジュールの場合には、オペレーションがリモートインタフェースのメソッドに該当します。
メソッド識別情報の割り当て範囲を限定することにより、配備処理中に行われる識別情報の生成数を削減し、配備処理にかかる時間の短縮およびメモリ消費量の削減が可能です。
割り当て方法は以下の中から選択できます。
全てのリモートメソッドに割り当てます。
おもにユーザ定義のメソッドについて割り当てます。リモートインタフェース、ホームインタフェースのメソッドの割り当てについてはEJB種別によって異なります。下記表を参照してください。
リモートメソッドに対しては割り当てません。
メソッド名 | ステートレスSession Bean | ステートフルSession Bean | Entity Bean | メッセージドリブンBean |
---|---|---|---|---|
リモートインタフェース | ||||
getEJBHome() | × | × | × | - |
getPrimaryKey() | × | × | × | - |
getHandle() | × | × | × | - |
isIdentical(javax.ejb.EJBObject) | × | × | × | - |
remove() | × | ○ | ○ | - |
ホームインタフェース | ||||
getEJBMetaData() | × | × | × | - |
getHomeHandle() | × | × | × | - |
remove(java.lang.Object) | × | × | ○ | - |
remove(javax.ejb.Handle) | × | ○ | ○ | - |
[EJB生成メソッド](例:create()メソッド) | × | ○ | ○ | - |
[ファインダメソッド](例:findByPrimaryKey(String)メソッド) | - | - | ○ | - |
○ | 割り当てます |
---|---|
× | 割り当てません |
- | 存在しません |
(注:メッセージドリブンBeanのonMessage()メソッド、タイマーBeanのejbTimeout()メソッドについてはリモートメソッドではありませんが、どのオプションでも割り当てられます。)
識別情報を割り当てなかったメソッドに対しては以下の機能が使用できなくなります。
しかしながら、割り当てるメソッド数を減らすことにより、モジュールの配備時間が向上し、消費メモリ量が削減されます。
注意:「割り当てない」オプションを使用すると障害発生時の原因解析が困難になる場合があります。頻繁に配備/配備解除を繰り返す開発時には有用ですが、本番環境では「ビジネスメソッドのみ割り当てる」もしくは「全てのリモートメソッドに対して割り当てる」を使用することを強く推奨します。
これらのオプションの指定は、EJBモジュールを配備操作する時に行います。以下では、配備操作を支援する機能毎に説明します。
コンポーネント配備ダイアログの「EJBメソッド識別情報の割り当て方法」で設定します。
deploy サブコマンドに「--methodid」オプションを指定します。
--methodid all | 全てのリモートメソッドに対して割り当てる |
---|---|
--methodid limit | ビジネスメソッドのみ割り当てる (既定値) |
--methodid none | 割り当てない |
ドメインのautodeployディレクトリ下のautodeploy.propertiesファイルで以下の指定をします。
methodid=all | 全てのリモートメソッドに対して割り当てる |
---|---|
methodid=limit | ビジネスメソッドのみ割り当てる (既定値) |
methodid=none | 割り当てない |