「JS7インストール 1」では JS7 Controllerのサーバーを作り、
「JS7インストール 2」では JS7 Universal Agentをインストールし、
「JS7インストール 3」では PostgreSQLのデータベースサーバーを作って、JS7 JOC Cockpitのインストールをし、
「JS7インストール 4」では JS7 JOC Cockpitの WEB画面でユーザー作成など行い、
「JS7インストール 5」でジョブを作って実行させ、一応の完結となりました。
ここでは追加で、以下のテーマについての考察やら実験を。
- Windos Serverのジョブも動かす
- OSが異なるサーバー間のジョブを 1つのワークフロー内で連携させる
- ジョブを並行動作させる
環境として、これまで作ってきたサーバーのセットに Windows Server 2022のサーバーを 1つ追加します。
絵面はこんな風になります。
Windows Server 2022の環境を作る際には以下を行っています。
- Open JDK 21 インストール
(システムの [PATH]環境変数に javaw.exeがあるパスを追加) - JS7 Universal Agent インストール
(ポートは [js7agent]サーバーと同じく [60000/tcp] にしました) - Windows Firewall で [60000/tcp] を解放
ここでは詳細の説明をしませんが、Windows Server 2022の [JS7AGENTWIN]サーバーが出来上がっています。
新しいエージェントを追加します。
画面右上にある [Aに歯車アイコン] をクリックすると出てくるメニューから、[コントローラー/エージェント管理] を選択します。
[コントローラー] の左の …をクリックすると出てくるメニューから、[単独エージェント追加] を選択します。
[エージェント名] は 「Agent-2」としました。
[URL] には [JS7AGETNTWIN]サーバーで設定した通り [60000/tcp] を指定しています。
登録を押します。
新しく [Agent-2] の行ができますので [アクション列] の…をクリックすると出てくるメニューから、[配置] を選択します。
これで [Agent-2] を使えるようになりました。
[JS7AGENTWIN]サーバーでジョブを動かせるようになりましたので、先に作ってあっワークローにジョブを追加して、Linuxサーバーのジョブと Windowsサーバーのジョブを並行動作させるフローに作り変えます。
分岐しているアイコンを [↓] にドラッグ&ドロップします。
先に作ってあったジョブを、上のアイコンにラッグ&ドロップします。
ジョブアイコンを、上のアイコンにラッグ&ドロップします。
ジョブの内容はこのようにして、systeminfoコマンドを実行するだけにしました。
[エージェント] に上で作ったものを指定していますよ。
こんな風に一回別れて、それぞれの処理を並行実行してから、また一つに戻る、というフローになりました。
配置を押します。
スケジュールを変更して数分後に実行されるようにします。
他の画面でもできますが、ここでランタイムを押します。
非常に小さいんですけど、ペンのアイコンをクリックします。
実行時間を変えて、保存を押します。
×で閉じます。
リリースを押します。
登録を押します。
上に並んでいるアイコン群から [実行計画] をクリックし、カレンダーの下にある
+実行計画作成を押します。
登録を押します。
そうすると一覧表に出てきますので [アクション]列にある…をクリックすると出てくるメニューから [オーダー登録] を選択します。
登録を押します。
[ステート]列が [登録] になれば OKですので、実行時刻になるまで待ちます。
実行時刻を迎えて、ジョブの実行が完了すると、こんな表示に変わります。
[オーダーID]列がリンクになってますので、それをクリックします。
複数行ある場合は、対象の行にマウスを持っていくと薄青色に反転します
行全体がリンクになっているのでクリックしましょう。
別ウィンドウが開いて、実行ログが表示されます。
このワークフローで [js7agent]サーバーと [JS7AGENTWIN]サーバーで実行されたコマンドから得られたメッセージが出ていて、両方とも正常に実行されたことが分かります。
2024-09-26 06:40:00.047+09:00 [MAIN] [OrderStarted] id=#2024-09-26#P30001765502-テストのスケジュール, pos=0
2024-09-26 06:40:01.224+09:00 [MAIN] [OrderProcessingStarted] id=#2024-09-26#P30001765502-テストのスケジュール|branch1, Job=テストのジョブa, label=1, pos=0/fork+branch1:0, Agent(url=http://js7agent:60000, name=Agent-1, time=2024-09-26 06:40:01.160+09:00)
2024-09-26 06:40:01.160+09:00 [MAIN] [Start] Job=テストのジョブa, label=1, Agent(url=http://js7agent:60000, id=Agent-1, name=Agent-1)
2024-09-26 06:40:01.799+09:00 [STDOUT] テストのジョブなンだわ。
2024-09-26 06:40:01.842+09:00 [MAIN] [End] [Success] returnCode=0
2024-09-26 06:40:01.466+09:00 [MAIN] [OrderProcessingStarted] id=#2024-09-26#P30001765502-テストのスケジュール|branch2, Job=テストのジョブ2, label=2, pos=0/fork+branch2:0, Agent(url=http://JS7AGENTWIN:60000, name=Agent-2, time=2024-09-26 06:40:01.403+09:00)
2024-09-26 06:40:01.403+09:00 [MAIN] [Start] Job=テストのジョブ2, label=2, Agent(url=http://JS7AGENTWIN:60000, id=Agent-2, name=Agent-2)
2024-09-26 06:40:02.832+09:00 [STDOUT]
C:\ProgramData\sos-berlin.com\js7\agent_60000>systeminfo
ホスト名: JS7AGENTWIN
OS 名: Microsoft Windows Server 2022 Standard Evaluation
OS バージョン: 10.0.20348 N/A ビルド 20348
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン サーバー
OS ビルドの種類: Multiprocessor Free
登録されている所有者: Windows ユーザー
登録されている組織:
プロダクト ID: 00454-40000-00001-AA041
最初のインストール日付: 2024/09/22, 8:23:35
システム起動時間: 2024/09/26, 5:31:26
システム製造元: VMware, Inc.
システム モデル: VMware20,1
システムの種類: x64-based PC
プロセッサ: 2 プロセッサインストール済みです。
[01]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~3392 Mhz
[02]: Intel64 Family 6 Model 60 Stepping 3 GenuineIntel ~3392 Mhz
BIOS バージョン: VMware, Inc. VMW201.00V.24006586.B64.2406042154, 2024/06/04
Windows ディレクトリ: C:\Windows
システム ディレクトリ: C:\Windows\system32
起動デバイス: \Device\HarddiskVolume1
システム ロケール: ja;日本語
入力ロケール: ja;日本語
タイム ゾーン: (UTC+09:00) 大阪、札幌、東京
物理メモリの合計: 4,095 MB
利用できる物理メモリ: 994 MB
仮想メモリ: 最大サイズ: 5,503 MB
仮想メモリ: 利用可能: 2,432 MB
仮想メモリ: 使用中: 3,071 MB
ページ ファイルの場所: C:\pagefile.sys
ドメイン: WORKGROUP
ログオン サーバー: \\JS7AGENTWIN
ホットフィックス: 3 ホットフィックスがインストールされています。
[01]: KB5008882
[02]: KB5011497
[03]: KB5010523
ネットワーク カード: 1 NIC(s) インストール済みです。
[01]: Intel(R) 82574L Gigabit Network Connection
接続名: Ethernet0
DHCP が有効: いいえ
IP アドレス
[01]: 192.168.1.110
[02]: fe80::6186:41b1:1240:8e28
[03]: 2408:82:a8:0:6186:41b1:1240:8e28
Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。
2024-09-26 06:40:05.395+09:00 [MAIN] [End] [Success] returnCode=0
2024-09-26 06:40:01.937+09:00 [SUCCESS] [OrderProcessed] id=#2024-09-26#P30001765502-テストのスケジュール|branch1, Job=テストのジョブa, label=1, pos=0/fork+branch1:0, Agent(time=2024-09-26 06:40:01.842+09:00), returnCode=0
2024-09-26 06:40:05.420+09:00 [SUCCESS] [OrderProcessed] id=#2024-09-26#P30001765502-テストのスケジュール|branch2, Job=テストのジョブ2, label=2, pos=0/fork+branch2:0, Agent(time=2024-09-26 06:40:05.395+09:00), returnCode=0
2024-09-26 06:40:05.506+09:00 [MAIN] [OrderFinished] id=#2024-09-26#P30001765502-テストのスケジュール, pos=1
具体的な設定をしてみましたが、実はこのページでやっていることは一切マニュアルを見ないまま行いました。
私は JP1/AJSと千手を業務で使ったことがありまして、JP1/AJSの経験は長く、その知識をもって JS7でもやれた感じです。
きっとユーザーの要件が同じなのだと思われ、これら「ジョブスケジューラー」と呼ばれるソフトの仕様は似ているところがあります。
私は JP1・千手 → JS7 という入り方でしたが、逆に JS7 → JP1・千手も可能と思います。
企業においては有償のの JP1/AJSや千手で運用しているところがほとんどでしょうけど、有償だけに家でお勉強できないのが玉に瑕です。
でも、とりあえず家で JS7をいじくり回しておけば、きっと有償ソフトを使う時に役に立つと、思いました。
長いシリーズになりましたが、JS7はこれにて終了です。
つづきません。