jdbcrunner
クラス Helper

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

public class Helper
extends java.lang.Object

エージェントからスクリプトを操作、 およびスクリプトからデータベースを操作する機能を提供するヘルパークラスです。

作成者:
Sadao Hiratsuka

コンストラクタの概要
Helper(Config config, Agent agent)
          負荷テストの設定、ヘルパーを管理するエージェントを指定してヘルパーを構築します。
 
メソッドの概要
 void callFin()
          スクリプトのfin()ファンクションを実行します。
 void callInit()
          スクリプトのinit()ファンクションを実行します。
 void callRun()
          スクリプトのrun()ファンクションを実行します。
 void closeScript()
          スクリプトのコンテキストを閉じます。
 void commit()
          データベースへの変更を確定します。
 void debug(java.lang.String message)
          デバッグログを出力します。
 void error(java.lang.String message)
          ログメッセージを指定して例外を発生させます。
 int execute(java.lang.String statement, java.lang.Object[] parameters)
          DMLを実行し、更新されたレコード数を返します。
 org.mozilla.javascript.NativeArray executeBatch(java.lang.String statement, java.lang.Object[] arrayParameters)
          JDBCバッチ更新を行い、 更新されたレコード数をスクリプトにおける配列として返します。
 org.mozilla.javascript.NativeArray fetchAsArray(java.lang.String statement, java.lang.Object[] parameters)
          クエリを実行し、 検索されたレコードをスクリプトにおける二次元配列として返します。
static java.lang.Object getData(java.lang.String key)
          ヘルパー間で共有しているマップからデータを取得して返します。
 java.lang.String getDatabaseProductName()
          データベースの製品名を返します。
 int getId()
          エージェントのIDを返します。
 void info(java.lang.String message)
          情報ログを出力します。
static void putData(java.lang.String key, java.lang.Object value)
          ヘルパー間で共有しているマップへデータを登録します。
 int query(java.lang.String statement, java.lang.Object[] parameters)
          クエリを実行し、検索されたレコード数を返します。
 void rollback()
          データベースへの変更を取り消します。
 void setBreak()
          run()ファンクションの停止フラグを立てます。
 void setConnection(java.sql.Connection connection)
          Helperオブジェクトにデータベースへの接続を設定します。
 void setTxType(int txType)
          トランザクション種別を設定します。
 java.sql.Connection takeConnection()
          データベースへの接続を返します。
 void trace(java.lang.String message)
          トレースログを出力します。
 void warn(java.lang.String message)
          警告ログを出力します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Helper

public Helper(Config config,
              Agent agent)
       throws ApplicationException
負荷テストの設定、ヘルパーを管理するエージェントを指定してヘルパーを構築します。

パラメータ:
config - 負荷テストの設定
agent - ヘルパーを管理するエージェント
例外:
ApplicationException - スクリプトの文法に誤りがある場合
メソッドの詳細

getData

public static java.lang.Object getData(java.lang.String key)
ヘルパー間で共有しているマップからデータを取得して返します。

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

パラメータ:
key - 関連付けされたデータが返されるキー
戻り値:
指定されたキーに関連付けされているデータ

putData

public static void putData(java.lang.String key,
                           java.lang.Object value)
ヘルパー間で共有しているマップへデータを登録します。

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

パラメータ:
key - 指定されたデータが関連付けされるキー
value - 指定されたキーに関連付けされるデータ

setConnection

public void setConnection(java.sql.Connection connection)
Helperオブジェクトにデータベースへの接続を設定します。

パラメータ:
connection - データベースへの接続

callInit

public void callInit()
              throws ApplicationException
スクリプトのinit()ファンクションを実行します。

例外:
ApplicationException - ユーザ定義エラーが発生した場合、 データベースアクセス中に例外が発生した場合、 スクリプトの実行中に例外が発生した場合、 スクリプトの実行中にエラーが発生した場合
関連項目:
Script.callInit()

callRun

public void callRun()
             throws ApplicationException
スクリプトのrun()ファンクションを実行します。

例外:
ApplicationException - ユーザ定義エラーが発生した場合、 データベースアクセス中に例外が発生した場合、 スクリプトの実行中に例外が発生した場合、 スクリプトの実行中にエラーが発生した場合
関連項目:
Script.callRun()

callFin

public void callFin()
             throws ApplicationException
スクリプトのfin()ファンクションを実行します。

例外:
ApplicationException - ユーザ定義エラーが発生した場合、 データベースアクセス中に例外が発生した場合、 スクリプトの実行中に例外が発生した場合、 スクリプトの実行中にエラーが発生した場合
関連項目:
Script.callFin()

closeScript

public void closeScript()
スクリプトのコンテキストを閉じます。

関連項目:
Script.close()

getId

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

戻り値:
エージェントのID
関連項目:
Agent.getId()

setBreak

public void setBreak()
run()ファンクションの停止フラグを立てます。

関連項目:
Agent.setBreak()

setTxType

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

