または
Try NowBuy Now
Google

Locations of visitors to this page

wrapper.working.dir プロパティ
wrapper.working.dir プロパティ

コンフィギュレーション・プロパティの概要

wrapper.working.dir プロパティ

警告

このプロパティの説明を読まずに、パラメーターを変更することは絶対にしないで下さい。 設定を間違えると、期待どおりに動作せず、Wrapperの動作不良や不具合の原因となります。 急がば回れ。このプロパティを変更する前に、このページを熟読すれば、結果的に大いに時間の節約にもなります。

作業ディレクトリーの動作についての概要

Wrapperが起動されるとき、 作業ディレクトリーがしっかり指定され一定の状態であることを確認するようにしてください。 こうすることで、ユーザーが予想外の場所からWrapperを起動することに起因する問題や、 それから派生したパスに関するトラブルが一切ないと確実に保証できるので、大いに役立ちます。

Windows:

Windowsプラットフォーム上では、Wrapperスタートアップ時に 「wrapper.exe」が配置されているディレクトリーを、 作業ディレクトリーとして即座に設定します。 これは、Windowsプラットフォーム上で、非常に重大なことです。 コンソールで動作するとき、アプリケーションが起動されると、 通常どおり、カレント・ディレクトリーを作業ディレクトリーとして設定します。 つまり、これはWrapperが起動したときに、それが [bin\wrapper.exe]に対してか、 [.\wrapper.exe]に対してか、 [..\bin\wrapper.exe]に対してか、 どれで動作したのか差が生まれます。 さらに、Windowsサービスとして動作している時は、 作業ディレクトリーは通常どおり、 「Windows system 32」ディレクトリーに設定されます。 常に強制的に作業ディレクトリーを「wrapper.exe」の配置場所に設定することで、 信頼のおける相対パスの利用が可能になります。

Linux/Unix:

Linux/Unixプラットフォーム上では、少し異なる形で動作します。 つまり、Wrapperバイナリはデフォルトで作業ディレクトリーを設定せず、 Wrapper起動に利用されるスクリプトへ一任しています。 これで、UnixユーザーにUnixのもつ利点でもある柔軟性を持たせつつも、 Windowsプラットフォームに存在する同様の問題が、Unixにも存在します。 しかしながら、Wrapperに同梱して提供されているスクリプトを使うことで、 全てのパス問題は、上手く処理されるはずです。

柔軟な工夫:

しかしながら、いくつかのアプリケーションでは、 作業ディレクトリーをWrapperバイナリの配置場所に設定すると、キレイに動作しない可能性も、あります。 1つ例をあげると、 作業ディレクトリーがファイル・システムのルート・ディレクトリーにあることを期待しているアプリケーションの場合です。 Wrapper下で、そのようなアプリケーションを動作させる唯一の方法は、 ルート・ディレクトリーに、Wrapperバイナリ や スクリプトを置くことです。 ほとんどのシステム管理者がしたがるような事ではなくて。

そのようなケースにも対応するために、 [wrapper.working.dir]プロパティを設けました。 問題を避けるために、このプロパティの動作の仕方について、正確に理解することは非常に重要です。

wrapper.conf」の中で、 あるいは、Wrapperバイナリへのパラーメーターとして、 [wrapper.working.dir]プロパティを指定することができます。 しかしながら、Wrapperの全てのプロパティが完全に読み込まれて解釈されるまで、このプロパティは有効になりません。 つまり、この means that 「wrapper.conf」ファイルの配置場所や、 そこで参照されたインクルード・ファイルの配置場所は、どれも、 Wrapperバイナリへの相対参照を利用した配置場所を使って、参照されていなければなりません。 確実にコンフィギュレーション・ファイルがロード(読み込み)されている、ということを確認する必要があります。

コマンドラインから、あるいは、 「wrapper.conf」ファイル内部で、 指定された他のプロパティで定義されたパスは、 [wrapper.working.dir]プロパティで指定された配置場所への相対パスです。

まだ混乱してる?では、順番に例をあげて確認していきましょう。

[wrapper.working.dir]プロパティを設定していない例:

1つの例としてWindowsを例にあげますが、この問題はLinux/Unixプラットフォームであっても全て同様です。

ディレクトリー構造のサンプル:
C:\myapp\
    bin\
        wrapper.exe
    conf\
        wrapper.conf
        include.conf
    lib\
        wrapper.dll
        wrapper.jar
        myapp.jar
    logs\
        wrapper.log

