ここではTGをはじめて使用される方向けに、TGの基本的な操作方法について記載しています。負荷がけ対象のデータベースとしては「ORACLE」を使用するものとします。
その他、OLTP系の処理を意識したサンプルトランザクションの使い方・性能測定の方法についてはこちら「サンプルトランザクションの使い方」をご覧ください。
TGC(GUIベースのユーティリティ)の使用方法についてはこちら「TGCクイック・リファレンス」も併せてご覧ください。
1. 前提条件
本章では、TGが 「C:\tg09X」ディレクトリにインストールされていること、また以下のオブジェクト(テーブル、インデックス、シーケンス)が負荷がけ対象となるORACLEデータベースのスキーマに作成されていることを前提条件としています。
| テーブル |
create table test ( id number, ndata number, ddata date, cdata varchar2(255)); |
|---|---|
| シーケンス |
create sequence idseq start with 1 increment by 1 nomaxvalue nominvalue nocycle nocache; |
| インデックス |
alter table test add constraint pk_test_id primary key (id); |
2. TG/TGCの起動
まずはじめにTGのGUI管理ツールであるTGCを起動します。エクスプローラから「tgc.exe」ファイルをダブルクリックするか、コマンドプロンプトから次のように入力してください。
C:\> cd tg09X C:\tg09X> tgc
TGCのウインドウが表示され、中央部の「TG Console」画面に次のようにTGの起動メッセージが表示されます。

TG - Transaction Generator 0.9X Tue May 06 13:51:58 JST 2008
Checking specified address & Port is possible to use... .OK.
Operating mode : "SERVER_FOR_TGC".
- Listening Address : 0.0.0.0
- Port : 11111
TG - Transaction Generator 0.9X Tue May 06 13:51:58 JST 2008
logged in.
TG>
3. コンフィグレーションファイルのロード
サンプルのコンフィグレーションファイルを読み込みます。「ファイル」メニュークリックし、「Open」を選択、「C:\tg09X\sample.tgp」ファイルをオープンします。

正常にコンフィグレーションファイルが読み込まれた場合、「TG Console」に次のメッセージが出力され、TGと情報の同期が行われます。
TG> Recieved configuration data succesfully. TG> reload config Loading configuration file... .OK. Registered transactions:4 , variables:5 , jobs:1 , slave servers:0 TG>
4. コンフィグレーションファイルの編集・確認
TGCのメインウィンドウより「Agent」メニューをクリックし、「Configure Agents...」を選択します。ここでコンフィグレーション内容の確認および編集を行うことができます。

Databaseタブ
まずはじめに「Database」タブの内容を示します。ここでは負荷がけ対象となるデータベースに関する情報を設定することができます。設定項目としては、使用するJDBC Driverとそのタイプ(Type.4)や、リスナーが稼動しているホスト名(Hostname)、ポート番号(Port Number)、SID名(SID name)などがあります。
なお、「Database」タブの詳細については、『Tips.5 Configure Agents「Databaseタブ」の詳細』も併せてご覧ください。

Agentタブ
続いて「Agents」タブの内容を示します。ここではAgentがデータベースへ接続する際に使用するユーザ名(User Name)やパスワード(Password)、セッション数(Sessions)やウェイト(Thinktime)等を定義することができます。
なお、「Agents」の詳細については、『Tips.6 Configure Agents「Agentsタブ」の詳細』も併せてご覧ください。

Variablesタブ
以下は「Variables」タブの内容です。画面左のリストにはTGCに登録されている乱数名の一覧が表示されています。乱数名をクリックすると、乱数の構成情報が画面右に表示されます。乱数の型(Variable type)や乱数が生成する値の範囲(Minimum value, Maximum value, values)を定義することできます。
なお、「Variables」タブの詳細については、『Tips.7 Configure Agents「Variablesタブ」の詳細』も併せてご覧ください。

なお、本サンプル構成では5つの乱数が登録されています。各乱数と生成される値の範囲は以下のとおりです。
| 乱数名 | 乱数型 | 生成される値の範囲 |
|---|---|---|
| :NDATA | 整数型 | 1 ~ 1000000 |
| :CDATA | 文字列系 | 128文字 ~ 255文字 |
| :DDATA | 日付型 | 2000/01/01 ~ 2002/12/31 |
| :MONTH | リスト(文字列)型 | "January", "February", "March", "April", "May", "June","July" , "August" , "September", "October", "November", "December" |
| :ID | ID型 | ※Java ThreadのID |
Transactionsタブ
以下は「Transactions」タブの内容です。画面左のリストには登録済みのトランザクション名一覧が表示されています。トランザクション名をクリックすると、トランザクションの構成情報が表示されます。トランザクションの 実行比率(Average of execution)やトランザクションを構成するSQL文 (SQL Statement)を定義することができます。
なお、「Transactions」タブの詳細については、『Tips.8 Configure Agents「Transactionsタブ」の詳細』も併せてご覧ください。

