04.4MCS仮想コンソール機能

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

コンソールをプログラムでハンドリングしたい、という要望は古くからありました。SDSFのような対話型の操作ツールに乏しかった当時は、コンソールはOSを操作する上で最も基本となるデバイスでした。専門のオペレーターをコンソールに配し、ジョブのSTART/ENDを手作業で起動しながら処理したり、システムの運用状態を示すメッセージを目で追いながら適切なOSコマンドなどで対処する、といった運用が行われていた時代から、人に依存するオペレーションを自動化するために多くのユーザーがコンソールに出力されるメッセージをプログラムで検知したり、コマンドの実行結果を取り込んだり、といったことを考えてきました。
元々ユーザー自身が作っていたソフトウェアも、その後は自動運用ソフトウェアに代表されるメーカーやベンダーのプログラム製品に取って代わられましたが、今でもユーザー固有の自動化処理、モニタリングのために、プログラムによるコンソールへのアクセスは必要とされています。

昔はOSのコンソール・バッファーは共通域に展開されていたので、プログラムで簡単に読み込むことができました。MVS/XAからコンソール・バッファーはコンソール空間へ移ってしまったので、簡単には見られなくなり、代替としてOSのWTO出口ルーチン(例えばIEECVXIT、現在ならIEAVMXIT)によってメッセージをロギングしたりする方法も使われました。その他にもサブシステム・インタフェースによってWTOやWTLをトラップする方法も使われました。出口ルーチンやサブシステムを使えば、タイマーなどでバッファーを定期的に見る必要もなく、新しいメッセージが出たかをOSが教えてくれる形を取れます。しかし今となってはこれらも古典的な方法で、MVSはコンソールをアクセスするためのAPI、MCSOPER、MCSOPMSGを提供しています。これらのAPIはコンソール・システムがMCSコンソールとして実装されたMVS/ESAから利用できるようになりました。出口ルーチンやSSIを使う方法では、プログラムはすべてのアドレス空間で動くため、誤りが起きると他の空間をABENDさせてしまうことにもなりますが、APIの場合は誤りが起きても影響を局所化することにも繋がり、安全性の面でも有利です。
MSPとVOS3には同様のAPIはありませんので、従来からの古典的な方法でコンソール・バッファーをアクセスしたり、コンソール・メッセージを取得することになりますが、両OSではプログラムを作って行うよりはメーカーが提供するソフトウェアの機能でコンソール・メッセージにアクセスするのが一般的です。MVSでもAPIこそありますが、同様にメーカーやベンダーのソフトウェア製品経由でのコンソール・アクセスがほとんどでしょう。


拡張MCSコンソール(MVSのみ)

拡張MCSコンソールは、コンソールとしての役割を果たすプログラムです。このプログラムでは、コンソールに出力されるメッセージを受け取ったり、OSやJESコマンドを発行して、その応答を受け取ることができます。現在ではSDSFやNetviewなど、多くのプログラム製品もこの機能を利用してプログラム内部に仮想のコンソールを作り、メッセージの監視やロギングを行います。

拡張MCSコンソールの実現にはMCSOPERおよびMCSOPMSGマクロを使用します。コマンドの発行にはMGCREマクロを使用します。いずれもスーパーバイザーモードが要求されるため、APF許可プログラムでなければなりません。また通知されるコンソール・メッセージはデータ空間にキューイングされるため、AR(アクセス・レジスター)モードによるプログラミングが必須です。




その他、SYS1.SAMPLIBにも拡張MCSコンソールのサンプル・プログラムIEAEXMCSが格納されています。また拡張MCSコンソールの活動状況は、D EMCS[,I|F]コマンドで確認することができます。

Posted in 中級編 • • Top Of Page