1. Windowsサービスとrcスクリプト

1.1. WebOTXのサービスについて

WebOTXのサービスについて説明します。

1.1.1. Windows

Windowsのサービスとして以下のサービスがあります。

1.1.2. HP-UX

HP-UXではマシン起動時にサービスが起動できるよう以下の起動スクリプトを提供しています。 ただしObjectSpinnerに関してはWindowsと同様マシン起動時には起動しません。

1.1.3. Linux

Linuxではマシン起動時にサービスが起動できるよう以下の起動スクリプトを提供しています。 ただしObjectSpinnerに関してはWindowsと同様マシン起動時には起動しません。

SysVinitの場合:

systemdの場合:

1.2. サービスの起動・停止方法

WebOTXのサービス全体を起動および停止する方法について説明します。 デフォルトの設定ではマシン起動時にサービスが起動するようになっています。ObjectSpinnerのサービスはWebOTXとしては利用しませんが、下記と同様の方法で起動・停止することができます。

Caution
UNIXでの起動停止の操作はrootユーザで実行してください。

1.2.1. Windows

「WebOTX AS Agent Service」サービスを起動・停止します。サービスコントロールマネージャもしくはnet start、net stopコマンドより実行できます。n

例) サービスの起動
> net start "WebOTX AS Agent Service"
例) サービスの停止
> net stop "WebOTX AS Agent Service"

サービス起動コマンド実行直後はまだ起動処理が行われています。サービスの起動完了は[ 3. ドメイン > 3.3. ドメインの確認 > 3.3.2. ドメインの起動完了確認 ] より、ドメインの起動処理完了をもって確認してください。

サービス停止時、WebOTXドメインの停止処理時間が定められたタイムアウト値を超過すると、サービス制御マネージャによって「ローカルコンピュータのWebOTX Agent Service サービスを停止できません。」と出力されることがあります。しかしながら、このメッセージが出力されても、実際には停止処理は引き続き行われています。よって、プロセスのストールなどの異常が発生していなければ最終的には停止することになります。

Caution
net start、net stop コマンドで起動する場合、コマンドプロンプトは管理者権限で起動してください。

1.2.2. HP-UX

/sbin/init.d/WOAgentSvc93 に起動・停止スクリプトがあります。スクリプトを実行することによりサービスの起動、停止が行えます。

例) サービスの起動
# /sbin/init.d/WOAgentSvc93 start 
例) サービスの停止
# /sbin/init.d/WOAgentSvc93 stop 

1.2.3. Linux

SysVinitの場合、/etc/init.d/WOAgentSvc93 に起動・停止スクリプトがあります。スクリプトを実行することによりサービスの起動、停止が行えます。
systemdの場合、systemctlコマンドを実行することによりサービスの起動、停止が行えます。

例) サービスの起動

SysVinitの場合:

# /etc/init.d/WOAgentSvc93 start 

systemdの場合:

# systemctl start WOAgentSvc93
例) サービスの停止

SysVinitの場合:

# /etc/init.d/WOAgentSvc93 stop 

systemdの場合:

# systemctl stop WOAgentSvc93

1.3. サービスの設定

1.3.1. Windows

Windows版のサービスは、プロパティファイルを持っています。ここに記述されたコマンドを実行してドメイン起動/停止を行っています。

${AS_INSTALL}\config\woasinfo.properties

この設定を変更することにより、コマンド実行待ち時間を変更することが可能です。

表1.3-1
項目 説明 既定値
startcmd ドメイン起動コマンドを記述します。 記述がない、不正記述などの場合はサービス起動に失敗します。 既定の状態では、startcmdに記述された起動コマンドが実行されると、管理ドメインの起動が行われます。 "${AS_INSTALL}\bin\WOAgentSvc.bat" start-domain
stopcmd ドメイン停止コマンドを記述します。 記述がない、不正記述などの場合はサービス停止に失敗します。 既定の状態では、stopcmdに記述された停止コマンドが実行されると、管理ドメインの停止が行われます。 "${AS_INSTALL}\bin\WOAgentSvc.bat" stop-domain
woascmdtimeout startcmd/stopcmdで指定したコマンド実行時のタイムアウトを、秒単位で指定します。 0を設定すると、ドメインの停止が非同期実行となり、コマンドの終了を待ち合わせません。 ドメインの起動は、本項目の値によらず非同期実行となります。 1800
pidfilepath サービスからドメインを起動した場合、サービスプロセスからエージェントプロセスを監視するために必要となるプロセスIDの取得先ファイル(appserv_pid)を指定します。 取得先ファイルのパスを監視したいドメインのパスに変更することで、監視対象のエージェントプロセスを変更することができます。 サービスプロセスが監視対象のエージェントプロセスの停止を検出した場合、自動でstopcmdに記述された停止コマンドが実行されます。
監視対象のエージェントプロセスをユーザドメインに変更した場合、管理ドメインの「管理対象ドメインの起動の有効化」を有効にしていると、 ユーザドメインのエージェントプロセス停止を契機に管理ドメインの停止が行われ、起動を有効化している全てのドメインが停止されますのでご注意ください。
${AS_INSTALL}\domains\WebOTXAdmin\config\appserv_pid

1.3.2. Linux

systemdの場合、下記のserviceファイルの記述内容を変更することでサービス起動、停止に関わる設定を変更することが可能です。

/usr/lib/systemd/system/WOAgentSvc93.service

serviceファイルの記述内容は以下のようになっています。

例) WOAgentSvc93.service
[Unit]
Description=WebOTX AS Agent Service
After=network.target syslog.socket WebOTXinit93.service WatchServer93.service