なお、本サンプル構成では4つのトランザクションが登録されています。各トランザクションの実行確立とSQL文は以下のとおりです。また、赤字で示されている部分は、「Variables」タブ画面で登録された乱数です。トランザクション実行時にはバインド変数に置換され、予め設定された範囲(Minimum Value ~ Maximum Value)でランダムな値が生成されます。
| トランザクション名 | 実行確立 | SQL |
|---|---|---|
| SELECT0 | 80% |
select * from test where id = :NDATA; |
| INSERT0 | 10% |
insert into test values (idseq.nextval,:NDATA, to_date(:DDATA,'YYYY/MM/DD'),:CDATA); |
| UPDATE0 | 5% |
select ndata from test where id =:NDATA for update; update test set cdata = :MONTH where id = :NDATA; commit; |
| DELETE0 | 5% |
delete from test where id = :NDATA; rollback; |
Jobsタブ
以下は「Jobs」タブの内容です。画面左のJob名をクリックし、該当Jobの構成情報を確認することができます。Jobの型(Job type)や、Jobとして実行されるコマンドの内容(Command path or Script text)を定義することが可能です。
なお、「Jobs」タブの詳細については、『Tips.12 Configure Agents「Jobsタブ」の詳細』も併せてご覧ください。

最後に「OK」をクリックし、「Configure TG」ウインドウをクローズします。ウインドウをクローズすると、自動的にTGCとTGの構成情報が同期されます。
TG> Recieved configuration data succesfully. TG> reload config Loading configuration file... .OK. Registered transactions:4 , variables:5 , jobs:1 , slave servers:0 TG>
5. ターゲットデータベースへの接続テスト
TGCのメインウィンドウより「Agent」メニューをクリックし、「Check Configration > Agent user」を選択し、現在設定されているコンフィグレーションを使用し、接続テストを行います。

接続に成功した場合、以下のようにJDBC URLとJDBCドライバの名前・製品名・バージョン情報が表示されます。
TG> check config agent Using driver class : oracle.jdbc.driver.OracleDriver Tring URL : jdbc:oracle:thin:@dbsrv01:1521:testdb USERNAME : test PASSWORD : test LOGON_OPTION : normal Now checking to connect to the database... .OK. Driver information ~~~~~~~~~~~~~~~~~~ - Driver name : Oracle JDBC driver - Product name : Oracle - Product version : 10.2.0.2.0 TG>
6. トランザクションの実行
ターゲットデータベースへの接続
TGCのメインウィンドウより「Agent」メニューをクリックし、「Make agnets connect to the target database」を選択、Agentをターゲットデータベースに接続させます。

TGCメインウィンドウ左の「TG Status」画面の「Target agent status」、「TERMINATED」の値を確認してください。Target agent statusが"TERMINATED"から"WAITING"に変化し、「CONNECTED」の値が増加してゆきます。これは仮想クライアントである Agentが生成され、データベースへ接続されていることを示しています。今回接続数は"10"に設定されているため、CONNECTEDの値 は"10"まで増加した時点で停止します。

トランザクションの開始
続いてTGCメインウィンドウより「Agent」メニューをクリックし、「Activate agents」を選択してください。これにより負荷がけ(トランザクションの実行)が開始されます。

TGCメインウィンドウ左の「TG Status」画面の「Target Agent status」が"ACTIVE"に変化し「TPS」の値が変動します。TPSには1秒間あたりのトランザクション実行数が表示され、トランザクション実行状況を確認することができます。

トランザクション実行状況の確認
トランザクション実行状況は、TGCのメインウィンドウ中央部「TPS Monitor」タブを選択することでも確認することができます。ここではグラフによる確認が可能です。
- グラフ描写機能はTGバージョン0.90からのサポートとなります。

また、「Monitor」メニューをクリックし 「Enable graph」のチェックを外すことで、テキストべースによるトランザクションの実行状況を確認することもできます。

以下はテキストベースによるトランザクション実行状況サンプルです。

16:21:25 TRGT:WAIT CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:0 16:21:26 TRGT:WAIT CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:0 16:21:27 TRGT:WAIT CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:0 16:21:28 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:4 16:21:29 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:42 16:21:30 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:48 16:21:31 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:50 16:21:32 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:49 16:21:33 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:48 16:21:34 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:49 16:21:35 TRGT:ACTV CONN:10/10 DISC:0/10 TERM:0/10 ERR:0 TPS:49 TG>
トランザクションの一時停止
トランザクションの実行を停止したいときには「Agent」メニューをクリックし、 「Freeze agents」を選択してください。なおこの状態ではトランザクションの実行が停止するだけで、データベースとTGとのセッションは保たれたままでます。再度トランザクションを開始させたいときには、「Activate agents」を選択してください。

トランザクションの終了
トランザクションを終了し、セッションを終了させたい場合には「Agent」メニューより「Make agents disconnect from the target database」を選択してください。

「Target agent status」の値が"TERMINATED"に変化し、「CONNECTED」の値が減少・「TERMINATED」の値が増加してゆきます。これはAgentがデータベースから切断され、非活動状態になってゆくことを示しています。

7. TG/TGCの終了
TGCのメインウィンドウより「File」メニューをクリック、「Exit」を選択してください。

画面中央に「Terminate TG Controller」画面が表示されます。「YES」を選択し、 TGCおよびTGを終了させます。

以上で、初心者向けのTGの使用方法の説明は終了です。
その他、OLTP系の処理を意識したサンプルトランザクションの使い方・性能測定の方法についてはこちら「サンプルトランザクションの使い方」をご覧ください。
TGC(GUIベースのユーティリティ)の使用方法についてはこちら「TGCクイック・リファレンス」も併せてご覧ください。


