ユーティリティ機能ではデッドロックが発生してもシステムはそれを検出しないので、CheckTableには、長期に渡るデッドロックを回避するためのタイムアウト機能が組み込まれています。しかし、このタイムアウト機能では、頻繁にロックを要求されるテーブルに対してロックを適用することは困難です。
非同時実行モードでは、初めてロックが要求された場合は、タイムアウト間隔として1分が設定されます。以降ロックが要求される度に、タイムアウト値として、最大5分に達するまで、1分ごとに再実行されます。それ以降は、すべて5分のタイムアウトが設定されます。CheckTableがロック リクエストを試行できる回数は無制限です。
SKIPLOCKSオプションを指定した場合、CheckTableはテーブルに対して1回だけロックを要求します。CheckTableが最初にロックを獲得しない場合、CheckTableはさらにロックを要求せずに、そのテーブルをチェックしません。
CheckTableの現在のステータスを判別する場合は、CheckTableコマンド プロンプトにstatusと入力します。
テーブル チェックをアボートするには、“abort table”と入力して現在のテーブル チェックをアボートするか、“abort”と入力して現在のCHECKコマンドおよび保留状態のテーブル チェックすべてをアボートします。
詳細については、CheckTableおよびシステム アクティビティを参照してください。
非同時実行モードでは、DBS Control GeneralのフィールドのCheckTable Table Lock Retryのエントリが正の数に設定されていると、CheckTableは分単位で指定されたこの時間が経過するまでロック リクエストを再試行します。CheckTableは、保留状態のロックによってテーブルがスキップされることを表示し、次のテーブルのチェックに移ります。詳細については、DBS制御(dbscontrol)のChecktableTableLockRetryLimitを参照してください。
並行モードでは、初めてテーブル ロックが要求されたときのタイムアウト間隔は、15秒です。CheckTableはロックされたテーブルをスキップし、残りのテーブルのチェックを続けます。その後のすべての再試行では、テーブルあたり5分のタイムアウト間隔が適用されます。RETRY LIMITが指定されない場合、スキップされたすべてのテーブルはいつまでも再試行されます。RETRY LIMITが正の値の場合、スキップされたすべてのテーブルは、CheckTableがRETRY LIMITに達するまで再試行されます。並行モードの詳細については、CheckTableおよびシステム アクティビティを参照してください。