サーバの起動と停止の管理

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

Windows サービスとしての WebLogic Server インスタンスの設定

Windows ホスト コンピュータの起動時に WebLogic Server インスタンスを自動的に起動したい場合は、そのサーバを Windows サービスとして設定できます。

WebLogic Server では、Windows サービスとして設定したサーバ インスタンスごとに、Windows レジストリ内 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services) にキーが作成されます。このレジストリ エントリには、サーバ名をはじめとする起動引数の情報が含まれています。

Windows ホストを起動すると、Windows オペレーティング システムの一部である Windows サービス コントロール マネージャ (SCM) が、Windows レジストリ キー内の情報を使用して weblogic.Server メイン クラスを呼び出します。Windows SCM は、ノード マネージャを使用して管理対象サーバを起動するようにコンフィグレーションすることはできません。したがって、Windows サービスとして実行しているサーバでは、ノード マネージャのモニタ機能と自動再起動機能は使用できません。

ここでは、Windows サービスとして実行する WebLogic Server インスタンスを設定および管理する手順について説明します。

 


Windows サービスの設定 : 主な手順

Windows サービスを設定するには、次の手順に従います。

  1. サーバ固有の変数を設定するスクリプトを作成し、WebLogic Server マスタ スクリプトを呼び出します。詳細については、「サーバ固有のスクリプトの作成」を参照してください。
  2. 管理対象サーバを Windows サービスとしてインストールする場合は、ドメインの管理サーバの場所を示す変数を、サーバ固有のスクリプトに追加します。詳細については、「管理サーバへの接続のコンフィグレーション」を参照してください。
  3. 同じコンピュータで Windows サービスとして実行する管理サーバと管理対象サーバの両方を設定したら、WebLogic Server マスタ スクリプトを変更して、管理サーバの起動サイクルが完了した後にのみ管理対象サーバが起動されるようにします。詳細については、「管理サーバと管理対象サーバの起動順序の強制」を参照してください。
  4. Windows コントロール パネルを使用して Windows サービスを停止したときに、サーバ インスタンスを正常に停止させたい場合は、Java クラスを作成し、Windows SCM によってそのクラスが呼び出されるようにマスタ スクリプトを変更します。詳細については、「Windows コントロール パネルからの正常停止の有効化」を参照してください。
  5. サーバ インスタンスから標準出力および標準エラーに出力されるメッセージ (スタック トレースやスレッド ダンプを含む) を表示したい場合は、標準出力および標準エラーをファイルにリダイレクトします。詳細については、「標準出力および標準エラーのファイルへのリダイレクト」を参照してください。
  6. WebLogic Server インスタンスから呼び出す追加の Java クラスを作成した場合は、それらをサーバのクラスパスに追加します。詳細については、「クラスパスへのクラスの追加」を参照してください。
  7. サーバ固有のスクリプトを実行します。詳細については、「サーバ固有のスクリプトの実行」を参照してください。

サーバ固有のスクリプトの作成

ここで作成するスクリプトでは、サーバ固有の情報 (サーバ インスタンス名など) を特定するための変数に値を設定する必要があります。また、このスクリプトからマスタ スクリプト WL_HOME\server\bin\installSvc.cmd (WL_HOME は WebLogic Server のインストール ディレクトリ) を呼び出す必要もあります。マスタ スクリプトからは、Windows レジストリにキーを追加する beasvc ユーティリティが呼び出されます。

注意 : beasvc の詳細について知りたい場合は、コマンド プロンプトに WL_HOME\server\bin\beasvc -help と入力します。WL_HOME は、WebLogic Server のインストール ディレクトリです。

サーバ固有のスクリプトのサンプルについては、コード リスト 3-1 を参照してください。

