DTCTester の使い方

DTCTester は、MS-DTC を使い、SQL Server に対する分散トランザクションの動作を確認することができるツールです。
内部的には、ODBC データソースを使い、SQL Server データベースのトランザクション サポートを確認しています。
DTC の設定は問題ないのか、DTC が動いているか、等確認する際には、便利なツールなので紹介します。
なお、DTCTester は実際に SQL Server に接続して、一時テーブルを作成するので、SQL Server があることが前提です。

まず、上記をダウンロードして、どっか適当なフォルダーに展開しておく。

[ クライアント側の設定]

  • MS-DTC の設定
  • ODBC データソースの定義
  1. MS-DTC の設定
    Client_MS-DTC設定1
    Client_MS-DTC設定2
    上記でクライアント側の MS-DTC の設定は完了です。
    なお、MS-DTC は設定を変更したら、DTC サービスを再起動する必要があります。
  2. DTCTester は、DTC に対して ODBC データソースを使って SQL Server にアクセスするように指示します。
    では、データソースを定義しておきます。なお、クライアント側が 64bit OS の場合には、
    32bit の ODBC データソース(C:\Windows\SysWOW64\odbcad32.exe)で作成することを
    忘れないようにしてください。(DTCTester が 32bit ツールのため)
    Client_DSN作成1
    Client_DSN作成2
    Client_DSN作成3Client_DSN作成4
    Client_DSN作成5Client_DSN作成6
    Client_DSN作成7

[ サーバー側(SQL Server)の設定]

  • MS-DTC の設定
  1. MS-DTC の設定
    Client_MS-DTC設定1
    Server_MS-DTC設定1

ここまでで必要な設定は終了です。
今回は SQL Server データベースにサンプルの Pubs データベースを使用しますので、
Pubs データベースに対して読み書き権限があるユーザーを準備しておくことも忘れないでください。
では、実際に動かしてみましょう。

DTCTester実行1

上記実行を見ると、一時テーブルとして #dtc29760 を作成していることがわかります。
そして、トランザクションを投入して、コミット待ち状態で停止しています。(Enter キー押下でコミットされる)
では、現在のトランザクションの統計も確認してみます。

[ クライアント側のトランザクション統計]
Client_DTC統計1

[ サーバー側(SQL Server)のトランザクション統計]
Server_DTC統計1

確かに、アクティブなトランザクションが 1 つあることがわかりました。
では、DTCTester に戻って、コミットするために、Enter を押下してみます。

DTCTester実行2

無事にトランザクションがコミットされました。念のため、トランザクションの統計も確認してみます。

[ クライアント側のトランザクション統計]

Client_DTC統計2

[ サーバー側(SQL Server)のトランザクション統計]
Server_DTC統計2

MS-DTC の統計を見ても、コミットされたことが確認できました。
DTC トレースでも確認してみます。(tracefmt.exe でデコードが必要)

DTCLog

DTCTester は、なかなか便利なツールです。
クラスタ環境を構築したら、DTCTester で確認してみるというのも良いと思います。

あと、似たようなツールに DTCPing というものがあります。

こちらの DTCPing の方は、DTC が使用する RPC 通信がクライアント/サーバーで正常にできるかを
確認するだけのものになるので、利用用途はいまいちかなと。
DTCPing には、UI があり、クライアント側、サーバー側で動かす必要があります。
使用する際の注意点としては、サーバー側からも RPC のReverse Bind を行うので
クライアント側の RPC サービスに restrict の設定を行う(無効にする)必要があります。

個人的には、DTCTester の方が実用面で使えるツールかなと思います。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。