ホーム > 未分類 > JBoss AS 7 Getting Started Guide – 1

JBoss AS 7 Getting Started Guide – 1

今回から 2 回に分けて Getting Started Guide(※ 以降スタートガイド)の解説を行います。
スタートガイドのインデックスはこんな感じ。

– ダウンロード
– 動作条件
– インストール
– AS 7 – Quick Tour
– ディレクトリ構造
– 設定
– 起動
– 特定の設定ファイルを使用した AS7 の起動
– 管理
– サンプル DataSource の修正
– AS 7 ドキュメント構成

インデックスを見て分かる通り、とりあえずダウンロードして動かすのと概要を知るためのドキュメントになっています。
個々の機能の詳細については Admin Guide(管理ガイド) で解説されています。

では、はじめましょう!

Getting Started with JBoss Application Server 7

AS7 は JBoss Application Server シリーズの最新のリリースです。 AS7 は高速でパワフルな Java EE 6 仕様の実装です。

MSC (Modular Service Container) 上に構築された最先端のアーキテクチャにより AS7 の各々のサービスはアプリケーションが必要とするタイミング(オンデマンド)で稼働します。

AS7 (7.0.0.Final) は Java EE 6 Web Profile に準拠しています。下記の表は Java EE 6 に含まれる仕様と AS7 で提供されるものの対応関係を表します。

JBossAS7-JavaEE

この表で重要なのが、

  •  AS7 は現在のところ Java EE 6 Full Profile の認定は受けていない。
  • Full Profile 版の Enterprise JavaBeans 3.1 対応状況は Lite である。

でしょうか。

後者について少し補足します。 EJB 3.1 Lite は EJB 3.1 のサブセットです。

一般的な Web アプリケーションが最大公約数的に使用するであろう EJB の機能を集めたサブセットになります。 要は EJB からあまり使われないと思われる機能をとっぱらったサブセットですね。

SLSB/SFSB, CMT/BMT, インターセプター や EJB 3.1 の新機能である シングルトン、インターフェース不要のコンポーネント宣言 は可能ですが、リモートインターフェース、 JAX-WS 、 EJB タイマー、非同期 Session Bean、 MDB 等が使用できません。

Java EE 6 (Lite)の詳細は JSR 318: Enterprise JavaBeansTM 3.1 を参照して下さい。

ダウンロード

JBoss Application Server 7 の配布物は JBoss Application Server Doanload Site から取得可能です。

AS7 のインストールバイナリには、 Full Profile / Web Profile の二つのバージョンがあります。2011/09/12 現在の最新バージョンは、 7.0.1.Final になります。AS7 のバイナリアーカイブは zip / tar 形式で配布されているので、好きな形式の Full Profile バージョンをダウンロードして使用します。

動作必要条件

JDK6 以降が必要です。

JDK7 でも動く!と書いてありますが、無理に使う必要はありません。AS7 を動かすのに必要なのはこれだけです。

インストール

ダウンロードしたアーカイブを $HOME/java/as/7.0.1 等分かりやすいディレクトリに展開しましょう。
あと、環境変数 JAVA_HOME を設定しておくといい感じです。

ちなみに僕の環境はこんな感じ。

JAVA_HOME -> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
JBOSS_HOME  -> /Users/yoshikazu/java/as/7.0.1 ※ JBOSS_HOME という環境変数は不要です。

windows 環境であれば、$HOME/java/jdk/1.6.0_26 $HOME/java/as/7.0.1 等を設定するとシンプルでいい感じかもしれません。

そうそう、バックアップを取らないと気が済まない!というような人は $JBOSS_HOME/bin, $JBOSS_HOME/domain, $JBOSS_HOME/standalone をバックアップしておきましょう。
これ以外にも色々用意周到にカスタマイズした方がいいところはあるのですが、その辺の話は追々します。

AS7 クイックツアー

$JBOSS_HOME ディレクトリ構成

ディレクトリ

概要

bin

起動スクリプト、起動設定ファイルが格納されています。

bundles

OSGiバンドル ※ OSGi については 前回のエントリ で簡単に紹介しているので参照して下さい。

docs/schema

設定ファイルのXMLスキーマが格納されています。

domain

ドメインモードで起動した場合に使用する設定ファイル、アプリケーションのデプロイメント

modules

AS7 ではモジュールベースのクラスローディングアーキテクチャが採用されています。AS7 およびデプロイされるアプリケーションにより使用される各種モジュールが格納されています。

standalone

スタンドアロンモードで起動した場合に使用する設定ファイル、アプリケーションのデプロイメントを配置します。

welcome-content 

デフォルトのウェルカムページコンテンツが格納されています。

これまでのバージョンから大きく変更されて(まぁ大幅に変更されてあまりこれまでの姿をとどめてはいませんが。。。)ますね。特に重要なのが、 bin, domain, modules, standalone です。