サーバ固有のスクリプトを作成するには、次の手順に従います。

  1. ドメインの管理サーバのルート ディレクトリにテキスト ファイルを作成します。
  2. このテキスト ファイルに、以下に示す必須batch コマンドを追加します。各コマンドは別々の行に記述してください。
    • SETLOCAL
    • これは、バッチ ファイル内の環境変数のローカライゼーションを開始する batch コマンドです。

    • set DOMAIN_NAME=domain-name
    • domain_name は、WebLogic Server ドメインの名前です。

    • set USERDOMAIN_HOME=absolute-pathname
    • absolute-pathname は、管理サーバのルート ディレクトリ (ドメインのコンフィグレーション ファイルが格納されているディレクトリ) の絶対パス名です。

    • set SERVER_NAME=server-name
    • server-name は、Windows サービスとして設定する既存のサーバ インスタンスの名前です。

  3. このテキスト ファイルに、以下に示す省略可能batch コマンドを追加します。各コマンドは別々の行に記述してください。
    • set WLS_USER=username
      set WLS_PW=password
    • username は、サーバ インスタンスを起動する権限を持つ既存のユーザの名前、password はそのユーザのパスワードです。beasvc ユーティリティでは、ログイン資格が暗号化され、Windows レジストリに格納されます。

      この方法は、サーバ インスタンスの起動時にユーザ名とパスワードのプロンプトが表示されないようにする 2 つの方法のうちの 1 つです。この方法の欠点は、サーバ インスタンスのユーザ名やパスワードを変更した場合に、Windows サブをいったん削除して、変更後のユーザ名とパスワードで新しい Windows サービスを作成しなければならない点です。もう 1 つの方法として、起動 ID ファイルを使用する方法もあります。起動 ID ファイルを使用した場合は、ログイン資格を変更しても、Windows サービスを変更する必要はありません。詳細については、「起動 ID ファイル」を参照してください。

    • set PRODUCTION_MODE=[true]
    • PRODUCTION_MODE 変数を true に設定すると、サーバ インスタンスがプロダクション モードで起動します。この変数が指定されていないか、false に設定されている場合は、サーバが開発モードで起動します。プロダクション モードと開発モードの詳細については、『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「WebLogic ドメインの作成」を参照してください。

    • set JAVA_OPTIONS=java-options
    • java-options は、Java 仮想マシン (JVM) に渡す 1 つまたは複数の Java 引数です。複数の引数を指定する場合はスペースで区切ります。WebLogic Server に固有の Java オプションの一覧については、『コマンド リファレンス』の「weblogic.Server コマンドライン リファレンス」を参照してください。使用している JVM でサポートされるすべてのオプションについては、その JVM ベンダのドキュメントを参照してください。

    • set JAVA_VM=-JVM-mode
    • JVM-mode は、JVM の実行モードを示すテキスト文字列です。指定する値は、使用している JVM ごとに異なります。たとえば、Sun JDK では -hotspot-client、または -server JVM を実行できます。Sun JDK 1.3.1 を使用している場合のデフォルト値は -hotspot です。Sun JDK 1.4.1 を使用している場合のデフォルト値は -client です。JRockit JVM を使用している場合のデフォルト値は -jrockit です。詳細については、『JRockit SDK ユーザーズ ガイド』の「JRockit JVM の起動とコンフィグレーション」を参照してください。

    • set MEM_ARGS=[-XmsNumberm] [-XmxNumberm]
    • Number は、MB 単位の数値です。-XmsNumberm 引数は JVM の最小ヒープ サイズを、-XmxNumberm 引数は JVM の最大ヒープ サイズを設定します。デフォルトの最小ヒープ サイズは 23MB、最大ヒープ サイズは 200MB です。

注意 : デフォルト以外の JVM ヒープ サイズを指定するには、WL_HOME\common\bin\commEnv.cmdMEM_ARGS 値を設定します。ただし、この変更は同じ WL_HOME 以下のすべてのドメインに影響します。
  1. スクリプトの末尾に、以下に示す必須のコマンドを追加します。
    • call "WL_HOME\server\bin\installSvc.cmd"
    • WL_HOME は、WebLogic Server のインストール ディレクトリの絶対パス名です。このコマンドにより、WebLogic Server のマスタ スクリプトが呼び出されます。

    • ENDLOCAL
    • これは、バッチ ファイル内の環境変数のローカライゼーションを終了する batch コマンドです。

  2. このテキスト ファイルを、拡張子 .cmd で保存します。デフォルトでは、Windows コマンド プロンプトによって拡張子 .cmdbatch ファイルが関連付けられます。

管理サーバへの接続のコンフィグレーション

管理対象サーバを Windows サービスとしてインストールする場合は、ドメインの管理サーバの場所を示す変数を含める必要があります。管理対象サーバのコンフィグレーション データは、管理対象サーバから管理サーバにアクセスして取得しなければなりません。

また、先に管理サーバ (サービスではなく実際のサーバ) を起動し、その後で管理対象サーバを Windows サービスとして開始する必要があります。

