破棄されたロックの検索と削除、およびロック タイムアウト操作の実行

放棄されたレコードのロックを検索して削除する方法、およびロック タイムアウト操作の実行方法について説明します。

ペシミスティック ロック モデルでは、レコードのロックが放棄され、手動による削除が必要となる状況が発生することがあります。 例えば、システムの異常終了や、ユーザーが更新の完了を忘れたことの結果として、ロックの中止が起きることがあります。

全体的ロック管理戦略の一面として、定期的なスキャンを実行し、ロックされたレコードを検索します。 この作業は、ロックされたレコードを検索し各ロックを保持しているユーザーを特定する、という処理を行うクエリーを作成することで実行できます。 locked_by フィールドに空以外の値を持つレコードを選択するフィルタ処理を行う、適切なレコードタイプに対するクエリーを作成します。通常は、クエリーの表示に locked_by フィールドを含めて、レコードのロックを保持するユーザーの名前が結果セットに表示されるようにすると便利です。 管理者の場合、この方法は、ロックの削除を依頼してくるユーザーに返答する必要がある場合に重要です。 ユーザーは、ロックを削除する権限を持っていない場合や、誰がロックを保持しているか分かっていない場合があるため、ロックを保持するユーザーにレコードの操作が完了しているかどうかを確認できません。 ロックされたレコードを所有するユーザーをクエリーを使用して特定し、ロックを保持するユーザーに確認を取り、必要に応じて、ユーザーの代わりに手動でロックを削除できます。 手動によるロックの削除では、スキーマ開発者がレコードタイプに対してアンロック アクションを行います。

ロック タイムアウト操作の実行

Rational® ClearQuest® バージョン 7.1 のペシミスティック ロック モデルは、手動のロック タイムアウト メカニズムのみをサポートしています。コマンド行から Perl スクリプト findrecordlocks.pl を使用して、ロックされたレコードの検索、指定した時間間隔でのロックされたレコードの監視、ロック タイムアウト操作 (破棄されたロックの削除など) などを行うことができます。 また、例えば findrecordlocks.pl スクリプトを使用することで、独自のスクリプトを作成してロック タイムアウト操作を実行することもできます。


フィードバック