パラメータ:
txType - トランザクション種別の番号。これは0以上Config#getNTxTypes() 未満である必要があります
関連項目:
Agent.setTxType(int)

takeConnection

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

このメソッドは新たにデータソースから接続を取得するのではなく、 すでに取得済みの接続を呼び出し元に返すものです。

戻り値:
データベースへの接続

getDatabaseProductName

public java.lang.String getDatabaseProductName()
                                        throws java.sql.SQLException
データベースの製品名を返します。

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

commit

public void commit()
            throws java.sql.SQLException
データベースへの変更を確定します。

例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合
関連項目:
Connection.commit()

rollback

public void rollback()
              throws java.sql.SQLException
データベースへの変更を取り消します。

例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合
関連項目:
Connection.rollback()

query

public int query(java.lang.String statement,
                 java.lang.Object[] parameters)
          throws java.sql.SQLException
クエリを実行し、検索されたレコード数を返します。

  1. 独自記法のSQL文をキーとして、 テンプレートのキャッシュからテンプレートを取得します。 テンプレートが存在しない場合は、新たに作成してキャッシュに登録します。
  2. テンプレートからSQL文を取得し、PreparedStatementオブジェクトを構築します。
  3. PreparedStatement オブジェクトにパラメータをバインドします。
  4. クエリを実行し、検索されたレコード数を返します。

パラメータ:
statement - 独自記法のSQL文
parameters - SQLにバインドするパラメータの配列
戻り値:
クエリによって検索されたレコード数
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合

fetchAsArray

public org.mozilla.javascript.NativeArray fetchAsArray(java.lang.String statement,
                                                       java.lang.Object[] parameters)
                                                throws java.sql.SQLException
クエリを実行し、 検索されたレコードをスクリプトにおける二次元配列として返します。

  1. 独自記法のSQL文をキーとして、 テンプレートのキャッシュからテンプレートを取得します。 テンプレートが存在しない場合は、新たに作成してキャッシュに登録します。
  2. テンプレートからSQL文を取得し、PreparedStatementオブジェクトを構築します。
  3. PreparedStatement オブジェクトにパラメータをバインドします。
  4. クエリを実行し、 検索されたレコードをスクリプトにおける二次元配列として返します。

パラメータ:
statement - 独自記法のSQL文
parameters - SQLにバインドするパラメータの配列
戻り値:
クエリによって検索されたレコード
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合

execute

public int execute(java.lang.String statement,
                   java.lang.Object[] parameters)
            throws java.sql.SQLException
DMLを実行し、更新されたレコード数を返します。

  1. 独自記法のSQL文をキーとして、 テンプレートのキャッシュからテンプレートを取得します。 テンプレートが存在しない場合は、新たに作成してキャッシュに登録します。
  2. テンプレートからSQL文を取得し、PreparedStatementオブジェクトを構築します。
  3. PreparedStatement オブジェクトにパラメータをバインドします。
  4. DMLを実行し、更新されたレコード数を返します。

パラメータ:
statement - 独自記法のSQL文
parameters - SQLにバインドするパラメータの配列
戻り値:
クエリによって更新されたレコード数
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合

executeBatch

public org.mozilla.javascript.NativeArray executeBatch(java.lang.String statement,
                                                       java.lang.Object[] arrayParameters)
                                                throws java.sql.SQLException
JDBCバッチ更新を行い、 更新されたレコード数をスクリプトにおける配列として返します。

  1. 独自記法のSQL文をキーとして、 テンプレートのキャッシュからテンプレートを取得します。 テンプレートが存在しない場合は、新たに作成してキャッシュに登録します。
  2. テンプレートからSQL文を取得し、PreparedStatementオブジェクトを構築します。
  3. PreparedStatement オブジェクトにパラメータをバインドし、バッチに追加します。
  4. JDBCバッチ更新を行い、 更新されたレコード数をスクリプトにおける配列として返します。

パラメータ:
statement - 独自記法のSQL文
arrayParameters - SQLにバインドするパラメータ配列の配列
戻り値:
クエリによって更新されたレコード数
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合
java.lang.IllegalArgumentException - パラメータ配列の配列長が一致しない場合、 パラメータ配列として配列でないものが指定されている場合

trace

public void trace(java.lang.String message)
トレースログを出力します。

トレースログは、トレースモードが有効な場合のみ出力されます。

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

debug

public void debug(java.lang.String message)
デバッグログを出力します。

デバッグログは、デバッグモードが有効な場合のみ出力されます。

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

info

public void info(java.lang.String message)
情報ログを出力します。

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

warn

public void warn(java.lang.String message)
警告ログを出力します。

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

error

public void error(java.lang.String message)
           throws ApplicationException
ログメッセージを指定して例外を発生させます。

このメソッドは例外を意図的に発生させます。発生した例外はAgent#run()内でキャッチされ、マネージャに通知されます。

パラメータ:
message - ログメッセージ
例外:
ApplicationException - このメソッドを実行した際に必ず発生する例外