サポートチーム便り2012.01.16
ロック・ファイルのチェックを作成する
Question
ファイルがアクセス可能で、ロックされていないかどうかを確認するコードを作成できることは知っていますが、だれがファイルをロックしたかを確認する方法も知りたいと考えています。物理ファイル・メンバーをクリアしようとしたとき、どのジョブもそれをロックしているはずがないのに、夜間に障害が発生してしまいました。「member in use (メンバーが使用中)」というエラー・メッセージが表示されました。待機していたプログラマーがログインし、オブジェクトがロックされていないか確認したところ、ファイル・レベルやメンバー・レベルでもだれもいなかったのです。
Answer
WRKOBJLCK コマンドを使用すれば知りたいことがわかります。対話式に実行していることが条件です。また QWCLOBJL API を使用して、プログラム的に情報を取得できます。これを行うには、MonMsg コマンドと CLRPFM コマンド (例: MonMsg MsgID(CPF3130)) を使用して QWCLOBJL を呼び出し、ロック情報を取得します。
オブジェクト監査も有効です。まず、QAUDCTL、QAUDLVL、および QAUDLVL2 のシステム値をそれぞれ使用して監査ジャーナル・レシーバーを設定し、異なるタイプのセキュリティー・イベントを記録します。次に、Audit Object コマンド (OBJAUD) を使用してファイルの「変更」監査を構成します。障害が発生したら、クリア操作がエラーになった期間の監査ジャーナル項目を確認します。