ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverサーバーの起動と停止の管理
11g リリース1 (10.3.6)
B60991-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

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

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

Windowsでは、Microsoft 管理コンソール(MMC)、特に「サービス」で、Windowsサービスを開始、停止、および構成します。

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

Windowsホストを起動するとき、Microsoft管理コンソールはWindowsレジストリ・キーの情報を使用してweblogic.Serverメイン・クラスを呼び出します。MMCは、ノード・マネージャを使用して管理対象サーバーを起動するように構成できないので、Windowsサービスとして実行しているサーバーでは、ノード・マネージャのモニター機能と自動再起動機能は使用できません。

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

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

Windowsサービスを設定するには:

  1. サーバー固有の変数を設定するスクリプトを作成し、WebLogic Serverマスター・スクリプトを呼び出します。詳細は、「サーバー固有のスクリプトの作成」を参照してください。

  2. 管理対象サーバーをWindowsサービスとしてインストールする場合は、ドメインの管理サーバーの場所を示す変数を、サーバー固有のスクリプトに追加します。詳細は、管理サーバーへの接続の構成を参照してください。

  3. 同じコンピュータでWindowsサービスとして実行する管理サーバーと管理対象サーバーの両方を設定したら、WebLogic Serverマスター・スクリプトを変更して、管理サーバーの起動サイクルが完了した後にのみ管理対象サーバーが起動されるようにします。詳細は、「管理サーバーと管理対象サーバーの起動順序の強制」を参照してください。

  4. Windowsサービスを停止したときに、サーバー・インスタンスを正常に停止させたい場合は、Javaクラスを作成し、Microsoft管理コンソールによってそのクラスが呼び出されるようにマスター・スクリプトを変更します。詳細は、「正常停止の有効化」を参照してください。

  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は、管理サーバーのルート・ディレクトリ(ドメインの構成ファイルが格納されているディレクトリ)のフルパス名です。『Oracle WebLogic Serverドメイン構成の理解』のサーバーのルート・ディレクトリの指定を参照してください。

    • 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サービスを削除し、新しいユーザー名とパスワードで新規のサービスを設定することが必要になるところにあります。かわりに、起動IDファイルも使用できます。起動IDファイルを使用して、Windowsサービスを変更することなく、ログイン資格証明を変更できます。詳細は、「起動IDファイル」を参照してください。

    • set PRODUCTION_MODE=[true]

      PRODUCTION_MODE変数をtrueに設定すると、サーバー・インスタンスは本番モードで起動します。この変数が指定されていない場合、またはfalseに設定されている場合は、サーバーは開発モードで起動します。開発モードと本番モードの詳細は、『構成ウィザードによるドメインの作成』のサーバー起動モードの構成に関する項を参照してください。

    • set JAVA_OPTIONS=java-options

      java-optionsは、Java仮想マシン(JVM)に渡す1つまたは複数のJava引数です。複数の引数を指定する場合はスペースで区切ります。WebLogic Server固有のJavaオプションのリストについては、『Oracle WebLogic Serverコマンド・リファレンス』のweblogic.Serverコマンド・ライン・リファレンスに関する項を参照してください。ご使用のJVMでサポートされた追加オプションがJVMベンダーによりドキュメント化されています。

    • set JAVA_VM=-JVM-mode

      JVM-modeは、JVMの実行モードを示すテキスト文字列です。指定する値は、使用しているJVMごとに異なります。たとえば、Sun JDKでは-hotspot-client、または-serverJVMを実行できます。Sun JDK 1.3.1を使用している場合のデフォルト値は-hotspotです。Sun JDK 1.4.1を使用している場合のデフォルト値は-clientです。JRockit JVMを使用している場合のデフォルト値は-jrockitです。詳細は、『JRockit ユーザー・ガイド』JRockit JVMの起動と構成を参照してください。

    • set MEM_ARGS=[-XmsNumberm] [-XmxNumberm]

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


      注意:

      デフォルト以外のJVMヒープ・サイズを指定するには、WL_HOME\common\bin\commEnv.cmdMEM_ARGS値を設定します。ただし、この変更は同じWL_HOME以下のすべてのドメインに影響します。

    • set MAX_CONNECT_RETRIES=number_of_attempts

    • set HOST=ip_address

    • set PORT=port_number

      number_of_attemptsは、WebLogic Serverインスタンスが起動しているかどうかを判断するために、Windowsサービスでステータスのチェックを実行する回数です。この変数とともにHOSTおよびPORTを指定すると、WebLogic Serverインスタンスが起動するまでWindowsサービスが待機します。ip_addressはWebLogic ServerインスタンスのIPアドレスで、port_numberはWeblogic Serverインスタンスがリクエストをリスニングするポートです。

  4. スクリプトの末尾に、以下に示す必須のコマンドを追加します。

    • call "WL_HOME\server\bin\installSvc.cmd"

      WL_HOMEは、WebLogic Serverのインストール・ディレクトリのフルパス名です。このコマンドにより、WebLogic Serverのマスター・スクリプトが呼び出されます。

    • ENDLOCAL

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

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

