「JS7インストール 1」では JS7 Controllerのサーバーを作り、
「JS7インストール 2」では JS7 Universal Agentをインストールし、
「JS7インストール 3」では PostgreSQLのデータベースサーバーを作って、JS7 JOC Cockpitのインストールをし、
「JS7インストール 4」では JS7 JOC Cockpitの WEB画面でユーザー作成など行いました。
ここまできてやっとジョブを作るって作業に入れます。
WEBブラウザを使って、(私の環境では) [http://js7cockpit:4446] にアクセスし、JS7の [subro]ユーザーでログインしているところから開始します。
こんな画面になっているはずです。
1.ワークフローとジョブの作成
まずは個々のジョブを繋げた処理フローを入れるための枠であるワークフローを作成します。
画面上にアイコンが並んでいる中から [ジョブ定義] をクリックします。
画面左側はこんな絵になっているので、[インベントリー]タブの中の [フォルダー]タブの中のツリーにある [コントローラー] の左にある […] をクリックします。
メニューが出てきますので、[新規] - [新規ワークフロー] と選択します。
ワークフローの名前を適当に入れ、登録を押します。
こんな画面になります。
赤枠内がビジュアル的に処理フローを描けるところになります。
[J] マークのアイコン(ジョブ)をマウスでドラッグして、[ここにドラッグアンドドロップ] と描いてある点線枠にドロップします。
ここで大事なのは、ドラッグされてきたアイコンを点線枠におくのではなく、マウスカーソルを点線枠に合わせるということ。
(私はちょっとハマりました)
画面右にはこのようにジョブのプロパティを入力する場所が出てきますので、[ジョブプロパティ]タブを選んで、以下のようにジョブを作りました。
名称 | ジョブの絵の中に入る名前 |
ラベル | 同じ名称のジョブがある場合にシステム内で区別するためのもの。 |
タイトル | ジョブの絵の下に出てくる名前 |
エージェント | ジョブ実行先のサーバー プルダウンから選択できる |
リターンコード | この絵では echoコマンドを実行した時のリターンコードが 0 の時をジョブの正常終了としています。 ラジをボタンの [失敗] を選んで異常終了時のリターンゴードを 書くこともできそう。 |
ジョブクラス | シェルコマンドの場合は [shell] になります。 他に [Java] とかあります。 |
[スクリプト]タブ | ジョブクラスに [shell] を選んだらここにコマンドを書きます。 |
このジョブは標準出力にメッセージを出すだけの機能ですが、実際にはシェルスクリプトを実行する事が多いのではないかと思います。
ジョブができたら、右上の配置を押します。
登録を押します。
画面左のツリーで、[テストのワークフロー] の左の○が●に変わって、有効になっていることを表しています。
2.カレンダー作成
jジョブを実行する日を決めるため、カレンダーを作ります。
なんでカレンダーなんて必要なの?って思うかも知れませんが、「『営業日』だけ実行したいジョブがある」って考えてみると理解できると思います。
日本では、GW前後・お盆・年末年始などに、普通のカレンダーとは違う休業日がある事業がいっぱいありますからね。
画面左のツリーから、[実行計画] の左にある […] をクリックします。
メニューが出てきますので、[新規] - [新規カレンダー] と選択します。
名前を適当に入れ、登録を押します。
こんな画面になりますので、+周期追加を押します。
今日(2024年9月20日)から 1年間、月〜金がジョブ実行日とするカレンダーです。
周期追加を押します。
「○月○日だけは土曜日だけど実行したい」なんてあれば、条件を追加できます。
閉じるを押します。
リリースを押します。
登録を押します。
[テストのカレンダー] の左の○が●に変わって、有効になっていることを表しています。
3.スケジュール作成
ジョブ実行の具体的な時刻を決めて、カレンダーとの紐付けもします。
[スケジュール] の左にある […] をクリックします。
[新規] を選択します。
名前を適当に入れ、登録を押します。
ランタイムを押します。
画面右からこんなのがせり出してきます。
さっき作ったカレンダーを紐付けたいので、営業日カレンダを指定を押します。
作成したカレンダーをツリーから選択(チェックを入れる)し、保存を押します。
[開始時間] のところの [+] をクリックします。
開始時刻を設定します。
朝7時半に実行するようにしました。
保存を押します。
[×] をクリックして閉じます。
作成したワークフローを紐付けます。
[ワークフロー名] の入領域をクリックするとツリーからワークフローを選択できます。
リリースを押します。
登録を押します。
これで一通り設定できました。
4.ジョブの状態確認
画面上のアイコン群から [実行計画] をクリックします。
今実行が予定されているものが 1件あってこんな表示になります。
[オーダーID] が具体的な実行日時に付けられる一意の IDなんでしょう。
7時半が実行時刻なので、ちょっと待ちます。
7時半を過ぎると、表示がこのようになりました。
[ステート] が変わっています。
[オーダーID] がリンクになっていますので、クリックします。
行を選ぶと水色に反転します。
これをクリックします。
別ウィンドウで実行ログが表示されました。
ジョブで実行した echoコマンドの結果が出ていますね。\(^o^)/
めでたし、めでたし。
==========
色々といじくり回してやっとジョブのスケジュール実行ができました。
これだけの実験の過程でも、かなり色々な機能があることが推察できます。
ちょっと気になったのは GUIのとっつき難さで、時々?って思う箇所がいくつか。
また、これは JS7のお勉強が足りないせいなんですが、「リリース」と「登録」の違いが良く分からないとかありますね。
全体的な感想として、これだけ高機能だとやっぱりお勉強や慣れ、経験といったものが実運用には必要かなって思いました。
でもそれは JP1/AJSでも千手でも同じなんですけどね。
これで終わりにしようと思いましたが、もうちょっとだけ書こうかなって思っています。
「JS7インストール 6」につづきます。