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

第2章 OLTPサーバの設計> 2.1 ワークユニットの設計> 2.1.1 ワークユニットを利用したアプリケーションの実行環境

2.1.1.4 カレントディレクトリ

 ワークユニットで起動したアプリケーションが動作する作業ディレクトリ(カレントディレクトリ)を指定することができます。
 カレントディレクトリにより、ワークユニット配下で動作するアプリケーションはそれぞれ異なった作業ディレクトリで動作することが可能となります。

UNIXの場合

 UNIXの場合、アプリケーションが異常終了しコアファイルを出力した場合、それぞれのカレントディレクトリ配下に出力されます。
 カレントディレクトリはワークユニット定義で指定できます。アプリケーションは以下の構成のディレクトリで動作します。

CORBAアプリケーションおよびトランザクションアプリケーションの指定形式

プラットフォーム

システム

指定形式 (注1)

Windows(R)

xxx\yyy\zzz

Solaris OE
Linux

デフォルトシステム

xxx/yyy/zzz

拡張システム (注2)

xxx/yyy.システム名/zzz

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

 標準出力には、stdoutファイルが割り当てられています。サーバアプリケーションで標準出力にデータを出力した場合に、出力先として使用されます。

 標準エラー出力には、stderrファイルが割り当てられています。サーバアプリケーションで標準エラー出力にデータを出力した場合に、出力先として使用されます。
 OSの標準入出力ライブラリの仕様により、標準出力及び標準エラー出力に出力したデータは一旦標準入出力ライブラリにバッファリングされます。
 バッファリングされたデータを確実にstdout,stderrファイルに出力させるためには標準出力および標準エラー出力に対してフラッシュを行う必要があります。
 たとえばC言語の場合は、fflush(stdout),fflush(stderr)を発行してください。フラッシュを行わない場合は標準入出力ライブラリによってバッファリングされたデータがフラッシュされるまでstdout,stderrファイルにデータが出力されません。

 また、Java言語およびCOBOL言語の場合、stdoutファイルおよびstderrファイルは作成されますが、ファイルにデータは出力されません。
 また、Java言語の場合、stdoutファイルおよびstderrファイルは作成されますが、ファイルにデータは出力されません。

 Java言語でファイルにデータを出力する場合、使用者が標準出力、標準エラー出力をファイルに割り当てるようにプログラミングする必要があります。

 COBOLアプリケーションでDISPLAY文を使用している場合は、翻訳時に翻訳オプション“SSOUT(環境変数情報名)”を指定し、ワークユニット定義の[Control Option]セクションまたは[Application Program]セクションのEnvironment Variable:ステートメントで環境変数情報名にデータ出力先のファイル名を指定してください。

 なお、CORBAアプリケーションで標準出力および標準エラー出力をstdoutファイル,stderrファイルに割り当てたくない場合、ワークユニット定義の[Control Option]セクションまたは[Application Program]セクションのEnvironment Variable:ステートメントに以下の環境変数を指定してください。stdoutファイルおよびstderrファイルは出力されなくなります。

 INTERSTAGE_WU_STDOUT_REDIRECTION = OFF

EJBアプリケーションの場合

プラットフォーム

システム

指定形式 (注1)

Windows(R)

デフォルトシステム

www\xxx\yyy\zzz

Solaris OE
Linux

デフォルトシステム

www/xxx/yyy/zzz

拡張システム (注2)

www/xxx.システム名/yyy/zzz

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

 なお、上記ディレクトリ上に標準出力ファイル(stdout)、標準エラー出力ファイル(stderr)を出力します。

Microsoft(R) Visual C++ .NETを使用して、トランザクションアプリリケーションを作成する場合の注意点

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

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

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

 なお、前出口プログラムを使用される場合は、前出口プログラムの先頭に追加してください。前出口プログラムに追加した場合、本処理および後出口プログラムへの対処は必要ありません。
 前出口プログラムを使用されない場合は、本処理の先頭に追加し、かつ、初回呼び出し時のみ実行するよう対処してください。


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

Copyright 2003 FUJITSU LIMITED