管理サーバーへの接続の構成

管理対象サーバーをWindowsサービスとしてインストールする場合は、ドメインの管理サーバーの場所を示す変数を含める必要があります。管理対象サーバーの構成データは、管理対象サーバーから管理サーバーにアクセスして取得する必要があります。

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

管理サーバーへの接続を構成するには:

  1. テキスト・エディタで、そのサーバー固有のスクリプトをオープンします。

  2. このテキスト・ファイルで、SETLOCALコマンドとcallコマンドの間に次のコマンドを挿入します。

    set ADMIN_URL=protocol://listen-address:listen-port 
    

    説明:

  3. サーバー固有のスクリプトへの変更内容を保存します。

例3-1 サーバーをWindowsサービスとして設定するスクリプトのサンプル

echo off
SETLOCAL
set DOMAIN_NAME=myWLSdomain
set USERDOMAIN_HOME=d:\Oracle\Middleware\user_projects\domains\myWLSdomain
set SERVER_NAME=myWLSserver
set PRODUCTION_MODE=true
set
JAVA_OPTIONS=-Dweblogic.Stdout="d:\Oracle\Middleware\user_projects\domains\myWLSdomain\
stdout.txt" -Dweblogic.Stderr="d:\Oracle\Middleware\user_projects\domains\myWLSdomain\
stderr.txt"
set ADMIN_URL=http://adminserver:7501
set MEM_ARGS=-Xms40m -Xmx250m
call "d:\Oracle\Middleware\wlserver_10.3\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マスター・スクリプトをオープンします。

      スクリプト内の最後のコマンドは、beasvc (Windowsレジストリを変更するWebLogic Serverユーティリティ)を呼び出すコマンドです。

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

      -delay:delay_milliseconds 
      

      Microsoft管理コンソールが、サービス・ステータスをSERVER_START_PENDINGからSTARTEDへ変更するまで待機するミリ秒数を指定します。

      たとえば、管理サーバーがその起動サイクルを完了してリクエストをリスニングできる状態になるまでに2分かかる場合は、-delay=120000と指定します。この場合、Windowsホスト・コンピュータを起動すると、Microsoft管理コンソールによって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のインストール・ディレクトリです。

  4. 管理サーバーWindowsサービスをインストールします。

  5. 管理対象サーバーをWindowsサービスとしてインストールする前に、次の手順に従います。

    1. テキスト・エディタで、WL_HOME\server\bin\installSvc.cmdマスター・スクリプトをオープンします。

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

      -depend:Administration-Server-service-name 
      

      Administration-Server-service-nameは、管理サーバーWindowsサービスの名前です。サービス名は、Windowsの「サービス」>「Microsoft管理コンソール」で確認できます。

      このオプションを指定した場合、Microsoft管理コンソールは、管理サーバーWindowsサービスによるSTARTEDステータスの報告を待機してから、管理対象サーバーWindowsサービスを開始します。

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

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

      また、Microsoft管理コンソールがサービスのSTARTEDステータスをいつ報告するかを構成したい場合は、管理対象サーバーWindowsサービスに-delay:delay_millisecondsオプションを追加できます。

正常停止の有効化

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

