6.EJBコンテナに関する設定

EJBコンテナに関する設定について説明します。

6.1.EJBコンテナ設定項目・設定方法

EJBコンテナに関する設定項目には次のものがあります。

EJBインスタンスプール

EJBインスタンスキャッシュ

Entity Beanトランザクションコミットオプション

組み込みIIOPリスナ

それぞれ設定項目については全てMO化されています。項目の設定方法については「2.各サービスの属性の設定」を参照してください。

エディションによる違い

Standard/Enterprise EditionではEJBはTPモニタのプロセスグループ上で動作します。このためTPモニタの設定に影響されます。詳しくはTPモニタの設定の章を参照してください。

組み込みIIOPリスナについて

組み込みIIOPリスナとは、Standard-J EditionにおけるEJBに対する要求や、JNDIサーバに対するRMI-IIOPのリクエストを処理するリスナです。これはエージェントプロセス内で動作します。EJBやJNDIサーバに対する通信ポート番号やSSLの使用の有無などを設定する場合は、この組み込みIIOPリスナの設定を変更してください。

Standard/Enterprise EditionにおけるEJBの通信リスナはTPモニタのIIOPリスナとなりますのでそちらの設定に従います。このため、組み込みIIOPリスナの設定はJNDIサーバに対してのみ有効となります。

既定値ではEJBコンテナとJNDIサーバに対する通信ポートは7780となります。

組み込みIIOPリスナのMO名は「embedded-iiop-service」、それ以外の上記3つに対応するMO名は「ejb-container」です。

6.2.EJBコンテナ設定項目一覧

以下はMOで設定可能なEJBコンテナ設定項目一覧です。

Dottedname : server.ejb-container
属性名
(attribute-name)
説明 既定値
steady-pool-size Beanインスタンスの初期値を指定します。この値がプールで保持されます。0からint型の最大値を指定することができます。
(注:この項目はStandard-J Editionのみ設定可能です。)
0
pool-resize-quantity サーバがプールを処理する時に作成または削除するBeanインスタンス数を指定します。0からint型の最大値を指定することができます。
(注:この項目はStandard-J Editionのみ設定可能です。)
8
max-pool-size Beanインスタンスプールの最大値を指定します。0からint型の最大値を指定することができます。0を指定するとプールサイズが無制限となります。
(注:この項目はStandard-J Editionのみ設定可能です。)
32
pool-idle-timeout-in-seconds ステートレスセッションBeanやMDBがアイドル状態でプール内に存在できる最大時間を指定します。この時間を過ぎるとBeanインスタンスは削除されます。 600(s)
cache-resize-quantity サーバがキャッシュを処理する時に作成または削除するBeanインスタンス数を指定します。0からint型の最大値を指定することができます。 32
max-cache-size キャッシュに格納できるBeanインスタンスの最大値を指定します。0を指定するとキャッシュできるBean数は無制限になります。 512
cache-idle-timeout-in-seconds ステートフルセッションBeanやMDBがアイドル状態でキャッシュ内に存在できる最大時間を指定します。この時間を過ぎるとBeanはバックアップストアで非活性化されます。 600(s)
removal-timeout-in-seconds ステートフルセッションBeanが非活性化される時間を指定します。この時間を過ぎてもアクセスされなかった場合、Beanは削除されクライアントからアクセスできなくなります。 5400(s)
victim-selection-policy ステートフルセッションBeanのキャッシュから削除対象を特定するアルゴリズムを指定します。FIFO/LRU/NRUのいずれかを指定します。 nru
commit-option エンティティBeanのトランザクションコミットオプションの指定をします。BまたはCのいずれかを指定します。 B
session-store 非活性化されたBeanがファイルとして保持される場所を指定します。 ${INSTANE_ROOT}/session-store