wrapper.working.dir]プロパティを使わずに、 作業ディレクトリーが 「C:\myapp\bin」ディレクトリーに配置されます。 下記のコマンドを使って、Wrapperを起動できます。

Wrapper起動例:
wrapper.exe -c ../conf/wrapper.conf

wrapper.conf」ファイル内で指定するパスは、 以下のように明記されているはずです。 (注意:これは抜粋のため、完全なコンフィギュレーション・ファイルではありません):

コンフィギュレーション・ファイルの設定例:
#include ../conf/include.conf
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/myapp.jar
wrapper.java.library.path.1=../lib
wrapper.pidfile=./wrapper.pid
wrapper.java.pidfile=./java.pid
wrapper.logfile=../logs/wrapper.log

全てのパスが、「wrapper.exe」ファイルの 配置場所への相対パスであることに注目してください。

[wrapper.working.dir]プロパティを利用した設定例:

前述の、同じディレクトリー構造と想定します。

今回、[wrapper.working.dir]プロパティは、 「wrapper.exe」ファイルがある 「bin」 ディレクトリーの親ディレクトリーに設定します。 これは、アプリケーションのHOMEディレクトリーとして、よく利用される配置場所です。 今回のケースでは、「C:\myapp」です。

wrapper.working.dir]プロパティは、 Wrapper起動時に使うコマンドラインから、 あるいは、 「wrapper.conf」ファイル内部で、 設定することができます。 どちらのケースでも、指定されたディレクトリーは、絶対か相対かで書かれていますが、 相対ディレクトリーの場合には、そのディレクトリーは、Wrapperバイナリの配置場所への相対的な位置になります。

この例では、「wrapper.conf」ファイル内部で、 新しい作業ディレクトリーを指定しています。 従って、このケースの場合、Wrapper起動に利用しているコマンドには変更がありません。 つまり、Wrapperに同梱して提供しているバッチファイル や スクリプトは、何も変更せずに、そのまま利用することができます。

wrapper.exe -c ../conf/wrapper.conf

Wrapperが起動されると、 Wrapperバイナリが配置されているディレクトリーを、作業ディレクトリーとして即座に設定します。 その後、作業ディレクトリーを使って、 「wrapper.conf」ファイルや インクルード・ファイルをロード(読み込み)します。 一旦、コンフィギュレーション・ファイルがロード(読み込み)されると、 その作業ディレクトリーは、 [wrapper.working.dir]プロパティで指定された 新しい配置場所へ変更されます。 その後からは、JVM起動を含む全てのパスは、その新しい作業ディレクトリーが使われます。

上記で使われている「wrapper.conf」 の部分は、この例では、以下のように変更されます:

wrapper.working.dir=../
#include ../conf/include.conf
wrapper.java.classpath.1=lib/wrapper.jar
wrapper.java.classpath.2=lib/myapp.jar
wrapper.java.library.path.1=lib
wrapper.pidfile=bin/wrapper.pid
wrapper.java.pidfile=bin/java.pid
wrapper.logfile=logs/wrapper.log

インクルード・ファイルの配置場所や、 [wrapper.working.dir]プロパティは、両方とも、 Wrapperバイナリの配置場所への相対的な位置であることに注目してください。 しかし、全ての他のパスは、今、新しい作業ディレクトリーへの相対的な位置になっています。

コンフィギュレーション・ファイル全体が読み込まれて解釈されるまで適用されないため、 「wrapper.conf」ファイルにある [wrapper.working.dir]プロパティの配置場所は重要ではありません。

問題?:

もしWrapperの設定に関する問題に遭遇した場合には、まず最初にするべきことは、 [wrapper.debug]プロパティを 有効にして、アプリケーションを再始動させることです。 アプリケーションをサービスの1つとして、あるいは、デーモン・プロセスとして動かしてみる前に、 コンソール・アプリケーションとして動作するか、確認してください。

注意

このプロパティは、 コンフィギュレーションのリロード(再読み込み) で、プロパティ値を有効にすることはできません。 変更したプロパティ値を有効にするためには、Wrapperを再起動してください。





User Comments

If you notice something that is incorrect, missing, or simply feel that some part of this page could be explained better, feel free to log in and add a comment. You will need to register before you can log on.

Email:
Password:
Java Service Wrapper Version: 3.4.0