Microsoft管理コンソールから正常停止を可能にするには、次の手順を実行します:

  1. weblogic.management.runtime.ServerRuntime.shutdown()メソッドを呼び出すJavaクラスを作成します。

    このメソッドは、処理中のすべての作業を完了してからサーバーを正常に停止します。このようなクラスの例については、「サーバー・インスタンスを停止するJavaクラス」を参照してください。

  2. WL_HOME\server\bin\installSvc.cmdマスター・スクリプトのバックアップ・コピーを作成します。

  3. テキスト・エディタで、WL_HOME\server\bin\installSvc.cmdマスター・スクリプトを開いて以下を行います。

    1. 前の手順で作成したクラスを、set CLASSPATH文に追加します。

      たとえば、クラスを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% 
      
    2. スクリプトの最後の行に以下の引数を追加します。この行はbeasvcユーティリティを呼び出します。

      -stopclass:javaclass 
      

      javaclassは、作成したクラスの完全なクラスパス名です。この引数を指定することにより、javaclassがロードされてから、そのpublic void static stop()メソッドが呼び出されます。

      たとえば、例3-2のクラスをcom.myClassesにパッケージ化した場合、変更後の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のインストール・ディレクトリです。

  4. WebLogicサーバーの管理コンソールで、サーバーの「制御」ページで管理対象サーバーの正常停止動作を構成します。

    正常な停止操作において、すべてのHTTPセッションをただちに中止するかどうかを設定したり、停止を強制するまでの待機時間を構成したりできます。詳細は、Oracle WebLogic Server管理コンソール・ヘルプ「正常な停止の制御」を参照してください。

  5. Windowsサービスによって指定されているデフォルトのタイムアウト値を変更すべきかどうかを検討してください。

    デフォルトでは、Microsoft管理コンソールを使用してWindowsサービスを停止する場合、サービスが停止するまで30秒待機してからサービスを強制停止し、システム・イベント・ログにタイムアウト・メッセージを印刷します。

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

    タイムアウト期間を構成するには、ServicesPipeTimeoutというREG_DWORDレジストリ値を、次のレジストリ・キーの下に作成します。

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control

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

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

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

サーバー・インスタンスを停止するJavaクラス

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

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

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

例3-2 サーバー・インスタンスを停止するJavaクラス

import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
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 of the Admin server
    String url = "t3://qa113:7001";
    String username = "system";
    String password = "gumby1234";
    ServerRuntimeMBean serverRuntime = null;
    Set mbeanSet = null;
    Iterator mbeanIterator = null;

    try {
      // Set ContextClassloader to prevent assertions
      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();
    }
  }
}

注意:

2つ以上のサーバー・インスタンスが稼働中の場合は、サンプルJavaクラスはすべてのサーバー・インスタンスを停止します。

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

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

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

  1. WL_HOME\server\bin\installSvc.cmdマスター・スクリプトのバックアップ・コピーを作成します。

  2. テキスト・エディタで、WL_HOME\server\bin\installSvc.cmdマスター・スクリプトをオープンします。

  3. installSvc.cmdスクリプトの最後のコマンドで、beasvcユーティリティが呼び出されるようにします。beasvcコマンドの末尾に、次のコマンド・オプションを追加します。

    -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:\Oracle\Middleware\user_projects\domains\myWLSdomain\myWLSserver-stdout.txt" 
    
  4. デフォルトでは、Windowsサービスが24時間間隔でpathname-yyyy_mm_dd-hh_mm_ssという名前のファイルにメッセージをアーカイブします。新しいメッセージは、前の手順で指定したファイルに収集されます。

    デフォルト動作の変更の詳細は、「デフォルトのローテーション条件の変更」を参照してください。

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

  • 指定したファイルのコピーを作成し、そのコピーを表示します。コピーを作成するのは、Windowsファイル・システムでは開かれているファイルに対して書込みを行うことができないためです。

  • メッセージがファイルに書き込まれるのと同時に表示します。その場合は、コマンド・プロンプトを開き、tailコマンドをサポートするDOSユーティリティを使用してtail -f stdout-filenameと入力します。

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

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

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

