以下に示す形式で作成してください。なお、プロセス停止出口の作成言語はC言語のみ有効です。
関数様式
[形式]
long 出口名 ( char *wuname, char *username, long pid, char *sysname, long mode) |
[引数]
パラメタ | 設定内容 | 入出力 |
---|---|---|
char *wuname | ワークユニット名 | 入力値 |
char *username | ワークユニット起動ユーザ名 | 入力値 |
long pid | 停止するユーティリティワークユニットのプロセス番号 | 入力値 |
char *sysname | システム名(注) | 入力値 |
long mode | 停止モード | 入力値 |
(注)
デフォルトシステムの場合は“default”が設定されます。拡張システムの場合は拡張システムのシステム名が設定されます。
“default”が設定されます。
停止モードでは、ユーティリティワークユニットの停止モードを通知します。以下のどちらかが設定されます。
状態 | 設定内容 |
---|---|
ワークユニット通常停止 | 1 |
ワークユニット強制停止、および、 | 2 |
プロセス停止出口プログラムでは、必要に応じて停止モードごとに処理を作成し、設定されている停止モードを判断して処理の振り分けを行ってください。
[復帰値]
復帰値 | 意味 |
---|---|
0 | 正常復帰 |
0以外 | 異常復帰 |
出口プログラムが正常復帰する場合は、復帰値に0を設定し、異常の場合は0以外を設定してください。
ただし、プロセス停止出口が異常復帰した場合でも、メッセージのみ出力され動作は異常となりません。
プログラミング例
プロセス停止出口プログラムの記述例を以下に示します。
long stopexit( char *wuname, char *username, long pid, char *sysname, long mode) { /* 停止モードごとに処理を振り分ける */ switch(mode){ case 1: /* ワークユニット通常停止時の処理を記述 */ /* アプリケーションの仕様にあわせて通知されたプロセスの通常停止処理を行います */ break; case 2: /* ワークユニット強制停止時の処理を記述 */ /* アプリケーションの仕様にあわせて通知されたプロセスの強制停止処理を行います */ break; } return(0); } |
ワークユニット定義の記述例を示します。
プロセス停止出口機能を使用するために必要なワークユニット定義を以下に示します。
[Control Option]セクションおよび[Application Program]セクションに以下の定義を設定します。
プロセス停止出口プログラム名を設定します。
31バイト以内の英数字とアンダースコアが使用できます。
プロセス停止出口プログラムが格納されている実行ファイル名を指定します。
31バイト以内の空白文字と半角カナを除く文字が使用できます。
[Application Program]セクションに、“Exit Program for Process Salvage”ステートメントが設定された場合、本ステートメントを[Control Option]セクションまたは[Application Program]セクションのどちらかに設定する必要があります。なお、両方のセクションに設定された場合は、[Application Program]セクションの設定が有効となります。
出口プログラムの最大処理時間の監視値(秒)を設定します。
1~1800の整数値。
本ステートメントが[Control Option]セクションおよび[Application Program]セクションの両方に設定された場合は、[Application Program]セクションの設定が有効となります。
本ステートメントは省略可能です。本ステートメントを省略した場合、省略値として300が設定されます。
標準出力および標準エラー出力
プロセス停止出口プログラムが動作する時のカレントディレクトリは、以下のような構成になっており、カレントディレクトリ配下に標準出力用のファイルと標準エラー出力用のファイルが設定されています。
標準出力には、stdoutファイルが割り当てられています。プロセス停止出口プログラムで標準出力にデータを出力した場合に、出力先として使用されます。
標準エラー出力には、stderrファイルが割り当てられています。プロセス停止出口プログラムで標準エラー出力にデータを出力した場合に、出力先として使用されます。
カレントディレクトリ:xxx/yyy/zzz_exit |
なお、マルチシステム機能の拡張システムを使用している場合は、上記yyyは“当該ワークユニット名.拡張システム名”となります。