ホーム > 未分類 > JBoss AS 7 Admin Guide – Core management concepts – General configuration concepts

JBoss AS 7 Admin Guide – Core management concepts – General configuration concepts

今回から Admin Guide (管理ガイド)の解説を行います。管理ガイドはそれなりのボリュームがあるので、十数回に分けて解説します。

今回から 3 回に分けて Core management concepts パートの解説を行います。

第 1 回は General configuration concepts です。

General configuration concepts

domain / standalone 両モードに共通となるいくつかの設定について以降で解説を行います。

Extensions

エクステンションは JBoss のコア機能を拡張するモジュールです。 AS7 のコアは非常にシンプルで軽量であり、大抵のユーザが関心のあるほとんどの機能がエクステンションとして提供されています。エクステンションは $JBOSS_HOME/modules ディレクトリにモジュールとしてパッケージングされています。特定のモジュールを使用する場合、 domain.xml / standalone.xml の <extension /> 要素を使用してモジュール名を指定します。

<extensions>

[…]

<extension module=”org.jboss.as.transactions“/>

<extension module=”org.jboss.as.web” />

<extension module=”org.jboss.as.webservices” />

<extension module=”org.jboss.as.weld” />

</extensions>

Profiles and Subsystems

standalone.xml / domain.xml において重要な設定項目は単一( standalone.xml では単一のプロファイルが定義可能です。)あるいは複数のプロファイル( domain.xml では複数のプロファイルが定義可能です。)です。

プロファイルはサブシステムの名前付けされたセットになります。サブシステムはエクステンションにより AS7 コアに追加された追加機能セットになります。

サブシステムはサーブレット処理、EJBコンテナ、JTA等のサービスを提供します。プロファイルはサブシステム各々の詳細設定を伴うサブシステムの名前付きリストになります。

多数のサブシステムを伴うプロファイルは結果として多数の機能セットを伴うサーバとなります。少数のサブシステムにフォーカスしたプロファイルは小規模の機能のサーバとなりますがフットプリントが軽量になります。

個々のプロファイル設定の個々の内容は domain.xml と standalone.xml でほぼ同様のものとなります。

唯一の違いは、 Domain モードでは複数のプロファイルを設定可能ですが、 Standalone モードでは単一のプロファイルのみが設定可能ということです。

各々のプロファイルは一つ以上のサーバグループにマッピング可能です。

個々のサブシステム設定は domain.xml と standalone.xml で全く同じものとなります。

extension と subsystem の関係を web subsystem (JBoss Web)を例に解説します。

JBoss Web はこれまでのバージョンの AS でもサーブレットコンテナとして( AS のサービスとして)使用されています。これまでは sar 形式( JBoss 独自の形式)で MBean として AS に組込まれていましたが、 AS7 ではカーネルが MSC に変更されこれまでサービスとして扱っていたサーブレットコンテナ、データソース、メッセージングといった AS の機能はサブシステム( subsystem )として扱われます。

extension / subsystem の設定方法詳細は Admin Guide – Management tasks – Subsystem configuration の際に詳しく解説しますが、大きく次の手順になります。

  1. subsystem に必要な extension の設定( standalone.xml / domain.xml )
  2. subsystem の設定( standalone.xml / domain.xml)

standalone.xml の <extensions /> を見てみましょう。

<extensions>

<extension module=”org.jboss.as.web” />

</extensions>

web subsystem に必要な “org.jboss.as.web” extension(モジュール) が設定されています。※ モジュール( module )も AS7 で新たに導入された概念で extension と同義と考えられます。

上記の例では $JBOSS_HOME/modules/org/jboss/as/web/main に配置された module.xml がロードされ、必要なリソース( JBoss Web に必要な複数の jar ファイル)がモジュールとしてロードされます。( module.xml にはモジュールに必要なリソースと依存する他のモジュールが定義されています。)

subsystem にどんな extension が必要かについては Admin Guide – Management tasks – Subsystem configuration に、代表的な subsystem の設定方法と共に記述があります。

ちなみに、モジュール名とモジュールの配置位置は基本的に “a.b.c” => $JBOSS_HOME/modules/a/b/c/main/module.xml という関係になっています。

次に standalone.xml の <subsystem xmlns=”urn:jboss:domain:web:1.0″ …> を見てみましょう。

