PEXA Serviceについて

チュートリアル

テストツール

定義ファイル

基本プロセス

拡張プロセス

Condition

セッション

モデル

リファレンス

環境設定

目次

  1. はじめに
  2. サービスの実行時ログを出力するには
  3. ログ出力設定の実行中切替
  4. Serviceログエントリファイルの全体構成
  5. 設定例:
  6. Serviceログエントリファイルのサンプル


はじめに

このドキュメントは、PEXAサービスフレームワークで使用するServiceログエントリファイルについて解説する物です。

Serviceログエントリファイルは、サービスの動作確認のためのログ出力を行う対象を指定するためのファイルです。
ログ出力させたい対象のサービス名、プロセス名、セッションキーを指定することが出来ます。

記述形式はPEXA独自のプロパティ形式となります。
このプロパティ形式の書式については、リファレンスを参照して下さい。


サービスの実行時ログを出力するには

サービスの実行時ログ出力機能は、デフォルトではオフになっています。
ログ出力機能をONにするためには、JavaVMの起動時に以下のようなパラメータを指定する必要があります。

この指定はClientサイドのサービスであればClient実行JavaVMに指定する必要があります。
Serverサイドのサービスであればアプリケーションサーバー実行JavaVMに指定する必要があります。

サービス実行時のログ出力モードの指定

JavaVMの起動引数として設定する、サービスのログ出力モードの指定です。
以下のような指定方法になります。

記述形式:

	-Dservice_logging={ログ出力モードの指定}
指定できるログ出力モードは以下の4種類になります。
ENTRYを指定した場合は、後述する-Dservice_logging_entryパラメータでサービスログエントリファイルのURLを指定する必要があります。

モード 説明
OFF サービスログ出力を一切行わないモードです。
何も指定しないとデフォルトでこのモードになります。
ABORT_ONLY サービス実行の中断が発生した時のみログ出力を行うモードです。
障害対応などで中断箇所をまず特定したい場合などに使用してください。
ALL すべてのサービス、プロセス、セッション値をログ出力対象とするモードです。
大量のデータがセッション上に乗っていると動作が極端に遅くなる場合があります。
ENTRY 指定したサービス、プロセス、セッション値のみログ出力するモードです。
別途サービスログエントリファイルを作成して、そのURLを後述する-Dオプションで指定します。


指定例:

	-Dservice_logging=ALL


サービスログエントリファイルのURLの指定

サービスのログ出力モードで"ENTRY"を指定した場合には、必ず同時に指定する必要があるパラメータです。
JavaVMの起動引数として設定し、サービスログエントリファイルのURLを指定します。

記述形式:

	-Dservice_logging_entry={サービスログエントリファイルのURL}
例:ローカルディスク上にあるサービスログエントリファイルを指定する場合
	-Dservice_logging_entry=file:///C:/develop/workspace/service_logging.entry
例:Webサーバーに格納したサービスログエントリファイルを指定する場合
	-Dservice_logging_entry=http://pexa.atrris.com/service_logging.entry



ログ出力設定の実行中切替

JavaVM起動時引数で、"-Dservice_logging=ENTRY"と指定している場合に限り、ログ出力設定を再起動なしで切り替えることが可能です。 ClientLauncherの[Service Refresh]を実行することにより、Serviceログエントリファイルの再読込が行われて設定が読み込み直されます。

この機能を利用して、サービスの動作テスト時にログ出力対象サービスやプロセスなどを切り替えながら進めることが出来ます。

また、後述するServiceログエントリファイル中のservice_logging属性を書き換えることで、JavaVM引数で指定したロギングモードを上書き設定出来ます。 この仕組みを利用すると、再起動なしでログ出力を一時的にOFFにして、その後ENTRYモードに戻すといった制御が可能です。


Serviceログエントリファイルの全体構成

Serviceログエントリファイルの全体構成について、以下に示します。
servicesセクションの中に、ログ出力対象の情報を列挙します。

;-------------------------------------------------
; Service Log Entry
;-------------------------------------------------
service_logging属性        OFF/ABORT_ONLY/ENTRY/ALL
session_logging属性        OFF/ON/ENTRY
(servicesセクション
    (ログ出力対象サービス名1セクション(0以上)
        session_keys宣言部(0|1)    ログ出力対象セッションキー1, ... ログ出力対象セッションキーN
        {processセクション(0|1)
            (ログ出力対象プロセス名1セクション(0以上)
                session_keys宣言部(0|1)    ログ出力対象セッションキー1, ... ログ出力対象セッションキーN
            )
        }
    )
)
	
記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

    (1):必須
    (0|1):オプション
    (1以上):一個以上必須
    (0以上):0個以上(オプション)

service_logging属性

JavaVM起動引数で指定する-Dservice_loggingと同じ、サービスログの動作モード指定です。
Serviceログエントリファイルでservice_logging属性を記述することで、JavaVMの起動引数で指定したロギングモードを上書き設定することが出来ます。

これを利用すると、ClientLauncherから[Service Refresh]を実行することでサーバー側の再起動なしでロギングモードの変更が可能です。


session_logging属性

セッション値のログ出力に関するモード設定です。
プロセスの動作だけを追跡したい場合などに、この設定でOFFにすることでログを見やすくすることが出来ます。

指定できるモードは以下の3種類です。サービスロギングモードとの組み合わせ条件があります。

