STACKマクロによるTSOコマンド出力のトラップ

By 神居 - Posted: 2011/12/30 Last updated: 2011/12/30 - Leave a Comment

STACKマクロによるTSOコマンド出力のトラップ

z/OS(MVS、OS/390)のTSOでは、CLIST内で発行したTSOコマンドの出力メッセージは、システム変数「SYSOUTTRAP」と「SYSOUTLINE」によって簡単にトラップすることができます。これらの変数を使えば、コマンドからの出力メッセージはシステム変数SYSOUTLINEnnに保管され、後でその内容を参照したり取り出したりすることができます。しかし「SYSOUTTRAP」と「SYSOUTLINE」の機能は、z/OSでしか利用できません。このサイトでも紹介しているライセンス・フリーで使用できるMVS3.8あるいはMSPやVOS3では利用できません。これらのOSではシステム変数ではなく、アセンブラー・プログラムによってTSOコマンド出力の宛先を変えることで代替することができます。

TSOコマンドの出力メッセージの宛先を変更するには、STACKマクロを使います。そのサンプルとして@CMDプログラムを紹介します。@CMDプログラムは、STACKマクロによってメッセージの宛先をデータセットに変更して、指定されたTSOコマンド・プログラムを呼び出し、変更したメッセージの宛先を元に戻して終了します。CLIST内で直接TSOコマンドを発行する代わりに@CMDを発行することで、指定したTSOコマンドの出力メッセージをデータセットに書き出すことができます。後はCLISTの中でそのデータセットにアクセスすれば、コマンドから出力されたメッセージを取得することができます。


@CMDプログラム


メッセージ格納データセットの割り振り


@CMDプログラムの実行

Posted in CLIST(コマンドプロシージャ)とISPFダイアログ, システムプログラマーのための手引きいろいろ • • Top Of Page