Sun GlassFish Enterprise Server v3 管理ガイド

第 3 章 ドメインの管理

この章では、asadmin コマンド行ユーティリティーを使用して Sun GlassFishTM Enterprise Server v3 環境でドメインを管理する手順について説明します。

ここでは、以下のトピックに関して説明します。

本章で説明するタスクを 管理コンソール から実行する手順については、管理コンソール オンラインヘルプを参照してください。

ドメイン (サーバー) の管理について

ドメインは同時に管理されるインスタンスのグループです。ドメインは、事前に設定されたランタイムをユーザーアプリケーションに提供します。管理上の境界線を設けることに加え、ドメインは基本的なセキュリティー構造を提供し、これによって別々の管理者がサーバーインスタンスの特定のグループを管理できます。サーバーインスタンスを個別のドメインにグループ化することにより、さまざまな組織や管理者が 1 つの Enterprise Server インストールを共有できます。ドメインには、固有の構成、ログファイル、およびアプリケーションの配備領域があり、これらはほかのドメインとは無関係です。1 つのド メインの構成が変更されても、ほかのドメインの構成は影響を受けません。

Enterprise Server インストーラにより、デフォルトの管理ドメイン ( domain1という名前) が作成されます。さらに、関連するドメイン管理サーバー (DAS) (server という名前) も作成されます。DAS は管理者を認証し、管理ツールからの要求を受け付け、ドメイン内のサーバーインスタンスと通信して要求を実行するように特別に指定されたインスタンスです。DAS はデフォルトサーバーと呼ばれることもあります。デフォルトサーバーと呼ばれる理由は、Enterprise Server のインストール時に作成される唯一のサーバーインスタンスで、配備に使用できるからです。

。デフォルトの管理ポートは 4848 ですが、インストール中に別のポートを指定することもできます。ドメインが作成されると、管理ユーザー名とパスワードを入力するよう求められますが、ユーザー名が admin でパスワードがない場合は、デフォルトのままにすることもできます。管理者パスワードをリセットするには、「管理パスワードを変更する」を参照してください。

グラフィカルな 管理コンソール は、特定のDAS と通信し、その DAS と関連するドメインを管理します。管理コンソール の各セッションにより、特定のドメインを設定し、管理できます。ドメインを複数作成した場合は、別々に 管理コンソール セッションを起動して、それぞれのドメインを管理する必要があります。

ドメインの作成、ログイン、削除

ここでは、以下のトピックに関して説明します。

Procedureドメインの作成

Enterprise Server をインストールしてデフォルトドメイン (domain1 ) を作成してからは、ローカルの create-domain サブコマンドを使用してさらにドメインが作成できるようになります。このサブコマンドは、ドメインの構成を作成します。所定のシステムの asadmin ユーティリティーに対してアクセス権を持つユーザーは、ドメインを作成し、自分の選択するフォルダにそのドメイン構成を格納することができます。デフォルトでは、ドメイン構成はドメインのデフォルトディレクトリに作成されます。この場所をオーバーライドして、別の場所に構成を格納することもできます。

ドメインを作成すると、管理ユーザーを指定するよう求められます。または、パスワードなしでユーザー名が admin のデフォルトログイン ID のままにしておくこともできます。

始める前に

ドメインに適用するプロファイルを決定します。

  1. 作成中のドメイン名を選択します。

    まだ使用されていないドメイン名かどうかを確認するには、list-domains(1) を使用します。

  2. ドメインを作成するには、create-domain(1) サブコマンドを使用します。

    このサブコマンドのオプションについては、このマニュアルページに記載されています。

  3. ドメインの admin ユーザー名とパスワードを入力します。

    admin ログインを設定しないようにするには、パスワードなしでデフォルトの admin のままにします。Return を押しても、デフォルトが選択されます。


例 3–1 ドメインの作成

この例では、domain1 というドメイン名を作成します。コマンドを入力すると、ログイン情報を入力するよう求められることがあります。


asadmin> create-domain --adminport 4848 domain1
Enter admin user name[Enter to accept default]>
Using port 4848 for Admin.
Default port 8080 for HTTP Instance is in use. Using 1161
Using default port 7676 for JMS.
Using default port 3700 for IIOP.
Using default port 8081 for HTTP_SSL.
Using default port 3820 for IIOP_SSL.
Using default port 3920 for IIOP_MUTUALAUTH.
Default port 8686 for JMX_ADMIN is in use. Using 1162
Distinguished Name of the self-signed X.509 Server Certificate is:
[CN=moonbeam.gateway.2wire.net,OU=GlassFish,O=Sun Microsystems,L=Santa Clara,ST
California,C=US]
Domain domain1 created.
Command create-domain executed successfully.