modules についてはモジュールの概念や制御方法の説明と合わせ今後紹介します。

$JBOSS_HOME ディレクトリには jboss-modules.jar が配置されています。これは Modular Service Container(MSC)コアであり、軌道スクリプトから呼び出される main メソッドを含む AS 起動のエントリポイントとなります。

$JBOSS_HOME/standalone ディレクトリ構成

standalone モードで複数の JBoss インスタンスを起動した場合、(これまでのバージョンの JBoss AS と同様に)各々は独立した java プロセスとなります。

standalone 構成に関する 設定ファイル、デプロイディレクトリ、AS インスタンスが使用する書込みエリア 等は standalone ディレクトリのサブディレクトリに格納されます。

これまでのバージョンの JBoss AS 実現していた機能(クラスタ含む)は standalone モードでも実現されています。

ディレクトリ 概要 
configuration standalone 構成の AS に関する設定ファイル( AS7 では設定ファイルが一元化されています。)が含まれます。
data  永続化データ(HSQLDB、トランザクションログ)が配置されます。
deployments
ファイルシステムベースのデプロイメント(オートデプロイ可能)ディレクトリです。
フェイルシステムベースのデプロイスキャンは開発時のみの使用が推奨され、プロダクション環境でのデプロイにはサーバ管理 API の使用が推奨されます。
lib/ext  Extension-Listメカニズム(Java拡張機能機構)を使用したアプリケーションから使用されるライブラリを配置します。
log ログ(server.log、boot.log)ファイルが配置されます。
tmp  一時ファイル(アーカイブ形式でデプロイしたアプリケーションの展開ディレクトリ)およびコンパイル済 JSP (tmp/work)等が配置されます。

上述のサブディレクトリは JBoss のこれまでのバージョンのディレクトリ構成に通ずるところがあります。

data, log, tmp についてはこれまでのバージョンの同名のディレクトリと同様です。

重要な変更点として、 configuration ディレクトリに設定が集約され一元管理が可能になったという点とデプロイディレクトリ名が deploy => deployments になったということです。

また、これまでバージョンの JBoss AS の deploy ディレクトリには、管理コンソールの war 、デフォルト DataSource の設定ファイルや AS の機能として動作する MBean を sar 形式で配置していたのですが、そういった AS 自身が使用するものは deployments に配置されていません。

なのでデプロイディレクトリがすっきりした印象です。

デプロイには、Auto, Manual, (展開形式デプロイを使用した場合の)ファイル変更トリガーによる再デプロイ の 3 つのモードがあります。これらはデプロイメントスキャナの設定により指定可能です。

このメカニズム自体はこれまでのバージョンにおけるスキャナから大きな変更はありませんが、 AS7 のデプロイメントスキャナはデプロイの状態を deployments ディレクトリへのマーカファイル( .failed 等)配置という形で表現します。

これらについては今後検証をしていきます。

$JBOSS_HOME/domain ディレクトリ構成

AS7 の(これまでの JBoss AS と比較して)主要な特徴は複数の AS インスタンス(server)の一元管理機能( ≒ domain)です。

そして、複数のインスタンス(server)の集合は domain として扱うことが可能です。

domain は host controller プロセスの管理下にあるホストマシン (物理OS/仮想OS)上で動く AS インスタンス(server) から構成されます。

host controller は AS インスタンスの起動/停止等のライフサイクル管理および( host controller )自身を管理する domain controller と相互に連携を行います。

domain 構成に関する 設定ファイル、デプロイメント、(広義の) domain プロセスが使用する書込みエリア等は domain ディレクトリのサブディレクトリに格納されます。

ディレクトリ 概要 
configuration domain, host controller, server( ≒ AS インスタンス)に関する設定ファイルを含みます。domain の管理下にある全ての server( ≒ AS インスタンス) に関する設定は configuration ディレクトリに格納(AS7 では設定ファイルが一元化されています。)されます。
content host controller のための内部的な作業エリアで、内部的にはデプロイメント(デプロイするアプリケーションそのもの)を格納します。エンドユーザが操作する機会はありません。※ domain モードはファイルスキャンによるデプロイをサポートしません。
lib/ext Extension-List メカニズム(Java 拡張機能機構)を使用したアプリケーションから使用されるライブラリを配置します。
log host controller プロセスが使用するログファイルおよび process controller(他の host controller プロセスや他の server プロセスを生成する軽量なプロセス)が使用するログファイルが格納されます。
servers
server インスタンスが使用する書込みエリアです。 各々の server インスタンスは初回起動時にそれぞれサブディレクトリを作成します。
それぞれの server のサブディレクトリには更に以下のサブディレクトリが存在します。
data — server が(server)自身が必要とする永続化データを書き込みます。
log — server が書き込むログファイルを格納します。
tmp — server によって書き込まれる一時ファイルを格納します。

