サポートチーム便り2023.04.26
IFS内ファイルを誰がロックしているかを確認したい
Question
ファイル(オブジェクト)のロックを確認する為に、WRKOBJLCK コマンドを使用していますが、IFS内のフォルダーにあるファイルがロックされた場合に、誰がロックしているのかを確認する方法はありませんか。
Answer
API QP0FPTOS を使用する事により、IFS内のファイルロック状況を確認できます。
API QP0FPTOS を実行する時に、パラメータを3つ渡します。
実行したい機能 | *LSTOBJREF |
オブジェクトパス名 | ロック状況を確認するファイル名を指定します |
レポートタイプ | *FORMAT2 |
※実行例
CALL PGM(QP0FPTOS) PARM(*LSTOBJREF '/belldata/test.csv' *FORMAT2)
このAPIを実行すると、スプールファイル (ユーザー・データ QP0FDUMP) が出力されます。
【スプールファイル】 ※一部抜粋
List Object References (QP0FPTOS *LSTOBJREF *FORMAT2)
→省略
Jobs using the object:
------------------------------------------------------------------------------
Job. . . . . . . . . . . . . : 182258/QUSER/QZLSFILET
→省略
iSeries NetServer Session Information for this job
Number of sessions: 1
User: BELLUSR Session Number: 135052
Workstation Address: 192.168.10.126
Workstation Name: 192.168.10.126
*********************** End of QP0FPTOS(*LSTOBJREF) Dump *********************
ジョブ 182258/QUSER/QZLSFILETのジョブログを確認しても、どのファイルをロックしているか確認できず、また多数ユーザーが使用している場合には、ユーザーの特定が困難になります。
このAPIを実行していただきますと、出力されたリスト中にある「iSeries NetServer Session Information for this job」の項目から、NetServerのユーザー名とPCのIPアドレスが確認できます。
また、このAPIを使用して、QDLSのオブジェクトをチェックすることもできます。
CALL PGM(QP0FPTOS) PARM(*LSTOBJREF '/qdls/dls-name/dls001.txt' *FORMAT2)
※ご参考サイト
このAPIを使用して、WRKLCKコマンドを作成するサンプルプログラムが記載されています。
「Sample Program to List Lock Information for IFS Objects」
https://www.ibm.com/support/pages/node/685131
by あすと