管理サーバへの接続をコンフィグレーションするには、次の手順に従います。

  1. テキスト エディタで、そのサーバ固有のスクリプトを開きます。
  2. このテキスト ファイルで、SETLOCAL コマンドと call コマンドの間に次のコマンドを挿入します。
  3. set ADMIN_URL=protocol://listen-address:listen-port

    各要素の説明は次のとおりです。

  4. サーバ固有のスクリプトへの変更内容を保存します。
  5. コード リスト 3-1 サーバを Windows サービスとして設定するスクリプトのサンプル
    echo off
    SETLOCAL
    set DOMAIN_NAME=myWLSdomain 
    set USERDOMAIN_HOME=d:\bea\user_projects\domains\myWLSdomain
    set SERVER_NAME=myWLSserver
    set PRODUCTION_MODE=true
    set
    JAVA_OPTIONS=-Dweblogic.Stdout="d:\bea\user_projects\domains\myWLSdomain\
    stdout.txt" -Dweblogic.Stderr="d:\bea\user_projects\domains\myWLSdomain\
    stderr.txt"
    set ADMIN_URL=http://adminserver:7501 
    set MEM_ARGS=-Xms40m -Xmx250m
    call "d:\bea\weblogic81\server\bin\installSvc.cmd"
    ENDLOCAL

管理サーバと管理対象サーバの起動順序の強制

同じコンピュータで Windows サービスとして実行する管理サーバと管理対象サーバの両方を設定したら、管理サーバの後にのみ起動する管理対象サーバを指定できます。

管理対象サーバが、必ず管理サーバ Windows サービスの後に起動されるようにするには、次の手順に従います。

  1. WL_HOME\server\bin\installSvc.cmd マスタ スクリプトのバックアップ コピーを作成します。
  2. 管理サーバがすでに Windows サービスとしてインストールされている場合は、そのサービスを削除します。詳細については、「Windows サービスとして設定されているサーバの削除」を参照してください。
  3. 管理サーバを Windows サービスとしてインストール (または再インストール) する前に、以下を行います。
    1. テキスト エディタで、WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開きます。
    2. スクリプト内の最後のコマンドは、beasvc (Windows レジストリを変更する WebLogic Server ユーティリティ) を呼び出すコマンドです。

    3. installSvc.cmd 内で、beasvc ユーティリティを呼び出すコマンドに次の引数を追加します。
    4. -delay:delay_milliseconds

この引数では、サービスの状態が Windows SCM によって SERVER_START_PENDING から STARTED に変更されるまでの待機時間をミリ秒で指定します。
たとえば、管理サーバがその起動サイクルを完了してリクエストをリスンできる状態になるまでに 2 分かかる場合は、-delay=120000 のように指定します。この場合、Windows ホスト コンピュータを起動すると、Windows SCM によって SERVER_START_PENDING 状態が 2 分間報告されます。その後、状態が STARTED に変更されます。

この管理サーバの変更後の beasvc 呼び出しは次のようになります。

"%WL_HOME%\server\bin\beasvc" -install
-svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
-delay:120000
-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
-extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
-cmdline:%CMDLINE%

beasvc の詳細について知りたい場合は、コマンド プロンプトに WL_HOME\server\bin\beasvc -help と入力します。WL_HOME は、WebLogic Server のインストール ディレクトリです。

  1. 管理サーバ Windows サービスをインストールします。
  2. 管理対象サーバを Windows サービスとしてインストールする前に、以下を行います。
    1. テキスト エディタで、WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開きます。
    2. installSvc.cmd 内で、beasvc ユーティリティを呼び出すコマンドに次の引数を追加します。
    3. -depend:Administration-Server-service-name

      Administration-Server-service-name は、管理サーバ Windows サービスの名前です。サーバ名は、Windows の [サービス] コントロール パネルで確認できます。

このオプションを指定することで、管理サーバ Windows サービスの状態が STARTED と報告されてからでないと、管理対象サーバ Windows サービスが開始されなくなります。

この管理対象サーバの変更後の beasvc 呼び出しは次のようになります。

"%WL_HOME%\server\bin\beasvc" -install
-svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
-depend:"myDomain_myAdminServer"
-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
-extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
-cmdline:%CMDLINE%

Windows SCM によってサービスの状態が STARTED と報告されたときにコンフィグレーションしたい場合は、管理対象 Windows サービスにも -delay:delay_milliseconds オプションを追加できます。

Windows コントロール パネルからの正常停止の有効化

デフォルトでは、Windows コントロール パネルを使用してサーバ インスタンスを停止すると、Windows サービス コントロール マネージャ (SCM) がそのサーバの Java 仮想マシン (JVM) を強制停止します。JVM を強制停止すると、サーバは直ちにすべての処理を終了します。セッション データはすべて失われます。サーバが config.xml ファイルへの書き込みを行っている間に管理サーバの JVM を強制停止すると、config.xml ファイルが破損するおそれがあります。