管理コンソール をブラウザで起動するには、次のフォーマットで URL を入力します。


http://hostname:5000

この例の場合、ドメインのログファイル、構成ファイル、および配備されたアプリケーションは次のディレクトリに置かれます。

domain-root-dir/mydomain


参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help create-domain と 入力してください。

Procedureドメインの一覧表示

ドメインとそのステータスを一覧表示するには、list-domains サブコマンドを使用します。ドメインのディレクトリが指定されていない場合は、デフォルト as-install/domains ディレクトリにあるコンテンツが表示されます。複数のドメインが存在する場合は、ドメイン名を指定する必要があります。

別のディレクトリに作成されているドメインを一覧表示するには、--domaindir オプションを指定します。

  1. ドメインを一覧表示するには、list-domains(1) サブコマンドを使用します。


例 3–2 ドメインの一覧表示

この例では、デフォルトの as-install/domains ディレクトリを一覧表示しています。


asadmin> list-domains
Name: domain1 Status: Running
Name: domain4 Status: Not Running
Name: domain6 Status: Not Running
Command list-domains executed successfully.

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help list-domain と 入力してください。

Procedureドメインへのログイン

どのリモートサブコマンドにも資格が必要で、管理ユーザー名とそのパスワードを指定しなくてはなりません。ID が明示的または暗黙的に何も指定されていない場合は、デフォルトでは asadmin ユーザーが管理者向け操作を実行できるような ID でドメインが作成されます。デフォルト ID は、ユーザー名が admin でパスワードがない形式です。コマンド行やプロンプトにユーザー名を指定せず、--passwordfile オプションまたはプロンプトにパスワードを何も指定せず、login サブコマンドまたは create-domain サブコマンドに ----savelogin オプションを付けたうちのいずれかでドメインにログインしたことがなければ、asadmin ユーティリティーが ID を何も指定せずに指定の管理操作を実行しようとします。サーバー (ドメイン) は、次の状況に当てはまる限り、このデフォルト ID を使用して管理操作を行えるようにします。

1. サーバー (ドメイン) が、admin ユーザーの認証にファイルレルムを使用している。

2. ファイルレルムに、ユーザーが 1 人しかいない (ユーザー名の内容は問わない)。

3. その 1 人のユーザーに、パスワードが用意されていない。

デフォルトでは、特定のユーザー名とパスワードでドメインを作成していない限り、これらの条件がすべて当てはまります。したがって、唯一の管理ユーザーは、パスワードなしの admin となります。3. に当てはまらない場合は、パスワードを指定する必要があります。2. に当てはまらない場合も、ユーザー名を指定する必要があります。1. に当てはまらない場合は、ユーザー名とパスワードを指定する必要があります。

特定ドメインへの認証 (ログイン) を行うには、ローカルモードで login サブコマンドを使用します。ログインした後は、そのドメインのそれ以降の操作に管理ユーザーやパスワードを指定しなくても済むようになります。login サブコマンドは、管理パスワードを指定する際にのみ使用できます。リモートサブコマンドから入力を求められるこれ以外のパスワードについては、--passwordfile オプションを使用するか、コマンドプロンプトでパスワードを指定してください。管理ユーザー名とパスワードの入力が常に求められます。

logout サブコマンドは一切ありません。別のドメインにログインするには、asadmin login--host--port に新しい値を付けて呼び出します。

  1. ログインしようとしているドメイン名を指定します。

    既存ドメインの一覧表示


    asadmin list-domains
    
  2. login(1)コマンドでドメインにログインします。


例 3–3 リモートマシンでのドメインへのログイン

この例では、別のマシンにあるドメインにログインします。login サブコマンドの前に、オプションを指定します。


asadmin> --host foo --port 8282 login
Please enter the admin user name>admin Please enter the admin password> 
Trying to authenticate for administration of server at host [foo] and port [8282] ... 
Login information relevant to admin user name [admin] 
for host [foo] and admin port [8282] stored at [/.asadminpass] successfully. 
Make sure that this file remains protected. Information stored in this
file will be used by asadmin commands to manage associated domain.


例 3–4 Localhost のデフォルトポートにあるドメインへのログイン

