Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス 定義編(サーバ定義)


8.2.19 論理ユーザサーバ定義ファイル

〈この項の構成〉

(1) 形式

xmlファイル形式です。

(2) ファイルの格納先

格納先およびファイル名称は任意です。

(3) 機能

mngsvrutilコマンドで論理ユーザサーバを追加するときに作成します。

(4) 定義できる内容

論理ユーザサーバ定義ファイルに記述できる内容を次の表に示します。

要素名

説明

デフォルト値

<user-server-definition>

名前空間として次のパスを指定します。http://www.cosminexus.com/mngsvr/schema/UserServerDefinition-1.1

<service>

サービスの定義。

必ず指定してください。

<type>

起動方法を直接起動にするか間接起動にするかを指定します。

directを指定した場合:

直接起動します。

indirectを指定した場合:

間接起動します。

direct

<startup-order>

起動順序を-1〜999の整数で指定します。-1を指定した場合は,指定なしとなります。

900

<start-watch-time>

起動監視時間を次の数値(単位:秒)で指定します。0を指定した場合は,監視しません。

0,60,300,600,3600

60

<stop-watch-time>

停止監視時間を次の数値(単位:秒)で指定します。0を指定した場合は,監視しません。

0,60,300,600,1800

60

<force-watch-time>

強制停止監視時間を次の数値(単位:秒)で指定します。0を指定した場合は,監視しません。

0,60,300,600,1800

60

<retry-count>

自動再起動回数を次の数値で指定します。

0,1,5,10,1000

1

<retry-interval>

自動再起動リトライ間隔を次の数値(単位:秒)で指定します。0を指定した場合は,即時リトライします。

0,60,300,600,1800

60

<watch-interval>

監視間隔を,1〜86400の整数(単位:秒)で指定します。

なお,運用管理エージェントプロパティファイルのadminagent.userserver.watch.intervalキーと同時に指定した場合は,このタグに指定した値が有効になります。

1

<start-time-watch-interval>

起動時監視間隔を,1〜86400の整数(単位:秒)で指定します。

1

<env>

環境変数の定義。

複数指定できます。

name

環境変数名を指定します。

必ず指定してください。

value

環境変数値を指定します。

必ず指定してください。

環境変数の指定値に次の文字列「${cosminexus.home}」が含まれている場合は,<Application Serverのインストールディレクトリ>に置換されます。

<working-dir>

ワーキングディレクトリを絶対パスで指定します。

<Application Serverのインストールディレクトリ>/manager/bin

<user-id>

コマンド実行時のユーザIDを指定します。

この要素は,UNIX用です。

<group-id>

コマンド実行時のグループIDを指定します。

この要素は,UNIX用です。

<command>

コマンドの定義

必ず指定してください。また,複数指定できます。

type

コマンド種別※1を指定します。指定できる値は,次のとおりです。

  • start:サーバ起動用コマンド

  • stop:サーバ停止用コマンド

  • forceStop:サーバ強制停止用コマンド

  • getProcessID:プロセスID取得用コマンド

  • isAlive:サービス監視用コマンド

必ず指定してください。

timeout

タイムアウト時間を,1〜86400の整数(単位:秒)で指定します。

ただし,コマンド種別がgetProcessIDまたはisAliveのときだけ有効となります。

180

<arg>

コマンド引数を指定します。※2

必ず指定してください。

コマンドに引数および引数値を付加する場合は,<arg>タグを複数指定してください。

<arg>タグの指定例を次に示します。

<arg>コマンド</arg>

<arg>引数1</arg>

<arg>引数1の指定値</arg>

<arg>引数2(値の指定なし)</arg>

<arg>引数3</arg>

<arg>引数3の指定値</arg>

<server>

論理ユーザサーバ定義。

必ず指定してください。また,複数指定できます。

<logical-server-name>

論理サーバ名を128文字以下で指定します。使用できる文字は半角文字の英数字(A〜Z,a〜z,0〜9),アンダースコア(_),およびハイフン(-)です。

必ず指定してください。

<display-name>

論理サーバの表示名を128文字以下で指定します。

<description>

論理サーバの説明を1024文字以下で指定します。

<host-ref>

あらかじめ定義されたホスト名を255文字以下で指定します。使用できる文字は半角文字の英数字(A〜Z,a〜z,0〜9),アンダースコア(_),ハイフン(-)およびピリオド(.)です。

必ず指定してください。

注※1

起動種別によってコマンド種別の指定条件が異なります。起動種別によるコマンド種別の指定条件と要件を次に示します。

起動種別

コマンド種別

指定条件

要件

備考

直接起動

start

必須

サーバ起動用コマンドが監視対象となります。

stop

任意

サーバ停止用コマンドの正常終了時には,監視対象プロセスが終了しています。

指定していない場合は次の動作をします。

  • Windowsの場合

    該当プロセスに対しCtrl-Cイベントを発行します。プロセスが停止しない場合は,TerminateProcess()を実行します。

  • UNIXの場合

    該当プロセスに対しSIGTERMを送信します。その1秒後にプロセスが停止しない場合は,SIGKILLを送信します。

forceStop

任意

  • サーバ強制停止用コマンドの終了時には,監視対象プロセスが終了しています。

  • サーバ強制停止用コマンド発行後は,サーバ起動用コマンドが実行可能状態となります。