Windows コントロール パネルからの正常停止を有効にするには、次の手順に従います。

  1. weblogic.management.runtime.ServerRuntime.shutdown() メソッドを呼び出す Java クラスを作成します。
  2. このメソッドは、処理中のすべての作業を完了してからサーバを正常に停止します。このようなクラスの例については、「サーバ インスタンスを停止する Java クラス」を参照してください。

  3. WL_HOME\server\bin\installSvc.cmd マスタ スクリプトのバックアップ コピーを作成します。
  4. テキスト エディタで、WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開いて以下を行います。
    1. 前の手順で作成したクラスを、set CLASSPATH 文に追加します。
    2. たとえば、クラスを c:\myJar というファイル名でアーカイブする場合、変更後の文は次のようになります。
      set
      CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp
      .jar;%WL_HOME%\server\lib\weblogic.jar;
      c:\myJar;%CLASSPATH%

    3. スクリプトの最終行 (beasvc ユーティリティの呼び出し) に次の引数を追加します。
      -stopclass:javaclass
      javaclass は、前の手順で作成したクラスの絶対クラスパス名です。この引数を指定することにより、javaclass がロードされてから、その public void static stop() メソッドが呼び出されます。
    4. たとえば、コード リスト 3-2 のクラスを com.myClasses にパッケージ化した場合、変更後の beasvc コマンドは次のようになります。
      変更後の beasvc 呼び出しは次のようになります。

      "%WL_HOME%\server\bin\beasvc" -install
      -svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
      – stopclass:com.myClasses.ServerStopper
      -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
      -extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
      -cmdline:%CMDLINE%

      beasvc の詳細について知りたい場合は、コマンド プロンプトに WL_HOME\server\bin\beasvc -help と入力します。WL_HOME は、WebLogic Server のインストール ディレクトリです。

  5. Administration Console で、サーバの [制御|起動と停止] を選択し、管理対象サーバの正常停止動作をコンフィグレーションします。
  6. 正常停止オペレーションにおいて、すべての HTTP セッションを直ちに中止するかどうかを設定したり、停止を強制するまでの待機時間をコンフィグレーションしたりできます。詳細については、Administration Console オンライン ヘルプの「正常な停止の制御」を参照してください。

  7. Windows SCM によって指定されているデフォルトのタイムアウト値を変更すべきかどうかを検討します。
  8. デフォルトでは、Windows 2000 コントロール パネルを使用して Windows サービスを停止すると、Windows SCM がサービスの停止を 30 秒間待機し、それでも停止しない場合はサービスを強制停止してシステム イベント ログにタイムアウト メッセージを出力します。

    -stopclass を使用してサーバを正常停止する場合、30 秒というタイムアウト値は、サーバがすべての処理を正常に終了するには短すぎる可能性があります。

    Windows 2000 でタイムアウト期間をコンフィグレーションするには、ServicesPipeTimeout という名前の REG_DWORD レジストリ値を、次のレジストリ キーの下に作成します。
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control

    キー値はミリ秒で指定する必要があります。

    この値は、Windows オペレーティング システムの起動時にレジストリから読み取られ、インストールされているすべてのサービスに影響します。

  9. 変更後の WebLogic Server マスタ スクリプトを保存します。
サーバ インスタンスを停止する Java クラス

以下の Java クラスでは、JMX (Java Management Extensions) を使用してサーバ インスタンスを停止します。各サーバの管理属性とオペレーションは、JMX 管理対象 Bean (MBean) を使用して公開されます。このような MBean の 1 つである ServerRuntime は、サーバを正常に停止するための shutdown() メソッドを公開します。

コード リスト 3-2 に示すクラスでは、管理 MBeanHome インタフェースを使用しています。このインタフェースを使用すると、ドメイン内のすべてのサーバ インスタンスの ServerRuntime MBean オペレーションを取得したり呼び出したりできます。

JMX プログラミングの詳細については、『JMX によるカスタム管理ユーティリティの開発』を参照してください。ServerRuntime MBean の詳細については、WebLogic Server Javadoc を参照してください。

コード リスト 3-2 サーバ インスタンスを停止する Java クラス
import java.util.Set;
import java.util.Iterator;
import java.rmi.RemoteException;
import javax.naming.Context;
import javax.management.ObjectName;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.WebLogicMBean;
import weblogic.management.configuration.ServerMBean;
import weblogic.management.runtime.ServerRuntimeMBean;
import weblogic.management.runtime.ServerStates;
import weblogic.management.WebLogicObjectName;
public class ServerStopper {
public static void stop() throws Exception {
MBeanHome home = null;
    // 管理サーバの URL
String url = "t3://qa113:7001";
String username = "system";
String password = "gumby1234";
ServerRuntimeMBean serverRuntime = null;
Set mbeanSet = null;
Iterator mbeanIterator = null;
    try {
      // ContextClassloader を設定してアサーションを回避
URL[] urls = { new File("/").toURL() };
Thread.currentThread().setContextClassLoader(new
URLClassLoader(urls));
      Environment env = new Environment();
env.setProviderUrl(url);
env.setSecurityPrincipal(username);
env.setSecurityCredentials(password);
Context ctx = env.getInitialContext();
home = (MBeanHome)
ctx.lookup("weblogic.management.adminhome");
mbeanSet = home.getMBeansByType("ServerRuntime");
mbeanIterator = mbeanSet.iterator();
      while(mbeanIterator.hasNext()) {
serverRuntime = (ServerRuntimeMBean)mbeanIterator.next();
        if(serverRuntime.getState().equals(ServerStates.RUNNING)){
            serverRuntime.shutdown();
}
}
    } catch (Exception e) {
e.printStackTrace();
}
}
}

