jdbcrunner
クラス Manager

java.lang.Object
  上位を拡張 jdbcrunner.Manager

public class Manager
extends java.lang.Object

負荷テストを管理するクラスです。

作成者:
Sadao Hiratsuka

入れ子のクラスの概要
static class Manager.Status
          負荷テストの進捗状況を表す列挙型クラスです。
 
フィールドの概要
static java.lang.String APPLICATION_NAME
          このアプリケーションの名称です。
static int RETURN_FAILURE
          負荷テストが失敗したことを表す定数です。
static int RETURN_SUCCESS
          負荷テストが成功したことを表す定数です。
static java.lang.String VERSION
          このアプリケーションのバージョン番号です。
 
コンストラクタの概要
Manager(Config config)
          負荷テストの設定を指定してマネージャを構築します。
 
メソッドの概要
 boolean getCondition()
          負荷テストが正常に行われているかどうかを返します。
 java.sql.Connection getConnection()
          データベースへの接続を返します。
 java.util.concurrent.CountDownLatch getFinEndLatch()
          終了処理の完了ラッチを返します。
 java.util.concurrent.CountDownLatch getFinStartLatch()
          終了処理の開始ラッチを返します。
 java.util.concurrent.CountDownLatch getInitEndLatch()
          初期化処理の完了ラッチを返します。
 java.util.concurrent.CountDownLatch getRunEndLatch()
          測定の完了ラッチを返します。
 java.util.concurrent.CountDownLatch getRunStartLatch()
          測定の開始ラッチを返します。
 long getStartTime()
          測定開始時刻を返します。
 Manager.Status getStatus()
          負荷テストの進捗状況を返します。
 java.lang.Thread getThread()
          measure()メソッドを呼んだスレッドを返します。
 int getTotalTxCount()
          すべてのトランザクション種別を合計したトランザクションの実行回数を返します。
 int getTxCount(int txType)
          トランザクションの実行回数を返します。
 void incrementTxCount(int txType)
          トランザクションの実行回数を1増やします。
 int measure()
          負荷テストを実行します。
 void putMessage(Message message)
          メッセージキューにメッセージを登録します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

APPLICATION_NAME

public static final java.lang.String APPLICATION_NAME
このアプリケーションの名称です。

関連項目:
定数フィールド値

VERSION

public static final java.lang.String VERSION
このアプリケーションのバージョン番号です。


RETURN_SUCCESS

public static final int RETURN_SUCCESS
負荷テストが成功したことを表す定数です。

関連項目:
定数フィールド値

RETURN_FAILURE

public static final int RETURN_FAILURE
負荷テストが失敗したことを表す定数です。

関連項目:
定数フィールド値
コンストラクタの詳細

Manager

public Manager(Config config)
負荷テストの設定を指定してマネージャを構築します。

パラメータ:
config - 負荷テストの設定
メソッドの詳細

measure

public int measure()
負荷テストを実行します。

  1. 進捗状況をINITIALIZINGへ更新します。
  2. このメソッドを呼び出したスレッドをインスタンス変数に登録します。
  3. 負荷テストの設定をログに出力します。
  4. メッセージの取り出しを開始します。
  5. データソースを構築します。
  6. エージェント群を構築して初期化処理を開始させます。
  7. 初期化処理の完了ラッチが解除されるのを待ちます。
  8. 測定開始時刻として現在時刻をインスタンス変数に登録します。
  9. 進捗状況をRUNNINGへ更新します。
  10. 進捗の監視を開始します。
  11. 測定の開始ラッチを解除します。
  12. 進捗監視の完了ラッチが解除されるのを待ちます。
  13. 進捗状況をFINALIZINGへ更新します。
  14. 進捗の監視を終了します。
  15. 測定の完了ラッチが解除されるのを待ちます。
  16. 終了処理の開始ラッチを解除します。
  17. 終了処理の完了ラッチが解除されるのを待ちます。
  18. すべてのエージェントのスレッドが終了するのを待ちます。
  19. メッセージの取り出しを終了します。
  20. データソースを閉じます。
  21. 測定結果を出力します。
  22. 負荷テストが成功したかどうかをRETURN_SUCCESS またはRETURN_FAILUREで呼び出し元に返します。

負荷テストの設定でロードモードが有効になっている場合、 10~15番の代わりに以下の処理を行います。

  1. 測定の開始ラッチを解除します。
  2. 測定の完了ラッチが解除されるのを待ちます。
  3. 進捗状況をFINALIZINGへ更新します。

戻り値:
負荷テストが成功したかどうかを表す整数

getThread

public java.lang.Thread getThread()
measure()メソッドを呼んだスレッドを返します。

このメソッドはスレッドセーフです。

戻り値:
スレッド。measure() メソッドがまだ呼ばれていない場合はnull

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
データベースへの接続を返します。

このメソッドはスレッドセーフです。スレッドセーフであることはDataSourceの実装によって担保されます。

戻り値:
データベースへの接続
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合

getInitEndLatch

public java.util.concurrent.CountDownLatch getInitEndLatch()
初期化処理の完了ラッチを返します。

このメソッドはスレッドセーフです。

戻り値:
初期化処理の完了ラッチ

getRunStartLatch

public java.util.concurrent.CountDownLatch getRunStartLatch()
測定の開始ラッチを返します。

このメソッドはスレッドセーフです。

戻り値:
測定の開始ラッチ

getRunEndLatch

public java.util.concurrent.CountDownLatch getRunEndLatch()
測定の完了ラッチを返します。

このメソッドはスレッドセーフです。

戻り値:
測定の完了ラッチ

getFinStartLatch

public java.util.concurrent.CountDownLatch getFinStartLatch()
終了処理の開始ラッチを返します。

このメソッドはスレッドセーフです。

戻り値:
終了処理の開始ラッチ

getFinEndLatch

public java.util.concurrent.CountDownLatch getFinEndLatch()
終了処理の完了ラッチを返します。

このメソッドはスレッドセーフです。

戻り値:
終了処理の完了ラッチ

getCondition

public boolean getCondition()
負荷テストが正常に行われているかどうかを返します。

このメソッドはスレッドセーフです。

戻り値:
負荷テストが正常に行われているかどうか

getStatus

public Manager.Status getStatus()
負荷テストの進捗状況を返します。

このメソッドはスレッドセーフです。

戻り値:
負荷テストの進捗状況

getStartTime

public long getStartTime()
測定開始時刻を返します。

このメソッドはスレッドセーフです。

戻り値:
測定開始時刻

incrementTxCount

public void incrementTxCount(int txType)
トランザクションの実行回数を1増やします。

このメソッドはスレッドセーフです。

パラメータ:
txType - トランザクション種別

getTotalTxCount

public int getTotalTxCount()
すべてのトランザクション種別を合計したトランザクションの実行回数を返します。

このメソッドはスレッドセーフです。

戻り値:
トランザクションの実行回数

getTxCount

public int getTxCount(int txType)
トランザクションの実行回数を返します。

このメソッドはスレッドセーフです。

パラメータ:
txType - トランザクション種別
戻り値:
トランザクションの実行回数

putMessage

public void putMessage(Message message)
メッセージキューにメッセージを登録します。

このメソッドはスレッドセーフです。

パラメータ:
message - メッセージ