ユーティリティワークユニットを使用する上で、必要なアプリケーションの開発について説明します。
ユーティリティワークユニットは、ユーザ任意のアプリケーションプログラムやバッチ、シェルスクリプトなどInterstage配下外のプロセスをワークユニットとして運用することができます。
そのため、ワークユニット配下で動作するアプリケーションプログラムは、任意に作成してください。
ただし、ワークユニットの停止は、“プロセス停止出口プログラム”を作成し、ユーザ論理でプロセスを停止させる必要があります。プロセス停止出口プログラムが設定されていない場合は、ワークユニットを停止してもプロセスは停止しません。その場合、利用者が直接プロセスを停止する必要があります。
ワークユニットが提供する出口機能について説明します。
プロセス停止出口機能の使用方法
ワークユニット出口機能の使用方法
プロセス回収出口機能の使用方法
ワークユニットの出口機能を使用する場合は、運用中にワークユニット定義で指定したカレントディレクトリのディスク領域で、領域不足が発生しないよう十分注意してください。
領域不足が発生すると、ワークユニット出口およびプロセス回収出口の実行に失敗する場合があります。
1) プロセス停止出口プログラム機能の使用方法
プロセス停止出口プログラム機能の使用方法について説明します。
プロセス停止出口プログラムは、ユーティリティワークユニットのプロセスを停止するための出口プログラムです。プロセス停止出口プログラムが設定されると、ユーティリティワークユニットの通常停止、強制停止およびワークユニット異常終了時のプロセス停止時に、起動されているプロセス単位にプロセス停止出口プログラムが呼び出されます。
プロセス停止出口プログラムでは、通知されるプロセス番号のプロセスを停止する必要があります。
プロセス停止出口プログラムが設定されていない場合は、ワークユニットを停止してもプロセスは停止しません。その場合、利用者が直接プロセスを停止する必要がありますので、プロセス停止出口プログラムは必ず作成してください。
本機能は、ユーティリティワークユニットでのみ使用することができます。
プログラミングの詳細は、“H.3 ユーティリティワークユニットのプロセス停止出口プログラム機能”を参照してください。
プロセス停止出口プログラム機能を使用する場合、次のことに注意してください。
プロセス停止出口プログラムは、呼出し契機ごとに新規にプロセスが起動され呼び出されます。したがって、外部変数などを使用してアプリケーションプロセスからデータを引き継ぐことはできません。
プロセス停止出口が復帰するまでワークユニット停止コマンドは終了しません。ループ防止のために、必ず、出口プログラム最大処理時間を設定してください。
ワークユニット異常終了となる場合、すでに停止済のプロセスに対してもプロセス停止出口プログラムの呼び出しを行います。停止済のプロセスに対しても呼び出されても問題のないように、考慮する必要があります。
2) ワークユニット出口プログラム機能の使用方法
ワークユニット出口プログラム機能の使用方法について説明します。
ワークユニット出口は、ワークユニット単位で資源の獲得/解放などの処理を行うための出口プログラムです。ワークユニット起動時に、アプリケーションプロセスの起動前に1度呼び出されます。また、ワークユニット停止時およびワークユニット異常終了時に、ワークユニット配下のプロセスの回収処理が終了したあとに1度呼び出されます。
また、アプリケーションの前出口プログラムおよび後出口プログラムは、アプリケーションプロセスの起動および停止時に呼び出される出口プログラムであるのに対し、ワークユニット出口プログラムは、ワークユニットの起動、停止および異常終了時に呼び出される出口プログラムです。
これにより、ワークユニット単位で共有メモリなどの資源を獲得する場合、ワークユニット出口より共有メモリの獲得/解放処理を行うことが可能となります。
また、ワークユニット出口機能とプロセス回収出口機能を併用する場合は、実行モジュールは同一とする必要があります。
プログラミングの詳細は、“H.1 ワークユニット出口プログラム機能”を参照してください。
ワークユニット出口プログラム機能を使用する場合、次のことに注意してください。
ワークユニット出口プログラムは、呼出し契機ごとに、新規に出口用のプロセスが起動され呼び出されます。したがって、外部変数などを使用して、起動時のデータを停止時に引き継ぐことはできません。
ワークユニット起動時にワークユニット出口プログラムで異常が発生し、出口を呼び出すプロセスが異常終了した場合、メッセージが出力されワークユニット起動は失敗します。
また、ワークユニット起動以外の契機で呼び出されたワークユニット出口プログラムが異常終了した場合は、メッセージのみ出力し動作異常とはなりません。
ワークユニットの起動/停止の契機で呼び出される場合、ワークユニット出口が復帰するまで起動/停止処理は終了しません。ループ防止のために、必ず出口プログラム最大処理時間を設定してください。
最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。ワークユニットの起動時には、ワークユニット起動が失敗します。その他の契機で呼び出された場合は、動作異常とはなりません。
3) プロセス回収出口機能の使用方法
プロセス回収出口プログラム機能の使用方法について説明します。
プロセス回収出口は、アプリケーションプロセス終了後にアプリケーションプロセス内で獲得した資源を解放するための出口プログラムです。ワークユニット停止やアプリケーション異常などによる、アプリケーションプロセスの終了を契機に、アプリケーションプロセスとは別プロセスよりプロセス回収出口が呼び出されます。
これにより、共有メモリなどに作成したアプリケーションプロセスの資源を解放することが可能となります。
また、ワークユニット出口機能とプロセス回収出口機能を併用する場合は、実行モジュールは同一とする必要があります。
プログラミングの詳細は、“H.2 プロセス回収出口プログラム機能”を参照してください。
プロセス回収出口機能を使用する場合、次のことに注意してください。
プロセス回収出口プログラムは、呼出し契機ごとに、新規に出口用のプロセスが起動され呼び出されます。したがって、外部変数などを使用してアプリケーションプログラムからデータを引き継ぐことはできません。
プロセス回収出口プログラムで異常が発生し、出口を呼び出すプロセスが異常終了した場合、メッセージが出力されます。動作異常とはなりません。
ワークユニットの停止契機で呼び出される場合、プロセス回収出口プログラムが復帰するまで停止処理は終了しません。ループ防止のために、必ず、出口プログラム最大処理時間を設定してください。
最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。動作異常とはなりません。
プロセス情報通知機能について説明します。
1) プロセス情報通知機能の使用方法
プロセス情報通知機能の使用方法について説明します。
アプリケーションプロセスの起動時に、プロセス固有の情報が特定の環境変数に設定されます。アプリケーションプログラムでは、自プロセスの情報を環境変数より獲得することができます。これにより、アプリケーションプログラムは、プロセスごとの資源を独自に管理するための情報を獲得することができます。
また、アプリケーション異常やタイムアウトによりアプリケーションプロセスが終了した場合、プロセス再起動時に終了前の情報を引き継いだり、現プロセスの起動状態を獲得することができます。
以下に採取可能な情報を記載します。
設定情報 | 内容 |
プロセス通番 | ワークユニット内でユニークなプロセスのシリアル番号であり、プロセス再起動時にも、異常終了したプロセスと同じ番号が設定されます。 |
| デフォルトシステムの場合は“default”が設定されます。拡張システムの場合は拡張システムのシステム名が設定されます。 |
ワークユニット名 | ワークユニット名 |
起動ユーザ名 | ワークユニット起動コマンドを実行したユーザ名 |
プロセス起動回数 | プロセスがワークユニット起動による初回起動なのか、プロセス異常終了による再起動なのかを識別する情報 |
ワークユニット出口復帰情報 | ワークユニット起動時のワークユニット出口で、出力値として設定されたワークユニット出口復帰情報1,2 |
プログラミングの詳細は、“H.4 プロセス情報通知機能”を参照してください。
ワークユニットプロセス情報通知機能を使用する場合、次のことに注意してください。
C、C++言語では、獲得した環境変数領域を解放しないでください。
誤って解放した場合は、不当領域解放により異常終了する場合があります。
環境変数の値は変更しないでください。