標準出力および標準エラーのファイルへのリダイレクト

WebLogic Server インスタンスを Windows サービスとしてインストールする場合のデフォルトでは、サーバやその JVM から標準出力と標準エラーに出力されたメッセージは表示されません。

これらのメッセージを表示するには、標準出力および標準エラーからファイルにリダイレクトする必要があります。

  1. WL_HOME\server\bin\installSvc.cmd マスタ スクリプトのバックアップ コピーを作成します。
  2. テキスト エディタで、WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開きます。
  3. installSvc.cmd スクリプトの最後のコマンドで、beasvc ユーティリティが呼び出されるようにします。beasvc コマンドの末尾に、次のコマンド オプションを追加します。
  4. -log:"pathname "
    pathname は、サーバの標準出力と標準エラーへのメッセージを格納するファイルの完全修飾パスおよびファイル名です。

    変更後の beasvc コマンドは次のようになります。

    "%WL_HOME%\server\bin\beasvc" -install
    -svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
    -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
    -extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
    -cmdline:%CMDLINE%
    -log:"d:\bea\user_projects\domains\myWLSdomain\myWLSserver-stdout.txt”

  5. デフォルトでは、Windows サービスが 24 時間間隔で pathname-yyyy_mm_dd-hh_mm_ss という名前のファイルにメッセージをアーカイブします。新しいメッセージは、前の手順で指定したファイルに収集されます。
  6. デフォルト動作の変更の詳細については、「デフォルトのローテーション条件の変更」を参照してください。

サービスをインストールして Windows ホストを再起動したら、以下のいずれかの方法で、標準出力または標準エラーに書き込まれたメッセージを表示できます。

デフォルトのローテーション条件の変更

デフォルトでは、Windows サービスが 24 時間間隔で pathname-yyyy_mm_dd-hh_mm_ss という名前のファイルにメッセージをアーカイブします。新しいメッセージは、サービスの設定時に指定したファイルに収集されます。

このアーカイブの時間間隔を変更したり、ローテーションの発生を時間間隔ではなくメッセージ ファイルのサイズに基づいて設定したりできます。

