プロセス回収出口プログラムは、以下の形式で作成します。
注意
プロセス回収出口プログラムは、C言語で作成する必要があります。
■形式
long 出口名 ( char *sysname, char *wuname, char *username, long mode, long user_data1, long user_data2, long pid) |
■パラメタ
パラメタ | 設定内容 | 入出力 |
---|---|---|
char *sysname | システム名(注) | 入力値 |
char *wuname | ワークユニット名 | 入力値 |
char *username | ワークユニット起動ユーザ名 | 入力値 |
long mode | 回収モード | 入力値 |
long *userdate1 | ワークユニット出口復帰情報1設定値 | 入力値 |
long *userdate2 | ワークユニット出口復帰情報2設定値 | 入力値 |
long pid | アプリケーションプロセスのプロセス番号 | 入力値 |
注)“default”が設定されます。
■回収モード
回収モードでは、プロセス回収出口の呼出し契機を通知します。以下のどれかが設定されます。
状態 | 設定値 | 呼出し契機 |
---|---|---|
ワークユニット通常停止 | 1 | ワークユニット通常停止によるプロセス停止 |
ワークユニット強制停止 | 2 |
|
ワークユニット異常終了 | 3 | ワークユニット異常終了によるプロセス停止時 |
プロセス回収 | 5 | ワークユニット異常終了やワークユニット起動失敗など、別プロセスが起因するプロセス停止時 |
出口プログラムでは、必要に応じて回収モードごとに処理を作成し、回収モードに設定されている値により呼出し契機を判断して、処理を振り分けてください。
■復帰情報1、復帰情報2
ワークユニット起動時に、ワークユニット出口の出力値として返された復帰情報が設定されます。
◆復帰値
復帰値 | 意味 |
---|---|
0 | 正常復帰 |
0以外 | 異常復帰 |
出口プログラムが正常復帰する場合は復帰値に0を設定し、異常の場合は0以外を設定してください。
ただし、プロセス回収出口が異常復帰した場合でも、メッセージだけが出力され、動作異常にはなりません。
■標準出力およびエラー出力
プロセス回収出口プログラムが動作するときのカレントディレクトリは、以下のような構成になっています。
カレントディレクトリ:xxx/yyy/zzz_exit xxx:ワークユニット定義で指定されたディレクトリ yyy:当該ワークユニット名 zzz:プロセス回収出口プログラムの実行プロセスid |
カレントディレクトリ配下に、標準出力用のファイルと標準エラー出力用のファイルが設定されています。
標準出力には、stdoutファイルが割り当てられます。プロセス回収出口プログラムで標準出力にデータを出力した場合に、出力先として使用されます。
標準エラー出力には、stderrファイルが割り当てられます。プロセス回収出口プログラムで標準エラー出力を出力した場合に、出力先として使用されます。
■記述例
プロセス回収出口プログラムの記述例を以下に示します。
long recoverexit( char *sysname, char *wuname, char *username, long mode, long userdata1, long userdata2, long pid) { /* 状態遷移モードごとに処理を振り分ける */ switch(mode){ case 1: /* ワークユニット通常停止時の処理を記述 */ break; case 2: /* ワークユニット強制停止時の処理を記述 */ break; case 3: /* アプリケーション異常終了時の処理を記述 */ break; case 5: /* プロセス回収時の処理を記述 */ break; } return(0); } |