Interstage Application Server OLTPサーバ運用ガイド |
目次
索引
![]() ![]() |
第2章 OLTPサーバの設計 | > 2.5 ワークユニットの運用支援機能を利用した場合の設計 |
アプリケーションが停止(異常終了も含む)した場合、ワークユニット定義で設定したプロセス回収出口プログラムを呼び出すことが可能です。プロセスが停止した場合、共有メモリなどに設定されたプロセスに関する資源、情報を削除したい場合に有効です。
プロセス回収出口プログラムはアプリケーションプロセス以外のプロセスから呼び出されますので、アプリケーションプロセス上でのみ参照可能な情報は参照できません。そのため、プログラム回収出口プログラムを作成する場合、考慮する必要があります。
当プロセス回収出口は停止コマンドによる停止または異常終了など、プロセスが停止した場合に呼び出されます。
プロセス回収出口機能には、最大処理時間監視を行うことができます。最大処理時間を超過した場合、出口を呼び出すプロセスは強制停止され、メッセージが出力されます。動作異常とはなりません。
プロセス回収出口プログラムがループなどにより復帰しない場合、次のワークユニットの操作が待ち状態となります。そのため、必ず最大処理時間監視を行うようにしてください。
プロセス回収出口プログラムは以下のディレクトリ上で動作します。
プラットフォーム |
システム |
指定形式 (注1) |
---|---|---|
Windows(R) |
− |
xxx\yyy\zzz |
Solaris OE |
デフォルトシステム |
xxx/yyy/zzz |
拡張システム (注2) |
xxx/yyy.システム名/zzz |
また、上記ディレクトリ上に標準出力ファイルおよび標準エラー出力ファイルが出力されます。
プロセス回収出口の詳細については、“アプリケーション作成ガイド(コンポーネントトランザクションサービス編)”を参照してください。
プロセス回収出口機能はCORBAアプリケーション、トランザクションアプリケーションのワークユニットおよびEJBアプリケーションのワークユニット、一般アプリケーションのワークユニット(ユーティリティワークユニット)に対して使用可能です。
なお、一般アプリケーションのワークユニットはSolaris OE版、Linux版のみ使用できます。
アプリケーションより標準出力または標準エラー出力に向けて出力されたデータは、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されます。
しかし、Microsoft(R) Visual C++ .NETを使用してビルドされたアプリケーションでは、標準出力または標準エラー出力に向けて出力されたデータが、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されません。
これを回避し正しく出力するためには、アプリケーションにおいて以下の対処を実施してください。
プログラムの先頭に以下のコードを追加してください。
freopen("stdout", "w", stdout); freopen("stderr", "w", stderr);
目次
索引
![]() ![]() |