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

3.1.2 アプリケーションの開発

CORBAワークユニットを使用する上で、必要なアプリケーションの開発について説明します。


3.1.2.1 CORBAアプリケーションの開発

クライアントアプリケーションとサーバアプリケーションの作成を行います。

クライアントおよびサーバアプリケーションの作成を行う場合、以下の工程が必要となります。
具体的な手順詳細については、CORBAアプリケーションの作成方法については、「アプリケーション作成ガイド(CORBAサービス編)」を参照してください。


  1. CORBAクライアントアプリケーションの作成

    クライアントとして動作させるCORBAクライアントアプリケーション処理の記述を行います。

  2. CORBAサーバアプリケーションの作成

    CORBAワークユニット上で動作させるCORBAサーバアプリケーション処理の記述を行います。

  3. IDLファイルの作成

    サーバアプリケーションのインタフェース定義(IDL)の記述を行います。

  4. IDLcによるスタブ、スケルトンの作成

    IDLcコマンドにより、クライアントとサーバのインタフェースとなるスタブ、スケルトンの作成を行います。

  5. スタブ、スケルトンとアプリケーションのコンパイル

    作成したクライアントアプリケーションとスタブのコンパイルを行い、クライアントアプリケーションモジュールを作成します。
    また、サーバアプリケーションとスケルトンのコンパイルを行い、サーバアプリケーションモジュールを作成します。


3.1.2.2 ワークユニットの出口機能の使用方法

ワークユニットが提供する出口機能について説明します。

注意

ワークユニットの出口機能を使用する場合は、運用中にワークユニット定義で指定したカレントディレクトリのディスク領域で、領域不足が発生しないよう十分注意してください。
領域不足が発生すると、ワークユニット出口およびプロセス回収出口の実行に失敗する場合があります。


1) ワークユニット出口プログラム機能の使用方法

ワークユニット出口プログラム機能の使用方法について説明します。


概要

ワークユニット出口は、ワークユニット単位で資源の獲得/解放などの処理を行うための出口プログラムです。ワークユニット起動時に、アプリケーションプロセスの起動前に1度呼び出されます。また、ワークユニット停止時およびワークユニット異常終了時に、ワークユニット配下のプロセスの回収処理が終了したあとに1度呼び出されます。
また、アプリケーションの前出口プログラムおよび後出口プログラムは、アプリケーションプロセスの起動および停止時に呼び出される出口プログラムであるのに対し、ワークユニット出口プログラムは、ワークユニットの起動、停止および異常終了時に呼び出される出口プログラムです。
これにより、ワークユニット単位で共有メモリなどの資源を獲得する場合、ワークユニット出口より共有メモリの獲得/解放処理を行うことが可能となります。
また、ワークユニット出口機能とプロセス回収出口機能を併用する場合は、実行モジュールは同一とする必要があります。


プログラミングの流れ

プログラミングの詳細は、「H.1 ワークユニット出口プログラム機能」を参照してください。


注意

ワークユニット出口プログラム機能を使用する場合、次のことに注意してください。

  • ワークユニット出口プログラムは、呼出し契機ごとに、新規に出口用のプロセスが起動され呼び出されます。したがって、外部変数などを使用して、起動時のデータを停止時に引き継ぐことはできません。

  • ワークユニット起動時にワークユニット出口プログラムで異常が発生し、出口を呼び出すプロセスが異常終了した場合、メッセージが出力されワークユニット起動は失敗します。
    また、ワークユニット起動以外の契機で呼び出されたワークユニット出口プログラムが異常終了した場合は、メッセージのみ出力し動作異常とはなりません。

  • ワークユニットの起動/停止の契機で呼び出される場合、ワークユニット出口が復帰するまで起動/停止処理は終了しません。ループ防止のために、必ず出口プログラム最大処理時間を設定してください。

  • 最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。ワークユニットの起動時には、ワークユニット起動が失敗します。その他の契機で呼び出された場合は、動作異常とはなりません。


2) プロセス回収出口機能の使用方法

プロセス回収出口プログラム機能の使用方法について説明します。


概要

プロセス回収出口は、アプリケーションプロセス終了後にアプリケーションプロセス内で獲得した資源を解放するための出口プログラムです。ワークユニット停止やアプリケーション異常などによる、アプリケーションプロセスの終了を契機に、アプリケーションプロセスとは別プロセスよりプロセス回収出口が呼び出されます。
これにより、共有メモリなどに作成したアプリケーションプロセスの資源を解放することが可能となります。
また、ワークユニット出口機能とプロセス回収出口機能を併用する場合は、実行モジュールは同一とする必要があります。


プログラミングの流れ

プログラミングの詳細は、「H.2 プロセス回収出口プログラム機能」を参照してください。


注意

プロセス回収出口機能を使用する場合、次のことに注意してください。

  • プロセス回収出口プログラムは、呼出し契機ごとに、新規に出口用のプロセスが起動され呼び出されます。したがって、外部変数などを使用してアプリケーションプログラムからデータを引き継ぐことはできません。

  • プロセス回収出口プログラムで異常が発生し、出口を呼び出すプロセスが異常終了した場合、メッセージが出力されます。動作異常とはなりません。

  • ワークユニットの停止契機で呼び出される場合、プロセス回収出口プログラムが復帰するまで停止処理は終了しません。ループ防止のために、必ず、出口プログラム最大処理時間を設定してください。

  • 最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。動作異常とはなりません。


3.1.2.3 プロセス情報通知機能の使用方法

プロセス情報通知機能について説明します。


1) プロセス情報通知機能の使用方法

プロセス情報通知機能の使用方法について説明します。


概要

アプリケーションプロセスの起動時に、プロセス固有の情報が特定の環境変数に設定されます。アプリケーションプログラムでは、自プロセスの情報を環境変数より獲得することができます。これにより、アプリケーションプログラムは、プロセスごとの資源を独自に管理するための情報を獲得することができます。
また、アプリケーション異常やタイムアウトによりアプリケーションプロセスが終了した場合、プロセス再起動時に終了前の情報を引き継いだり、現プロセスの起動状態を獲得することができます。

以下に採取可能な情報を記載します。

設定情報

内容

プロセス通番

ワークユニット内でユニークなプロセスのシリアル番号であり、プロセス再起動時にも、異常終了したプロセスと同じ番号が設定されます。
なお、プロセス多重度変更機能によるプロセスの増減を行った場合、ユニークな番号であることは保証されますが、連続した番号は保証されません。


システム名

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

ワークユニット名

ワークユニット名



起動ユーザ名

ワークユニット起動コマンドを実行したユーザ名

プロセス起動回数

プロセスがワークユニット起動による初回起動なのか、プロセス異常終了による再起動なのかを識別する情報

ワークユニット出口復帰情報

ワークユニット起動時のワークユニット出口で、出力値として設定されたワークユニット出口復帰情報1、2


プログラミングの流れ

プログラミングの詳細は、「H.4 プロセス情報通知機能」を参照してください。


注意

ワークユニットプロセス情報通知機能を使用する場合、次のことに注意してください。

  • C、C++言語では、獲得した環境変数領域を解放しないでください。
    誤って解放した場合は、不当領域解放により異常終了する場合があります。

  • 環境変数の値は変更しないでください。