非同期アプリケーション連携実行基盤を利用し、Javaのサーバアプリケーションでログを出力する場合の、環境設定について説明します。
以下に、環境作成の流れを示します。
ログ定義ファイルの作成
ログ定義には管理名をひとつ割り当てます。設定した管理名の数だけ定義を行ってください。
また、運用形態に応じて、ログ定義ファイルを複数作成することも可能です。
なお、ログ定義ファイルの詳細については“19.1 ログ定義ファイルを用いたログ出力”を参照してください。
指定された管理名がログ定義ファイル中に存在しなかった場合、ログ出力クラスの取得はできません。
サーバアプリケーション単位の運用、およびフロー定義単位の運用を行わない場合には、デフォルトのログ定義ファイルを検索します。デフォルトのログ定義ファイルにアプリケーションで利用する管理名を記述してください。デフォルトのログ定義については“■ログの運用形態”を参照してください。
標準ログとユーザログの出力先を同じ出力先に指定し運用した場合、ログが混在することがあります。標準ログの詳細については、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照してください。
また、ログ定義ファイルの内容に誤りがある場合、サーバアプリケーションの動作開始時に、定義ファイルの整合性を確認します。そのため、誤りを示すエラーメッセージは、サーバアプリケーションの開始時に出力されます。
ログ定義ファイルの格納
ログ定義ファイルを、ログの運用形態にあわせて格納します。
格納の仕方によって、ログ定義の有効範囲や優先度が変わります。
詳細については、“■ログの運用形態”を参照してください。
■ログの運用形態
ログの運用形態は、ユーザ任意で選択できます。
以下で、運用形態について説明します。
サーバアプリケーション単位のログ運用
サーバアプリケーション単位にログ定義ファイルを設定します。
ログ定義は、設定したサーバアプリケーションにだけ有効です。
設定方法により、ひとつのワークユニットに配備したすべてのサーバアプリケーションで同一のログ定義を使用することも可能であり、またそれぞれ独立したログ定義を使用することも可能です。
フロー定義単位のログ運用
フロー定義単位にログ定義ファイルを設定します。
ログ定義は、マシン上の、指定されたフロー定義で処理されるサーバアプリケーションすべてに有効です。
デフォルトのログ運用
デフォルトのログ定義ファイルを設定します。
ログ定義は、マシン上のサーバアプリケーションすべてに有効です。
なお、運用中にログ定義ファイルの設定、内容を修正した場合には、ワークユニットを再起動してください。
ポイント
ログ定義ファイルおよびログメッセージファイルの運用方法は、同一となるようにしてください。
ログ定義ファイルを“■デフォルトのログ運用”とし、ログメッセージファイルを“■フロー定義単位の設定”とすることはできません。そのような運用にする場合は、次のいずれかの運用方法で行うことが可能です。
ログ定義ファイルを“■サーバアプリケーション単位のログ運用”にし、初期化パラメタ“uji.logConf”の値にデフォルトログ定義ファイルを指定する。
ログ定義ファイルを“■フロー定義単位のログ運用”とし、デフォルトログ定義ファイルを、フロー定義名のフォルダ配下に格納する。
◆ログ定義ファイルの優先順位
ログ定義ファイルは、以下の優先順で有効となります。
サーバアプリケーション単位のログ運用で設定されたログ定義ファイル
フロー定義単位のログ運用で設定されたログ定義ファイル
デフォルトのログ運用のログ定義ファイル
以下に例として、サーバアプリケーションから管理名“Log1”を指定された場合の、ログ定義の優先順位を示します。
サーバアプリケーション単位のログ運用で設定されたログ定義ファイルに定義してある管理名“Log1”
初期化パラメタで設定されたログ定義ファイル中に指定された“Log1”のログ定義がない場合、または初期化パラメタで設定されたログ定義ファイルが存在しない場合、ログ出力を行うことはできません。
フロー定義単位のログ運用で設定されたログ定義ファイルに定義してある管理名“Log1”
フロー定義単位の定義で設定されたログ定義ファイル中に指定された“Log1”のログ定義がない場合、またはフロー定義単位のログ定義ファイルが存在しない場合、ログ出力を行うことはできません。
デフォルトのログ運用で設定されたログ定義ファイル中の管理名“Log1”の定義
デフォルトのログ定義ファイル中に“Log1”のログ定義がない場合、またはデフォルトのログ定義ファイルを削除した場合、ログ出力を行うことはできません。
次に、運用の詳細について説明します。
■サーバアプリケーション単位のログ運用
初期化パラメタ“uji.logConf”を設定し、その値として任意のフォルダ配下のログ定義ファイルをフルパスで指定することにより、そのファイルの定義内容が有効となります。初期化パラメタの詳細については、“19.5.1.4 初期化パラメタ”を参照してください。
設定されたログ定義ファイルは、初期化パラメタが設定されたサーバアプリケーションだけに有効です。
複数のサーバアプリケーションをひとつのワークユニットに配備する場合、それぞれの初期化パラメタに同一のログ定義ファイルを指定することにより、ひとつのワークユニット中のアプリケーションすべてに共通なログ定義で、ログを出力することが可能です。
また、それぞれの初期化パラメタに異なるログ定義ファイルを指定することにより、サーバアプリケーションごとに異なるログ定義で、ログ出力を行うことが可能です。
注意
サーバアプリケーション単位でのログ出力を行わない場合は、以下のいずれかの方法で初期化パラメタを無効にすることができます。
Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “IJServer名” > “モジュール名” > “EJBアプリケーション名” > [アプリケーション環境定義]タブ > 詳細定義の環境プロパティで、プロパティ名“uji/uji.logConf”の値を消し、ワークユニットの再起動を行ってください。
初期化パラメタ“uji.logConf”を削除し、サーバアプリケーションの再配備およびワークユニットの再起動を行ってください。
■フロー定義単位のログ運用
以下のログ定義ファイル格納フォルダ配下に、“フロー定義名”でフォルダを作成してください。
〔ログ定義ファイル格納フォルダ〕 /opt/FJSVibs/etc/def/log_inf/user |
作成したフォルダ配下に、以下のファイル名でログ定義ファイルを格納してください。
〔固定ログ定義ファイル名〕 logConf.xml |
設定されたログ定義ファイルは、作成したフォルダと同一名のフロー定義で使用されるすべてのサーバアプリケーションに有効です。
以下に、フロー定義名が“FlowManagementClass”で、かつフロー定義単位のログ出力を行う場合の、ログ定義ファイルのパス指定の例を示します。
〔ログ定義ファイルパス例〕 /opt/FJSVibs/etc/def/log_inf/user/FlowManagementClass/logConf.xml |
注意
フロー定義単位でのログ出力を行わない場合には、以下の設定を行ってください。
サーバアプリケーション単位のログ定義を有効にする。
ログ定義ファイル格納フォルダ配下の“フロー定義名”フォルダごと削除する。(注)
注)ログメッセージファイルの運用形態を“■フロー定義単位の設定”にしている場合には、削除しないでください。この場合、ログ定義ファイルの運用形態は、“■サーバアプリケーション単位のログ運用”または“■フロー定義単位のログ運用”だけが設定が可能です。ログ定義ファイルの運用形態を“■デフォルトのログ運用”とする場合には、以下のいずれかの方法を用いてください。
ログ定義ファイルの運用形態を“■サーバアプリケーション単位のログ運用”とし、初期化パラメタ“uji.logConf”にデフォルトログ定義ファイルを指定してください。
ログ定義ファイルの運用形態を“■フロー定義単位のログ運用”とし、“フロー定義名”フォルダ配下に、デフォルトログ定義ファイルを格納してください。
■デフォルトのログ運用
以下のデフォルトログ定義ファイルを編集してください。
〔デフォルトログ定義ファイル〕 /opt/FJSVibs/etc/def/log_inf/user/logConf.xml |
設定されたログ定義ファイルは、ひとつのマシン上のすべてのフロー定義で使用されるサーバアプリケーションに有効です。
なお、デフォルトログ定義ファイルはログ出力のデフォルト動作となりますので、サーバアプリケーションに設定した管理名の定義を、常にログ定義ファイルに記述することを推奨します。
注意
サーバアプリケーション単位の定義、またはフロー定義単位のログ定義が設定されている場合、そちらの定義が有効となります。
ログメッセージファイルの運用形態が“■フロー定義単位の設定”の場合、デフォルトのログ運用はできません。その場合の対処については、“■フロー定義単位のログ運用”の注を参照してください。
■ログの運用例
ログの運用例を以下に説明します。
◆通常時は、デフォルトの定義を用いてシステムで共通のログ出力を行う運用を行い、保守時には、サーバアプリケーション単位でより詳細なログ出力を行うためにログ出力レベルを変更する場合
サーバアプリケーションごとに異なる管理名を設定する。
通常時は、デフォルトログ定義ファイルに各アプリケーションで設定した管理名で定義を記述し、定義内容は共通とする。
保守時は、サーバアプリケーション単位の定義のログ定義ファイルを作成し、各アプリケーションで使用する管理名のログ定義を記述する。その際、任意の管理名のログ出力レベルをカスタマイズする。
初期化パラメタ“uji.logConf”の設定をし、配備ファイルの再配備およびワークユニットの再起動を行う。
元の通常運用に戻す際には、設定した初期化パラメタをInterstage管理コンソールから無効にし、ワークユニットの再起動を行う。
初期化パラメタを無効にする方法の詳細については、“■サーバアプリケーション単位のログ運用”の注意事項を参照してください。
◆通常時は、デフォルトの定義を用いてシステムで共通のログ出力を行う運用を行い、保守時には、フロー定義単位で、ログの出力箇所または出力レベルの変更などのカスタマイズを行う場合
サーバアプリケーションごとに異なる管理名を設定する。
通常時は、デフォルトのログ定義ファイルに各アプリケーションで設定した管理名で定義を記述し、定義内容は共通とする。
保守時は、フロー定義単位でのログ定義を設定し、フロー定義に関連付けられたアプリケーションで使用する管理名のログ定義を記述する。その際、任意の管理名のログ定義をカスタマイズする。ワークユニットの再起動を行うことで、フロー定義単位でのログ定義が有効となる。
元の通常運用に戻す際には、作成したフロー定義名のフォルダを削除し、ワークユニットの再起動を行う。
フロー定義単位でのログ定義を無効にする方法の詳細については、“■フロー定義単位のログ運用”の注意事項を参照してください。
ログメッセージファイルとは、サーバアプリケーション内でフォーマット付きメッセージログ出力を行う際の、指定メッセージを記述するファイルのことを指します。
ログメッセージファイルの記述の詳細については、“19.3.1 ログメッセージファイルの記述”を参照してください。
以下に、環境作成の流れを示します。
ログメッセージファイルの作成
使用するメッセージ本文をファイルに記述します。
運用形態に応じて、ログメッセージファイルを複数作成することも可能です。
ログメッセージファイルの格納
ログメッセージファイルを、任意のログの運用形態にあわせて格納します。
格納の仕方によって、ログ定義の有効範囲や優先度が変わります。
詳細については、“■ログメッセージファイルの運用形態”を参照してください。
■ログメッセージファイルの運用形態
ログメッセージファイルは、ログ定義ファイルと同様に以下の単位で設定できます。
以下に、運用形態について説明します。
サーバアプリケーション単位の設定
配備するサーバアプリケーション単位にログメッセージファイル名を設定します。
ログメッセージファイルは、設定したサーバアプリケーションだけに有効です。
設定方法により、ひとつのワークユニットに配備したすべてのサーバアプリケーションで同一のログメッセージファイルを使用することも可能であり、またそれぞれ独立したログメッセージファイルを使用することも可能です。
フロー定義単位の設定
フロー定義単位にログメッセージファイルを設定します。
設定したログメッセージファイルは、マシン上の、指定されたフロー定義で処理されるサーバアプリケーションすべてに有効です。
デフォルトの設定
デフォルトのログメッセージファイルを設定します。
ログメッセージファイルは、マシン上のサーバアプリケーションすべてに有効です。
ログメッセージファイルは、以下の優先順で有効となります。
サーバアプリケーション単位に設定されたログメッセージファイル
フロー定義単位に設定されたログメッセージファイル
デフォルトの設定のログメッセージファイル
なお、運用中にログメッセージファイルの設定方法、内容を修正した場合には、ワークユニットを再起動してください。
注意
フォーマット付きメッセージログ出力で使用するメッセージが、使用するログメッセージファイルに記述されていない場合、エラーとなります。
高信頼性ログでは、フォーマット付きメッセージログ出力は使用できないため、ログメッセージファイルの設定は不要です。
ポイント
ログ定義ファイルおよびログメッセージファイルの運用方法は、同一となるようにしてください。
ログ定義ファイルを“■フロー定義単位のログ運用”とし、ログメッセージファイルを“■デフォルトの設定”とすることはできません。そのような運用にする場合は、次のいずれかの運用方法で行うことが可能です。
ログメッセージファイルを“■サーバアプリケーション単位の設定”にし、初期化パラメタ“uji.logresource”の値にデフォルトログメッセージファイルを指定する。
ログメッセージファイルを“■フロー定義単位の設定”とし、デフォルトログメッセージファイルを、フロー定義名のフォルダ配下に格納する。
■サーバアプリケーション単位の設定
初期化パラメタ“uji.logresource”に値を設定し、ログメッセージファイル名をユーザ任意で指定する方法です。
設定されたログメッセージファイル名は、初期化パラメタが設定されたサーバアプリケーションだけに有効です。
複数のサーバアプリケーションをひとつのワークユニットに配備する場合、それぞれの初期化パラメタに同一のログメッセージファイル名を指定することにより、ひとつのワークユニット中のアプリケーションすべてに共通なログメッセージファイルを使用することが可能です。
また、それぞれの初期化パラメタに異なるログメッセージファイル名を指定することにより、サーバアプリケーションごとに異なるログメッセージファイルを使用することが可能です。
以下のログメッセージファイル格納フォルダ配下に、初期化パラメタ“uji.logresource”で指定したファイル名のログメッセージファイルを格納してください。
〔ログメッセージファイル格納フォルダ〕 /opt/FJSVibs/etc/def/log_inf/user |
以下に、ログメッセージファイル名が“FlowManagementLogresource.xml”という場合の例を示します。
〔初期化パラメタに設定する値〕 FlowManagementLogresource 〔ログメッセージファイルの格納パス〕 /opt/FJSVibs/etc/def/log_inf/user/FlowManagementLogresource.xml |
初期化パラメタの詳細については、“19.5.1.4 初期化パラメタ”を参照してください。
注意
サーバアプリケーション単位にユーザ任意のログメッセージファイル名を指定しない場合は、以下のいずれかの方法で初期化パラメタの値を無効にすることができます。
Interstage管理コンソールの[Interstage Application Server] > [システム] > [ワークユニット] > “IJServer名” > “モジュール名” > “EJBアプリケーション名” > [アプリケーション環境定義]タブ > 詳細定義の環境プロパティで、プロパティ名“uji/uji.logresource”の値を消し、ワークユニットの再起動を行ってください。
初期化パラメタ“uji.logresource”を削除し、サーバアプリケーションの再配備およびワークユニットの再起動を行ってください。
■フロー定義単位の設定
以下のログメッセージファイル格納フォルダ配下に、“フロー定義名”でフォルダを作成してください。
〔ログメッセージファイル格納フォルダ〕 /opt/FJSVibs/etc/def/log_inf/user |
作成したフォルダ配下に、固定名のログメッセージファイルを格納することで、作成されたフォルダと同一名のフロー定義で使用されるサーバアプリケーションにだけ有効となります。
〔ログメッセージファイル名〕 logresource.xml |
以下に、フロー定義名が“FlowManagementClass”で、かつフロー定義単位のログメッセージファイルの指定を行う場合のログメッセージファイルパス例を示します。
〔ログメッセージファイルパス例〕 /opt/FJSVibs/etc/def/log_inf/user/FlowManagementClass/logresource.xml |
注意
フロー定義単位でのログメッセージファイルの使用を行わない場合には、以下の設定を行ってください。
サーバアプリケーション単位のログメッセージファイル名指定を有効にする。
ログメッセージファイル格納フォルダ配下の“フロー定義名”フォルダごと削除する。(注)
注)ログ定義ファイルの運用形態を“■フロー定義単位のログ運用”にしている場合には、削除しないでください。この場合、ログメッセージファイルの運用形態は、“■サーバアプリケーション単位の設定”または“■フロー定義単位の設定”だけ設定が可能です。ログメッセージファイルの運用形態を“■デフォルトの設定”とする場合には、以下のいずれかの方法を用いてください。
ログメッセージファイルの運用形態を“■サーバアプリケーション単位の設定”とし、初期化パラメタ“uji.logresource”にデフォルトログメッセージファイルを指定してください。
ログメッセージファイルの運用形態を“■フロー定義単位の設定”とし、“フロー定義名”フォルダ配下に、デフォルトログメッセージファイルを格納してください。
■デフォルトの設定
以下のデフォルトログメッセージファイルを編集することで、ひとつのマシン上の、すべてのフロー定義に共通なログメッセージファイルをカスタマイズできます。
〔デフォルトログメッセージファイル〕 /opt/FJSVibs/etc/def/log_inf/user/logresource.xml |
注意
サーバアプリケーション単位、またはフロー定義単位のログメッセージファイル指定がされている場合、そちらの定義が有効となります。
ログ定義ファイルの運用形態が“■フロー定義単位のログ運用”の場合、デフォルトの設定はできません。その場合の対処については、“■フロー定義単位の設定”の注を参照してください。
ログ機能では、出力する情報に重要度を表すレベルを設定することができます。また、一定以上のレベルのログだけを出力するように設定できます。
ログ出力レベルを設定することにより、デバッグ時には多くの情報をログに出力し、本稼働時には重要なログに絞って出力するという制御が可能になります。
ログの出力レベルは整数で表され、0が最重要であり、数が大きくなるほど重要度が下がります。
ログ出力レベルを設定する場合には、サーバアプリケーション内で、ユーザ任意のログレベルでログを出力するようにしてください。
なお、レベルの詳細については、“19.1.7 ログ出力レベルの指定”を参照してください。
また、高信頼性ログでは、ログの出力レベルを設定することはできません。
Interstage Studio連携機能で、アプリケーション連携フロープロジェクトを作成した際に生成されるejb-jarのdeployment descriptorの環境プロパティに初期化パラメタを設定することにより、ログ機能の動作を変更することができます。
以下に、アプリケーション連携実行基盤で使用可能な初期化パラメタの一覧を示します。環境プロパティのエントリ名は“uji/xxx”とします。ここで、“xxx”は初期化パラメタ名です。エントリの型はjava.lang.Stringを指定します。
No. | 初期化パラメタ名 | 値 | 説明 |
---|---|---|---|
1 | uji.logConf | サーバアプリケーション単位でログ出力する際のログ定義ファイル名(フルパス) (注1) | サーバアプリケーション単位のログ出力を行う場合に使用します。 |
2 | uji.logresource | ログメッセージファイル名 | フォーマット付きメッセージログ出力用のメッセージを定義したログメッセージファイル名を、拡張子を除いて指定します。 指定例:myResource |
3 | uji.systemID | 7文字以内の英数字を指定します | 本値は、通信ログおよび性能ログ出力時のセション情報のサブシステム名となります。 省略時には、セション情報にサブシステム名が出力されません。 |
注1) パスの区切り文字にはスラッシュ(/)を使用します。
これらの初期化パラメタを設定し有効にする場合、配備ファイルをワークユニットに再配備してください。
また、高信頼性ログでは、初期化パラメタ“uji.systemID”の設定は無効となります。
■初期化パラメタを、テキストエディタで直接編集する場合
以下に、テキストエディタで編集する場合の例を示します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> <ejb-jar> <description>Application Framework Runtime and Application</description> <display-name>TEST</display-name> <enterprise-beans> <message-driven> (注1) <description>Application Framework Runtime MDB</description> <display-name>TESTRuntimeEJB</display-name> <ejb-name>TESTRuntimeEJB</ejb-name> <ejb-class>com.fujitsu.interstage.apfw.runtime.FlowCtrl</ejb-class> <transaction-type>Container</transaction-type> <message-driven-destination> <destination-type>javax.jms.Queue</destination-type> </message-driven-destination> <env-entry> (注2) <env-entry-name>uji/uji.logConf</env-entry-name> (注3) <env-entry-type>java.lang.String</env-entry-type> (注4) <env-entry-value>/home/apfw/log1.xml</env-entry-value> (注5) </env-entry> (注2) |
注1)初期化パラメタの設定は“message-driven”タグ配下に記述します。
注2)初期化パラメタひとつにつき“env-entry”タグを記述します。初期化パラメタの設定は“env-entry”タグ配下に設定してください。
注3)初期化パラメタ名は“env-entry-name”タグに記述します。
注4)エントリの型は“env-entry-type”タグに記述します。必ず、“java.lang.String”としてください。
注5)初期化パラメタの値は“env-entry-value”タグに記述します。
本例では、以下の設定を行っています。
サーバアプリケーション単位のログ出力を行い、そのログ定義ファイルを“/home/apfw/log1.xml”とします。
サーバアプリケーション単位のログメッセージファイルの設定を行い、そのログメッセージファイル名を“resource1.xml”とします。
通信ログおよび性能ログ出力時のセション情報のサブシステム名に“ID001”を出力します。
■初期化パラメタを、Interstage StudioのDDエディタを使用して編集する場合
以下に、Interstage Studioの設定例を示します。
アプリケーション連携フロープロジェクトを作成した際に生成される“ejb-jar.xml”をダブルクリックし、“環境プロパティ”タブを選択し、初期化パラメタを設定します。
本例では、以下の設定を行っています。
サーバアプリケーション単位のログ出力を行い、そのログ定義ファイルを“/home/apfw/log1.xml”とします。
サーバアプリケーション単位のログメッセージファイルの設定を行い、そのログメッセージファイル名を“resource1.xml”とします。
通信ログおよび性能ログ出力時のセション情報のサブシステム名に“ID001”を出力します。
環境プロパティを設定した後に、“ファイル”の“上書き保存(S) ejb-jar.xml”をクリックし、修正した“ejb-jar.xml”を保存してください。
ログ機能を使用するために、サーバアプリケーションを配備したワークユニットのクラスパスに、以下の環境変数を追加する必要があります。
◆設定箇所
以下のどちらかに設定します。
Interstage管理コンソールの[システム] > [環境設定]タブ > [J2EEプロパティ]のクラスパス
Interstage管理コンソールの[システム] > [ワークユニット] > “IJServer名” > [環境設定]タブ > [ワークユニット設定]のクラスパス
◆設定するクラスパス
/opt/FJSVwebc/lib/uji.jar
/opt/FJSVapcef/lib/ujief.jar
/opt/FJSVapclg/lib/ujilog.jar