Interstage Application Server OLTPサーバ運用ガイド |
目次
索引
![]() ![]() |
第2章 OLTPサーバの設計 | > 2.1 ワークユニットの設計 | > 2.1.1 ワークユニットを利用したアプリケーションの実行環境 |
ワークユニットで起動したアプリケーションが動作する作業ディレクトリ(カレントディレクトリ)を指定することができます。
カレントディレクトリにより、ワークユニット配下で動作するアプリケーションはそれぞれ異なった作業ディレクトリで動作することが可能となります。
UNIXの場合、アプリケーションが異常終了しコアファイルを出力した場合、それぞれのカレントディレクトリ配下に出力されます。
カレントディレクトリはワークユニット定義で指定できます。アプリケーションは以下の構成のディレクトリで動作します。
プラットフォーム |
システム |
指定形式 (注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ファイルにデータが出力されません。
Java言語でファイルにデータを出力する場合、使用者が標準出力、標準エラー出力をファイルに割り当てるようにプログラミングする必要があります。
なお、CORBAアプリケーションで標準出力および標準エラー出力をstdoutファイル,stderrファイルに割り当てたくない場合、ワークユニット定義の[Control Option]セクションまたは[Application Program]セクションのEnvironment Variable:ステートメントに以下の環境変数を指定してください。stdoutファイルおよびstderrファイルは出力されなくなります。
INTERSTAGE_WU_STDOUT_REDIRECTION = OFF
プラットフォーム |
システム |
指定形式 (注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);
なお、前出口プログラムを使用される場合は、前出口プログラムの先頭に追加してください。前出口プログラムに追加した場合、本処理および後出口プログラムへの対処は必要ありません。
前出口プログラムを使用されない場合は、本処理の先頭に追加し、かつ、初回呼び出し時のみ実行するよう対処してください。
目次
索引
![]() ![]() |