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) 注意事項