メッセージの送信と言えば i5/OS では
SNDMSG
コマンド と
SNDPGMMSG
コマンド の二つが用意されているが
区別はついているだろうか ?
API ではさらにややこしくて
SNDMSG
に対応する API が QMHSNDM
SNDPGMMSG
に対応する API が QMHSNDPM
である。
各々の名称はというとさらに不可解で、
SNDMSG
,QMHSNDM
非プログラム・メッセージの送信
SNDPGMMSG
,QMHSNDPM
プログラム・メッセージの送信
となっていてこれらを扱うユーザーに意図的に混乱を
呼ぶような名称となっている。
「非プログラム・メッセージ」という呼び名からすると
プログラム内では使うべきではないのか ?
それならばなぜ API が存在するのか ?
API は専らプログラム内に組み込むことを目的としているからである。
開発者としての読者は SNDPGMMSG
は使っているが
SNDMSG
を使う機会は少ないかもしれない。
エンド・ユーザーとして日常的に操作を中心に行っている読者は
SNDMSG
は使うが SNDPGMMSG
を使う機会は少ないのかもしれない。
そろそろ結論が見えてきたところだ。
確かに SNDMSG
はコマンド入力画面で実際に入力して操作する機会が多く
SNDPGMMSG
は CLP 内に組み込んで使用する機会が多い。
これは
SNDMSG
: 他のエンド・ユーザーのメッセージを送信する。SNDPGMMSG
: プログラムがこのプログラムを実行したユーザーに
ただし QSYSOPR
へは、どちらのコマンドでも送信することができる。
このことを目的として用意されているコマンドである。
無理やりに SNDMSG
を使って自分自身にメッセージを送信することは
できるのだが SNDPGMMSG
のような完了メッセージや報告のメッセージを
送信する機能は SNDMSG
には用意されていない。
従って
他人に送るメッセージは SNDMSG
実行した自分に送るメッセージは SNDPGMMSG
であると理解しておけばよい。
長いあいだのモヤモヤが解けましたか ?