この例では、デフォルトポートの myhost にあるドメインにログインします。login サブコマンドの前に、オプションを指定します。


asadmin>  --host myhost login 
Please enter the admin user name>admin Please enter the admin password> 
Trying to authenticate for administration of server at host [myhost] and port [4848] ... 
An entry for login exists for host [myhost] and port [4848], probably from 
an earlier login operation. 
Do you want to overwrite this entry (y/n)?y 
Login information relevant to admin user name [admin] for host [myhost] 
and admin port [4848] stored at [/home/joe/.asadminpass] successfully. 
Make sure that this file remains protected. Information stored in this file will be used by 
asadmin commands to manage associated domain.

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help login と 入力してください。パスワードの詳細は、「パスワードの管理」を参照してください。

Procedureドメインの削除

サーバーから既存のドメインを削除するには、delete-domain サブコマンドを使用します。このサブコマンドを実行できるのは、このドメインを管理する権限があるルートユーザー、もしくはオペレーティングシステムのユーザーだけです。

始める前に

削除する前に、ドメインがすでに停止している必要があります。

  1. ドメインを一覧表示するには、list-domains(1) サブコマンドを使用します。

  2. 必要な場合は、削除しようとしているドメインのドメインユーザーに通知してください。

  3. 削除対象のドメインが停止していることを確認します。

    必要な場合は、「ドメインの停止」を参照してください。

  4. delete-domain(1) サブコマンドを使用して、ドメインを削除します。


例 3–5 ドメインの削除

この例では、domain1 という名前のドメインを指定の場所から削除します。


asadmin> delete-domain --domaindir ..\domains domain1
Domain domain1 deleted.
Command delete-domain executed successfully.

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help delete-domain と 入力してください。

ドメインの起動と停止

ここでは、以下のトピックに関して説明します。

Procedureドメインの起動

ドメインまたはサーバーの起動時に、ドメイン管理サーバー (DAS) が起動されます。DAS は、一度起動すると常時稼動となり、要求を待機して受け付けます。

ドメインのディレクトリが指定されていない場合は、デフォルトの as-install/domains ディレクトリにあるドメインが起動します。複数のドメインが存在する場合、domain_name オペランドを指定する必要があります。各ドメインは、別々に起動する必要があります。

起動しているドメインで restart-domain サブコマンドを使用できるようにするには、--watchdog オプションを true に設定してください (true がデフォルトです)。--watchdog オプションを false に設定しておくと、そのドメインで restart-domain サブコマンドが使用できません。


注 –

Microsoft Windows の場合、ドメインを起動するにはもう 1 つ方法があります。Windows の「スタート」メニューで、「プログラム」>「Sun Microsystems」>「Enterprise Server」>「デフォルトサーバーを起動」を選択します。


このサブコマンドは、ローカルモードでのみサポートされています。

  1. ドメインを起動するには、start-domain(1) サブコマンドを使用します。


例 3–6 ドメインの起動

この例では、デフォルトドメインディレクトリ内の domain2 を起動します。


asadmin> start-domain domain2

ドメインが 1 つだけの場合は、ドメイン名を省略できます。パスワードを含めていない場合は、入力を求められることがあります。


Name of the domain started: [domain1] and its location: 
[C:\prelude\v3_prelude_release\distributions\web\target\glassfish
domains\domain1].
Admin port for the domain: [4848].

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help start-domain と 入力してください。

Procedureドメインの停止

ドメインまたはサーバーを停止すると、そのドメインの管理サーバー (DAS) がシャットダウンします。ドメインを停止すると、その DAS は新しい接続を受け付けなくなり、未完了の接続がすべて完了するまで待機します。このシャットダウンプロセスには数秒間かかります。ドメインの停止処理中は、管理コンソール およびほとんどの asadmin サブコマンドが使用できません。このサブコマンドは、異常なサーバーを停止する際に特に有用です。制御された状態では、restart-domain(1) サブコマンドも使用できます。


注 –

Microsoft Windows の場合、ドメインを停止するにはもう 1 つ方法があります。「スタート」メニューで、「プログラム」>「Sun Microsystems」>「Enterprise Server」>「デフォルトサーバー停止」を選択します。


  1. 必要な場合は、停止しようとしているドメインのユーザーに通知します。

  2. stop-domain(1) サブコマンドを使用して、ドメインを停止します。


例 3–7 ドメイン (サーバー) の停止

この例では、デフォルトディレクトリにある domain1 を停止します。ここで、domain1 はこのディレクトリに存在する唯一のドメインとします。