Windows サービスがメッセージ ファイルをローテーションする際のデフォルト条件を変更するには、次の手順に従います。

  1. Windows サービスが実行されている場合はそれを停止します。
  2. -log: pathname 引数で指定したファイルを編集します。ファイルが存在しない場合は作成します。
  3. たとえば、前の節の 手順 3 に示したサンプル コマンドを発行した場合は、d:\bea\wlserver6.1\config\mydomain\myserver-stdout.txt というファイルを作成します。

  4. 以下のいずれか 1 つを実行します。
    • メッセージ ファイルを、サイズではなく特定の時間間隔でローテーションする場合は、ファイルの先頭に以下の文を追加します。各文は別々の行に記述します (最後の行を記述した後、必ず〔Enter〕または〔Return〕を押してください)。
      # ROTATION_TYPE = TIME
      # TIME_START_DATE =
      date-in-required-format
      # TIME_INTERVAL_MINS = number-of-minutes
    • TIME_START_DATE は、初回のローテーションを行う日時を示します。指定した日時をすでに過ぎている場合は、TIME_INTERVAL_MINS に指定した時間が経過すると同時に初回のローテーションが発生します。開始日時を指定する際は、Month Day Year Hour:Minutes:Seconds という形式を使用する必要があります。
      Month は、グレゴリオ暦の各月を英語で表記した場合の先頭 3 文字で指定します。
      Day は、グレゴリオ暦の各月の日付を表す 2 桁の数値です。
      Year は、グレゴリオ暦の年を表す 4 桁の数値です。
      Hour:Minutes:Seconds は、24 時間形式で表した時刻です。

      TIME_INTERVAL_MINS は、ファイルをローテーションする頻度を示します。

      次に例を示します。
      # ROTATION_TYPE = TIME
      # TIME_START_DATE = Jul 17 2003 05:25:30
      # TIME_INTERVAL_MINS = 1440

      指定した時間間隔が経過すると、ファイルが pathname-yyyy_mm_dd-hh_mm_ss という名前で保存されます。次に、pathname を名前とした新しいファイルが作成されます。この新しいファイルには、当初指定したすべてのヘッダが含まれており、標準出力および標準エラーへの新しいメッセージはこのファイルに収集されます。

      # ROTATION_TYPE = TIME を指定しても、それ以外の行を記述していない場合は、メッセージ ファイルが 24 時間間隔でローテーションされます。

    • メッセージ ファイルのサイズが指定値を超えたときにローテーションする場合は、ファイルの先頭に以下の文を追加します。各文は別々の行に記述します (最後の行を記述した後、必ず〔Enter〕または〔Return〕を押してください)。
    • # ROTATION_TYPE = SIZE
      # SIZE_KB =
      file-size-in-kilobytes
      # SIZE_TRIGGER_INTERVAL_MINS = polling-interval

      SIZE_KB は、メッセージ ファイルをローテーションをトリガする最小ファイル サイズ (KB) を示します。

      SIZE_TRIGGER_INTERVAL_MINS は、ファイル サイズをチェックする時間間隔 (分) を示します。このヘッダを含めない場合は、5 分間隔でファイル サイズがチェックされます。

      次に例を示します。
      # ROTATION_TYPE = SIZE
      # SIZE_KB = 1024
      # SIZE_TRIGGER_INTERVAL_MINS = 3

      チェックしたファイルのサイズが指定サイズを超えていると、そのファイルが pathname-yyyy_mm_dd-hh_mm_ss という名前で保存されます。次に、pathname という名前の新しいファイルが作成されます。この新しいファイルには、当初指定したすべてのヘッダが含まれており、標準出力および標準エラーへの新しいメッセージはこのファイルに収集されます。

      # ROTATION_TYPE = SIZE を指定しても、それ以外の行を記述していない場合は、メッセージ ファイルのサイズが 5 分間隔でチェックされます。ファイル サイズが 1 MB を超えると、そのファイルはローテーションされます。

WebLogic Server インスタンスからのスレッド ダンプは、以下のいずれかの方法で標準出力に出力できます。

次に例を示します。
D:\bea\weblogic81\server\bin\beasvc -dump -svcname:mydomain_myserver

クラスパスへのクラスの追加

クラスパスとは、JVM から呼び出すことのできる Java クラスの場所を宣言するものです。WebLogic Server マスタ スクリプトを使用してサーバ インスタンスを Windows サービスとしてインストールする場合、マスタ スクリプトにはサーバ インスタンスを実行するのに必要なすべてのクラスを指定します。独自の Java クラスを追加して WebLogic Server を拡張したい場合は、それらをクラスパスに追加する必要があります。

クラスをクラスパスに追加するには、次の手順に従います。

  1. WL_HOME\server\bin\installSvc.cmd マスタ スクリプトのバックアップ コピーを作成します。
  2. テキスト エディタで、WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開きます。
  3. クラスを set CLASSPATH 文に追加します。
  4. たとえば、クラスを c:\myJar というファイル名でアーカイブする場合、変更後の文は次のようになります。
    set
    CLASSPATH=%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp
    .jar;%WL_HOME%\server\lib\weblogic.jar;
    c:\myJar;%CLASSPATH%

    注意 : Win32 システムでは、コマンドラインの長さが 2047 文字に制限されています。Windows サービスを起動するためのクラスパス設定が非常に長くなると、2047 文字の制限を超える可能性があります。

    この制限を回避するには、次のようにします。

    1. set CLASSPATH コマンドの値を、別のテキスト ファイルに記述します。
    2. テキスト エディタで WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを開き、set CMDLINE コマンドを探します。
    3. set CMDLINE コマンド内で、-classpath \"%CLASSPATH%\" オプションを次のオプションで置き換えます。
    4. -classpath @pathname\filename
      pathname\filename は、クラスパス値を記述したファイルの絶対パスと名前です。

      次に例を示します。

      set CMDLINE="%JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
      -classpath @c:\myClasspath.txt -Dweblogic.Name=%SERVER_NAME% -Dbea.home=\"D:\bea_70sp2\" -Dweblogic.management.username=%WLS_USER% -Dweblogic.management.server=\"%ADMIN_URL%\" -Dweblogic.ProductionModeEnabled=%STARTMODE% -Djava.security.policy=\"%WL_HOME%\server\lib\weblogic.policy\" weblogic.Server"

  5. 変更後の WebLogic Server マスタ スクリプトを保存します。

サーバ固有のスクリプトの実行

注意 : サーバ固有のスクリプトを実行するには、Windows レジストリを変更する権限のあるユーザ アカウントで Windows コンピュータにログインする必要があります。