モード 説明 対応サービスロギングモード
OFF セッション値のログ出力をまったく行わないモードです。 ALL,ENTRY
ON session_keys宣言による個別の絞り込みがあればそれだけを出力し、
session_keys宣言がなければすべてのセッション値をログ出力するモードです。
デフォルトはこのモードになります。
ALL,ENTRY
ENTRY session_keys宣言で指定されたセッション値のみをログ出力するモードです。
指定されていないセッション値は出力しません。
ENTRYのみ

servicesセクション

servicesセクション内に、ログ出力対象にしたいサービス名をつけたセクションを列挙します。
ここに記述されたサービスがログ出力対象になります。

サービス名のみを記述して、後述のprocessセクションでプロセスを指定しなかった場合は 対象サービスの全プロセス及び全セッション値がログ出力されます。


processセクション

ログ出力対象としたサービスの特定プロセスのみをログ出力したい場合に記述するセクションです。
このセクション配下にログ出力対象にしたいプロセス名をつけたセクションを列挙します。

プロセス名のみを記述して、後述のsession_keys宣言を指定しなかった場合は対象プロセス実行時の 全セッション値がログ出力されます。


session_keys宣言

ログ出力対象とするセッション値を限定したい場合にそのキー名(@は付けない)を列挙する宣言部です。
これを記述するとsession_keys宣言で指定されたセッションキーの値のみがログ出力されます。
カンマ区切りで複数個指定することが出来ます。

サービス名セクションの直下に記述すると、そのサービスにおけるログ出力全体で設定が有効になります。
プロセス名セクションの直下に記述すると、上の階層での指定に対して上書き設定が出来ます。



ログ対象のServiceのみ指定する場合

ログ出力対象のサービスは指定するが、プロセスは限定しないという場合の記述は以下のような形になります。

(services
    ;-----------------------------------------------------
    ; あるサービスの全プロセスをログ出力の場合
    ;-----------------------------------------------------
    (SSR.XXXを検索する
    )
)


ログ対象のServiceとセッションキーを指定する場合

ログ出力対象のサービス及びセッションキーは指定するが、プロセスは限定しないという場合の記述は以下のような形になります。

(services
    ;-----------------------------------------------------
    ; あるサービスの全プロセスをログ出力の場合(セッション値は絞り込む)
    ;-----------------------------------------------------
    (SSR.XXXを検索する
        session_keys    AAA,BBB,CCC
    )
)


ログ対象のServiceとプロセスを指定する場合

ログ出力対象のサービス及びプロセスを指定するが、セッション値は限定しないという場合の記述は以下のような形になります。

(services
    ;-----------------------------------------------------
    ; 指定サービスの特定プロセスをログ出力の場合
    ;-----------------------------------------------------
    (SSR.YYYを検索する
        {process
            (検索条件を作成する
            )
            (検索を実行する
            )
        }
    )
)


ログ対象のServiceとプロセス及びセッションキーを指定する場合その1

ログ出力対象のサービス及びプロセスを指定して、セッション値の限定を同じにする場合は以下のような形になります。

(services
    ;-----------------------------------------------------
    ; 指定サービスの特定プロセスをログ出力の場合(セッション値は絞り込む)
    ;-----------------------------------------------------
    (SSR.YYYを検索する
        session_keys    AAA,BBB,CCC
        {process
            (検索条件を作成する
            )
            (検索を実行する
            )
        }
    )
)


ログ対象のServiceとプロセス及びセッションキーを指定する場合その2

ログ出力対象のサービス及びプロセスを指定し、プロセス毎に個別にセッション値を限定する場合の記述は以下のような形になります。

(services
    ;-----------------------------------------------------
    ; あるサービスの特定プロセスで特定セッション値をログ出力の場合
    ;-----------------------------------------------------
    (SSR.ZZZを検索する
        {process
            (検索条件を作成する
                session_keys    AAA,BBB,CCC
            )
            (検索を実行する
                session_keys    AAA,BBB,CCC,検索結果
            )
        }
    )
)


Serviceログエントリファイルのサンプル

service_logging    ENTRY
session_logging    ENTRY  ;;指定されたセッション値以外はログ出力しない
(services
    ;-----------------------------------------------------
    ; あるサービスの全プロセス、全セッション値をログ出力の場合
    ;-----------------------------------------------------
    (SSR.XXXを検索する
    )
    ;-----------------------------------------------------
    ; あるサービスの全プロセスをログ出力の場合(セッション値は絞り込む)
    ;-----------------------------------------------------
    (SSR.XXXを検索する
        session_keys    AAA,BBB,CCC
    )
    ;-----------------------------------------------------
    ; あるサービスの特定プロセスをログ出力の場合
    ;-----------------------------------------------------
    (SSR.YYYを検索する
        {process
            (検索条件を作成する
            )
            (検索を実行する
            )
        }
    )
    ;-----------------------------------------------------
    ; あるサービスの特定プロセスをログ出力の場合(セッション値は絞り込む)
    ;-----------------------------------------------------
    (SSR.YYYを検索する
        session_keys    AAA,BBB,CCC
        {process
            (検索条件を作成する
            )
            (検索を実行する
            )
        }
    )
    ;-----------------------------------------------------
    ; あるサービスの特定プロセスで特定セッション値をログ出力の場合
    ;-----------------------------------------------------
    (SSR.ZZZを検索する
        {process
            (検索条件を作成する
                session_keys    AAA,BBB,CCC
            )
            (検索を実行する
                session_keys    AAA,BBB,CCC,検索結果
            )
        }
    )
)


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2007-05-17 17:44:27 #$
  • バージョン : $Revision: 771 $



Copyright © 2006, Atrris Corporation