Archive for 2010年2月3日
GlassFish ドメイン管理(作成、削除、起動、停止)
ドメインの作成
ドメインを作 成するためには create-domain コマンドを 実行して作成します.下記にプロファイルごとのドメイン作成方法を示します.
開発者 用プロファイルを使用したドメインの作成方法
デフォルトで 作成されるドメイン(domain1)以外に開発者用プロファイ ルを利用した新規ドメイン(devDomain)を作成する方法を下記 に示します.
dashost > asadmin create-domain –profile developer –adminport 14848 –instanceport 10080 –savemasterpassword=true –savelogin=true devDomain Admin のポート 14848 を使用しています。 HTTP Instance のポート 10080 を使用しています。 JMS のデフォルトポート 7676 を使用しています。 IIOP のデフォルトポート 3700 を使用しています。 HTTP_SSL のデフォルトポート 8181 を使用しています。 IIOP_SSL のデフォルトポート 3820 を使用しています。 IIOP_MUTUALAUTH のデフォルトポート 3920 を使用しています。 JMX_ADMIN のデフォルトポート 8686 を使用しています。 コマンド行または環境で の指定どおりにプロファイル developer を使用してドメインを作成しています。 指定されたロケール [ja_JP] のファイルが [/sun/glassfish-v2.1.1/lib/install/templates/locales/ja_JP/index.html] に見つかりませんでした。デフォルト (en_US) の index.html を使用します。 使用するセキュリティーストア: JKS ドメイン devDomain が作成されました。 このドメイン [devDomain] の管理ユーザー名 [devAdmin] に関連するログイン情報が [/export/home/appserv/.asadminpass] に正常に格納されました。 このファイルが保護されたままであることを確認します。このファイルに格納された情報 は、このドメインを管理するために asadmin コマンドによって使用されます dashost > cat .asadminpass # Do not edit this file by hand. Use “asadmin login” command instead. asadmin://devAdmin@localhost:14848 YWRtaW5hZG1pbg== |
クラスタプロファイルを使用したドメインの作成方法
クラスタプロファイルを使用したドメインの作成方法を下記に示します.下記の例では,ベースとなるポート番号(portbase)を指定して実行します.このオプションは 指定したポート番号を基に自動的に各種ポート番号を割り当てドメインを作成します.ポート番号の把握が容易になるため,複数ドメインを構築する場合などに 適しています.
dashost > asadmin create-domain –user clusterAdmin –profile cluster –portbase 5000 –savemasterpassword=true –savelogin=true clusterDomain (省略) ドメイン clusterDomain が作成されました。 |
上記はいずれも —savemasterpassword,–savelogin を有効にして設定を行いました.これらのオプションを指定してドメインを作成すると, 管理者のパスワード,管理者のパスワードがローカルファイルシステム(.asadminpass/master-password)に保存され,次回コマン ド実行時に管理者パスワードの入力を省略できます。一方 –savemasterpassword,–savelogin を指定せずに作成したドメインは asadmin コマンドの実行時に毎回管理者パスワードを問い合わせされます.
不正使用を防ぎたい場合は,毎回パスワードの入力を求めるように–savemasterpassword,–saveloginの 設定を無効にし,環境変数も設定しないようにしてください.
ドメインの一覧表示
作成されているドメインの一覧を表示するためにはlist-domainsコ マンドを実行します.コマンドを実行すると一覧表示以外にドメインの稼働状態も確認できます.
dashost > asadmin list-domains devDomain 実行していません clusterDomain 実行しています コマンド list-domains は正常に実行されました。 |
ドメインとドメイン管理サーバインスタンスの起動
ドメイン管理サーバを起動するためには,start-domainコマンドを実行します.
dashost > asadmin start-domain clusterDomain ドメイン clusterDomain を起動しています。お待ちください。 デフォルトのログの場所は /export/home/appserv/domains/clusterDomain/logs/server.log です。 出力を /export/home/appserv/domains/clusterDomain/logs/server.log にリダイレクトしています ドメイン clusterDomain が起動しました。 ドメイン [clusterDomain] はその設定で [Sun GlassFish Enterprise Server v2.1.1 ((v2.1 Patch06)(9.1_02 Patch12)) (build b31g-fcs)] を実行しています。ログは [/export/home/appserv/domains] にあります。 管理コンソールは [http://localhost:5048] で使用できます。 “asadmin” コマンドにも同じポート [5048] を使用します。 ユーザーの Web アプリケーションは次の URL で使用できます: [http://localhost:5080 https://localhost:5081 ]。 次の web-contexts を使用できます: [/web1 /__wstx-services ]。 標準の JMX クライアント (JConsole など) はドメイン管理のために JMXServiceURL: [service:jmx:rmi:///jndi/rmi://dashost:5086/jmxrmi] に接続できます。 ドメインは少なくとも次のポートで接続を待機しています: [5080 5081 5048 5037 5038 5039 5086 ]。 ドメインはアプリケーションサーバークラスタおよびその他のスタンドアロンインスタン スをサポートします。 |
ドメインとドメイン管理サーバインスタンスの停止
ドメイン管理サーバを停止するためには,stop-domainコマンドを実行します.
dashost > asadmin stop-domain clusterDomain ドメイン clusterDomain が停止しました |
開発者プロファイルを使用して作成したドメインの場合,管理コンソールの左ペインから「アプリケーションサーバ」を選択し右ペインの「一般」タブか ら「インスタンスの停止」ボタンを押すことによってドメイン管理サーバのインスタンスを停止する事ができます.
図 7:開発者プロファイルを利用 したドメイン管理サーバの停止方法
クラスタプロファイルを使用して作成したドメインの場合,管理コンソールから左ペインの「スタンドアロンインスタンス」を選択し右ペインの「一般」 タブから「インスタンスの停止」ボタンを押すことによってドメイン管理サーバのインスタンスを停止する事ができます.
図 8:クラスタプロファイルを利 用したドメイン管理サーバの停止方法
クラスタプロファイルへの変更方法
開発者プロファイルで作成したドメインをクラスタプロファイルに変更することができます.クラスタプロファイルへの変更は、asadminコマンドは利用できず,GUIの管理コンソールを使用した場合のみ可能です.
クラスタプロファイルへ変更するためには,管理コンソールの左ペインから「アプリケーションサーバ」を選択し右ペインの「一般」タブから「クラスタ サポートを追加…」ボタンを押すことによってクラスタ 構成を組むことのできるクラスタプロファイルへ変更できます.
図 9:クラスタプロファイルへの 変更方法
ドメインの削除
ドメインを削除する前に,ドメインが管理する全てのノードエージェント,全てのインスタンス,全てのアプリケーションが停止/削除されていることを確認して下さい.ドメイン上の各種リ ソースが残っている場合,削除に失敗します.
ドメインを削除するためには,delete-domainコマンドを実行します.
dashost > asadmin delete-domain devDomai |
GlassFish ドメインとドメイン管理サーバ
ドメインとは
「ドメイン」とは,アプリケーションサーバの管理を行う上で必要なプロセスや,設定情報等をグループ化した管理用の構成単位です. ドメインは「ドメイン管理サーバ」,「サーバインスタンス」,「ノードエージェント」,「各種リソース(JDBC, JMS, JNDI)」等のさまざまなコンポー ネントや設定情報から構成されています.GlassFishをインストールすると, デフォルトで一つのドメイン(domain1)を生成しますが,必要に応 じて複数のドメインを作成することができます.管理を行うためには,サーバ管理者は,管理者ユーザ名,管理者パスワード,証明書データベースの管理用パス ワードを入力したのち管理を行います.複数のドメインを作成する場合,それぞれのドメインに対して個別に管理者ユーザ名,管理者パスワード,認証用データ ベース管理用パスワードを設定する必要があります.
複数のドメインの作成は,ASP (Application Service Provide) サービスの提供や SaaS(Software as a Service), またクラウドといったサービスにおいて,サービス提供単位,組織単位毎に独立して管理を行いたい場合等に適しています.各ドメイン間を独立して管理でき各 種設定情報はドメイン間では共有されないためこのような環境で安全に利用できます。
図 1:複数ドメインの構成例
補足:GlassFish v2.1 では 単一ドメインにおいて,単一のサーバ管理者が必要でしたが,GlassFish v3で は単一ドメインに対して,複数の管理者を設定できるようになります.これにより各管理者に対してあらかじめ権限を設定しておく事で複数の管理者で安心して 管理ができるようになります. |
ドメイン管理サーバ
ドメイン管理サーバは,ドメインを管理するための管理機能アプリケーションを含んだ,Java EE 5仕 様完全準拠のサーバインスタンス(※1)です.このドメイン管理サーバは,GlassFishのインストール時に作成される唯一のサー バインスタンスで,Java EEアプリケーションを配備して 稼働させる事もできるため,デフォルトサーバと呼ぶこともあります.通常開発時はこのデフォルトサーバのインスタンスに対してアプリケーションを配備した り,デバッグ等を行います.また本番環境において,複数のサーバインスタンスでサービスを提供している場合,一度このデフォルトサーバに対してアプリケー ションを配備し,動作確認後問題がない場合に本番環境を有効にするといった運用にも使うことができます(※2).
このドメイン管理サーバは,サーバ管理者の認証を行った後,ドメイン内のすべての管理,たとえばアプリケーションの配備やリソース設定,サーバイン スタンスの起動/停止等といった管理機能を提供します.
また,物理的に異なるハードウェア上のリソースも管理できます.
各ドメインは必ず一つのドメイン管理サーバのインスタンスを持ち,各ドメイン管理サーバには任意のネットワークポート番号を設定します.基本的に(※3)全ての管理操作はドメイン管理サーバが稼働している状態で行 いますので,ドメイン管理サーバが稼働していない状態では各種設定変更を行うことはできません.
※1 サーバインスタンスの詳細は別途紹介します.
※2 配備済みのアプリケーション設定で「ターゲットの管理」から利用可能 対象のインスタンス/クラスタを設定できます.
※3 一部の管理操作(インスタンスの起動,停止等)はドメイン管理サーバ が起動していない状態でも実行できます.

開発者ドメイン
図 2:開発時におけるドメインと ドメイン管理サーバの構成
サーバ管理者がドメインの管理を行うために,GlassFishで はいくつかの管理ツールを容易しています。代表的な管理操作はコマンドラインツール,もしくはWebベー スのGUI管理コンソールを使用して行います. また,サーバ管理者が独自に管理機能を拡張したい場合,AMX (AppServer Management Extensions)(※4)と呼ぶJMX MBeansベー スの管理拡張用APIを提供していますので,AMX APIを実装した独自管理機能を通じて管理すること もできます.
※4 AMX (Appserver Management Extensions)
https://glassfish.dev.java.net/javaee5/amx/
#asadmin help #asadmin command_name [–help | ?] |
asadminで指定可能なコマンド一覧はhelpコマンドを実行することで確認できます.また、各種 コマンドの引数の詳細は,コマンド入力後 –help を付加して実行する事で確認で きます。
図 3:管理コンソールの表示例
ドメイン管理サーバ導入の利点は,セキュアな環境を構築したい場合に便利です.たとえば,ドメインを管理するための管理サービスとエンドユーザに対 して提供するサービスを独立して運用/管理ができるため,安心して管理を行うこ とができるようになります.
図 4:セキュアなサーバ管理が可 能なドメイン構成例
GlassFish プロファイル
今日は GlassFish 管理の基本概念について紹介します.まず,GlassFishを管理する上で,プロファイルと呼ばれる種類が存在する事を理解してください。また選択するプロファイルに応じて管理できる内容が異なることにも注意してください.GlassFish v2.x で提供される各プロファイルの差異を「表1:各プロファイルで使用できる機能」に記載します.種類としては「開発者プロファイル」,「クラスタプロファイル」,「エンタープライズプロファイル」の3種類が存在しています.この内で「エンタープライズプロファイル」は,オープンソースコミュニティ上のサイトでは提供されず,Sunから提供される製品「Sun GlassFish Enterprise Server v2.1.1 with HADB」を入手した場合のみ利用可能です.この製品以外は,「開発者プロファイル」もしくは「クラスタプロファイル」の何れかを利用する事ができます.たとえばインストール後も必要に応じて,「開発者プロファイル」から「クラスタプロファイル」へアップグレードすることも可能です.
製品名/機能差異 | 開発者プロファイル | クラスタプロファイル | エンタープライズプロファイル |
セキュリティストア | JKS(Java Key Store) 証明書データベース:keystore.jks,cacerts.jks 証明書データベースの管理にkeytoolを使用 |
JKS(Java Key Store) 証明書(鍵)データベース:keystore.jks,cacerts.jks 証明書データベースの管理にkeytoolを使用 |
NSS
(Network Security Services) |
高速起動 | 可能 | 不可 | 不可 |
クラスタ化 | 不可 | 可能 | 可能 |
セキュリティマネージャ | 無効 | 有効 | 有効 |
セッションレプリケーション | 不可 | インメモリレプリケーション | HADB |
負荷分散 | 不可 | 可能 | 可能 |
ノードエージェント | 不可 | 可能 | 可能 |
オープンソース 版の入手先 | https://glassfish.dev.java.net/
GlassFish v2.1.1 設定時setup.xmlを使用 |
https://glassfish.dev.java.net/
GlassFish v2.1.1 設定時setup-cluster.xmlを使用 |
入手不可(商用版のみ) |
製品版の入手先 | http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 |
http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 |
http://www.sun.com/appserver
Sun GlassFish Enterprise Server v2.1.1 with HADB |
表 1:各プロファイルで使用できる機能
システムを構築する環境で,どのプロファイルを選択すればよいかは下記の基準に従って選択して下さい.
- 開発者プロファイル:このプロファイルは開発環境に適しています.再起動等が頻繁に発生する開発環境においては高速起動が有効になっていますので統合開発環境との連携に有効です.
- クラスタプロファイル:このプロフィルは複数台のハードウェアでサービスを提供する,クラスタ環境の構築時に有効です.セッション高可用性の実現にはインメモリレプリケーションを使用するため,HADBの利用に比べパフォーマンスがよく,かんたんにクラスタ環境の構築,高可用性環境を構築できます.
- エンタープライズプロファイル:ミッションクリティカルな環境においては,HADBは最適です.HADBは99.999%の高可用性を実現するために専用のデータベース内にセッション情報を格納します.HADB内で冗長構成が取られているため,インメモリレプリケーションの構成に比べより安心して利用することができます.
GlassFish v3.x に関する補足:
GlassFIsh v3 からは上記のプロファイルの概念が若干変わってきます.GlassFish v3 では Java EE 6 で提供される Web Profile と Enterprise Platform 版のいずれかを入手することができます.GlassFish v2.1 でいう所のクラスタ機能は GlassFish v3.x の最初のリリースである GlassFish v3.0 では提供されず、GlassFish v3.1 以降で利用可能になる予定です.Web Profile, Enterprise Platform で提供される機能一覧を下記に示します.
Java EE Standard | Java Specification Request (JSR) | Sun GlassFish Enterprise Server v3 Full Platform Profile | Sun GlassFish Enterprise Server v3 Web Profile |
---|---|---|---|
Java Platform, Enterprise Edition 6 | JSR 316 | 可能 | 可能 |
Java Servlet Technology 3.0 | JSR 315 | 可能 | 可能 |
JavaServer Pages 2.2 | JSR 245 | 可能 | 可能 |
Expression Language 2.2 | JSR 245 | 可能 | 可能 |
Debugging Support for Other Languages 1.0 | JSR 45 | 可能 | 可能 |
Standard Tag Library for JavaServer Pages 1.2 | JSR 52 | 可能 | 可能 |
JavaServer Faces 2.0 | JSR 314 | 可能 | 可能 |
Common Annotations for the Java Platform 1.1 | JSR 250 | 可能 | 可能 |
Java Transaction API 1.1 | JSR 907 | 可能 | 可能 |
Java Persistence API 2.0 | JSR 317 | 可能 | 可能 |
Enterprise JavaBeans 3.1 Lite | JSR 318 | 可能 | 可能 |
Managed Beans 1.0 | JSR 316 | 可能 | 可能 |
Interceptors 1.1 | JSR 318 | 可能 | 可能 |
Dependency Injection for Java 1.0 | JSR 330 | 可能 | 可能 |
Enterprise JavaBeans 3.1 Full API | JSR 318 | 可能 | 可能 |
Contexts and Dependency Injection for Java EE 1.0 | JSR 299 | 可能 | 可能 |
Java API for RESTful Web Service (JAX-RS) 1.1 | JSR 311 | 可能 | 可能 |
Bean Validation 1.0 | JSR 303 | 可能 | 可能 |
Java EE Connector Architecture 1.6 | JSR 322 | 可能 | 不可 |
Java API for XML-Based Web Services (JAX-WS) 2.2 | JSR 224 | 可能 | 不可 |
Java Architecture for XML Binding (JAXB) 2.2 | JSR 222 | 可能 | 不可 |
Implementing Enterprise Web Services 1.3 | JSR 109 | 可能 | 不可 |
Web Services Metadata for the Java Platform 2.1 | JSR 181 | 可能 | 不可 |
Java Message Service API 1.1 | JSR 914 | 可能 | 不可 |
JavaMail 1.4 | JSR 919 | 可能 | 不可 |
Java Authorization Contract for Containers 1.4 | JSR 115 | 可能 | 不可 |
Java Authentication Service Provider Interface for Containers 1.1 | JSR 196 | 可能 | 不可 |
Java EE Application Deployment 1.2 | JSR 88 | 可能 | 不可 |
J2EE Management 1.1 | JSR 77 | 可能 | 不可 |
Java API for XML-Based Remote Procedure Calls (JAX-RPC) 1.1 | JSR 101 | 可能 | 不可 |
Java API for XML-Based Registries (JAXR) 1.0 | JSR 93 | 可能 | 不可 |