Dottedname : server.embedded-iiop-service
属性名
(attribute-name)
説明 既定値
enabled 組み込みIIOPリスナを有効にするかどうかを指定します。 true
port 暗号化しない通信を行うときに使用するポート番号を指定します。 0
0は自動割当を示す
ssl-port SSLクライアント認証なしの通信を行うときに利用するポート番号を指定します。 null
ssl-auth-port SSLクライアント認証ありの通信を行うときに利用するポート番号を指定します。 null
max-accept-number 同時クライアント接続数を指定します。 null(制限無し)
client-timeout クライアント無通信監視タイマ時間(秒)を指定します。 0(監視無し)
cert-key サーバ側のSecureWare/セキュリティパックにて登録済みの鍵を特定する鍵IDまたはJSSEで使用するサーバ証明書のファイル名を指定します。 null
cert-key-pass-phrase JSSEで使用するサーバ証明書のパスワードを指定します。 null
cart-key-type JSSEで使用するサーバ証明書の鍵の形式(RSA, DSAなど)を指定します。 null
cert-key-file-type JSSEで使用するサーバ証明書のファイルの形式(PKCS12もしくはJKS)を指定します。 null
cert-alias JSSEで使用するサーバ証明書の鍵の別名を指定します。 null
cert-alias-pass-phrase JSSEで使用するサーバ証明書の鍵の別名のパスワードを指定します。 null
trusted-ca-certs JSSEで使用する信頼するCA証明書のファイル名を指定します。 null
trusted-ca-certs-pass-phrase JSSEで使用する信頼するCA証明書のファイルのパスワードを指定します。 null
trusted-ca-certs-file-type JSSEで使用する信頼するCA証明書のファイルの形式(PKCS12もしくはJKS)を指定します。 null

6.3.タイマーBeanの使用方法について

EJB 2.1仕様ではコンテナ管理のタイマ機能が新たに追加されました。

WebOTXでこのタイマ機能を使用するためには、タイマ機能で使用するデータソースとデータベースのテーブルが必要となります。インストール時にはこれらは設定されていませんので、タイマ機能を使用するためには以下の手順でセットアップを行なう必要があります。

(1) データソースの登録

タイマを使用するドメインに対して "jdbc/__TimerPool" という名前のデータソースを追加してください。また対応するJDBCドライバをドメインのクラスパスに追加してください。

(2) テーブルの作成

${AS_INSTALL}/lib/install/databasesにOracle用とPointBase用のテーブル作成用SQLファイルがありますので、これを使用して追加したデータソースで接続するデータベース上にテーブルを作成してください。他のデータベースを使用する場合もこのSQLを参考にして同じテーブル名、カラム名でテーブルを作成してください。

(3) ドメイン再起動

ドメインを再起動すると、タイマ機能が使用可能になります。

6.4.リソースのプロセス単位のロード設定(Standard/Enterprise Editionの場合)

Standard/Enterprise EditionではEJBはWebコンテナとは別のJava VM上で実行されます。また、プロセスグループが異なるEJBも別々のJava VM上で実行されます。

ドメインに定義されたリソースアダプタ、コネクタリソース、JDBCデータソースは既定値ではコンテナの動作している全Javaプロセス上でロードされます。例えばJDBCデータソースの初期接続数を1に設定していても、Webコンテナ + EJBのプロセスグループのプロセス数分だけ初期接続が張られることになります。そのリソースを使用していないプロセスでは無駄に接続が張られることになってしまいます。

この場合は、リソースアダプタ、コネクタリソース、JDBCデータソース、プロセスグループの以下の属性を設定して使用するプロセスを絞り込んでください。プロセスグループの設定の方はリソースの配備、追加時には自動的に追加されます。

リソースアダプタ、コネクタリソース、JDBCデータソースの属性
属性名
(attribute-name)
説明 既定値
use-jmx-agent リソースをJMXエージェント上でロードするかどうかを指定します Webコンテナがマルチプロセスモードで動作していればfalse、そうでなければtrue
use-all-ejb-processgroups 全てのEJBプロセスグループで使用するか、または各プロセスグループの属性でロードする、しないの指定を行なうかどうかを選択します。
全てのEJBプロセスグループで使用するを選択した場合、全プロセスグループのロードするリソースアダプタの設定に自動的にこのリソースが追加されます。
true

プロセスグループの属性
属性名
(attribute-name)
説明 既定値
datasourceList プロセスグループの起動時にロードするデータソースのリストを表示します。そのプロセスグループ上で動作するEJBが使用するデータソースのJNDI名を選択してください。 Null
connectorResourceList プロセスグループの起動時にロードするコネクタリソースのリストを表示します。そのプロセスグループ上で動作するEJBが使用するコネクタリソースのJNDI名を選択してください。 Null
resourceAdapterList プロセスグループの起動時にロードするリソースアダプタのリストを表示します。そのプロセスグループ上で動作するEJBが使用するリソースアダプタの名前を選択してください。 null