不要なメッセージをコンソールに出さない方法

By 神居 - Posted: 2008/10/26 Last updated: 2010/06/22 - Leave a Comment

コンソールと言うのは、システムやジョブの異常な状態をオペレーターに通知したり、必要な処置をオペレーターから受け入れるためにも使われます。もちろんエラーに限らず「ちゃんとシステム動いてますよ」とか「これからこんなジョブが開始します」「今この処理が終わりました」などと言う正常な状態の状況通知にも使われています。
しかしながら、どうでもいいんじゃないかこれは?とか、どう見てもプログラマーのデバッグ用メッセージ?見たいなものも少なくありません。あまりにも多くのメッセージが頻繁に出てコンソールのスクロールが休む暇がない、と言う状況は好ましいとは言えません。
OSは本当にクリティカルな状態を示すメッセージはスクロールされない属性でメッセージを出してはいますが、アプリケーションなどではそこまで凝った作りをしていないものが多いので、いざと言うときにオペレーターは見逃してしまうかも知れません。また何らかの対応のためOSコマンドを使った時、コマンドの実行結果が見る間もなく流れて行ってしまっては困ります。システム・パフォーマンスの面でも得はしません。MVSパフォーマンスチューニング入門

そこでオペレーターにいちいち知らせなくてもいいだろう、と言うメッセージはコンソールへ出さないようにできます。従来はWTOのOS EXITルーチンなどが多用されましたが、単にメッセージ出力を抑止するだけなら今は出口ルーチンを書く必要はありません。MVSにはMPF(Message Processing Facility)と言う機能があり、このパラメーターを使って簡単に出力を抑止できます。

上から3つはメッセージIDによって抑止するメッセージを個別に指定しています。4番目はUAP100番台のメッセージは一切表示しないことを指定します。5番目はIEF099メッセージは表示はさせるが、ユーザー出口ルーチンWTOEXIT1を呼び出してユーザー固有の処理させる例です。
これをMPFLST01として作成した場合はSET MPF=01コマンドでアクティブにできます。すでに他のMPFLSTが使われているかも知れません。D MPFコマンドで確認できます。もしMPF=00が使用されていると00が取り消され01に置き換わります。既存のMPFLSTに追加する場合はSET MPF=(00,01)と指定します。
MPFによって表示が抑止されてもそれはコンソール上だけです。SYSLOGにはきちんと書き出されますから何か問題が起きた場合にはSYSLOGをトレースすれば表示されなかったメッセージを確認することはできます。
※MPFはMVS固有の機能です。

Posted in 知っておくと便利なテクニックなど • • Top Of Page