プロダクション環境に Windows サービスをインストールする場合は、管理者レベルの権限を持つオペレーティング システム ユーザ アカウントでサービスを実行するのは避けるようにしてください。詳細については、「サービスの実行に使用するユーザ アカウントの検証」を参照してください。

サーバ固有のスクリプトを実行するには、次の手順に従います。

  1. コマンド プロンプトを開き、管理サーバのルート ディレクトリ (サーバ固有のスクリプトが格納されているディレクトリ) に移動します。
  2. サーバ固有のスクリプトの名前を入力します。
  3. 指定したスクリプトが batch ファイルとして実行されます。

    スクリプトの実行が正常に完了すると、DOMAIN_NAME_SERVER_NAME
    という名前の Windows サービスが作成され、次のような行が標準出力に出力されます。
    mydomain_myserver installed.

    デフォルトの標準出力は、サーバ固有の batch ファイルを実行しているコマンド プロンプトです。

  4. WL_HOME\server\bin\installSvc.cmd マスタ スクリプトを変更した場合は、その変更を元に戻すことも検討してください。それにより、他のサーバ インスタンスにも同じスクリプトを使用できるようになります。

設定の検証

WebLogic Server を Windows サービスとして正常に設定できたかどうかを検証するには、次の手順に従います。

  1. コマンド ウィンドウを開き、次のコマンドを入力します。
    set PATH=WL_HOME\server\bin;%PATH%
  2. 検証するドメイン ディレクトリのすぐ上のディレクトリに移動します。たとえば、BEA_HOME\user_domains\mydomain の設定を検証する場合は、BEA_HOME\user_domains に移動します。
  3. 次のように入力します。
    beasvc -debug "yourServiceName"
  4. たとえば、beasvc -debug "mydomain_myserver" のようになります。

設定が正常に完了している場合は、beasvc -debug コマンドを実行するとサーバが起動します。スクリプトから次のようなエラーが返された場合は、指定したサービス名が正しいかどうかを確認してください。
Unable to open Registry Key ....... System\CurrentControlSet\Services\beasvc example_examplesServer\Parameters

サービスの実行に使用するユーザ アカウントの検証

プロダクション環境で WebLogic Server Windows サービスを実行する場合は、アクセス権限が制限された特別なオペレーティング システム ユーザ アカウントで実行する必要があります。たとえば、その OS ユーザのアクセス権を、Oracle ファイルおよびドメイン ファイルに限定する必要があります。また、それらのファイルにアクセスできるアカウントを、上記の OS ユーザに限定する必要もあります。

WebLogic Server インスタンスが特別な OS ユーザ アカウントで実行されていることを確認するには、次の手順に従います。

  1. [サービス] コントロール パネルを開きます。
  2. たとえば、Windows 2000 の場合は次のようにします。

    1. [スタート] メニューをクリックします。
    2. [スタート] メニューから、[設定|コントロール パネル] を選択します。
    3. [コントロール パネル] ウィンドウで、[管理ツール] フォルダを開きます。
    4. [管理ツール] ウィンドウで、[サービス] コントロール パネルを開きます。
  3. [サービス] コントロール パネルで、WebLogic Server Windows サービスを右クリックして [プロパティ] をクリックします。
  4. [プロパティ] ウィンドウで、[ログオン] タブをクリックします。
  5. [ログオン:] セクションで [アカウント] ラジオボックスを選択します。特別な OS ユーザ アカウントのユーザ名とパスワードを入力します。
  6. [OK] をクリックします。
注意 : ネットワーク ドライブにアクセスする場合は、そのネットワーク ドライブを共有するユーザ名で Windows サービスを実行する必要があります。

コントロール パネルを使用したサーバ インスタンスの停止と再起動

Windows サービスとして実行するサーバ インスタンスの設定が完了したら、[サービス] コントロール パネルを使用してサーバを停止したり再起動したりできます。

デフォルトでは、Windows コントロール パネルを使用してサーバ インスタンスを停止すると、Windows サービス コントロール マネージャ (SCM) がそのサーバの Java 仮想マシン (JVM) を強制停止します。JVM を強制停止すると、サーバは直ちにすべての処理を終了します。セッション データはすべて失われます。サーバが config.xml ファイルへの書き込みを行っている間に管理サーバの JVM を強制停止すると、config.xml ファイルが破損するおそれがあります。Windows コントロール パネルから正常停止を有効にする方法については、「Windows コントロール パネルからの正常停止の有効化」を参照してください。

