wrapper.javaio.use_thread プロパティ

対応バージョン :3.5.21
対応エディション :プロフェッショナル版スタンダード版コミュニティー版
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティには、JVMからのコンソール出力処理に専用スレッドを「利用する(True)/利用しない(False)」を設定します。 従来からの方式で、そのような出力は全て、Wrapperのメインスレッド内で処理されます。 しかしながら、重いI/O(入出力)を読み込んだサーバー上で、ディスクへログ出力の書き出し中に、メインスレッドがブロック(一時中止)することがあります。

Wrapperのデバッグログレベルが設定されていない場合、 そのメインループはJVMコンソール出力以外では大きなログを取らないため、 この出力を他のスレッドへ動かすことで、Wrapperのメインスレッドが遅延なく常に確実に動作させることができます。

専用スレッドは、非常に少ない遅延で、java出力を保留して処理するようにもできます。

もし、JVMとWrapper間のパイプのバッファが満杯になると、保留にしたコンソール出力を処理する機会が得られるまで、JVMがブロック(一時停止)します。 もし、ご利用のアプリケーションがとても長いラインや大量の出力を記録している場合、パイプバッファサイズを増やすことで、良い結果を得られるかもしれません。 さらに詳細は、[wrapper.javaio.buffer_size]プロパティをご覧ください。

コンソールログ出力をレンダリングするシステムでは多くのオーバーヘッドがありますのでご注意ください。 特にWindowsでは当てはまります。 ご利用のアプリケーションが大量のコンソール出力を記録するパフォーマンス問題が上がった場合、 [wrapper.console.loglevel]プロパティを「STATUS」に設定して、 ログ出力を減らす、またはコンソールログ出力を無効にすることをお薦めします。

専用スレッドを利用する欠点は:

  • メモリーやリソース要件がやや高くなる
  • 2つのスレッドによってログ化されたエントリーが上手く同期しないため、 特にスタートアップ時に、デバッグログ出力を読み込むのが大変になることがある。

ほとんどのユーザーには専用スレッドを必要としませんので、デフォルト値は「FALSE」です。

設定例:(専用スレッド不用)
wrapper.javaio.use_thread=FALSE

注意

このプロパティは、廃止された [wrapper.use_javaio_thread]プロパティ (Wrapperバージョン3.5.8で導入) の置き換えです。 互換性の都合で、廃止されたプロパティのデフォルト値は、このプロパティの値になります。

参照: コンソール

参照: コマンドファイル