1つ以上のロックを取得しようとしたとき、Teradata ARCは、これらのロックのもう一方の外部処理と競合する場合があります。 そのような状況が発生した場合、両方の処理は、デッドロック状態になる可能性があります。デッドロック状態では、各処理が1つ以上のロックを取得し、必要なロックを一方の処理が所有しているために処理がブロックされます。 いずれかの処理が所有しているロックを解放しないとデッドロック状態に陥り、両方の処理が一方の処理から必要なロックを取得できるまで永久に待ち続けます。 このようなデッドロック状態を解消する方法は、処理の1つを停止し、所有されているロックを解放することです。これにより、残りの処理は実行を開始するのに必要な残りのロックを取得できます。 主な課題はユーザーがどの処理を停止しどの処理を続行するか決定できるように、自分のTeradata ARCジョブがデッドロック状態にあるかどうかや他のどの処理が関わっているかをどのように判断するかです。
TTU 15.10以降では、データベース クエリー ログ(DBQL)ユーティリティは、LOCK LOGGERユーティリティを使用してジョブがデッドロック状態にあるか監視する方法を提供します。Teradata ARCジョブのデッドロック状態を監視できるようにシステムを設定する場合は、リリース15.10以降の<Database Administration>マニュアル(B035-1093)の「Tracking Query Behavior with Database Query Logging(データベース クエリー ロギングによるクエリー動作の追跡)」の章にて、設定方法の詳細を確認してください。(マニュアルの他の箇所で「ログのロック」を検索する方法もあります。)