マシンの再起動が必要になった場合など、ドメインまたはノードエージェントが予想外に停止される場合にそなえて、リブート時にドメインまたはノードエージェントが自動的に再起動されるようにシステムを設定することが可能です。
UNIX プラットフォーム上でドメインを再起動するには、適切な asadmin start-domain コマンドを含む行を /etc/inittab ファイルに追加します。/etc/rc.local またはシステム固有の同等のファイルを使用する場合は、目的の asadmin コマンドを /etc/rc.local に記述します。
たとえば、/opt/SUNWappserver ディレクトリにインストールされた Application Server 用の domain1 を password.txt という名前のパスワードファイルを使用して再起動するには、次の行を /etc/inittab または /etc/rc.local に追加します。
das:3:respawn:/opt/SUNWappserver/bin/asadmin start-domain --user admin --passwordfile /opt/SUNWappserver/password.txt domain1
テキストは必ず 1 行で記述してください。先頭の 3 文字はこのプロセスに対する一意の指示子ですが、これは変更可能です。
ノードエージェントを再起動する場合の構文も、これと似ています。たとえば、/opt/SUNWappserver ディレクトリにインストールされた Application Server 用の agent1 を password.txt という名前のパスワードファイルを使用して再起動するには、次の行を /etc/inittab または /etc/rc.local に追加します。
das:3:respawn:/opt/SUNWappserver/bin/asadmin start-node-agent --user admin --passwordfile /opt/SUNWappserver/password.txt agent1
Microsoft Windows 上で自動的に再起動するには、Windows サービスを作成します。Sun Java System Application Server に同梱されている実行可能ファイル appservService.exe と appserverAgentService.exe を、Microsoft が提供するサービス制御コマンド (sc.exe) と組み合わせて使用します。
sc.exe コマンドは Windows XP に同梱されており、C:\\windows\\system32、C:\\winnt\\system32 のいずれかのディレクトリに格納されています。
このマニュアルの執筆時点では、Windows 2000 の sc.exe を次の場所からダウンロードできます。ftp://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.exe および appservAgentService.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" |
パスワードファイル 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="SJESAS_SE8.1 AGENT1" |
binPath= パラメータの一部として入力された起動コマンドと停止コマンドは、正しい構文で記述されている必要があります。確認するには、それらのコマンドをコマンドプロンプトから実行します。コマンドを実行してもドメインまたはノードエージェントが正常に起動または停止されない場合、そのサービスは正しく動作しません。
また、asadmin の start/stop コマンドと service start/stop を混在させないでください。両者を混在させると、サーバーの状態の同期が取れなくなります。たとえば、サーバーのコンポーネントが実行されていないのに「コンポーネントが開始された」と表示されたりします。こうした状況を避けるには、サービス使用時には常に、sc.exe コマンドを使ってコンポーネントを開始および停止するようにしてください。
起動時に必要となるパスワードとマスターパスワードは、次のいずれかの方法を使って処理します。
Microsoft Windows 上で、ユーザーにパスワードを尋ねるようにサービスを設定します。
サービスコントロールパネルで、作成したサービスをダブルクリックします。
「プロパティ」ウィンドウの「ログオン」タブをクリックします。
「デスクトップとの対話をサービスに許可」にチェックマークを付け、必要なパスワードに対するプロンプトがコンポーネント起動時に表示されるようにします。
ログインしてプロンプトを表示させ、入力時にエントリがエコーバックされないことを確認する必要があります。これがサービスオプションを使用する際のもっとも安全な方法ですが、この方法の場合、ユーザーが関与しないとサービスが利用可能になりません。
デスクトップとの対話オプションを設定しなかった場合、サービスは「開始保留」状態のままになり、ハングアップしたように見えます。この状態から抜け出すには、このサービスのプロセスを終了してください。
Windows または UNIX 上で、--savemasterpassword=true オプションを使ってドメインを作成し、管理パスワード格納用のパスワードファイルを作成します。コンポーネント起動時に、--passwordfile オプションを使ってパスワードが格納されたファイルを指定します。asadmin start コマンドの --password オプションを使って管理パスワードを追加することもできます。この方法は、管理パスワードを平文で格納するため、安全性が低いことに注意してください。
次に例を示します。
ドメイン作成時にマスターパスワードを保存します。この構文では、ユーザーは管理パスワードとマスターパスワードの入力を求められます。
asadmin create-domain --adminport 4848 --adminuser admin --savemasterpassword=true --instanceport 8080 domain1 |
Windows の場合、サービスを作成します。その際、パスワードファイルを使って管理パスワードを提供します。
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= "SJESAS_PE8.1 DOMAIN1" |
パスワードファイル password.txt のパスは、C:\\Sun\\AppServer\\password.txt です。このファイルには、パスワードが次の形式で格納されています。
AS_ADMIN_password=password |
たとえば、パスワードが adminadmin の場合、次のようになります。
AS_ADMIN_password=adminadmin |
UNIX の場合、inittab ファイルに追加する行の中で、--passwordfile オプションを使用します。
das:3:respawn:/opt/SUNWappserver/bin/asadmin start-domain --user admin --passwordfile /opt/SUNWappserver/password.txt domain1 |
パスワードファイル password.txt のパスは、/opt/SUNWappserver/password.txt です。このファイルには、パスワードが次の形式で格納されています。
AS_ADMIN_password=password |
たとえば、パスワードが adminadmin の場合、次のようになります。
AS_ADMIN_password=adminadmin |
次のようにして、コマンド行のオプションに指定したパスワードを使ってサービスを作成します。
C:\\windows\\system32\\sc.exe create domain1 binPath= "C:\\Sun\\AppServer\\ lib\\appservService.exe \\"C:\\Sun\\AppServer\\bin\\asadmin.bat start-domain --user admin --password adminadmin domain1\\" \\"C:\\Sun\\AppServer\\bin\\ asadmin.bat stop-domain domain1\\"" start=auto DisplayName="SJESAS_PE8.1 DOMAIN1" |