asadmin> stop-domain
Waiting for the domain to stop ...........
Command stop-domain executed successfully.

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help stop-domain と 入力してください。

Procedureドメインの再起動

指定ホストのドメイン管理サーバー (DAS) を再起動するには、リモートモードで restart-domain サブコマンドを使用します。ドメインを再起動すると、その DAS は新しい接続を受け付けなくなり、未完了の接続がすべて完了するまで待機します。このシャットダウンプロセスには数秒間かかります。ドメインが再起動されるまで、管理コンソール およびほとんどの asadmin サブコマンドが使用できません。

このサブコマンドは、サーバーマシンがセキュリティー保護されていてアクセスしにくい環境で特に有用です。正当な資格がある状態であれば、そのサーバーをリモートからでも同一マシンからでも再起動できます。

サーバーが再起動しない場合は、stop-domain(1) サブコマンドの後に start-domain(1) サブコマンドを使用します。

始める前に

restart-domain サブコマンドを成功させるには、ドメインを起動した時に start-domain サブコマンドの --watchdog オプションを (デフォルトの) true に設定しておく必要があります。このオプションが false に設定された状態でドメインを再起動しようとすると、ドメインが停止し警告メッセージのログが記録されます。--watchdog オプションを false に設定している場合、ドメインを再起動するには stop-domain および start-domain サブコマンドを使用するほかありません。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. restart-domain(1) サブコマンドを使用して、ドメインを再起動します。


例 3–8 ドメイン (サーバー) の再起動

この例では、デフォルトディレクトリにある mydoimain4 を再起動します。


asadmin> restart-domain mydomain4
Waiting for the domain to restart ...........
Command restart-domain executed successfully.


例 3–9 ブラウザでのドメインの再起動

この例では、ブラウザで restart-domain サブコマンドを呼び出します。


http://yourhost:4848/__asadmin/restart-domain

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help restart-domain と 入力してください。

ドメインの自動再起動

ここでは、Solaris でドメインを自動的に再起動するようにシステムを設定する方法について説明します。

ここでは、以下のトピックに関して説明します。

ProcedureSolaris 10 でのドメイン自動的再起動

create-service サブコマンドは、Solaris と Windows プラットフォームの両方でサポートされていますが、ここでは Solaris の手順のみ説明します。

Solaris 10 では、asadmin create-service サブコマンドを使用して、ドメイン管理サーバー (DAS) を再起動する Solaris Service Management Facility (SMF) サービスを作成できます。サービスはプロセスに、そのプロセスを実行するユーザーの特権を付与します。SMF サービスを作成する場合、デ フォルトのユーザーはスーパーユーザーです。別のユーザーがプロセスを実行する 必要がある場合は、method_credential にそのユーザーを指定します。

プロセスを Solaris 10 の特権ポートにバインドする場合、そのプロセスには net_privaddr 特権が必要です。Solaris オペレーティングシステム の特権ポートは、1024 より小さいポート番号です。

ユーザーが net_privaddr 特権を持っているかどうかを確認するには、そのユーザーとしてログインし、ppriv -l | grep net_privaddr コマンドを入力します。

SMF サービスを作成して有効にしたあと、ドメインが停止した場合は、SMF によって再起動されます。

始める前に

asadmin create-service コマンドを実行するには、solaris.smf.* 認証が必要です。この認証の設定方法については、useradd および usermod のマニュアルページを参照してください。さらに次のディレクトリツリーでの書き込み権も必要です。 /var/svc/manifest/application/SUNWappserver。通常、スーパーユーザーはこれらの権限をどちらも持っています。また、svccfgsvcsauths などの Solaris 10 管理コマンドが PATH で使用できなければなりません。

特定の Enterprise Server ドメインにデフォルトのユーザー特権を与えないようにする場合は、サービスのマニフェストを変更し、サービスを再インポートします。

  1. create-service(1) サブコマンドを使用して、サービスを作成します。

    このサブコマンドのプロパティーについては、このマニュアルページに記載されています。

  2. サービスが作成されたら、svacdm enable コマンドを使用してサービスを有効にします。

    次に例を示します。


    svacdm enable /appserver/domains/domain1
    

例 3–10 Solaris 10 でドメインを自動再起動するためにサービスを作成する

この例では、サービスを作成します。


