8.2.19 論理ユーザサーバ定義ファイル
- 〈この項の構成〉
(1) 形式
xmlファイル形式です。
(2) ファイルの格納先
格納先およびファイル名称は任意です。
(3) 機能
mngsvrutilコマンドで論理ユーザサーバを追加するときに作成します。
(4) 定義できる内容
論理ユーザサーバ定義ファイルに記述できる内容を次の表に示します。
|
要素名 |
説明 |
デフォルト値 |
|||
|---|---|---|---|---|---|
|
<user-server-definition> |
名前空間として次のパスを指定します。http://www.cosminexus.com/mngsvr/schema/UserServerDefinition-1.1 |
− |
|||
|
<service> |
サービスの定義。 必ず指定してください。 |
− |
|||
|
<type> |
起動方法を直接起動にするか間接起動にするかを指定します。
|
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を指定します。指定できる値は,次のとおりです。
必ず指定してください。 |
− |
|||
|
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 |
任意 |
サーバ停止用コマンドの正常終了時には,監視対象プロセスが終了しています。 |
指定していない場合は次の動作をします。
|
|
|
forceStop |
任意 |
|
指定していない場合は次の動作をします。
|
|
|
getProcessID |
指定不可 |
− |
指定した場合はエラーとなります。 |
|
|
isAlive |
任意 |
サービスが稼働中の場合は終了コードが0,稼働中ではない場合は終了コードが0以外となります。 |
指定した場合はサービス監視を行います。 |
|
|
間接起動 |
start |
必須 |
|
− |
|
stop |
任意 |
サーバ停止用コマンドの正常終了時には,監視対象プロセスが終了しています。 |
指定していない場合は次の動作をします。
|
|
|
forceStop |
任意 |
|
指定していない場合は次の動作をします。
|
|
|
getProcessID |
必須 |
|
− |
|
|
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) 注意事項
-
stopコマンドおよびforceStopコマンドを指定していない場合に,startコマンドに別のプロセスを起動するようなバッチファイル,またはシェルスクリプトを指定しないでください。指定すると,運用管理エージェントを再起動した場合に,バッチファイルまたはシェルスクリプトから起動したプロセスを,運用管理エージェントの停止操作または強制停止操作の延長で終了できなくなります。
-
直接起動でstartコマンドに別のプロセスを起動するようなバッチファイル,またはシェルスクリプトを指定する場合は,stopコマンドおよびforceStopコマンドを指定してください。
-
間接起動でstartコマンドに別のプロセスを起動するようなバッチファイル,またはシェルスクリプトを指定する場合は次のようにしてください。
-
stopコマンドおよびforceStopコマンドを指定する。
-
バッチファイルまたはシェルスクリプトから起動したプロセスのプロセスIDを取得するようなgetProcessIDコマンドを指定する。
-
-
論理ユーザサーバの起動処理で使用するisAliveコマンドは,論理ユーザサーバの起動確認ができる状態になるまで待つのではなく,確認に失敗したらすぐに0以外の終了コードで終了するように設定してください。
isAliveコマンドがすぐに終了しないと,論理ユーザサーバが起動処理中にハングアップしてしまった場合に,論理ユーザサーバの起動監視時間オーバー検知時に論理ユーザサーバの自動停止処理が実行されないことがあります。
また,isAliveコマンドとgetProcessIDコマンドは,マシン負荷の高い状態でもすぐに応答が返るように,できるだけ単純な確認方法で実装してください。