AS7 では domain, host, server group, server, profile, subsystem という概念や host controller, domain controller, process controller といったプロセスが登場します。これらの概念をある程度クリアにしておかないと上記の説明は理解しにくいと思います。

現段階では、 domain 構成は複数の AS インスタンス( ≒ server )を一元管理するための仕組みで AS 自身のプロセス( ≒ server )以外にもなにやらいくつかの AS 管理用プロセスが起動されるみたいだぞと思っていれば OK かと思います。

AS7 設定(ファイル)

standalone 構成時の設定(ファイル)
standalone.xml(デフォルト)

Java EE6 Web Profile のサービス(機能)構成で起動する場合の設定ファイルです。

standalone-preview.xml

Java EE6 Full Profile のサービス(機能)構成で起動する場合の設定ファイルです。

standalone-ha.xml

デフォルトのサービス(機能)を使用しクラスタを構成する場合の設定ファイルです。

standalone-preview-ha.xml

Java EE6 Full Profile のサービス(機能)を使用しクラスタを構成する場合の設定ファイルです。

domain 構成時の設定(ファイル)
domain.xml(デフォルト)

Java EE6 Web Profile のサービス(機能)を使用し domain を構成する場合の設定ファイルです。

domain-preview.xml

Java EE6 Full Profile のサービス(機能)を使用し domain を構成する場合の設定ファイルです。

AS7 の起動時にどの設定ファイルを使用するかをパラメータとして指定します。設定ファイルの内容の詳細は今後解説します。

AS7 の起動

AS7 の起動には standalone, domain 各々のモードにおいて専用の起動スクリプトを使用します。以降では起動スクリプトおよびそのオプションを解説します。

standalone モードで起動する場合
$JBOSS_HOME/bin/standalone.sh

-D[=]  –> システムプロパティを指定します。

–server-config=  –> 設定ファイ名を指定します。※ デフォルトは standalone.xml となります。

domain モードで起動する場合

$JBOSS_HOME/bin/domaina.sh スクリプトを使用します。オプションは以下の通りです。

–backup  –> domain の永続化された設定のコピーを作成します。 ※当該 host が domain controller でない場合でも有効なオプションです。

–cached-dc  –> 当該 host が domain controllerでなく、domain controller にアクセスで きない場合、バックアップした domain 設定を使用して起動します。

–domain-config=   –> domain の設定ファイル名を指定します。 ※デフォルトは “domain.xml”となります。

–host-config=  –> host の設定ファイル名を指定します。 ※デフォルトは “host.xml”となります。

–pc-address=  –> process controllerソケットアドレスを指定します。

–pc-port=  –> process controller において server ソケットを登録するためのプロセス名を指定します。

–interprocess-name=  –> 当該 host controller のアドレスを指定します。

–interprocess-hc-address=  –> 当該 host controller のポートを指定します。

また、 domain モードでの JVM パラメータ(-Xmx, -Xms 等)は $JBOSS_HOME/bin/domain.conf で設定します。

特定の設定ファイルを使用した AS7 の起動

Java EE6 Full Profile で standalone モードで起動する場合

$JBOSS_HOME/bin/standalone.sh –server-config=standalone-preview.xml

Java EE6 Full Profile で domain モードで起動する場合

$JBOSS_HOME/bin/domain.sh –server-config=domain-preview.xmlr

AS7 の停止

AS7 (standalone, domain)をフォアグラウンドプロセスで起動した場合
[ Ctrl + C ]
管理スクリプト(CLI)を使用する場合
$JBOSS_HOME/bin/jboss-admin.sh –connect controller=<IP>:<PORT> command=:shutdown

<IP>  –> 停止対象の standalone インスタンスがバインドされたIP(デフォルトでは localhost となります)を指定します。

<PORT>  –> 停止対象の standalone インスタンスがバインドされたポート(デフォルトでは 9999 となります)を指定します。

起動確認

起動スクリプトを実行しコンソール(もしくは server.log )に ERROR ログが出力されず、以下のログが出力されることを確認しましょう。

23:17:50,318 INFO [org.jboss.as] (Controller Boot Thread) JBoss AS 7.0.1.Final “Zap” started in 2206ms – Started 93 of 148 services (55 services are passive or on-demand)

※ 僕の環境(MacBook Air 2011 mid)で起動した際のログです。

上述のログの出力を確認後、 に web ブラウザからアクセスし、以下のような AS7 のウェルカムページが表示されれば AS7 が正常に起動されているはずです。

AS7 Welcom Page

本エントリでは、スタートガイドの前半部分の意訳/補足を行いました。次回はスタートガイドの残り(管理概要、Example DataSource の修正 等)を解説します。

広告
タグ: ,

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

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