Interstage Application Server OLTPサーバ運用ガイド
目次 索引 前ページ次ページ

第2章 OLTPサーバの設計> 2.5 ワークユニットの運用支援機能を利用した場合の設計

2.5.1 ワークユニット出口機能

 ワークユニット単位に出口プログラムを設定することが可能です。ワークユニット起動/停止/異常終了などの事象ごとにワークユニット定義に指定したワークユニット出口プログラムを呼び出します。
 ワークユニット起動時に共用メモリなどの資源を獲得し、ワークユニット停止または異常終了した場合に資源を解放するような場合に有効です。
 また、ワークユニット起動時に呼び出されるワークユニット出口プログラムはユーザ情報を返却することができ、この情報はプロセス情報通知より参照が可能です。

 たとえばワークユニット起動時にワークユニット出口プログラムにより共用メモリを獲得し、その獲得した共用メモリ識別子をワークユニット出口プログラムのユーザ情報として復帰することで、アプリケーションプロセスにワークユニット起動時に獲得した共用メモリ識別子を受け渡すことが可能となります。

 ワークユニット出口機能は、最大処理時間監視を行うことができます。最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。ワークユニットの起動時には、ワークユニット起動が失敗します。その他の契機で呼び出された場合は、動作異常とはなりません。
 ワークユニット出口プログラムがループなどにより復帰しない場合、ワークユニットの起動/停止が終了しません。そのため、必ず最大処理時間監視を行うようにしてください。

 ワークユニット出口プログラムは以下のディレクトリ上で動作します。

プラットフォーム

システム

指定形式 (注1)

Windows(R)

xxx\yyy\zzz

Solaris OE
Linux

デフォルトシステム

xxx/yyy/zzz

拡張システム (注2)

xxx/yyy.システム名/zzz

注1)
xxx:ワークユニット定義で指定されたディレクトリ
yyy:当該ワークユニット名
zzz:ワークユニット出口プログラムの実行プロセスid
注2)
拡張システムはSolaris OEのみ使用可能です。

 また、上記ディレクトリ上に標準出力ファイルおよび標準エラー出力ファイルが出力されます。
 ワークユニット出口機能の詳細については、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”を参照してください。
 ワークユニット出口機能はCORBAアプリケーション、トランザクションアプリケーションのワークユニットおよびEJBアプリケーションのワークユニット、一般アプリケーションのワークユニット(ユーティリティワークユニット)に対して使用可能です。


 ワークユニット出口機能は出口プログラムがワークユニット起動時に一度呼び出され、ワークユニット停止時に一度呼び出されます。ワークユニット起動時/停止時にアプリケーションプロセスごとに呼び出される前/後出口機能とは異なる機能であるため、注意が必要です。

Microsoft(R) Visual C++ .NETを使用して、出口プログラムを作成する場合の注意点

 アプリケーションより標準出力または標準エラー出力に向けて出力されたデータは、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されます。
 しかし、Microsoft(R) Visual C++ .NETを使用してビルドされたアプリケーションでは、標準出力または標準エラー出力に向けて出力されたデータが、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されません。
 これを回避し正しく出力するためには、アプリケーションにおいて以下の対処を実施してください。

 プログラムの先頭に以下のコードを追加してください。

  freopen("stdout", "w", stdout);
  freopen("stderr", "w", stderr);

目次 索引 前ページ次ページ

Copyright 2003 FUJITSU LIMITED