<subsystem xmlns=”urn:jboss:domain:web:1.0” default-virtual-server=”default-host”>

<connector name=”http” scheme=”http” protocol=”HTTP/1.1″ socket-binding=”http”/>

<virtual-server name=”default-host” enable-welcome-root=”true”>

<alias name=”localhost” />

<alias name=”example.com” />

</virtual-server>

</subsystem>

web subsystem の設定がされています。※ XML 名前空間は “urn:jboss:domain:web:1.0” となり、 $JBOSS_HOME/docs/schema/jboss-as-web_1_0.xsd が XML スキーマになります。

サーブレットコンテナに対する設定( JSP の解析に関する設定, Connector 設定等)は web subsystem に対して行います。

subsystem と XML 名前空間の関係については Admin Guide – Management tasks – Subsystem configuration に、代表的な subsystem の設定方法と共に記述があります。

※ web subsystem の設定方法詳細については Admin Guide – Management tasks – Subsystem configuration – Web subsystem configuration を参照して下さい。

Paths

ファイルシステムパスの論理名です。

domain.xml, host.xml, standalone.xml はパスが設定可能なセクションを含みます。これらの設定ファイル中の他のセクションはこのパスを論理名を使用して参照します。物理パス名はマシンにより異なるため、完全な詳細物理パスを含むよりむしろこの方法が一般的です。

例えば、ロギングサブシステムは、 ”jboss.server.log.dir” への参照を含みます。これはサーバの “log” ディレクトリを指します。

<file relative-to=”jboss.server.log.dirpath=”server.log“/>

AS7はユーザが設定ファイルに定義しなくても自動的にいくつかの標準パスを提供します。

  • jboss.home — JBoss AS のルートディレクトリ
  • user.home — ユーザのホームディレクトリ
  • user.dir — ユーザのカレント作業ディレクトリ
  • java.home – JDK インストールディレクトリ
  • jboss.server.base.dir — 個々のサーバインスタンスのルートディレクトリ
  • jboss.server.data.dir  永続化データ(ファイル)格納ディレクトリ
  • jboss.server.log.dir  ログファイル格納ディレクトリ
  • jboss.server.tmp.dir  一時ファイル格納ディレクトリ
  • jboss.domain.servers.dir  host コントローラが個々のサーバインスタンスのための作業エリアを作成するディレクトリ( Domain モードの場合のみ)

設定ファイルの <path /> 要素を追加することにより、上記の最初の 5 つのものを除いてパスの追加/上書きが可能です。

以下の例では、 jboss.server.data.dir/example ディレクトリに example という名前の論理パスを定義しています。

<path name=”example” path=”example” relative-to=”jboss.server.data.dir“/>

<path /> 要素の属性は以下の通りです。

  • name — パスの論理名
  • path — 実際のファイルシステムパス、 ‘relative-to’ 属性が指定されない限り絶対パスとして扱われます。 ‘relative-to’ が指定された場合、 ‘relative-to’ で指定されたパスへの相対パスとして扱われます。
  • relative-to — (オプション)前もって定義された他の論理パス名もしくはシステムの標準パス

domain.xml のパス要素については name 属性以外の属性を含める必要はありません。つまり、実際のファイルシステムのパスが何であるかの情報を含める必要はありません。(以下の例参照)

<path name=”x“/>

上記の設定例は単純に、 ” ‘x’ と命名されたパスがあり、 domain.xml の他のパートから参照可能” ということを意味しています。 ‘x’ により示される実際のファイルシステムの場所は、ホストに特化したものであるため各マシンの host.xml にて指定します。このアプローチをとる場合、各々のマシンの host.xml において実際のファイルシステムのパスを指定する必要があります。(以下の例参照)     

<path name=”x” path=”/var/x” />

standalone.xml で <path /> 要素を使用する場合、実際のファイルシステムパスを指定する必要があります。

Interfaces

ソケットがバインド可能なIPアドレス/ホスト名の論理名を表します。 

domain.xml, host.xml, standalone.xml はインターフェースが宣言可能なセクションを含みます。これらのインターフェース論理名は他のセクションからの参照が可能です。(インターフェースの物理的な詳細情報はマシンによって異なるため、この形式は個々のセクションでインターフェースの詳細を定義する形式よりも適切です。)

