渡邊です。こんにちは。
JBoss EAP6の研究をしています。
備忘録を兼ねて、EAP6ドキュメントを読む上で知っておくとよい概念を簡潔にまとめます。
extension
EAP6の機能を拡充する為のモジュールです。静的モジュールのうち、EAP6を起動する為に必要な最小限のモジュールを除いたものです。つまり、ほとんどの静的モジュールは、extensionです。例えば、EJB3、Web、JPA、JAX-RSといったモジュールは、extensionです。
サブシステム
extensionをサービスとしてインスタンス化する際の具体的な設定です。
プロファイル
サブシステムのセットです。同じサブシステムであっても、プロファイルごとに異なる設定値を定義できます。
ディフォルトでは、default、full、ha、full-haの4つが定義されています。それぞれ次のような違いがあります。
| プロファイル | 概要 |
|---|---|
| default | Java EE 6のWeb Profileに相当する仕様を満たす為に必要なサブシステムが定義されている。 |
| full | Java EE 6のfull Profileに相当する仕様を満たす為に必要なサブシステムが定義されている。 |
| ha | 「default」に加え、クラスタ機能を付加する為のサブシステムが定義されている。 |
| full-ha | 「full」に加え、クラスタ機能を付加する為のサブシステムが定義されている。 |
extensionとサブシステムとプロファイルの関係
{EAP6_HOME}/domain/configration/domain.xmlを開いて、各々の包含関係を確認してみます。その上で上記にある各々の定義を見直すと、より理解しやすくなるのではないでしょうか。
<?xml version='1.0' encoding='UTF-8'?>
<domain xmlns="urn:jboss:domain:1.3">
<extensions>
<extension module="org.jboss.as.clustering.infinispan"/>
<extension module="org.jboss.as.clustering.jgroups"/>
<extension module="org.jboss.as.cmp"/>
<extension module="org.jboss.as.configadmin"/>
<extension module="org.jboss.as.connector"/>
<extension module="org.jboss.as.ee"/>
<extension module="org.jboss.as.ejb3"/>
<!-- 省略: 必要なextensionが列挙される。 --!>
</extensions>
<profiles>
<profile name="default">
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<!-- 省略: defaultプロファイルにおける、Loggingサブシステムの設定 --!>
</subsystem>
<subsystem xmlns="urn:jboss:domain:configadmin:1.0"/>
<!-- 省略: Java EE 6のWeb Profileに相当する仕様を満たす為に必要なサブシステムが定義される --!>
</profile>
<profile name="full">
<subsystem xmlns="urn:jboss:domain:logging:1.1">
<!-- 省略: fullプロファイルにおける、Loggingサブシステムの設定 --!>
</subsystem>
<!-- 省略: Java EE 6のfull Profileに相当する仕様を満たす為に必要なサブシステムが定義される --!>
</profile>
<!-- 以下省略 --!>
</domain>
必要なextensionを追加し、プロファイルごとにサブシステムをの設定値を編集します。
extensionの編集はdomain.xmlを開いて直接、プロファイルとサブシステムの編集は管理ツールで行います。
公式ドキュメントは膨大なので、こうした基本的な情報が埋もれていたり、分散しがちです。
まずは「JBoss Enterprise Application Platform6 構築・運用パーフェクトガイド」をお読みになることをおすすめします。