

ここでは仕事で使ったツールに関する知識を書き連ねていっています。
エキスパートというわけでもないので、間違いあればご指摘ください。

今回はSystemwalker Operation Managerのメッセージ事象を発生させる方法についてです。
使用するコマンド
コマンド名
Windows版:jobschmsgevent.exe
Unix版:jobschmsgevent
尚、ジョブのコマンド欄に入力する際、このコマンドはフルパスでなくて構いません。
Windowsの場合、コマンド系は拡張子(.exe)まで付けとくと良きです。
オプション
Windows版:jobschmsgevent.exe メッセージ事象名[:プロジェクト名[/ジョブネット名]]
Unix版:jobschmsgevent メッセージ事象名[:プロジェクト名[/ジョブネット名]]
他にもオプションはありますが、主用途的にはこれだけ覚えておけば良いです。
そもそもどういう仕組みでメッセージ事象を受け取るのか
勘違いされやすいですが、Systemwalker Operation Manager ではジョブネットやジョブが直接メッセージ事象を受け取っているわけではありません。
必ず、間にメッセージを受けるファイルがあり、そのファイルの読み取りをジョブスケジューラ機能が行い、そこからオプションによってメッセージの配布先が決まります。
自サーバにメッセージ事象を発生させる場合
ジョブネットの設定を気を付ければ余計なオプションは不要
「jobschmsgevent メッセージ事象名」を実行することで、自サーバの(不特定の)ジョブネットにメッセージ事象を発生させます。
ジョブネットがメッセージ事象を受け取るかどうかは、「ジョブネットのプロパティ」⇒「メッセージ」タブの設定に依存します。
なお、意識せずメッセージ事象を複数のジョブネットで使いまわしてたりするとそれらのジョブネットも動くことになりますので、基本的にメッセージ事象名については同名は避けましょう。
逆に、メッセージ事象名をジョブネットごとに明確に分けて設定しておけば、jobschmsgeventに余計なオプションは不要と言えます。
他サーバにメッセージ事象を発生させる場合
オプションを使うか、ネットワークジョブを使うのか
jobschmsgeventではホスト名を指定することで別サーバにメッセージ事象を発行できます。
ですが、基本的にネットワークジョブがオススメとなります。
オプションでの指定は、OSが同じである必要があり、ポート空けたり、実行ユーザを統一したりなどが合わさり、トラブル時に原因の究明に無駄な時間を掛ける場合が多いためです。
ネットワークジョブを使うのとそうでない場合についての違い
そもそも何が違うのか、という点について。
これは、コマンドをどこで実行しているかになります。
オプションを付けた場合、Aサーバでjobschmsgeventコマンドを実行して、その処理の延長でBサーバにメッセージ事象が発生します。
ネットワークジョブの場合、Aサーバはあくまで「このコマンド実行して」とBサーバに依頼するだけとなり、Bサーバ上でjobschmsgeventコマンドが実行されてBサーバ自身にメッセージ事象を発生します。
まあ、これはjobschmsgeventコマンドに限らずですが。
とりあえず、今回は以上!