Windows サービスとしてインストールされている WebLogic Server インスタンスを停止または再起動するには、次の手順に従います。

  1. [スタート|設定|コントロール パネル] を選択します。
  2. Windows 2000 の場合は、[管理ツール] コントロール パネルを開きます。次に、[サービス] コントロール パネルを開きます。
  3. Windows NT の場合は、コントロール パネルから [サービス] コントロール パネルを直接開きます。

  4. [サービス] コントロール パネルで、作成したサービスを探します。デフォルトのサービス名は beasvc から始まります。
  5. サービス名を右クリックし、ショートカット メニューからコマンドを選択します。

Windows サービスとして設定されているサーバの削除

WebLogic Server インスタンスを実行する Windows サービスを削除する場合は、beasvc ユーティリティを使用して Windows レジストリから関連キーを削除するためのスクリプトを使用できます。Windows サービスを削除しても、ドメインのコンフィグレーション ファイルに保存されているサーバ インスタンスのコンフィグレーションには影響しません。Windows サービスを削除しても、起動スクリプトを使用して WebLogic Server インスタンスを起動できます。管理対象サーバの場合はノード マネージャも使用して起動することもできます。

スクリプトではまず、サーバ固有の情報 (サーバ インスタンスの名前など) を特定する変数の値を設定します。次に、マスタ アンインストール スクリプト WL_HOME\server\bin\uninstallSvc.cmd を呼び出します (WL_HOME は WebLogic Server のインストール ディレクトリ)。このマスタ スクリプトからは、Windows レジストリからキーを削除する beasvc ユーティリティが呼び出されます。

サーバ固有のアンインストーラ スクリプトのサンプルについては、コード リスト 3-3 を参照してください。

WebLogic Server インスタンスを実行する Windows サービスを削除するためのスクリプトを作成するには、次の手順に従います。

  1. ドメインの管理サーバのルート ディレクトリ (config.xml ファイルが格納されているディレクトリ) にテキスト ファイルを作成します。
  2. このテキスト ファイルに、以下に示す必須batch コマンドを追加します。各コマンドは別々の行に記述してください。
    • SETLOCAL
    • これは、バッチ ファイル内の環境変数のローカライゼーションを開始する batch コマンドです。

    • set DOMAIN_NAME=domain-name
    • domain_name は、 WebLogic Server ドメインの名前です。

    • set SERVER_NAME=server-name
    • server-name は、Windows サービスとして設定する既存のサーバ インスタンスの名前です。

    • call "WL_HOME\server\bin\uninstallSvc.cmd"
    • WL_HOME は、WebLogic Server のインストール ディレクトリの絶対パス名です。これは、WebLogic Server マスタ アンインストール スクリプトを呼び出すコマンドです。

    • ENDLOCAL
    • これは、バッチ ファイル内の環境変数のローカライゼーションを終了する batch コマンドです。

  3. このテキスト ファイルを、拡張子 .cmd で保存します。デフォルトでは、Windows コマンド プロンプトによって拡張子 .cmdbatch ファイルが関連付けられます。
  4. サーバ固有のスクリプトの名前を入力します。
  5. 指定したスクリプトが batch ファイルとして実行されます。

削除スクリプトの実行が正常に完了すると、標準出力に次のような行が出力されます。
mydomain_myserver removed.

デフォルトの標準出力は、batch ファイルを実行しているコマンド プロンプトです。

コード リスト 3-3 Windows サービスを削除するスクリプト
echo off
SETLOCAL
set DOMAIN_NAME=myWLSdomain 
set SERVER_NAME=myWLSserver
call "D:\bea\weblogic81\server\bin\uninstallSvc.cmd"
ENDLOCAL

Windows サービスとして設定されているサーバの起動資格の変更

Windows サービスを変更して、別のユーザ資格で WebLogic Server インスタンスを実行できるようにするには、次のいずれか 1 つを行います。

  1. WebLogic Server インスタンスを実行する Windows サービスをアンインストールします。詳細については、「Windows サービスとして設定されているサーバの削除」を参照してください。
  2. サービスのインストールに使用したスクリプトをテキスト エディタで開き、新しいユーザ名とパスワードを、set WLS_USER および set WLS_PW コマンドの値として入力します。これらの値は、暗号化されて Windows レジストリに格納されます。
  3. スクリプトへの変更内容を保存します。
  4. サーバ固有のスクリプトの名前を入力します。
  5. 指定したスクリプトが batch ファイルとして実行されます。

    スクリプトの実行が正常に完了すると、DOMAIN_NAME_SERVER_NAME
    という名前の Windows サービスが作成され、次のような行が標準出力に出力されます。
    mydomain_myserver installed.

    デフォルトの標準出力は、サーバ固有の batch ファイルを実行しているコマンド プロンプトです。

  6. (省略可能) スクリプト ファイルからユーザ名とパスワードを削除します。

  ページの先頭       前  次