REXX Exec または Clist を作成して、誰がデータセットをエンキューしたかを識別し、ISPF ダイアログ アプリケーションにユーザー フレンドリなメッセージを表示する必要があります。システム構成の問題により、%WHOHAS コマンドは使用できません。ただし、ISPF 自体 (オプション 3.4) には、zos メインフレームへの独自のフックがあり、必要なエンキューされたリソース情報を表示するため、情報を取得できることも知っています。残念ながら、REXX Exec または CLIST を使用して ISPF 3.4 の外部からこのデータにアクセスする方法がわかりません。助言がありますか?
2 に答える
最初に読んだとき、これを掘り下げるのはかなり簡単なことだと思いました。そうではありません!
ISPF では、コマンド行に次のように入力して、データセットを保持しているユーザーを表示するパネルを取得できます。
TSO ISRDDN ENQ 'データセット名'
ISRDDN コマンドについては、次の URL で文書化されています 。
REXX プログラム内から ISRDDN を呼び出すことは可能ですが、出力を解析してメッセージを発行できるステム変数に取り込む方法がわかりません。出力をキャプチャできる ISRDDN へのコマンド ライン インターフェイスが見つかりませんでした。
http://www.sillysot.com/mvs/index.htm?queryenq.htmにも別のユーティリティがありますが 、これもこれを行うと主張しています。私は試したことがないので、これ以上コメントすることはできません。
私はあなたの質問をググったところ、複数の人が MVS コマンドを使用しているようです
D GRS,RES=(*,dsname)誰がデータセットを保持しているかを判断します。ただし、これにはコンソール アクセスが必要なため、ほとんどのユーザーには適していません。コンソール アクセスが許可されている場合は、REXX でコンソール セッションを開始し、出力をかなり簡単にキャプチャできます。
検索する最後の場所は、CBT テープ (IBM メインフレーム用のフリーウェア) です。ここでは、WHOHAS ISPF コマンドのいくつかの実装を見つけることができます。
申し訳ありませんが、これが私にできる最善のことです。
これは非常に簡単な修正であることが判明しました。派手なものはありません。clist が CONTROL NOFLUSH を使用する場合、データセットの ALLOCation が失敗しても中止されません。また、TSOPLUS という製品もインストールされています。この製品は、割り当てに失敗したときにデータセットを割り当てたユーザーを識別する端末へのメッセージをフォーマットします。FLUSH をオフにしてから TSOPLUS メッセージを systrap することで、必要な情報を抽出することができました。