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