03.3ENQされているリソースを求める(GQSCAN)

By 神居 - Posted: 2010/10/11 Last updated: 2010/10/11 - Leave a Comment

資源の排他制御を行うためにはENQおよびDEQを使用します。MVSでは8バイトのQ名と255バイトまでのR名を組み合わせて資源に名前を付けて排他制御を行います。ENQ/DEQについては「資源の逐次化(排他制御)を行う(ENQとDEQ)」を参照。
場合によってはシステム内でどのようなENQが発行されているかを知りたい場合があります。初期のMVSではENQ情報はQCB、QELというコントロール・ブロックで管理され共通域に展開されていましたが、現在ではGRS(Global Resource Serialization)というコンポーネントによって管理され、ENQ情報もGRS空間にあります。そのため従来のように共通域の制御表チェインをたどってENQされている資源を調べるような方法は採れなくなりましたが、代わりにGQSCANというサービスが提供されており、これを使用してシステム内のENQ情報を得ることができます。


GQSCANサービス

GQSCANはOS内で発行されているENQに関する情報を返します。GQSCANを使うことによって、データセットなどシステム内のどの資源を、誰が使用しているか、誰が排他制御待ちになっているかなどを調べることができます。


ISGQUERYサービス

z/OS V1R6から提供されているGQSCANに代わる新たなサービスです。GQSCANは非逐次化探索なので、返答されたENQ情報は要求元によって変更されてしまっている場合がありますが、ISGQUERYではCMSEQDQロックを保持したまま発行できます。その他GQSCANより機能や返される情報が増え、64ビットモードもサポートされています。GQSCANに相当するのがISGQUERY REQINFO=QSCANです。IBMはGQSCANに代わりISGQUERYを推奨していますが、APIとしてはGQSCANより複雑です。最初はGQSCANで試してもいいでしょう。
ISGQUERYはz/OS固有の機能ですが、MSPにはGQSCANとほぼ互換の機能を持つ同じ名前のGQSCANマクロがあります。VOS3ではいずれの互換機能も用意されていません(VOS3ではENQ制御表テーブルはSQAに展開されているので、必要なら直接たどることは可能)。

Posted in 中級編 • • Top Of Page