Oracle® Fusion Middleware Oracle WebLogic Serverサーバーの起動と停止の管理 12.1.3 12c (12.1.3) E56253-06 |
|
![]() 前 |
![]() 次 |
この章では、Windowsホスト・コンピュータの起動時に自動的に起動されるように、WebLogic Server 12.1.3インスタンスを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サービスを設定するには:
サーバー固有の変数を設定するスクリプトを作成し、WebLogic Serverマスター・スクリプトを呼び出します。詳細は、「サーバー固有のスクリプトの作成」を参照してください。
管理対象サーバーをWindowsサービスとしてインストールする場合は、ドメインの管理サーバーの場所を示す変数を、サーバー固有のスクリプトに追加します。詳細は、「管理サーバーへの接続の構成」を参照してください。
同じコンピュータでWindowsサービスとして実行する管理サーバーと管理対象サーバーの両方を設定したら、WebLogic Serverマスター・スクリプトを変更して、管理サーバーの起動サイクルが完了した後にのみ管理対象サーバーが起動されるようにします。詳細は、「管理サーバーと管理対象サーバーの起動順序の強制」を参照してください。
Windowsサービスを停止したときに、サーバー・インスタンスを正常に停止させたい場合は、Javaクラスを作成し、Microsoft管理コンソールによってそのクラスが呼び出されるようにマスター・スクリプトを変更します。詳細は、「正常停止の有効化」を参照してください。
サーバー・インスタンスから標準出力および標準エラーに出力されるメッセージ(スタック・トレースやスレッド・ダンプを含む)を表示したい場合は、標準出力および標準エラーをファイルにリダイレクトします。詳細は、「標準出力および標準エラーのファイルへのリダイレクト」を参照してください。
WebLogic Serverインスタンスから呼び出す追加のJavaクラスを作成した場合は、それらをサーバーのクラスパスに追加します。詳細は、「クラスパスへのクラスの追加」を参照してください。
サーバー固有のスクリプトを実行します。詳細は、「サーバー固有のスクリプトの実行」を参照してください。
ここで作成するスクリプトでは、サーバー固有の情報(サーバー・インスタンス名など)を特定するための変数に値を設定する必要があります。また、このスクリプトからマスター・スクリプトWL_HOME
\server\bin\installSvc.cmd
(WL_HOME
はWebLogic Serverのインストール・ディレクトリ)を呼び出す必要もあります。マスター・スクリプトからは、Windowsレジストリにキーを追加するwlsvc
ユーティリティが呼び出されます。
注意: Windowsサービスのインストール時、wlsvc ユーティリティの-svcdescription: <user_specified_service_description> オプションを使用してサービスの説明を指定できます。サービスの説明は、環境変数SERVICE_DESCRIPTION を設定してからinstallSvc.cmd スクリプトを実行することでも指定できます。
|
サーバー固有のスクリプトのサンプルについては、例3-1を参照してください。
サーバー固有のスクリプトを作成するには:
ドメインの管理サーバーのルート・ディレクトリにテキスト・ファイルを作成します。
このテキスト・ファイルに、以下に示す必須の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サービスとして設定する既存のサーバー・インスタンスの名前です。
このテキスト・ファイルに、以下に示す省略可能なbatch
コマンドを追加します。各コマンドは別々の行に記述してください。
set WLS_USER=
username
set WLS_PW=
password
username
は、サーバー・インスタンスを起動する権限を持つ既存のユーザーの名前、password
はそのユーザーのパスワードです。wlsvc
ユーティリティでは、ログイン資格証明が暗号化され、Windowsレジストリに格納されます。
この方法は、サーバー・インスタンスが起動した時、ユーザー名とパスワードのプロンプトを回避するための2つのうちの1つの実行可能な方法です。この方法を使用するメリットは、サーバー・インスタンスのユーザー名またはパスワードを変更する場合は、Windowsサービスを削除し、新しいユーザー名とパスワードで新規のサービスを設定することが必要になるところにあります。かわりに、起動IDファイルも使用できます。起動IDファイルを使用して、Windowsサービスを変更することなく、ログイン資格証明を変更できます。詳細については、「起動IDファイル」を参照してください。
set PRODUCTION_MODE=[true]
PRODUCTION_MODE
変数をtrue
に設定すると、サーバー・インスタンスは本番モードで起動します。この変数が指定されていない場合、またはfalse
に設定されている場合は、サーバーは開発モードで起動します。開発モードと本番モードの詳細は、構成ウィザードによるWebLogicドメインの作成のサーバー起動モードの構成に関する項を参照してください。
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ごとに異なります。
set MEM_ARGS=[-
XmsNumberm
] [-
XmxNumberm
]
Numberm
は、MB単位の数値です。-
XmsNumberm
引数はJVMの最小ヒープ・サイズを、-
XmxNumberm
引数はJVMの最大ヒープ・サイズを設定します。デフォルトの最小ヒープ・サイズは23MB、最大ヒープ・サイズは200MBです。
注意: デフォルト以外のJVMヒープ・サイズを指定するには、WL_HOME \common\bin\commEnv.cmdで MEM_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インスタンスがリクエストをリスニングするポートです。
スクリプトの末尾に、以下に示す必須のコマンドを追加します。
call "
WL_HOME
\server\bin\installSvc.cmd"
WL_HOME
は、WebLogic Serverのインストール・ディレクトリのフルパス名です。このコマンドにより、WebLogic Serverのマスター・スクリプトが呼び出されます。
ENDLOCAL
これは、バッチ・ファイル内の環境変数のローカライゼーションを終了するbatch
コマンドです。
このテキスト・ファイルを、拡張子.cmd
で保存します。デフォルトでは、Windowsコマンド・プロンプトによって拡張子.cmd
にbatch
ファイルが関連付けられます。
管理対象サーバーをWindowsサービスとしてインストールする場合は、ドメインの管理サーバーの場所を示す変数を含める必要があります。管理対象サーバーの構成データは、管理対象サーバーから管理サーバーにアクセスして取得する必要があります。
また、先に管理サーバー(サービスではなく実際のサーバー)を起動し、その後で管理対象サーバーをWindowsサービスとして開始する必要があります。
管理サーバーへの接続を構成するには:
テキスト・エディタで、そのサーバー固有のスクリプトをオープンします。
このテキスト・ファイルで、SETLOCAL
コマンドとcall
コマンドの間に次のコマンドを挿入します。
set ADMIN_URL=protocol://listen-address:listen-port
説明:
protocol
はhttp
またはhttps
listen-address
は、管理サーバーのリスニング・アドレスです。
listen-port
は、管理サーバーのポート
詳細は、管理対象サーバーの管理サーバーへの接続の構成を参照してください。
例として、例3-1の太字部分を参照してください。
サーバー固有のスクリプトへの変更内容を保存します。
例3-1 管理対象サーバーをWindowsサービスとして設定するスクリプトのサンプル
echo off SETLOCAL set MW_HOME=C:\Oracle\Middleware\Oracle_Home set DOMAIN_NAME=base_domain set USERDOMAIN_HOME=C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain set SERVER_NAME=AdminServer set PRODUCTION_MODE=true set MEM_ARGS=-Xms128m -Xmx512m call "C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\bin\setDomainEnv.cmd" call "C:\Oracle\Middleware\Oracle_Home\wlserver\server\bin\installSvc.cmd" ENDLOCAL
注意: このスクリプトのサンプルを使用して管理サーバーをWindowsサービスとして設定するには、ADMIN_URL 変数を削除します。
例をコピー・アンド・ペーストするとき、末尾のスペースがないことを確認してください。 |
同じコンピュータでWindowsサービスとして実行する管理サーバーと管理対象サーバーの両方を設定したら、管理サーバーの後にのみ起動する管理対象サーバーを指定できます。
管理対象サーバーが、必ず管理サーバーWindowsサービスの後に起動されるようにするには:
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトのバックアップ・コピーを作成します。
管理サーバーがすでにWindowsサービスとしてインストールされている場合は、そのサービスを削除します。詳細は、「Windowsサービスとして設定されているサーバーの削除」を参照してください。
管理サーバーをWindowsサービスとしてインストール(または再インストール)する前に、以下を行います。
テキスト・エディタで、WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトをオープンします。
スクリプト内の最後のコマンドは、wlsvc
(Windowsレジストリを変更するWebLogic Serverユーティリティ)を呼び出すコマンドです。
installSvc.cmd
内で、wlsvc
ユーティリティを呼び出すコマンドに次の引数を追加します。
-delay:delay_milliseconds
Microsoft管理コンソールが、サービス・ステータスをSERVER_START_PENDING
からSTARTED
へ変更するまで待機するミリ秒数を指定します。
たとえば、管理サーバーがその起動サイクルを完了してリクエストをリスニングできる状態になるまでに2分かかる場合は、-delay=120000
のように指定します。この場合、Windowsホスト・コンピュータを起動すると、Microsoft管理コンソールによってSERVER_START_PENDING
ステータスが2分間報告されます。その後、ステータスがSTARTED
に変更されます。
この管理サーバーの変更後のwlsvc
呼出しは次のようになります。
"%WL_HOME%\server\bin\wlsvc" -install
-svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
-delay:120000
-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
-extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
-cmdline:%CMDLINE%
wlsvc
の詳細は、コマンド・プロンプトにWL_HOME
\server\bin\wlsvc -help
と入力します。WL_HOME
は、WebLogic Serverのインストール・ディレクトリです。
管理サーバーWindowsサービスをインストールします。
管理対象サーバーをWindowsサービスとしてインストールする前に、次の手順に従います。
テキスト・エディタで、WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトをオープンします。
installSvc.cmd
内で、wlsvc
ユーティリティを呼び出すコマンドに次の引数を追加します。
-depend:Administration-Server-service-name
Administration-Server-service-name
は、管理サーバーWindowsサービスの名前です。サービス名を確認するには、「サービス」にあるMicrosoft管理コンソールを参照します。
このオプションを指定した場合、Microsoft管理コンソールは、管理サーバーWindowsサービスによるSTARTED
ステータスの報告を待機してから、管理対象サーバーWindowsサービスを開始します。
この管理対象サーバーの変更後のwlsvc
呼出しは次のようになります。
"%WL_HOME%\server\bin\wlsvc" -install
-svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
-depend:"wlsvc 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管理コンソールから正常停止を可能にするには、次の手順を実行します:
weblogic.management.runtime.ServerRuntime.shutdown()
メソッドを呼び出すJavaクラスを作成します。
このメソッドは、処理中のすべての作業を完了してからサーバーを正常に停止します。このようなクラスの例については、「サーバー・インスタンスを停止するJavaクラス」を参照してください。
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトのバックアップ・コピーを作成します。
テキスト・エディタで、WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトを開いて以下を行います。
前の手順で作成したクラスを、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%
スクリプトの最後の行に次の引数を追加します。この行はwlsvc
ユーティリティを呼び出します。
-stopclass:javaclass
javaclass
は、作成したクラスの完全なクラスパス名です。この引数を指定することにより、javaclass
がロードされてから、そのpublic void static stop()
メソッドが呼び出されます。
たとえば、例3-2のクラスをcom.myClasses
にパッケージ化した場合、変更後のwlsvc
コマンドは次のようになります。
"%WL_HOME%\server\bin\wlsvc" -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%
wlsvc
の詳細は、コマンド・プロンプトにWL_HOME
\server\bin\wlsvc -help
と入力します。WL_HOME
は、WebLogic Serverのインストール・ディレクトリです。
WebLogicサーバーの管理コンソールで、サーバーの「制御」ページで管理対象サーバーの正常停止動作を構成します。
正常な停止操作において、すべてのHTTPセッションをただちに中止するかどうかを設定したり、停止を強制するまでの待機時間を構成したりできます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの正常な停止の制御に関する項を参照してください。
Windowsサービスによって指定されているデフォルトのタイムアウト値を変更すべきかどうかを検討してください。
デフォルトでは、Microsoft管理コンソールを使用してWindowsサービスを停止する場合、サービスが停止するまで30秒待機してからサービスを強制停止し、システム・イベント・ログにタイムアウト・メッセージを印刷します。
-stopclass
を使用してサーバーを正常停止する場合、30秒というタイムアウト値は、サーバーがすべての処理を正常に終了するには短すぎる可能性があります。
タイムアウト期間を構成するには、ServicesPipeTimeout
というREG_DWORD
レジストリ値を、次のレジストリ・キーの下に作成します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control
キー値はミリ秒で指定する必要があります。
この値は、Windowsオペレーティング・システムの起動時にレジストリから読み取られ、インストールされているすべてのサービスに影響します。
変更後のWebLogic Serverマスター・スクリプトを保存します。
以下の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.util.Hashtable; import java.util.logging.Level; import java.util.logging.Logger; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import javax.naming.Context; public class ServerStopper { public static void main(String[] args) { try { if (args.length != 5) { System.out.println("Usage: java " + ServerStopper.class.getSimpleName() + " server-name-to-stop hostname port username password"); return; } String servername = args[0]; String hostname = args[1]; int port = Integer.valueOf(args[2]); String username = args[3]; String password = args[4]; String protocol = "t3"; String jndiroot = "/jndi/"; String mserver = "weblogic.management.mbeanservers.domainruntime"; JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mserver); Hashtable h = new Hashtable(); h.put(Context.SECURITY_PRINCIPAL, username); h.put(Context.SECURITY_CREDENTIALS, password); h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote"); JMXConnector connector = JMXConnectorFactory.connect(serviceURL, h); MBeanServerConnection connection = connector.getMBeanServerConnection(); ObjectName service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean"); ObjectName[] serverRuntimes = (ObjectName[]) connection.getAttribute(service, "ServerRuntimes"); for (ObjectName serverRuntime : serverRuntimes) { String name = (String) connection.getAttribute(serverRuntime, "Name"); if (name.equals(servername)) { String state = (String) connection.getAttribute(serverRuntime, "State"); if (state.equals("RUNNING")) { connection.invoke(serverRuntime, "shutdown", new Object[0], new String[0]); System.out.println("Stopped the server: " + servername); } else System.out.println("The server is not RUNNING. The current state is: " + state); return; } } System.out.println("The server, " + servername + " does not exist"); connector.close(); } catch (Exception ex) { Logger.getLogger(ServerStopper.class.getName()).log(Level.SEVERE, null, ex); } } }
注意: 2つ以上のサーバー・インスタンスが稼働中の場合は、サンプルJavaクラスはすべてのサーバー・インスタンスを停止します。 |
WebLogic ServerインスタンスをWindowsサービスとしてインストールする場合のデフォルトでは、サーバーやそのJVMから標準出力と標準エラーに出力されたメッセージは表示されません。
これらのメッセージを表示するには、標準出力および標準エラーからファイルにリダイレクトする必要があります。
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトのバックアップ・コピーを作成します。
テキスト・エディタで、WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトをオープンします。
installSvc.cmd
スクリプトの最後のコマンドで、wlsvc
ユーティリティが呼び出されるようにします。wlsvc
コマンドの末尾に、次のコマンド・オプションを追加します。
-log:"pathname"
pathname
は、サーバーの標準出力と標準エラーへのメッセージを格納するファイルの完全修飾パスおよびファイル名です。
変更後のwlsvc
コマンドは次のようになります。
"%WL_HOME%\server\bin\wlsvc" -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"
デフォルトでは、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サービスがメッセージ・ファイルをローテーションする際のデフォルト条件を変更するには:
Windowsサービスが実行されている場合はそれを停止します。
-log:
pathname
引数で指定したファイルを編集します。ファイルが存在しない場合は作成します。
たとえば、前の項のステップ3に示したサンプル・コマンドを発行した場合は、d:\Oracle\Middleware\wlserver_12.1\config\mydomain\myserver-stdout.txt
というファイルを作成します。
以下のいずれか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
は、ファイルをローテーションする頻度を示します。
オプションでMAX_FILE_COUNT
属性を追加すると、WebLogic Serverからサービスとして生成される出力ファイルにローテーションの制限を指定できます。デフォルトはMAX_FILE_COUNT=-1
で、ファイル数に制限はありません。MAX_FILE_COUNT
に0
より大きい値を定義すると、ローテーションするファイルの数に制限が設定されます。
例:
# ROTATION_TYPE = TIME # TIME_START_DATE = Jul 17 2003 05:25:30 # TIME_INTERVAL_MINS = 1440 # MAX_FILE_COUNT = 999
指定した時間間隔が経過すると、ファイルが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 # MAX_FILE_COUNT = 999
チェックしたファイルのサイズが指定サイズを超えていると、そのファイルがpathname-yyyy_mm_dd-hh_mm_ss
という名前で保存されます。次に、pathname
という名前の新しいファイルが作成されます。この新しいファイルには、当初指定したすべてのヘッダーが含まれており、標準出力および標準エラーへの新しいメッセージはこのファイルに収集されます。
# ROTATION_TYPE = SIZE
を指定しても、それ以外の行を記述していない場合は、Windowsサービスは5分間隔でメッセージ・ファイルのサイズをチェックします。ファイル・サイズが1 MBを超えると、そのファイルはローテーションされます。
WebLogic Serverインスタンスからのスレッド・ダンプは、以下のいずれかの方法で標準出力に出力できます。
WLST threadDump
コマンドを使用します。
コマンド・プロンプトを開き、次のコマンドを入力します。
WL_HOME
\bin\wlsvc -dump -svcname:
service-name
WL_HOME
はWebLogic Serverのインストール・ディレクトリ、service-name
はサーバー・インスタンスを実行しているWindowsサービスです。
例:
D:\Oracle\Middleware\wlserver_12.1\server\bin\wlsvc -dump -svcname:mydomain_myserver
クラスパスとは、JVMから呼び出すことのできるJavaクラスの場所を宣言するものです。WebLogic Serverマスター・スクリプトを使用してサーバー・インスタンスをWindowsサービスとしてインストールする場合、マスター・スクリプトにはサーバー・インスタンスを実行するのに必要なすべてのクラスを指定します。独自のJavaクラスを追加してWebLogic Serverを拡張したい場合は、それらをクラスパスに追加する必要があります。
クラスをクラスパスに追加するには:
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトのバックアップ・コピーを作成します。
テキスト・エディタで、WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトをオープンします。
クラスを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文字の制限を超える可能性があります。 |
この制限を回避するには、次のようにします。
set CLASSPATH
コマンドの値を、別のテキスト・ファイルに記述します。
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトを開き、set CMDLINE
コマンドを探します。
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"
変更後のWebLogic Serverマスター・スクリプトを保存します。
注意: サーバー固有のスクリプトを実行するには、Windowsレジストリを変更する権限のあるユーザー・アカウントでWindowsコンピュータにログインする必要があります。 |
本番環境にWindowsサービスをインストールする場合は、管理者レベルの権限を持つオペレーティング・システム・ユーザー・アカウントでサービスを実行するのは避けるようにしてください。詳細は、「サービスの実行に使用するユーザー・アカウントの検証」を参照してください。
サーバー固有のスクリプトを実行するには:
コマンド・プロンプトを開き、管理サーバーのルート・ディレクトリ(サーバー固有のスクリプトが格納されているディレクトリ)に移動します。
サーバー固有のスクリプトの名前を入力します。
指定したスクリプトがbatch
ファイルとして実行されます。
スクリプトの実行が正常に完了すると、DOMAIN_NAME_SERVER_NAME
という名前のWindowsサービスが作成され、次のような行が標準出力に出力されます。
mydomain_myserver installed
.
デフォルトの標準出力は、サーバー固有のbatch
ファイルを実行しているコマンド・プロンプトです。
WL_HOME
\server\bin\installSvc.cmd
マスター・スクリプトを変更した場合は、その変更を元に戻すことも検討してください。それにより、他のサーバー・インスタンスにも同じスクリプトを使用できるようになります。
WebLogic ServerをWindowsサービスとして正常に設定できたかどうかを検証するには、次の手順に従います。
コマンド・ウィンドウを開き、次のコマンドを入力します。
set PATH=WL_HOME\server\bin;%PATH%
検証するドメイン・ディレクトリのすぐ上のディレクトリに移動します。たとえば、ORACLE_HOME
\user_projects\domains\mydomain
の設定を検証する場合は、ORACLE_HOME
\user_projects\domains
に移動します。
次のように入力します。
wlsvc -debug "yourServiceName"
たとえば、wlsvc -debug "mydomain_myserver"
のようになります。
設定が正常に完了している場合は、wlsvc -debug
コマンドを実行するとサーバーが起動します。スクリプトから次のようなエラーが返された場合は、指定したサービス名が正しいかどうかを確認してください。
Unable to open Registry Key ....... System\CurrentControlSet\Services\wlsvc example_examplesServer\Parameters
本番環境でWebLogic Server Windowsサービスを実行する場合は、アクセス権限が制限された特別なオペレーティング・システム・ユーザー・アカウントで実行する必要があります。たとえば、そのOSユーザーは、Oracleファイルおよびあなたのドメイン・ファイルのみに対するアクセス権限を持つ必要があります。これは、これらのファイルへのアクセス権限を持つ唯一のユーザー・アカウントであることが必要です。
WebLogic Serverインスタンスが特別なOSユーザー・アカウントで実行されていることを確認するには:
Microsoft管理コンソールの「サービス」を開きます。
たとえば、Windows XPデスクトップの場合は次のようにします。
「スタート」メニューをクリックします。
「スタート」メニューで、「すべてのプログラム」>「管理ツール」>「サービス」と選択します。
「サービス」画面で、「WebLogic Server Windows」サービスを右クリックし、「プロパティ」をクリックします。
「プロパティ」ウィンドウで、「ログオン」タブを選択します。
「ログオン」でこのアカウントを選択します。特別なOSユーザー・アカウントのユーザー名とパスワードを入力します。
「OK」をクリックします。
注意: ネットワーク・ドライブにアクセスする場合は、そのネットワーク・ドライブを共有するユーザー名でWindowsサービスを実行する必要があります。 |
サービス・インスタンスをWindowsサービスとして実行するように設定したあと、Microsoft管理コンソールの「サービス」ウィンドウを使用して、サーバーを停止・再起動できます。
デフォルトでは、Microsoft管理コンソールを使用してサーバー・インスタンスを停止すると、サーバーのJava仮想マシン(JVM)を強制停止します。JVMを強制停止すると、サーバーはただちにすべての処理を終了します。セッション・データはすべて失われます。サーバーがconfig.xml
ファイルへの書込みを行っている間に管理サーバーのJVMを強制停止すると、config.xml
ファイルが破損するおそれがあります。正常停止を有効にする方法は、「正常停止の有効化」を参照してください。
WindowsサービスとしてインストールされているWebLogic Serverインスタンスを停止または再起動するには:
「スタート」 > 「すべてのプログラム」 > 「管理ツール」 > 「サービス」と選択します。
「サービス」画面で、作成したサービスを検索します。デフォルトのサービス名はwlsvc
から始まります。
サービス名を右クリックし、ショートカット・メニューから「コマンド」を選択します。
WebLogic Serverインスタンスを実行するWindowsサービスを削除する場合は、wlsvc
ユーティリティを使用してWindowsレジストリから関連キーを削除するためのスクリプトを使用できます。Windowsサービスの削除は、ドメインの構成ファイルに保存されているサーバー・インスタンスの構成に影響しません。Windowsサービスを削除した後、起動スクリプトを使用して、また、管理対象サーバーの場合はノード・マネージャを使用して、WebLogic Serverインスタンスを起動できます。
スクリプトではまず、サーバー固有の情報(サーバー・インスタンスの名前など)を特定する変数の値を設定します。次に、マスター・アンインストール・スクリプトWL_HOME
\server\bin\uninstallSvc.cmd
を呼び出します(WL_HOME
はWebLogic Serverのインストール・ディレクトリ)。このマスター・スクリプトからは、Windowsレジストリからキーを削除するwlsvc
ユーティリティが呼び出されます。
サーバー固有のアンインストーラ・スクリプトのサンプルについては、例3-3を参照してください。
WebLogic Serverインスタンスを実行するWindowsサービスを削除するためのスクリプトを作成するには:
ドメインの管理サーバーのルート・ディレクトリ(config.xml
ファイルが格納されているディレクトリ)にテキスト・ファイルを作成します。
このテキスト・ファイルに、以下に示す必須の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
コマンドです。
このテキスト・ファイルを、拡張子.cmd
で保存します。デフォルトでは、Windowsコマンド・プロンプトによって拡張子.cmd
にbatch
ファイルが関連付けられます。
サーバー固有のスクリプトの名前を入力します。
指定したスクリプトがbatch
ファイルとして実行されます。
削除スクリプトの実行が正常に完了すると、標準出力に次のような行が出力されます。
mydomain_myserver removed
デフォルトの標準出力は、batch
ファイルを実行しているコマンド・プロンプトです。
Windowsサービスを変更して、別のユーザー資格証明でWebLogic Serverインスタンスを実行できるようにするには、次のいずれか1つを行います。
ユーザー名とパスワードを起動IDファイルから取得するようにWindowsサービスを設定した場合は、新しいユーザー名とパスワードを格納した起動IDファイルで既存のファイルを上書きできます。WebLogic Serverのデフォルト・セキュリティ・レルムに、既存ユーザーの名前を指定する必要があります。詳細については、「起動IDファイル」を参照してください。
ユーザー名とパスワードをWindowsレジストリから取得するようにWindowsサービスを設定した場合は、そのWindowsサービスを削除して、新しいWindowsサービスを新しいユーザー名とパスワードで作成する必要があります。
WebLogic Serverインスタンスを実行するWindowsサービスをアンインストールします。詳細は、「Windowsサービスとして設定されているサーバーの削除」を参照してください。
サービスのインストールに使用したスクリプトをテキスト・エディタで開き、新しいユーザー名とパスワードを、set WLS_USER
およびset WLS_PW
コマンドの値として入力します。これらの値は、WebLogicサーバーによって暗号化されてWindowsレジストリに格納されます。
スクリプトへの変更内容を保存します。
サーバー固有のスクリプトの名前を入力します。
指定したスクリプトがbatch
ファイルとして実行されます。
スクリプトが正常に実行されると、次の名前のWindowsサービスが作成されます:
DOMAIN_NAME_SERVER_NAME
。そして、標準出力に次のような行が出力されます:
mydomain_myserver installed
デフォルトの標準出力は、サーバー固有のbatch
ファイルを実行しているコマンド・プロンプトです。
(オプション)スクリプト・ファイルからユーザー名とパスワードを削除します。