JP1ジョブ管理でのJP1イベント

ジョブ管理(JP1/AJS3)だけを使っていても、JP1イベントはけっこう使う(と思う)。そろそろ自分の理解をまとめておこうかなと。

JP1イベントを扱うのは「イベントサーバ」で、通常、JP1/Baseを起動すると、イベントサーバもいっしょに起動する。jevstartコマンドとjevstopコマンドで、イベントサーバのみ起動・停止することも可能である(UNIX/Linux版)。ちなみに、JP1/Baseの“jev”から始まるコマンドは、JP1イベントに関するモノ。
(JP1製品固有のJP1イベントはいったん無視して)オリジナルのJP1イベントの送受信については、ざっくり次のようなイメージになる。

で、実際のイベントの送受信については、主に次などにより実現される。

  • 送信
    • オリジナルのJP1イベント
      • JP1/AJS3の「JP1イベント送信ジョブ」
      • JP1/Baseの「jevsendd(またはjevsend)コマンド」
    • JP1製品のJP1イベント(自動で、または設定により発行される)
      • JP1/AJS3のイベント*1
      • JP1/Baseのイベント*2
  • 受信
    • イベントジョブ
      • JP1イベント受信監視

例えば、jevsenddコマンドでJP1イベントを送信する場合には、次のように実行する。これにより、イベントIDが“7FFF8080”*3で、メッセージが“送信するメッセージ”で、拡張属性が“EXT1”と“EXT2”であるJP1イベントが、ホスト DST_HOST_NAME のイベントサーバに送信される。

/opt/jp1base/bin/jevsendd \
    -i 7FFF8080 \
    -m "送信するメッセージ" \
    -e EXT1="value1" \
    -e EXT2="value2" \
    -d DST_HOST_NAME

受信側では、JP1イベント受信監視ジョブ*4の「引き継ぎ情報*5」で次のように設定することで、イベントに含まれるID(EVID)、メッセージ(EVMSG)などを、マクロ変数として引き継ぐことができる。ちなみにマクロ変数*6とは、“AJS2”から始まる変数で、ジョブネット内で共有することができる。

  ?AJS2EVENTID?:EVID
  ?AJS2MESSAGE?:EVMSG
  ?AJS2EXTENSION1?:EV:EXT1
  ?AJS2EXTENSION2?:EV:EXT2


その他にもJP1/AJS3でよく使うイベントジョブには、次がある。JP1/Baseにも、ログファイルトラップという機能があるが、JP1/AJS3のログファイル監視(内部ではログファイルトラップを用いている)が便利なので、今のところコレで事足りている。

  • ファイル監視(「ファイルが作成されたら起動」「ファイルが変更されたら起動」など)
  • ログファイル監視(「ログファイルに特定の文字列が出力されたら起動」など)
  • 実行間隔制御(「一定時間経過したら起動」)

主なところは、こんなところかな。

2012/01/16追記

なんか絵が、サーバからサーバへ通信しているみたいになっている。右側のサーバを指定してJP1イベントを送信した場合には、左側のサーバのイベントDBにはイベントが登録されないので、絵の修正が必要。
ちなみに、転送設定ファイルに設定しておくことで、左側のサーバのイベントDBにも登録し、右側のイベントサーバへ転送する設定もできる。転送の概要は「http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3R7130/BASE0014.HTM」を、設定手順は「http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3R7130/BASE0145.HTM」を参照のこと。

*1:JP1/AJS3のイベントは、「JP1/AJS3運用ガイド 付録A.1 JP1イベント一覧」を参照のこと。

*2:JP1/Baseのイベントは、「JP1/Base運用ガイド 15.2 JP1/Baseが出力するJP1イベント一覧」を参照のこと。

*3:イベントIDとして指定できる範囲は、0〜1FFF、7FFF8000〜7FFFFFFF。0〜1FFFはJP1製品のJP1イベントが含まれるので、オリジナルのイベントIDは、7FFF8000〜7FFFFFFFを用いるのがよいのでは。

*4:http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3S0931/AJSV0333.HTM」を参照のこと。なお、イベントIDの欄は「基本コード:拡張コード」の形式になっているが、(この構成で拡張コードって基本使わないから)前半の基本コードの欄のみを使い、“7FFF8080:”のようにする。“7FFF:8080”とやってしまわないように。

*5:http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3S0931/AJSV0336.HTM」を参照のこと。

*6:マクロ変数の詳細は「JP1/AJS3 導入ガイド 3.1.3 マクロ変数を使用した業務の作成方法」を参照のこと。