jdbcrunner
クラス Agent

java.lang.Object
  上位を拡張 jdbcrunner.Agent
すべての実装されたインタフェース:
java.lang.Runnable

public class Agent
extends java.lang.Object
implements java.lang.Runnable

負荷シナリオを実行するクラスです。

このクラスのインスタンスは、スレッドを1つ起動して負荷シナリオを実行します。

作成者:
Sadao Hiratsuka

コンストラクタの概要
Agent(int id, Manager manager, Config config)
          エージェントのID、負荷テストを管理するマネージャ、 負荷テストの設定を指定してエージェントを構築します。
 
メソッドの概要
 int getId()
          エージェントのIDを返します。
 Record getRecord()
          エージェントが実行したトランザクションの記録を返します。
 java.lang.Thread getThread()
          エージェントが起動したスレッドを返します。
 void putMessage(Message message)
          マネージャにメッセージを通知します。
 void run()
          負荷シナリオを実行します。
 void setBreak()
          測定の停止フラグを立てます。
 void setTxType(int txType)
          トランザクション種別を設定します。
 void start()
          スレッドを起動して、負荷シナリオを開始します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Agent

public Agent(int id,
             Manager manager,
             Config config)
エージェントのID、負荷テストを管理するマネージャ、 負荷テストの設定を指定してエージェントを構築します。

パラメータ:
id - エージェントのID
manager - 負荷テストを管理するマネージャ
config - 負荷テストの設定
メソッドの詳細

start

public void start()
スレッドを起動して、負荷シナリオを開始します。


run

public void run()
負荷シナリオを実行します。

  1. init()ファンクションを1回実行します。
  2. 初期化処理の完了ラッチを解除します。
  3. 測定の開始ラッチが解除されるのを待ちます。
  4. 測定開始時刻をインスタンス変数に登録します。
  5. 以下の条件を満たす間run() ファンクションを繰り返し実行します。
    • 負荷テストが正常に行われている
    • 負荷テストの進捗状況がRUNNINGである
    • スクリプトの停止フラグが有効になっていない
  6. 測定の完了ラッチを解除します。
  7. 終了処理の開始ラッチが解除されるのを待ちます。
  8. fin()ファンクションを1回実行します。
  9. 終了処理の完了ラッチを解除します。

途中で例外が発生した場合は、以降の処理は中止してマネージャに例外を通知します。

定義:
インタフェース java.lang.Runnable 内の run

getId

public int getId()
エージェントのIDを返します。

戻り値:
エージェントのID

getRecord

public Record getRecord()
エージェントが実行したトランザクションの記録を返します。

戻り値:
トランザクションの記録

getThread

public java.lang.Thread getThread()
エージェントが起動したスレッドを返します。

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

戻り値:
スレッド。スレッドがまだ起動されていないときはnull

setBreak

public void setBreak()
測定の停止フラグを立てます。


setTxType

public void setTxType(int txType)
トランザクション種別を設定します。

パラメータ:
txType - トランザクション種別の番号。これは0以上Config#getNTxTypes() 未満である必要があります
例外:
java.lang.IllegalArgumentException - txTypeが範囲外の場合

putMessage

public void putMessage(Message message)
マネージャにメッセージを通知します。

パラメータ:
message - メッセージ
関連項目:
Manager.putMessage(Message)