M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

JP1/AJS2のジョブ実行多重度で数日をロス

最近、仕事で望むと望まざるとにかかわらずJP1/AJS2のマネージャ/エージェントのセッティングをしなくてはならないことになりました。そこでハマったのが「ジョブ実行多重度」という概念・設定です。

学んだこと

  • jpqagtaddコマンドの-cpオプションかjpqagtaltコマンドの-cpオプションで、ジョブ実行多重度を明示的に1以上に指定しないと、エージェント・ホストでジョブ実行することはできない。
  • jpqagtaddコマンドの-cpオプションは任意指定だがこれを指定しない場合、「多重度は無制限」や「多重度はデフォルトの○○」ではなく「多重度は0、よって何も実行できない」ということになる。

学ぶまでのこと

ことの背景として、仕事でやらねばならないことはマネージャのホスト上でのエージェント情報の置き換えでした。古いエージェントの情報をjpqagtdelコマンドで削除し、新しいエージェントの情報をjpqagtaddコマンドで追加します。

そこでjpqagtaddのリファレンスを見ると-ahオプションでエージェント・ホストの名前を指定するだけのようです:

jpqagtadd

形式
jpqagtadd
[-mh マネージャーホスト名]
-ah エージェントホスト名
[-cp 時刻-時刻=ジョブ実行多重度...]

機能
エージェントを追加します。同時に,そのエージェントにデフォルトキューを作成します。

それではとjpqagtadd -ah foobarとコマンドを実行してエージェントを追加し、jpqqueopenコマンドでキューの受入口をオープン、JP1/AJS2 Viewから(先ほど追加した)新しいエージェント・ホストをジョブ実行エージェント・ホストとするテスト用のジョブを実行してみました。

・・・が、ジョブのステータスはいつまでも「キューイング」です。いつまで経ってもジョブは実行されません。この原因調査にpingを打ったり、telnetで繋いでみたりとやたら時間を使ってしまい(もちろんそれだけをしていたわけではないのですが)数日をロスすることになってしまいました。

結論は前述のとおりで、当該エージェント・ホストの「ジョブ実行多重度」を1以上に設定することで問題の解決となりました。ジョブ実行多重度が0の場合の挙動についてはリファレンスの目立たない箇所に記載されていました:

(1) ジョブ実行多重度の設定方法

ジョブ実行多重度は,ジョブ実行環境構成定義ファイル(jpqsetup.conf)のエージェントホスト定義に指定してjpqimportコマンドで設定する方法と,jpqagtaddコマンドでのエージェントホスト追加時に-cpオプションで指定する方法があります。

jpqimportコマンドで設定する場合,ジョブ実行環境構成定義ファイルのジョブ実行多重度には,多重度設定開始時刻「0000」,多重度設定終了時刻「0000」,ジョブ実行多重度「5」(24時間,ジョブ実行多重度は5)がデフォルトで定義されています。必要に応じて,jpqagtaltコマンドを実行してジョブ実行多重度を変更してください。また,jpqagtaddコマンドでエージェントホストを追加する場合,ジョブ実行多重度の指定(-cpオプション)を省略すると,「0:00-0:00=0」(24時間,ジョブ実行多重度は0)が仮定されます。ジョブ実行多重度が0の場合,ジョブを実行できません。ジョブを実行する場合は,jpqagtaltコマンドを実行してジョブ実行多重度を1以上に変更してください。

ジョブ実行多重度の指定例については,マニュアル「JP1/Automatic Job Management System 2 コマンドリファレンス 1. コマンド jpqagtalt」の補足事項を参照してください。(・・・)

そんなに大事なことをなんでjpqagtaddコマンドやジョブ実行多重度の説明の冒頭で述べずに、こんなごちゃーとしたパラグラフの中に混ぜ込むかたちで述べているのだ、と。。