ttXactAdminユーティリティによって、未解決の各トランザクションの所有者、ステータス、ログおよびロックの情報が表示されます。データ・ストアへの現在のすべての接続を表示することもできます。ttXactAdminは、レプリケーション、XLAおよび非同期WRITETHROUGHキャッシュ・グループに関する問題のトラブルシューティングに役立ちます。
ttXactAdminを使用してロック・タイムアウトを診断します。同じ行を更新しようとしている2つの接続について考えてみます。接続1による次のトランザクションが進行中です。
UPDATE table1 SET c1 = 2 WHERE c1 = 1;
接続2では、次の更新を実行しようとします。
UPDATE table1 SET c1 = 3 WHERE c1 = 1;
接続2は、次のエラーを受信します。
6003: Lock request denied because of time-out
Details: Tran 2.3 (pid 2880) wants Un lock on rowid 0x00156bbc, table TTUSER.TABLE1.
But tran 1.21 (pid 2564) has it in Xn (request was Xn). Holder SQL (update table1 set c1 = 2 where c1 = 1;)
The command failed.
エラーの詳細によると、トランザクション1.21では行0x00156bbc(トランザクション2.3が更新する行)がロックされていることがわかります。ttXactAdminによって、データ・ストア全体のアクションに関する出力にこの情報が表示されます。
$ ttXactAdmin myDSN
2007-03-23 11:26:01.643
c:\datastore\myDSN
TimesTen Release 7.0.2.0.0
Outstanding locks
PID Context TransID TransStatus Resource ResourceID Mode Name
Program File Name: ttIsql
2564 0xeeb9a8 1.21 Active Database 0x01312d00 IX
Row 0x00156bbc Xn TTUSER.TABLE1
Table 1910868 IXn TTUSER.TABLE1
Program File Name: ttIsql
2880 0xeeb9a8 2.3 Active Database 0x01312d00 IX
Table 1910868 IXn TTUSER.TABLE1
Command 19972120 S
Awaiting locks
PID Context TransID Resource ResourceID RMode HolderTransID HMode Name
2880 0xeeb9a8 2.3 Row 0x00156bbc Un 1.21 Xn TTUSER.TABLE1
2 outstanding transactions found
詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』のttXactAdminに関する説明を参照してください。