ページの先頭行へ戻る
Interstage Application Server OLTPサーバ運用ガイド
Interstage

H.3.2 プログラミングの流れ

以下に示す形式で作成してください。なお、プロセス停止出口の作成言語はC言語のみ有効です。


関数様式

形式
 long 出口名 ( char      *wuname,
               char      *username,
               long      pid,
               char      *sysname,
               long      mode)

引数

パラメタ

設定内容

入出力

char *wuname

ワークユニット名

入力値

char *username

ワークユニット起動ユーザ名

入力値

long pid

停止するユーティリティワークユニットのプロセス番号

入力値

char *sysname

システム名 (注)

入力値

long mode

停止モード

入力値

注)

  デフォルトシステムの場合は「default」が設定されます。拡張システムの場合は拡張システムのシステム名が設定されます。

  「default」が設定されます。


停止モード

停止モードでは、ユーティリティワークユニットの停止モードを通知します。以下のどちらかが設定されます。

状態

設定内容

ワークユニット通常停止

ワークユニット強制停止、および、ワークユニット異常時のプロセス停止

プロセス停止出口プログラムでは、必要に応じて停止モードごとに処理を作成し、設定されている停止モードを判断して処理の振り分けを行ってください。


復帰値

復帰値

意味

正常復帰

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);
}

ワークユニット定義

ワークユニット定義の記述例を示します。

[WORK UNIT]
Name: ...
Kind: ORB
[APM]
Name: TDNORM

[Control Option]
...
WorkUnit Exit Program: wuexit                               ←出口プログラム名を指定
Executable File of Exit Program for Salvage: libwuexit.so   ←実行ファイル名を指定
Maximum Processing Time for Exit Program: 60                ←出口プログラム最大処理時間
...

プロセス停止出口プログラム機能を使用するために必要なワークユニット定義を以下に示します。
[Control Option]セクションおよび[Application Program]セクションに以下の定義を設定します。


Exit Program for Terminating Process:プロセス停止出口プログラム名

プロセス停止出口プログラム名を設定します。
31バイト以内の英数字とアンダースコアが使用できます。

Executable File of Exit Program for Salvage:出口プログラム実行ファイル名

プロセス停止出口プログラムが格納されている実行ファイル名を指定します。
31バイト以内の空白文字と半角カナを除く文字が使用できます。
[Application Program]セクションに、「Exit Program for Process Salvage」ステートメントが設定された場合、本ステートメントを[Control Option]セクションまたは[Application Program]セクションのどちらかに設定する必要があります。なお、両方のセクションに設定された場合は、[Application Program]セクションの設定が有効となります。

Maximum Processing Time for Exit Program:出口プログラム最大処理時間

出口プログラムの最大処理時間の監視値(秒)を設定します。
1~1800の整数値。
本ステートメントが[Control Option]セクションおよび[Application Program]セクションの両方に設定された場合は、[Application Program]セクションの設定が有効となります。
本ステートメントは省略可能です。本ステートメントを省略した場合、省略値として300が設定されます。


標準出力および標準エラー出力

プロセス停止出口プログラムが動作する時のカレントディレクトリは、以下のような構成になっており、カレントディレクトリ配下に標準出力用のファイルと標準エラー出力用のファイルが設定されています。

標準出力には、stdoutファイルが割り当てられています。プロセス停止出口プログラムで標準出力にデータを出力した場合に、出力先として使用されます。
標準エラー出力には、stderrファイルが割り当てられています。プロセス停止出口プログラムで標準エラー出力にデータを出力した場合に、出力先として使用されます。

カレントディレクトリ:xxx/yyy/zzz_exit
  xxx  :ワークユニット定義で指定されたディレクトリ
  yyy  :当該ワークユニット名
  zzz  :プロセス停止出口プログラムの実行プロセスid


なお、マルチシステム機能の拡張システムを使用している場合は、上記yyyは「当該ワークユニット名.拡張システム名」となります。