[Service]
ExecStop=${AS_INSTALL}/bin/WOAgentSvc93 stop
TimeoutStartSec=600
TimeoutStopSec=600
KillMode=none

### setting for Type=oneshot ###
Type=oneshot
ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start
RemainAfterExit=yes

### setting for Type=forking ###
#Type=forking
#ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start systemd-forking 600
#PIDFile=${AS_INSTALL}/domains/WebOTXAdmin/config/appserv_pid_systemd

[Install]
WantedBy=default.target
必要に応じて以下の設定を変更してください。
表1.3-2
項目 説明 既定値
TimeoutStartSec サービス起動のタイムアウトを設定します。単位を省略した場合は秒となります。
詳細は man systemd.service をご参照ください。
Typeに「forking」を指定している場合、ExecStartのコマンドの第3引数の値をTimeoutStartSecの設定値と同じ値に変更してください。

例)起動タイムアウトに300秒を設定する場合
TimeoutStartSec=300
(中略)
Type=forking
ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start systemd-forking 300
600
TimeoutStopSec サービス停止のタイムアウトを設定します。単位を省略した場合は秒となります。
詳細は man systemd.service をご参照ください。

例)停止タイムアウトに300秒を設定する場合
TimeoutStopSec=300
600
Type サービスプロセスの起動完了の判定方法を設定します。 「oneshot」と「forking」のいずれかを指定してください。
  • oneshot:ExecStartで指定したコマンドの実行完了のタイミングでサービス起動(active)となります。運用管理ドメインの起動を待ち合わせず、サービスの状態とプロセスの起動状況が非同期となります。プロセス異常終了やotxadminコマンドによるドメイン停止など、systemdを介さない手段で運用管理ドメインのエージェントプロセスが停止した場合、サービスの状態が連動して停止(inactive)になることはありません。
  • forking:運用管理ドメインの起動を待ち合わせ、エージェントプロセスが起動開始したタイミングでサービス起動(active)となります。サービスの状態とプロセスの状態が同期し、運用管理ドメインのエージェントプロセスが何らかの理由で終了した場合、サービスの状態も停止(inactive)となります。

    ※) サービス稼働状態(activeやinactive)は、systemctl status で表示される「Active」の値を指します。
「forking」に変更する場合、「### setting for Type=oneshot ###」のブロックをコメントアウトして、「### setting for Type=forking ###」のブロックのコメントアウトを外してください。

変更前)Type=oneshot
### setting for Type=oneshot ###
Type=oneshot
ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start
RemainAfterExit=yes

### setting for Type=forking ###
#Type=forking
#ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start systemd-forking 600
#PIDFile=${AS_INSTALL}/domains/WebOTXAdmin/config/appserv_pid_systemd
変更後)Type=forking
### setting for Type=oneshot ###
#Type=oneshot
#ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start
#RemainAfterExit=yes

### setting for Type=forking ###
Type=forking
ExecStart=${AS_INSTALL}/bin/WOAgentSvc93 start systemd-forking 600
PIDFile=${AS_INSTALL}/domains/WebOTXAdmin/config/appserv_pid_systemd
oneshot
Caution
serviceファイルの修正後、設定を反映させるために以下のコマンドを実行する必要があります。
# systemctl daemon-reload

1.4. Windowsサービスアカウントの変更

Windowsサービスアカウントを変更する方法については、[ 4. ユーザ管理 > 4.4. その他の管理ユーザ > 4.4.2. Windowsサービスアカウント ]を参照してください。

1.5. サービス / rcスクリプト実行時の動作処理

サービス/スクリプトを実行した場合、それらに対して行った要求は、管理ドメイン(WebOTXAdmin)に実行されることになります。

1.5-a.jpg
図1.5-1

サービス/スクリプトの起動処理が行われると、管理ドメインは、自身の管理するユーザドメインの起動を行い、ユーザドメインの起動が完了するとステータスを起動中(running)に変更します。

サービス/スクリプトの停止処理が行われると、管理ドメインは、自身の管理するユーザドメインの停止を実行した後、ステータスを停止(not running)に変更します。

1.5.1. タイムアウト値設定

マシンの負荷が高い場合や、アプリケーションを多数配備した場合、ユーザドメインの起動処理、停止処理に時間を要し、結果、処理が遅延し、タイムアウトエラーが発生する場合があります。 このような場合、以下の箇所を考慮しタイムアウト値を設定する必要があります。

サービスに対するタイムアウト値は[1.3. サービスの設定]を確認してください。 各ドメインに対してタイムアウトを設定する場合、${INSTANCE_ROOT}\config配下に、otxadmin.propertiesファイルを作成し、下記の例のようにパラメータを設定することで、タイムアウト値を変更することが可能です。

${INSTANCE_ROOT}\config\otxadmin.properties
例)
waitDomainTimeout=180
waitDomainRunning=1200
waitDomainStopped=1800
表1.5.1-1
項目 説明 既定値
waitDomainTimeout ドメインが停止状態から開始状態に至るまでのタイムアウト値です。単位は秒となります。 なし(※1)
waitDomainRunning ドメインが開始状態から稼動状態に至るまでのタイムアウト値です。単位は秒となります。 なし(※1)
waitDomainStopped ドメインが稼動状態から停止状態に至るまでのタイムアウト値です。単位は秒となります。 1800

(※1)既定では、停止状態から稼動状態までのタイムアウト値が20分となります。

ドメイン全てに対して、一括でタイムアウト値を設定する場合、${INSTANCE_ROOT}\config配下ではなく${AS_INSTALL}\config配下にotxadmin.propertiesファイルを配置してください。