概要:コンフィギュレーションファイルディレクティブ

Java Service Wrapper がコンフィギュレーションファイルを解釈する際に、ほとんどの場合、 「#」文字に続く全てのテキスト文字は、コメントとして無視されます。 しかしながら、そのルールに少し例外があります。

Wrapper は従来からの方式で、コンフィギュレーション ファイルをロード(読み込み)して処理する、 特別なディレクティブを定義するC言語パターンを使用してきました。

コンフィギュレーション ファイルのエンコード指定

Wrapper バージョン 3.5.0 から、 個別のコンフィギュレーションファイルのエンコードの指定が可能になりました。 最もポータブルなエンコードは、UTF-8 ですが、 他のエンコードは、一部のプラットフォーム上でサポートされています。

エンコード ディレクティブは、コンフィギュレーションファイルの 一行目で指定しなければなりません。 Wrapper では、ディレクティブが不足しているファイルがあれば、その警告をログに出力します。 インクルードファイル(カスケード形式)に異なるエンコードを指定することが可能です。

UTF-8 設定例:
#encoding=UTF-8

wrapper.debug=FALSE
...

コンフィギュレーションファイルのインクルードファイル(カスケード形式)

コンフィギュレーションを分割して複数のコンフィギュレーション ファイルにすることが可能であり、 メインのコンフィギュレーションファイルにインクルードファイル(カスケード形式)として含めることができます。 詳しくは『コンフィギュレーションファイルのカスケード(インクルード ファイル)』ページをご覧ください。

設定例:(インクルードファイルの指定)
#include ../conf/wrapper-settings.conf

Wrapper は、何かの理由で参照できない/存在しないインクルードファイル (カスケード形式)があった場合でも、警告は出さずに意図的に静かにスキップします。 これは、むしろ、プラットフォーム別に特定のコンフィギュレーションを用意したり、 既存プロパティ値の任意的な上書きを可能にできるので、とてもパワフルな機能です。

しかし、一部のケースでは、アプリケーションの正しいオペレーションの一部として、 インクルードファイル(カスケード形式)を必須にしたい場合もあります。 Wrapper バージョン 3.5.5から、必須のインクルードファイル(カスケード形式)を指定することが可能で、 そのファイルが不足していた場合にエラーを表示して、Wrapper の起動を阻止することができます。

設定例:(インクルードファイルの必須指定)
#include.required ../conf/wrapper-settings.conf

インクルード ファイル(カスケード形式)のデバッグ

Wrapper バージョン 3.3.0 から、何が含まれている/含まれていないを正確に探して、「#include」ディレクティブの動作方法をデバッグすることが可能になりました。 詳しくは『インクルードファイル(カスケード形式)のデバッグ メッセージ有効化』ページをご覧ください。

設定例:
#include.debug

プロパティ値のデバッグ

Wrapper バージョン 3.5.4 から、 他の宣言によってプロパティが上書きされたとき、または値が固定されているためにプロパティを 設定できないときに、スタートアップ時に Wrapper がメッセージを出力するように設定出来ます。

Wrapper バージョン 3.5.27 は、その機能を改善します。今では、そのメッセージのログレベルをコントロールでき、Wrapper が出力後に終了するかしないかを設定できます。 また、コンフィギュレーションファイルのセクションごとに異なる設定を適用することもできます。 そのため、一部で制限レベルを高く、或いは低くすることができます。 これは、2つの新しいディレクティブを使用して達成できます。

プロパティの性質によって、Wrapper は異なるメッセージを出力します。 これらのメッセージは、 下記に説明されています。

注意

このメッセージは、デフォルトで『debug』モードでしかログ化されません。 これらのメッセージは、オプションのカスケード形式コンフィギュレーションファイル(インクルードファイルまたはその他の方法を使用してプロパティ値を上書きするのが一般的な方法なので、『debug』モードでのみログ化されます。

警告

wrapper.name]と[wrapper.displayname]プロパティは UNIX シェルスクリプトで定義されているため、このスクリプトを Wrapper 起動するために使い、 上記ディレクティブを使用すると、その変数もデフォルトでコンフィギュレーションファイルに 定義されているため、警告メッセージが表示されることがあります。

コンフィギュレーションファイルの冗長プロパティーを削除する、或いはスクリプトファイルの「#APP_NAME_PASS_TO_WRAPPER=false」行のコメント記号(#)を外すことでこれらのメッセージを これらのメッセージの表示を防ぐことができます。

2つ目のオプションは、スクリプトがこれらのパラメータを Wrapper に渡さないようにします。 スクリプトを Wrapper にそのパラメータを渡さないようにします。 [APP_NAME]や[APP_LONG_NAME]プロパティは、スクリプトの正常な動作に必要ですので決して無効にしないように注意してください。

表示されるメッセージ

プロパティーに特定の値がある理由を理解するために、その値が変更されたときや、逆に 値を上書きしようとして無視された時に視覚化すると便利です。

次のメッセージが表示されることがあります。

重複したプロパティ:

Wrapper は、特定のプロパティの一番最後に定義されたインスタンスを 使用するように設定されています。 これは、デフォルト値を設定して、システムに固有の値を含むオプションのインクルードファイルを 参照するのでとても強力です。

プロパティ再定義の例:
STATUS | wrapper  | 「foo.bar」プロパティは、コンフィギュレーション・ファイルの行番 #8 で再定義されました: /home/wrapper/conf/wrapper.conf
STATUS | wrapper  |   古い値 foo.bar=123
STATUS | wrapper  |   新しい値 foo.bar=XYZ

コマンドラインのプロパティ:

Wrapper コマンドラインで指定されたプロパティ値は「最終値」であり、 つまり、コンフィギュレーションファイルの値で変更したり上書きすることはできません。 実際のコンフィギュレーションファイルを変更することなく、ユーザーがテスト値で Wrapper を動作させることができ、とても便利です。

最終的プロパティ再定義の例:
STATUS | wrapper  | 「foo.bar」プロパティは Wrapper コマンドライン上で定義され、上書きできません。
STATUS | wrapper  |   コンフィギュレーション・ファイルの行番 #8 での再定義を無視: /home/wrapper/conf/wrapper.conf
STATUS | wrapper  |   修正された値 foo.bar=123
STATUS | wrapper  |   無視された値 foo.bar=XYZ

内部環境変数:

Wrapper は、いくつかの内部環境変数を設定します。 それらは、最終的プロパティで設定されます。 もし、ユーザーコンフィギュレーションファイルでどれか環境変数の設定を試みても、Wrapper はそれを無視して、Wrapper によって設定される値を持続します。

最終的プロパティ再定義の例:
STATUS | wrapper  | 「set.WRAPPER_ARCH」プロパティは Wrapper により内部的に定義され、上書きできません。
STATUS | wrapper  |   コンフィギュレーション ファイルの行番 #10 での再定義を無視: /home/wrapper/conf/wrapper.conf
STATUS | wrapper  |   修正された値 set.WRAPPER_ARCH=x86
STATUS | wrapper  |   無視された値 set.WRAPPER_ARCH=special

#properties.on_overwrite.loglevel

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

このディレクティブは、ログ化されるメッセージのログレベルを設定します。

有効な値:

  • AUTO」: 自動的にログレベルを解決する値(下記を参照)。

  • NOTICE」:「NOTICE」ログレベルでログ化します。

  • ADVICE」:「ADVICE」ログレベルでログ化します。

  • FATAL」:「FATAL」ログレベルでログ化します。

  • ERROR」:「ERROR」ログレベルでログ化します。

  • WARN」:「WARN」ログレベルでログ化します。

  • STATUS」:「STATUS」ログレベルでログ化します。

  • INFO」:「INFO」ログレベルでログ化します。

  • DEBUG」:「DEBUG」ログレベルでログ化します。

デフォルト値は「AUTO」で、あるプロパティが同じ コンフィギュレーションファイル、およびより低いインクルード深層にあるファイルにより前の定義が上書きされるときに「WARN」に解決されます。 カスタマイズ時に埋め込まれている 最終的(final)プロパティが上書きされるときにも「WARN」に解決されます。 その他のケースは常に「DEBUG」に解決されます。

注意

Wrapper バージョン 3.5.36 までは、このディレクティブのデフォルト値は「DEBUG」でした。

設定例(上書きされたプロパティを「WARN」レベルでログ化します):
#properties.on_overwrite.loglevel=WARN

注意

Wrapper バージョン3.5.27より、「#properties.debug」ディレクティブの使用を非推奨にし、 代わりにデバッグプロパティの細かい制御を提供する新しいディレクティブを使用します。 下位互換性のため、「#properties.debug」は、「#properties.on_overwrite.loglevel=STATUS」と同じ効果を持ちます。

#properties.on_overwrite.exit

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

このディレクティブは、一つでもプロパティが上書きされたら Wrapper が終了するかしないか指定します。

有効な値:

  • TRUE」:このディレクティブの後のプロパティが上書きされると、Wrapper を終了するように設定します。

  • FALSE」このディレクティブの後のプロパティが上書きされれても、Wrapper を終了しないるように設定します。

デフォルト値は FALSE です。

設定例(プロパティが上書きされると終了します):
#properties.on_overwrite.exit=TRUE

使用方法

各ディレクティブは、コンフィギュレーションファイルに導入されている行からファイルの最後まで有効で、或いは同じ名前のディレクティブが検出されるまで有効です。それが検出されると、新しいディレクティブの値がコンフィギュレーションファイルの新しいセクションで有効になります。

#properties.on_overwrite.exit]を「TRUE」に設定すると、[#properties.on_overwrite.loglevel]の値は自動的に「FATAL」に上げられます(FATAL 以下に設定している場合)。これは、[#properties.on_overwrite.exit]を「FALSE」に設定するまで、そのまま留まります。

例:
wrapper.name=@app.name@
wrapper.lang.folder=../lang
...

#properties.on_overwrite.loglevel=STATUS
wrapper.lang.folder=../../lang
...

#properties.on_overwrite.loglevel=INFO
wrapper.name=newAppName
...

#properties.on_overwrite.exit=TRUE
wrapper.app.parameter.3=start
...

wrapper.app.parameter.3=start_app
...

#properties.on_overwrite.exit=FALSE
...

上記設定では、[wrapper.lang.folder]は「STATUS」レベルでログ化され、[wrapper.name]は「INFO」レベルで、 [wrapper.app.parameter.3]は「FATAL」レベルでログ化され、Wrapper を終了させます。 『#properties.on_overwrite.exit=FALSE』以降のプロパティは Wrapper を終了せず、 「INFO」レベルでログ化されます(以前設定した通り)。

注意

バージョン 3.5.27 より、 コマンドラインが重複しているプロパティを含む場合、或いは内部環境変数を設定使用とするときに Wrapper がメッセージを記録します。

そのメッセージが記録されるログレベルや記録後に Wrapper は終了するかを制限するために[#properties.on_overwrite.loglevel]と[#properties.on_overwrite.exit]を使うこともできます。コンフィギュレーションファイルに複数のディレクティブが設定されている場合、各タイプの最後のディレクティブが適用されます。

参照: ログレベル