ユーティリティワークユニットの停止方法について説明します。
ユーティリティワークユニットでは、アプリケーションプロセスの停止は、「プロセス停止出口プログラム」が実施します。
ワークユニット停止コマンドが実行されると、Interstage Application Serverは、まずワークユニット上で起動したアプリケーションプロセスをInterstage Application Serverの監視対象から解除します。その後ワークユニット定義に登録された「プロセス停止出口プログラム」をプロセス単位で呼出します。Interstage Application Serverはプロセスを直接停止することはありませんので、必ず「プロセス停止出口プログラム」を登録し、「プロセス停止出口プログラム」には、確実にプロセスが停止する方法でプログラムを記述してください。
なお、Interstage Application Serverは、「プロセス停止出口プログラム」の呼出しが終了するとコマンドに復帰します。プロセスが正常に停止したかどうかは判断しません。
ワークユニットの停止方式には、以下の2つ種類がありますので用途にあわせて使い分けてください。プロセス停止出口プログラムの詳細については、「H.3 ユーティリティワークユニットのプロセス停止出口プログラム機能 」を参照してください。
「プロセス停止出口プログラム」の第5引数の「停止モード」に「ワークユニット通常停止」を通知します。
「プロセス停止出口プログラム」の第5引数の「停止モード」に「ワークユニット強制停止」を通知します。
ポイント
「プロセス停止出口プログラム」には、引数で以下の情報が通知されます。これらの情報を使用して、プロセスを停止するプログラムを記述してください。
ワークユニット名
ワークユニット起動ユーザ名
プロセス番号
システム名
停止モード
ワークユニットの停止は、ワークユニットを起動したユーザ、または、OSの管理者権限を持つユーザでのみ停止できます。
「プロセス停止出口プログラム」がワークユニット定義に登録されていない場合、Interstage Application Serverは、ワークユニット停止が実行されても、アプリケーションプロセスを監視対象から解除するだけで復帰します。その場合、ワークユニット停止コマンドが成功しても、アプリケーションプロセスは残ったままとなります。
ユーティリティワークユニットでは、コマンドやバッチプログラムのように、プロセスとして常駐せず、プログラム実行後終了するアプリケーションがあります。そのようなアプリケーションの場合、プロセスが停止した場合でも、プロセスの再起動を行わず、ワークユニット内のプロセスがすべて停止したのを待って、ワークユニット停止の状態にする必要があります。
その場合、ワークユニットを自動停止させることができます。ワークユニット自動停止はコマンドやバッチプログラムに有効な機能であり、ユーティリティワークユニットでのみ有効な機能です。ワークユニット自動停止の設定については、ワークユニット定義で行います。
例
ワークユニット定義
[Control Option] WorkUnit Automatic Stop Mode:Yes
ユーティリティワークユニット起動では、「プロセス停止出口プログラム」の呼出しが終了するとコマンドに復帰し、プロセスの停止完了は待ち合わせませんので、停止が完了するまでの待ち時間を指定する必要はありません。