インターフェース設定はインターフェース論理名だけでなく実際に使用する物理アドレスの解決のための基準情報が含まれます。詳しくは Admin Guide – Management tasks – Interfaces and ports を参照して下さい。

domain.xml に含まれる <interface /> 要素には name 属性以外の属性を含める必要がありません、つまり、論理名に関連付いた実際のIPアドレスを指定する必要はありません。(以下の例参照)

<interface name=”internal”>

<nic name=”eth1″/>

</interface>

standalone.xml 中の <interface /> 要素はIPアドレスを定義するための基準情報を含む必要があります。

Socket Bindings and Socket Binding Groups

ソケットバインディングはソケットの名前付き設定になります。

domain.xml と standalone.xml は名前付きソケット設定が宣言可能なセクションを含みます。これらのソケット設定はその他のセクションから論理名により参照可能です。(ソケットの物理的な詳細情報はマシンによりって異なるため、この形式は個々のセクションでソケットの詳細を定義する形式よりも適切です。)詳しくは Admin Guide – Management tasks – Interfaces and ports を参照して下さい。

interface と socket-binding について standalone.xml を見てみましょう。

<interfaces>

<interface name=”management“>

<inet-address value=”${jboss.bind.address.management:127.0.0.1}“/>

</interface>

<interface name=”public“>

<inet-address value=”${jboss.bind.address:127.0.0.1}“/>

</interface>

</interfaces>

上の例では、 “management” と “public” という名前のインターフェースが設定されています。

“public” インターフェースは “jboss.bind.address” という名前のシステムプロパティもしくは起動時( standalone.sh )に -b スイッチでアドレスの指定がされていない場合、 “127.0.0.1” にバインドされます。

※ バインドアドレスの設定方法詳細については Admin Guide – Management taskd – Command line parameters を参照して下さい。

<socket-binding-group name=”standard-sockets” default-interface=”public”>

<socket-binding name=”http” port=”8080″/>

<socket-binding name=”https” port=”8443″/>

<socket-binding name=”jndi” port=”1099″/>

</socket-binding-group>

上の例では、”http”, “https”, “jdni” という名前のソケットバインディングがそれぞれ “8080”, “8443”, “1009” ポートに対して設定されています。

これらのソケットバインディングは “public” という名前のインターフェース(※  前述)を使用していますので、 “http” であれば 127.0.0.1:8080 にバインドされます。

ちなみに、 “http” は web subsystem の connector から参照されている(以下参照)ので、 web subsystem は 127.0.0.1:8080 をリスンします。

<subsystem xmlns=”urn:jboss:domain:web:1.0″ default-virtual-server=”default-host”>

<connector name=”http” scheme=”http” protocol=”HTTP/1.1″ socket-binding=”http“/>

</subsystem>

System Properties

システムプロパティは、domain.xml, host.xml, standalone.xml のいくつかの箇所で設定可能です。

standalone.xml 中のシステムプロパティはサーバの起動プロセスの一部として設定されます。 domain.xml, host.xml 中のシステムプロパティは各サーバ(server)の起動時に適用されます。

domain.xml, host.xml でシステムプロパティが定義された場合、それらがどのバーバに適用されるか(システムプロパティのスコープ)はそれらの定義場所により異なります。

     domain.xml のルート要素の子要素に設定されたシステムプロパティは全てのサーバに共有されます。

     domain.xml の <server-group /> 中の <system-property /> に設定されたシステムプロパティはそのグループ中の全てのサーバに共有されます。

     host.xml のルート要素に子要素に設定されたシステムプロパティは当該ホストコントローラが管理する全てのサーバに共有されます。

     host.xml の <server /> 中の <system-property /> に設定されたシステムプロパティは当該サーバ中で共有されます。

同一名のプロパティを複数箇所で設定した場合、 <server /> 要素中で設定されたものが host.xml のルート要素下で設定されたものより優先されます、host.xml で設定されたものは domain.xml で設定されたものより優先されます、 <server-group /> 中で設定されたものは domain.xml のルート要素下で設定されたものより優先されます。

デフォルトの domain.xml には以下のシステムプロパティ( “java.net.preferIPv4Stack”:”true” )が設定されています。

<system-properties>

<property name=”java.net.preferIPv4Stack” value=”true“/>

</system-properties>

このプロパティはルート要素の子要素に設定されているので、 domain に参加する全ての server に共有されます。

広告
タグ: ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。