Transactd Utilities ガイド

ここではTransactd Utilitiesの使用方法について説明します。 インストールについては、Transactd Utilitiesのインストールを参照してください。

目次

Transactd High Availability (THA) マネージャ

Transactd High Availability (THA) マネージャの使用方法は、haMgrリファレンス をご覧ください。THAの仕組みなど詳細情報は高可用運用(THA)をご覧ください。

ベンチマークプログラム

ベンチマークプログラムは、基本的なCRUDオペレーションのベンチマーク(bench_tdclcpp_c_xxx) と、SQLライクな読み取りクエリーのベンチマーク(bench_query_xxx)の2種類あります。

bench_tdclcpp_c_xxxベンチマークプログラムは、コマンドライン引数のprocessNumberを 変えることで複数のインスタンスを同時に実行して計測することができます。 bench_tdclcpp_xxxプログラムのコマンドラインオプションは以下の通りです。

bench_tdclcpp_c_xxx.exe databaseUri processNumber functionNumber

|----------------|--------------------------------------------------------|
| パラメータ     | 内容                                                   |
|----------------|--------------------------------------------------------|
| databaseUri    | データベースURIを指定します。                          |
|----------------|--------------------------------------------------------|
| processNumber  | 追加するデータの範囲を0からnで指定します。             |
|                | 複数インスタンスによる同時実行の際に異なる番号を指定   |
|                | することで、処理するレコードが競合しないようにします。 |
|----------------|--------------------------------------------------------|
| functionNumber | テストする処理を番号で指定します。                     |
|                | 処理は以下の通りです。                                 |
|                | -1: all function                                       |
|                |  0: Insert                                             |
|                |  1: Insert in transaction. 20rec x 1000times           |
|                |  2: Insert by bulkmode. 20rec x 1000times              |
|                |  3: read each record                                   |
|                |  4: read each record with snapshot                     |
|                |  5: read range. 20rec x 1000times                      |
|                |  6: read range with snapshot . 20rec x 1000times       |
|                |  7: update                                             |
|                |  8: update in transaction. 20rec x 1000times           |
|----------------|--------------------------------------------------------|
ex)
bench_tdclcpp_c_vc140_64u.exe "tdap://localhost/test?dbfile=test.bdf" 0 -1

bench_query_xxxベンチマークプログラムは、以下のSQLと同等な結果を得る速度を計測 します。

select
   `user`.`id`
   ,`user`.`name`
   ,`extention`.`comment`
   ,`groups`.`name` as `group_name`
from
   `user` INNER JOIN `extention` 
      ON `user`.`id`  = `extention`.`id`
    LEFT JOIN `groups` 
      ON `user`.`group`  = `groups`.`code`
where
    `user`.`id` > 0 and `user`.`id` <= 15000;

コマンドラインオプションは以下の通りです。

bench_query_xxx createdb hostname type n
|----------------|--------------------------------------------------------|
| パラメータ     | 内容                                                   |
|----------------|--------------------------------------------------------|
| createdb       | テスト用データベースを新しく作成するかどうかを 1 または|
|                | 0で指定します。デフォルトは1です。                     |
|----------------|--------------------------------------------------------|
| hostname       | テストを行うホストをIPアドレスまたは名前で指定します。 |
|                | デフォルトは localhostです。                           |
|----------------|--------------------------------------------------------|
| type           | クエリーの内容を番号で指定します。デフォルトは15です。 |
|                | 1: userテーブルから15000レコードの取得                 |
|                | 3: 1の結果にextentionテーブルのcommentフィールドをJOIN |
|                | 7: 3の結果にgroupsテーブルのnameをJOIN                 |
|                | 5: 1の結果にgroupsテーブルのnameをJOIN                 |
|                |+8: 繰り返しの実行プログレスを.で表示                   |
|----------------|--------------------------------------------------------|
| n              | typeで指定したクエリの実行回数を指定します。           |
|                | デフォルトは100です。                                  |
|----------------|--------------------------------------------------------|
ex)
bench_query_vc140_64u 0 localhost 15 100

C++ O/Rマッピングソースコードジェネレータ

ormsrcgen(32|64) はC++ O/Rマッピングのためのソースコードジェネレータです。

C++では動的にクラスを定義することはできないため、ソースコードジェネレータでモデルクラスを生成しコンパイルする形式を採ります。 これを使うとC++で簡単に高速なO/Rマッピングを行うことができます。

構成ファイル

ジェネレータの関連ファイルは source/global/ormsrcgen/templateに格納されています。それぞれのファイルの役割を説明します。

このうち、template.cnffieldNameList_sample.txtを必要に応じて編集します。

コマンドラインオプション

コマンドラインオプションは以下の通りです。

command line options:
  -d [ --database_uri ] database uri ex:tdap://hostname/dbname?dbfile=trnasctd_schema
  -t [ --table_name ] table name
  -c [ --class_name ] class name
  -f [ --conf_name ] configuration filename

-d :データベースを指定します。
-t :生成するモデルのテーブルを指定します。生成はテーブルごとに行います。
-c :-tで指定したテーブルに対応するモデルのクラス名を指定します。
-f :その他の設定項目を記述したテキストファイル(configuration file)です。

configuration fileは、多くの場合、テーブルが異なっても共通の内容です。ひな形がsource/global/ormsrcgen/template/template.cnfとして用意されています。これをコピーして内容を編集します。

configuration fileの書式

クエリーエグゼキューター

querystmts(32|64)はXMLファイルに記述されたTransactdクエリーの実行プログラムです。

querystmtsにXMLファイルを渡すとその内容に従ってクエリーを実行し、結果を標準出力 に出力します。XMLファイルは、queryBuilderプログラムにて作成します。queryBuilderは 現在まだリリースされていません。近日中にリリースされる予定です。

バグ報告・要望・質問など