Sun GlassFish Enterprise Server 2.1 管理ガイド

付録 A ドメインまたはノードエージェントの自動再起動

マシンの再起動が必要になった場合など、ドメインまたはノードエージェントが予想外に停止される場合にそなえて、ドメインまたはノードエージェントが自動的に再起動されるようにシステムを設定することが可能です。

この付録では、次の項目について説明します。

Solaris 10 での自動再起動

Solaris 10 ユーザーは、asadmin create-service コマンドを使用して、ノードエージェントまたはドメイン管理サーバー (DAS) を再起動するサービスを作成できます。作成したサービスでは、Solaris サービス管理機能 (SMF) が使用されます。

サービスが再起動するプロセスは、そのサービスが DAS またはノードエージェントのどちらを再起動するかによって異なります。

サービスはプロセスに、そのプロセスを実行するユーザーの特権を付与します。asadmin create-service コマンドを使用して SMF サービスを作成する場合、デフォルトのユーザーはスーパーユーザーです。別のユーザーがプロセスを実行する必要がある場合は、method_credential にそのユーザーを指定します。

プロセスを Solaris OS の特権ポートにバインドする場合、そのプロセスには net_privaddr 特権が必要です。Solaris OS の特権ポートは、1024 より小さいポート番号です。

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

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

構文は次のとおりです。


asadmin create-service [--name service-name] [--type das|node-agent]
--passwordfile password-file [--serviceproperties serviceproperties] 
domain-or-node-agent-configuration-directory

    たとえば、domain1 に対して domain1 という名前のサービスを作成するには、次の手順に従います。

  1. 次のコマンドを実行します。

    asadmin create-service --type das --passwordfile password.txt /appserver/domains/domain1

    これで、ドメイン domain1 を自動的に再起動するサービスが作成されます。このコマンドにより、バックグラウンドで、テンプレートからマニフェストファイルが作成されて検証され、そのファイルがサービスとしてインポートされます。


    注 –

    特定の Enterprise Server ドメインにデフォルトのユーザー特権を与えないようにする場合は、サービスのマニフェストを変更し、サービスを再インポートします。ユーザーの特権を調べるには、そのユーザーとしてログインし、ppriv -l コマンドを入力します。


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

    svacdm enable /appserver/domains/domain1

  3. 有効にしたあと、ドメインが停止した場合は、SMF によって再起動されます。

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

これらのコマンドの詳細については、各コマンドのマニュアルページを参照してください。

Solaris 9 および Linux プラットフォーム上での inittab による自動再起動

Solaris 9 または Linux プラットフォーム上でドメインを再起動するには、/etc/inittab ファイルにテキストを 1 行追加します。

/etc/rc.local またはこれに相当するファイルを使用している場合は、/etc/rc.localasadmin コマンドを呼び出す行を追加します。

たとえば、opt/SUNWappserver ディレクトリにインストールされた Enterprise Server の domain1 を、password.txt という名前のパスワードファイルを使って再起動するには、次のテキストを追加します。


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

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

ノードエージェントを再起動する場合の構文も、これと似ています。たとえば、opt/SUNWappserver ディレクトリにインストールされた Enterprise Server の agent1 を、password.txt という名前のパスワードファイルを使って再起動するには、次のテキストを追加します。


das:3:respawn:/opt/SUNWappserver/bin/asadmin start-node-agent --user admin 
--passwordfile /opt/SUNWappserver/password.txt agent1

Microsoft Windows プラットフォーム上での自動再起動

Microsoft Windows 上で自動的に再起動するには、Windows サービスを作成し、ユーザーがログアウトするときにサービスがシャットダウンされないようにします。

Windows サービスの作成

Sun GlassFish Enterprise Server に同梱されている実行可能ファイル appservService.exeappserverAgentService.exe を、Microsoft が提供するサービス制御コマンド (sc.exe) と組み合わせて使用します。

sc.exe コマンドは Windows XP に含まれており、Windows インストールディレクトリの system32 サブディレクトリ (通常は C:\windows\system32C:\winnt\system32 のいずれか) に格納されています。現時点では、Windows 2000 の sc.exeftp://ftp.microsoft.com/reskit/win2000/sc.zip でダウンロードできます。sc.exe の使用方法については、http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_scmslite.asp を参照してください。

appservService.exeappservAgentService.exe の使用方法は次のとおりです。

C:\winnt\system32\sc.exe create service-name binPath= \"fully-qualified-path-to-appservService.exe 
\"fully-qualified-path-to-asadmin.bat start-command\" 
\"fully-qualified-path-to-asadmin.bat stop-command\"" 
start= auto DisplayName= "display-name"

注 –

binpath と等号 (=) の間にスペースは入れません。等号とパスの間にはスペースが必要です。


たとえば、パスワードファイル C:\Sun\AppServer\password.txt を使ってドメイン domain1 を開始および停止するサービス SunJavaSystemAppServer DOMAIN1 を作成するには、次のようにします。

C:\windows\system32\sc.exe create domain1 binPath= 
"C:\Sun\AppServer\lib\appservService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-domain --user admin --passwordfile C:\Sun\AppServer\password.txt domain1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-domain domain1\"" start= auto 
DisplayName= "SunJavaSystemAppServer DOMAIN1"

ノードエージェント agent1 を開始および停止するサービスを作成するには、次のようにします。

C:\windows\system32\sc.exe create agent1 binPath= 
"C:\Sun\AppServer\lib\appservAgentService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-node-agent --user admin --passwordfile C:\Sun\AppServer\password.txt agent1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-node-agent agent1\"" start= auto 
DisplayName= "SunJavaSystemAppServer AGENT1"

注 –

binPath= パラメータの一部として入力された開始コマンドと停止コマンドは、正しい構文で記述されている必要があります。確認するには、それらのコマンドをコマンドプロンプトから実行します。コマンドを実行してもドメインまたはノードエージェントが正常に開始または停止しない場合、そのサービスは正しく動作していません。



注 –

asadminstart/stop コマンドとサービスの開始/停止を混在させないでください。両者を混在させると、サーバーの状態の同期が取れなくなります。たとえば、サーバーのコンポーネントが実行されていないのに「コンポーネントが開始された」と表示されたりします。こうした状況を避けるには、サービス使用時には常に、sc.exe コマンドを使ってコンポーネントを開始および停止するようにしてください。


sc.exe create コマンドでサービスが正しく作成されなかった場合は、そのサービスを削除し、もう一度実行してみてください。サービスを削除するには、sc.exe delete "service-name" コマンドを使用します。

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

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

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

<jvm-options>-Xrs</jvm-options>

Enterprise Server サービスが稼働している場合、変更を有効にするには、そのサービスを停止して再起動します。


注 –

Windows 2003 Server インストールでは、-Xrs オプションを domain.xml ファイル追加しても、サービスのシャットダウンを防止できないことがあります。この場合は、次のように、このオプションを as-install\lib\processLauncher.xml ファイルに追加します。

<process name="as-service-name">
   ...
   <sysproperty key="-Xrs"/>
   ...

自動再起動時のセキュリティー

クラスタプロファイルまたはエンタープライズプロファイルを使用している場合は、Enterprise Server を自動的に再起動するときに、管理パスワードとマスターパスワードが必要です。開発者プロファイルを使用している場合は、これらのパスワードは必要ありません。

クラスタプロファイルおよびエンタープライズプロファイルで必要なパスワードとマスターパスワードは、次のいずれかの方法で処理します。