Interstage Application Server OLTPサーバ運用ガイド |
目次
索引
![]() ![]() |
第2章 OLTPサーバの設計 | > 2.1 ワークユニットの設計 | > 2.1.1 ワークユニットを利用したアプリケーションの実行環境 |
ワークユニットで起動したアプリケーションが動作する作業ディレクトリ(カレントディレクトリ)を指定することができます。
カレントディレクトリにより、ワークユニット配下で動作するアプリケーションはそれぞれ異なった作業ディレクトリで動作することが可能となります。
ワークユニット定義の[Control Option]セクションのEnvironment Variable:ステートメントに以下の環境変数を設定することで、ワークユニットのカレントディレクトリを5世代バックアップする機能を提供します。
EXTP_CURRENTDIR_HISTORY=YES
バックアップはワークユニットの起動時に作成され、5世代まで管理されます。既存のワークユニット名のディレクトリはワークユニット名.old1としてバックアップされます。ワークユニット名.old1はワークユニット名.old2としてバックアップされ、以降ワークユニット名.old5まではバックアップが作成されます。ワークユニット名.old5ディレクトリが存在する場合は、ワークユニット名.old5を削除しワークユニット名.old4を新しくワークユニット名.old5としてバックアップします。
ワークユニット再起動後もカレントディレクトリ配下の標準出力ファイル(stdout)、標準エラー出力ファイル(stderr)、(Solaris OE版/Linux版ではcoreファイル)等が保存されるため、トラブル発生から日数が経過していても調査情報を容易に入手することが可能となります。
プラットフォーム |
システム |
指定形式 (注1) |
---|---|---|
Windows(R) |
− |
xxx\yyy\zzz |
Solaris OE |
デフォルトシステム |
xxx/yyy/zzz |
拡張システム (注2) |
xxx/yyy.システム名/zzz |
標準出力には、stdoutファイルが割り当てられています。サーバアプリケーションで標準出力にデータを出力した場合に、出力先として使用されます。
標準エラー出力には、stderrファイルが割り当てられています。サーバアプリケーションで標準エラー出力にデータを出力した場合に、出力先として使用されます。
OSの標準入出力ライブラリの仕様により、標準出力及び標準エラー出力に出力したデータは一旦標準入出力ライブラリにバッファリングされます。
バッファリングされたデータを確実にstdout,stderrファイルに出力させるためには標準出力および標準エラー出力に対してフラッシュを行う必要があります。
たとえばC言語の場合は、fflush(stdout),fflush(stderr)を発行してください。フラッシュを行わない場合は標準入出力ライブラリによってバッファリングされたデータがフラッシュされるまでstdout,stderrファイルにデータが出力されません。
ワークユニットの定義画面または、ワークユニット環境設定画面における“アプリケーション動作カレントディレクトリ”を設定してください。カレントディレクトリの世代管理機能を利用する場合は、“環境変数”にEXTP_CURRENTDIR_HISTORY=YESを設定してください。
プラットフォーム |
システム |
指定形式 (注1) |
---|---|---|
Windows(R) |
デフォルトシステム |
www\xxx\yyy\zzz |
Solaris OE |
デフォルトシステム |
www/xxx/yyy/zzz |
拡張システム (注2) |
www/xxx.システム名/yyy/zzz |
なお、上記ディレクトリ上に標準出力ファイル(stdout)、標準エラー出力ファイル(stderr)を出力します。
Microsoft(R) Visual C++ .NETを使用してビルドされたアプリケーションでは、標準出力または標準エラー出力に向けて出力されたデータが、カレントフォルダ配下のstdoutファイルまたはstderrファイルに出力されません。
これを回避し正しく出力するためには、アプリケーションにおいて以下の対処を実施してください。
プログラムの先頭に以下のコードを追加してください。
freopen("stdout", "w", stdout); freopen("stderr", "w", stderr);
なお、前出口プログラムを使用される場合は、前出口プログラムの先頭に追加してください。前出口プログラムに追加した場合、本処理および後出口プログラムへの対処は必要ありません。
前出口プログラムを使用されない場合は、本処理の先頭に追加し、かつ、初回呼び出し時のみ実行するよう対処してください。
目次
索引
![]() ![]() |