PEXA Serviceについて

チュートリアル

テストツール

定義ファイル

基本プロセス

拡張プロセス

Condition

セッション

モデル

リファレンス

環境設定

目次

  1. はじめに
  2. サービスをステップ実行するには
  3. サービスデバッグ出力設定の実行中切替
  4. Serviceデバッグエントリファイルの全体構成
  5. デバッグ対象のServiceのみ指定する場合
  6. デバッグ対象のServiceとプロセスを指定する場合
  7. Serviceデバッグエントリファイルのサンプル


はじめに

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

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

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


サービスをステップ実行するには

まず、サービスのブレークポイントとなるクラスをあらかじめ用意する必要があります。

このクラスは、PEXAが用意する所定のインタフェースを実装したクラスとして作成します。

サービスの実行エンジンは、後述のサービスデバッグエントリファイル中に記載されたデバッグ対象とする サービス、プロセスを実行するタイミングでこのブレークポイントクラスを呼び出します。

その時点でEclipse等が備えるJavaプログラム用デバッガでこのクラスにブレークポイントを仕掛けてあれば、 Javaプログラム用デバッガによってサービスの実行が一時中断されるという仕組みです。

これにより、プロセスを一つ一つステップ実行しつつ、サービスログ機能と併せてセッションの内容などを 確認しながらサービスの動作確認を行うことが出来るようになっています。

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

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

上記の準備を行った上で、サービスを実行するJavaVM(ClientLauncherやJBoss等のアプリケーションサーバー)を Javaプログラムとしてのデバッグモードで起動します。
ここでデバッグモードにしなかった場合はそもそもJavaプログラム用デバッガで止めることが出来ないので、 サービスのステップ実行はできません。

サービスブレークポイントクラスの作成

Javaプログラム用デバッガでひっかけるためのブレークポイントクラスは、 以下のインタフェースを実装するクラスとして作成します。

    pexa.share.service.debugger.ServiceBreakPoint
このクラスは以下のメソッドを持ちます。
	/**
	 * サービス開始時点に対するブレークポイントを表す
	 * @param serviceName 実行サービス名
	 */
	public void breakServiceStarted(String serviceName);

	/**
	 * プロセス開始時点に対するブレークポイントを表す
	 * @param serviceName 実行サービス名
	 * @param processName 実行プロセス名
	 */
	public void breakProcessStarted(String serviceName, String processName);

	/**
	 * プロセス終了時点に対するブレークポイントを表す
	 * @param serviceName 実行サービス名
	 * @param processName 実行プロセス名
	 */
	public void breakProcessFinished(String serviceName, String processName);

	/**
	 * サービス終了時点に対するブレークポイントを表す
	 * @param serviceName 実行サービス名
	 */
	public void breakServiceFinished(String serviceName);
上記のメソッドがサービスの開始、終了時点および各プロセスの開始、終了時点で サービス実行エンジンから呼び出されるので、Javaプログラム用のデバッガで各メソッドに ブレークポイントを仕掛けておくことで、サービスの動作を一時停止させながら一つずつ ステップ実行させることが出来ます。

なお、上記のインタフェースを実装したクラスが、各プロジェクトのファイルセット中に 以下のような名前のクラスとして1つあらかじめ入っています。

    test.{プロジェクト名}.share.service.debugger.ServiceBreakPointImpl
特に理由が無ければ上記のクラスをそのまま利用して下さい。
各作業者が自分用のブレークポイントクラスを作成して使用しても構いません。


サービスのデバッグモードの指定

JavaVMの起動パラメータとして設定する、サービスのデバッグモードの指定です。
以下のような指定方法になります。

記述形式:

	-Dservice_debug={デバッグモードの指定}
指定できるデバッグモードは以下の2種類になります。

モード 説明
OFF サービスのステップ実行を一切行わないモードです。
何も指定しないとデフォルトでこのモードになります。
ON サービスのステップ実行機能をONにするモードです。
サービスでバッグエントリファイルの内容に従って、サービスをステップ実行できるようになります。


指定例:

	-Dservice_debug=ON


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

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

記述形式:

	-Dservice_debug_entry={サービスデバッグエントリファイルのURL}
例:ローカルディスク上にあるサービスデバッグエントリファイルを指定する場合
	-Dservice_debug_entry=file:///C:/develop/workspace/service_debug.entry



サービスデバッグ設定の実行中切替

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

この機能を利用して、サービスの動作テスト時にサーバーサイドの再起動せずにデバッグ対象を変えつつ動作確認が出来ます。
なお、デバッグモード自体のON/OFFは実行中には切り替えることは出来ません。必ずJavaVM起動引数を変えて再起動する必要があります。


Serviceデバッグエントリファイルの全体構成

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

;;----------------------------------------------------------------
;; サービスのブレークポイント実装クラスの指定
;;----------------------------------------------------------------
service_breakpoint宣言部(1)    サービスブレークポイントの実装クラス名を指定
;;----------------------------------------------------------------
;; ブレークポイントを設定するサービスの指定
;;----------------------------------------------------------------
(servicesセクション
    (デバッグ対象サービス名セクション(0以上)
        {processセクション(0|1)
            デバッグ対象プロセス名1		""
            デバッグ対象プロセス名2		""
            デバッグ対象プロセス名3		""
			:
			:
			:
        }
    )
)
	
記述注:
    属性        あらかじめ決められた値を選択する(true/falseなど)
    宣言部      値または、値のリストを設定する
    セクション  入れ子で他の属性、宣言部、セクションを保持する可能性がある
                (値又は、値のリストが設定される場合もある)

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

service_breakpoint宣言部

サービスブレークポイントの実装クラス名を指定します。
ここで指定したクラスに対してJavaプログラム用デバッガでブレークポイントを仕掛けておくことで、 サービスの動作を中断させることが可能となります。


servicesセクション

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

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


processセクション

デバッグ対象としたサービスの特定プロセスのみで動作を止めたい場合に記述するセクションです。
このセクション配下にデバッグ対象にしたいプロセス名を列挙します。



デバッグ対象のServiceのみ指定する場合

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

(services
    ;-----------------------------------------------------
    ; あるサービスの全プロセスをデバッグ対象とする場合
    ;-----------------------------------------------------
    (SSR.XXXを検索する
    )
)


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

デバッグ対象のサービス及びプロセスを指定する場合の記述は以下のような形になります。

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


Serviceデバッグエントリファイルのサンプル

;;----------------------------------------------------------------
;;
;; サービスのブレークポイント実装クラスの指定
;;
;;----------------------------------------------------------------
service_breakpoint    test.xxxx.share.service.debugger.ServiceBreakPointImpl
;;----------------------------------------------------------------
;;
;; ブレークポイントを設定するサービスの指定
;;
;;----------------------------------------------------------------
(services
    ;-------------------------------------------------------------
    ; 全プロセスをブレークポイントとする場合
    ;-------------------------------------------------------------
    (SSR.STA_000001_Login
    )
    ;-------------------------------------------------------------
    ; 特定のプロセスをブレークポイントとする場合
    ;-------------------------------------------------------------
    (SSR.STA_027000.0.在庫商品アカウントを検索する
        ;;-------------------------------------------
        ;; ブレークポイントを設定するプロセスの指定
        ;;-------------------------------------------
        {process
            在庫商品アカウントを検索する                    ""
            在庫商品アカウントの仕入単価のscaleを設定する   ""
        }
    )
)


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2009-09-01 22:50:38 #$
  • バージョン : $Revision: 4064 $



Copyright © 2006, Atrris Corporation