Windowsサービスがメッセージ・ファイルをローテーションする際のデフォルト条件を変更するには:

  1. Windowsサービスが実行されている場合はそれを停止します。

  2. -log: pathname引数で指定したファイルを編集します。ファイルが存在しない場合は作成します。

    たとえば、前の項のステップ3に示したサンプル・コマンドを発行した場合は、d:\Oracle\Middleware\wlserver_10.3\config\mydomain\myserver-stdout.txtというファイルを作成します。

  3. 以下のいずれか1つを実行します。

    • Windowsサービスで、ファイル・サイズには関係なく、特定の時間間隔でメッセージ・ファイルをローテーションする場合は、ファイルの先頭に以下の文を追加します。各文は別々の行に記述します(最後の行を記述した後、必ず「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を指定しても、それ以外の行を記述していない場合は、Windowsサービスは5分間隔でメッセージ・ファイルのサイズをチェックします。ファイル・サイズが1 MBを超えると、そのファイルはローテーションされます。

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

  • WLST threadDumpコマンドを使用します。

  • コマンド・プロンプトを開き、次のコマンドを入力します。

    WL_HOME\bin\beasvc -dump -svcname:service-name

    WL_HOMEはWebLogic Serverのインストール・ディレクトリ、service-nameはサーバー・インスタンスを実行しているWindowsサービスです。

例:

D:\Oracle\Middleware\wlserver_10.3\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文に追加します。

    たとえば、クラスを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%\"オプションを次のオプションで置き換えます。

      -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"
      
  4. 変更後のWebLogic Serverマスター・スクリプトを保存します。

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


注意:

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

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

サーバー固有のスクリプトを実行するには:

  1. コマンド・プロンプトを開き、管理サーバーのルート・ディレクトリ(サーバー固有のスクリプトが格納されているディレクトリ)に移動します。

  2. サーバー固有のスクリプトの名前を入力します。

    指定したスクリプトがbatchファイルとして実行されます。

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

    mydomain_myserver installed.

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

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

設定の検証

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

  1. コマンド・ウィンドウを開き、次のコマンドを入力します。

    set PATH=WL_HOME\server\bin;%PATH% 
    
  2. 検証するドメイン・ディレクトリのすぐ上のディレクトリに移動します。たとえば、MW_HOME\user_domains\mydomainの設定を検証する場合は、MW_HOME\user_domainsに移動します。

  3. 次のように入力します。

    beasvc -debug "yourServiceName" 
    

    たとえば、beasvc -debug "mydomain_myserver"のようになります。

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

    Unable to open Registry Key ....... System\CurrentControlSet\Services\beasvc example_examplesServer\Parameters
    

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

本番環境でWebLogic Server Windowsサービスを実行する場合は、アクセス権限が制限された特別なオペレーティング・システム・ユーザー・アカウントで実行する必要があります。たとえば、そのOSユーザーは、Oracleファイルおよびあなたのドメイン・ファイルのみに対するアクセス権限を持つ必要があります。これは、これらのファイルへのアクセス権限を持つ唯一のユーザー・アカウントであることが必要です。

WebLogic Serverインスタンスが特別なOSユーザー・アカウントで実行されていることを確認するには:

  1. Microsoft管理コンソールの「サービス」を開きます。

    たとえば、Windows XPデスクトップの場合は次のようにします。

    1. 「スタート」メニューをクリックします。

    2. 「スタート」メニューで、「すべてのプログラム」>「管理ツール」>「サービス」と選択します。

  2. 「サービス」画面で、「WebLogic Server Windows」サービスを右クリックし、「プロパティ」をクリックします。

  3. 「プロパティ」ウィンドウで、「ログオン」タブを選択します。

  4. 「ログオン」でこのアカウントを選択します。特別なOSユーザー・アカウントのユーザー名とパスワードを入力します。

  5. 「OK」をクリックします。


    注意:

    ネットワーク・ドライブにアクセスする場合は、そのネットワーク・ドライブを共有するユーザー名でWindowsサービスを実行する必要があります。

「サービス」ウィンドウの使用によるサーバー・インスタンスの停止または再起動

サービス・インスタンスをWindowsサービスとして実行するように設定したあと、Microsoft管理コンソールの「サービス」ウィンドウを使用して、サーバーを停止・再起動できます。

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

WindowsサービスとしてインストールされているWebLogic Serverインスタンスを停止または再起動するには:

  1. 「スタート」 > 「すべてのプログラム」 > 「管理ツール」 > 「サービス」と選択します。

  2. 「サービス」画面で、作成したサービスを検索します。デフォルトでは、サービス名はbeasvcから始まります。

  3. サービス名を右クリックし、ショートカット・メニューから「コマンド」を選択します。

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. サーバー固有のスクリプトの名前を入力します。

    指定したスクリプトがbatchファイルとして実行されます。

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

mydomain_myserver removed

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

例3-3 Windowsサービスを削除するスクリプト

echo off
SETLOCAL
set DOMAIN_NAME=myWLSdomain 
set SERVER_NAME=myWLSserver 
call "D:\Oracle\Middleware\wlserver_10.3\server\bin\uninstallSvc.cmd"
ENDLOCAL

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

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