Interstage Application Server OLTPサーバ運用ガイド |
目次 索引 |
付録H ワークユニットの出口機能 | > H.4 プロセス情報通知機能 |
以下に示す方法でアプリケーションに組み込んでください。
情報 |
設計方法 |
プロセス通番 |
ワークユニット内のプロセスごとに、共有メモリのブロックを割り当て、情報を保持している場合など、プロセス異常終了後に再起動したプロセスで、異常終了前のプロセスと同一の共有メモリのブロックを使用したい場合などに、環境変数よりプロセス通番を獲得します。 |
|
アプリケーション内でInterstageのAPIを使用している場合、入力値として設定する必要のある場合に、環境変数よりシステム名を獲得します。 |
ワークユニット名 |
アプリケーション内でワークユニット名を意識したアプリケーションの処理(ワークユニットにより動作を切り分けているなど)を行っている場合、環境変数よりワークユニット名を獲得します。 |
|
アプリケーションが起動したユーザ名を意識した処理(ユーザ名により認証を行っているなど)を行っている場合、環境変数より起動ユーザ名を獲得します。 |
プロセス起動回数 |
自プロセスがワークユニット起動による初回起動か、アプリケーション異常終了後の再起動による起動かを知る必要がある場合に、環境変数よりプロセス起動回数を獲得します。 |
ワークユニット出口復帰情報 |
ワークニット内で共有メモリなどを使用する場合、ワークユニット起動時に呼び出されるワークユニット出口の復帰情報に、共有メモリIDなどを設定し復帰することで、ワークユニット配下のアプリケーションプロセスで共有メモリ操作が可能となります。その場合、環境変数よりワークユニット出口復帰情報を獲得し、共有メモリのマッピング処理などを行います。 |
以下の環境変数に情報を設定します。
環境変数名 |
設定情報 |
最大データ長 |
IS_APL_SERIALNUM |
プロセス通番 |
10バイト |
|
システム名 |
8バイト |
IS_APL_WUNAME |
ワークユニット名 |
36バイト |
|
起動ユーザ名 |
48バイト |
IS_APL_STARTNUM |
プロセス起動回数 |
10バイト |
IS_APL_INFO1 |
ワークユニット出口復帰情報1 |
10バイト |
IS_APL_INFO2 |
ワークユニット出口復帰情報2 |
10バイト |
アプリケーション上でプロセス情報を獲得したい場合は、環境変数より情報を取り出す必要があります。
環境変数情報を格納する領域は、必ず最大データ長よりも大きな領域を用意してください。
GetEnvironmentVariable()を使用して環境変数の値を取得します。
#include <windows.h> long FUNC() { long rtn, length=11; char proc_num[11]; rtn = GetEnvironmentVariable("IS_APL_SERIALNUM",proc_num,length); : |
getenv()を使用して環境変数の値を取得します。
#include <stdlib.h> long FUNC() { char *proc_num; proc_num = getenv("IS_APL_SERIALNUM"); : |
環境変数の値を参照するためには、DISPLAY文とACCEPT文をこの順に実行します。
DISPLAY文では、参照したい環境変数の名前を一意名または定数に指定し、機能名ENVIRONMENT-NAMEに対応付けた呼び名をUPON指定に書きます。DISPLAY文を実行すると、DISPLAY文の一意名または定数に設定した名前を持つ環境変数が参照可能になります。
ACCEPT文では、機能名ENVIRONMENT-VALUEに対応付けた呼び名をFROM指定に書きます。ACCEPT文を実行すると、DISPLAY文の実行によって参照可能になった環境変数の値が、ACCEPT文の一意名に設定されます。
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. ENVIRONMENT-NAME IS ENVNAME ENVIRONMENT-VALUE IS ENVVAL. DATA DIVISION. WORKING-STORAGE SECTION. 01 PROC_NUM PIC X(11). PROCEDURE DIVISION. DISPLAY "IS_APL_SERIALNUM" UPON ENVNAME. ACCEPT PROC_NUM FROM ENVVAL. : |
目次 索引 |