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

[目次][索引][前へ][次へ]

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

<この節の構成>
(1) 形式
(2) ファイルの格納先
(3) 機能
(4) 定義できる内容
(5) 定義例
(6) 注意事項

(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の整数(単位:秒)で指定します。 1
    <start-time-watch-interval> 起動時監視間隔を,1〜86400の整数(単位:秒)で指定します。 1
    <env> 環境変数の定義。
複数指定できます。
      name 環境変数名を指定します。
必ず指定してください。
      value 環境変数値を指定します。
必ず指定してください。
環境変数の指定値に次の文字列「${cosminexus.home}」が含まれている場合は,<Cosminexusのインストールディレクトリ>に置換されます。
    <working-dir> ワーキングディレクトリを絶対パスで指定します。 <Cosminexusのインストールディレクトリ>/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} Cosminexusインストールディレクトリ
%{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) 注意事項