指定していない場合は次の動作をします。

  • Windowsの場合

    該当プロセスに対しCtrl-Cイベントを発行します。プロセスが停止しない場合は,TerminateProcess()を実行します。

  • UNIXの場合

    該当プロセスに対しSIGTERMを送信します。その1秒後にプロセスが停止しない場合は,SIGKILLを送信します。

getProcessID

指定不可

指定した場合はエラーとなります。

isAlive

任意

サービスが稼働中の場合は終了コードが0,稼働中ではない場合は終了コードが0以外となります。

指定した場合はサービス監視を行います。

間接起動

start

必須

  • プロセス起動用コマンドの正常終了時には,すべての監視対象プロセスが起動完了します。

  • プロセス起動用コマンドの正常終了時には,プロセス停止用コマンドが実行可能状態となります。

  • 正常終了の場合は終了コードが0,異常終了の場合は終了コードが1となります。

stop

任意

サーバ停止用コマンドの正常終了時には,監視対象プロセスが終了しています。

指定していない場合は次の動作をします。

  • Windowsの場合

    該当プロセスに対しCtrl-Cイベントを発行します。プロセスが停止しない場合は,TerminateProcess()を実行します。

  • UNIXの場合

    該当プロセスに対しSIGTERMを送信します。その1秒後にプロセスが停止しない場合は,SIGKILLを送信します。

forceStop

任意

  • サーバ強制停止用コマンドの終了時には,監視対象プロセスが終了しています。

  • サーバ強制停止用コマンド発行後は,サーバ起動用コマンドが実行可能状態となります。

指定していない場合は次の動作をします。

  • Windowsの場合

    該当プロセスに対しCtrl-Cイベントを発行します。プロセスが停止しない場合は,TerminateProcess()を実行します。

  • UNIXの場合

    該当プロセスに対しSIGTERMを送信します。その1秒後にプロセスが停止しない場合は,SIGKILLを送信します。

getProcessID

必須

  • サーバ起動用コマンドで起動したプロセスのプロセスIDを10進表現で標準出力に出力します。

  • 複数のプロセスが起動される場合はすべてのプロセスのプロセスIDを出力します。

  • 正常終了の場合は終了コードが0,異常終了の場合は終了コードが1となります。

  • 出力フォーマットは次のようになります。

    9 9 9 6 \n

    1 0 0 2 3 \n

    1 0 2 5 7 \n

isAlive

任意

サービスが稼働中の場合は終了コードが0,稼働中ではない場合は終了コードが0以外となります。

指定した場合はサービス監視を行います。

注※2

コマンド引数の指定値に次の文字列が含まれている場合は,対応する値に置換されます。

置換前の文字列

置換後の文字列

備考

${cosminexus.home}

Application Serverのインストールディレクトリ

%{XXX}

環境変数XXXの値

環境変数XXXが存在しない場合は空白文字列に置換されます。

${server.name}

論理サーバ名

(5) 定義例

<?xml version="1.0" encoding="UTF-8" ?>
<user-server-definition xmlns="http://www.cosminexus.com/mngsvr/schema/UserServerDefinition-1.1">
  
  <!-- サービス定義 -->
  <service>
    <!-- 起動種別 -->
    <type>direct</type>
    <!-- 起動順序 -->
    <startup-order>900</startup-order>
    <!-- 起動監視時間 -->
    <start-watch-time>60</start-watch-time>
    <!-- 停止監視時間 -->
    <stop-watch-time>60</stop-watch-time>
    <!-- 強制停止監視時間 -->    
    <force-watch-time>60</force-watch-time>
    <!-- 自動再起動回数 -->
    <retry-count>1</retry-count>
    <!-- 自動再起動リトライ間隔 -->
    <retry-interval>60</retry-interval>
    <!-- 監視間隔 -->
    <watch-interval>1</watch-interval>
    <!-- 起動時監視間隔 -->
    <start-time-watch-interval>1</start-time-watch-interval>
    <!-- 環境変数 -->
    <env name="USERSERVER_HOME" value="C:\UserServer"/>
    <!-- ワーキングディレクトリ -->
    <working-dir>C:\UserServer</working-dir>
    <!-- ユーザID -->
<!--
    <user-id>userserver</user-id>
-->
    <!-- グループID -->
<!--
    <group-id>userserver</group-id>
-->
    <!-- サーバ起動用コマンド -->
    <command type="start">
       <arg>C:\UserServer\start.exe</arg>
    </command>
    <!-- サーバ停止用コマンド -->
    <command type="stop">
       <arg>C:\UserServer\stop.exe</arg>
    </command>
    <!-- サーバ強制停止用コマンド -->
    <command type="forceStop">
       <arg>C:\UserServer\forceStop.exe</arg>
    </command>
    <!-- プロセスID取得用コマンド -->
<!--
    <command type="getProcessID" timeout="180">
       <arg>C:\UserServer\getProcessID.exe</arg>
    </command>
-->
    <!-- サービス監視用コマンド -->
    <command type="isAlive" timeout="180">
       <arg>C:\UserServer\isAlive.exe</arg>
    </command>
  </service>
  
  <!-- 論理ユーザサーバ定義 -->
  <server>
    <logical-server-name>UserServer01</logical-server-name>
    <display-name>論理ユーザサーバ</display-name>
    <description>これは論理ユーザサーバです</description>
    <host-ref>192.168.1.1</host-ref>
  </server>
</user-server-definition>

(6) 注意事項