asadmin> create-service
The Service was created successfully. Here are the details:
Name of the service:application/GlassFish/domain1
Type of the service:Domain
Configuration location of the service:/home/gfuser/glassfish-installations
/glassfishv3/glassfish/domains
Manifest file location on the system:/var/svc/manifest/application
/GlassFish/domain1_home_gfuser_glassfish-installations_glassfishv3
_glassfish_domains/Domain-service-smf.xml.
You have created the service but you need to start it yourself.
Here are the most typical Solaris commands of interest:
* /usr/bin/svcs -a | grep domain1 // status
* /usr/sbin/svcadm enable domain1 // start
* /usr/sbin/svcadm disable domain1 // stop
* /usr/sbin/svccfg delete domain1 // uninstall
Command create-service executed successfully

参照

サービスを管理するときに、次の Solaris コマンドが役に立ちます。 authssmf_securitysvcadm svccfgrbacuseradd、および usermod

ProcedureLinux 上での自動再起動

Linux 上で再起動を設定するには、/etc/inittab を編集します。/etc/rc.local またはこれに相当するファイルを使用している場合は、/etc/rc.local に必要な asadmin サブコマンドを呼び出す行を追加します。

  1. /etc/inittab ファイルにテキストを 1 行追加します。

    次に例を示します。


    das:3:respawn:/opt/SUNWappserver/bin/asadmin start-domain --user admin 
    --passwordfile /opt/SUNWappserver/password.txt domain1

    このテキストは 1 行で記述してください。先頭の 3 文字はこのプロセスに対する一意の指示子ですが、これは変更可能です。

Procedureユーザーの Windows ログアウト時にサービスがシャットダウンされないようにする

デフォルトでは、Java Virtual Machine (JVM) は、Windows のシャットダウンまたはユーザーの Windows ログアウトが行われることを示すシグナルを Windows からキャッチし、Java VM 自身を完全にシャットダウンします。この動作により、Enterprise Server サービスがシャットダウンされます。ユーザーがログアウトするときにサービスがシャットダウンしないようにするには、-Xrs Java VM オプション を設定します。

  1. as-install\domains\ domain-name\config\domain.xml ファイル内の、Java VM オプションを定義するセクションに次の行を追加します。

    <jvm-options>-Xrs</jvm-options>
  2. Enterprise Server サービスが稼働している場合、変更を有効にするには、そのサービスを再起動します。

その他のドメインタスク

ここでは、以下のトピックに関して説明します。

Procedureドメインの稼働時間の表示

ドメイン管理サーバー (DAS) を最後に起動してから今まで稼動している期間を表示するには、リモートモードで uptime サブコマンドを使用します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. uptime(1) サブコマンドで稼働時間を表示します。


例 3–11 DAS 稼働時間の表示

この例では、DAS の稼働時間を表示します。


asadmin> uptime
Uptime: 1 Weeks, 4 days, 0 hours, 17 minutes, 14 seconds, Total milliseconds: 951434595
Command uptime executed successfully.

参照

このサブコマンドの完全な構文を確認するには、コマンド行に asadmin help uptime と 入力してください。

Procedureサポートされている別の Java バージョンへドメインを切り換える

Enterprise Server v3 には、JavaTM プラットフォーム (Java Virtual Machine すなわち JVMTM マシン) のベースとなる仮想マシンに Version 6 Java SE プラットフォームが必要です。


注 –

新しい JVM マシンでドメインを作成したあとは、以前の Java バージョンにはダウングレードしないでください。ご使用の JVM マシンをダウングレードする必要がある場合は、そのドメインの Java バージョンだけをダウングレードしてください。


  1. まだダウングレードしていない場合は、目的の Java SDK (JRE ではありません) をダウンロードして、システムにインストールしてください。

    Java SDK は、http://java.sun.com/j2se でダウンロードできます。

  2. JDK を変更するドメインを起動します。

    次のフォーマットを使用します。


    as-install/bin/asadmin start-domain domain-name
    

    有効な JVM インストールの場合、次の順で場所がチェックされます。

    1. domain.xml (java-config 内の java-home)

    2. asenv.conf (AS_JAVA="path to java home" 設定)

    有効な JDK が見つからない場合は、致命的エラーが発生し、その問題のレポートが返されます。

  3. 必要な場合は、ドメインの JVM マシン属性を変更します。

    特に、JAVA_HOME 環境変数を変更する必要があります。JAVA_HOME 変数を変更するには、たとえば次のように入力します。


    as-install/bin/asadmin set "server.java-config.java-home=path-to-java-home"