JS7® JobScheduler インストール方法（Windows版）

# １．JS7®JobSchedulerについて

JS7® JobScheduler インストール方法（Docker版）は以下の記事をご確認ください。
https://qiita.com/satoruf/items/fa9846f4376d1a50a67e

JS7® JobScheduler インストール方法（Linux/CLI版）は以下の記事をご確認ください。
https://qiita.com/satoruf/items/fa9846f4376d1a50a67e

JS7®JobSchedulerは独SOS社(Software- und Organisations-Service GmbH)によって開発されている、ジョブ管理システムです。
OSSジョブ管理ツールの定番JobSchedulerをリニューアルし、従来より耐障害性、大規模環境対応を強化し、ミッションクリティカルな要求に対応しました。
JS7® の主な特徴は、下記となります。

- オープンソース（GNU Public License V.3）
 - Linux/Windows版は、無料で使用可能。（但しクラスタリング構成は有償ライセンスが必要） 
 - 有償ライセンスを購入すれば、クラスタリング構成に加えて、障害対応、バグフィックス／ワークアラウンドの提供、新機能の早期提供、などのサービスが提供される。
 - 有償ライセンスの機能が使用できる、３０日間無償トライアルライセンスも提供されている。申し込みは[こちら](https://www.ossl.co.jp/?page_id=46)から
- 耐障害性
 - 自律型アーキテクチャー（非同期疎結合）による高可用性
 - データベース/ネットワーク障害時もジョブ実行継続
 - ３秒以内のコントローラーフェイルオーバー
- 大規模環境対応
 - 〜 20万ワークフロー
 - 〜 100万ジョブ
 - 〜 1,000エージェント
 - 〜 20,000タスク並列実行
- 高性能
 - ジョブ起動オーバーヘッドなし
 - 1万タスクを5ミリ秒で同時起動
- 高セキュリティ
 - JOC・コントローラー・エージェント間の全通信にクライアント・サーバー認証
 - 定義ファイルにも証明書を付加
 - 外部認証局（CA）をサポート

詳細な情報については、以下をご覧下さい。

 - ナレッジベース（英語）　https://kb.sos-berlin.com/display/PKB/JS7
 - 日本語紹介資料 https://www.ossl.co.jp/
 - 日本JobSchedulerユーザーグループ https://sites.google.com/site/jobschedulerja/
 - https://groups.google.com/forum/?hl=ja#!forum/jobscheduler-ja
 - https://www.facebook.com/Jobscheduler-Japan-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97-594469610565511/timeline/
 - JIRA（英語）
　https://change.sos-berlin.com/secure/Dashboard.jspa
 - User Forum（英語）　http://sourceforge.net/projects/jobscheduler/forums/forum/486122
 - SOS社ホームページ　http://www.sos-berlin.com

ジョブ・ワークフローの実行方法については、[JS7® JobSchedulerクイックスタート](https://qiita.com/satoruf/items/96f21ef25bcb35e47b21#2-%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E4%BD%9C%E6%88%90)、[JS7® JobSchedulerワークフロー間連携](https://qiita.com/satoruf/items/64b185880f4ac0e05c5d)を御覧ください。

# 2. JS7®の構成について

JS7®は以下のコンポーネントで構成されています。

- JOCコックピット
 - WEB GUI/REST API
 - ジョブ実行制御配布
 - 履歴情報収集・保存
 - ジョブ定義・リソースの作成
 - ジョブ定義の管理とコントローラーへの配布
 - クラスター制御、イベントキュー、ロギングなど
- コントローラー
 - DB接続を廃止
 - ジョブ定義をJOCコックピットから取得
 - 実行履歴をJOCコックピットに送信
 - 実行計画とジョブ定義をエージェントに配布
- 自律型エージェント
 - コントローラーとの通信障害時にも自律的にジョブ実行制御
 - エージェントクラスター内で実行計画とジョブ定義を同期
 - 実行履歴をコントローラーに送信
![js7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52445/cefc8941-c716-ebe5-e16a-f7653eb92be5.png)

# ３．稼働条件
V.2.2.0 (2021/12現在）

**コントローラー/JOCコックピット**

- CPU 2core<、メモリ8GB<、ディスク空き容量10GB<
- OracleJDK/openJDK 8 - 12
- RHEL/CentOS 7 < (32/64bit)
- Windows Server 2016 < (32/64bit)

**エージェント**

- Any Linux/Windows (OracleJDK/openJDK 1.8がサポートされる環境)
- AIX 6,7 PowerPC
- Solaris 9,10,11 SPARC/x86-64
- HP-UX 11 IA64
- etc.

# ４．データベースサポート
 - Oracle® 12c, 18c, 19c
 - SQL Server® 2012, 2014, 2017, 2019
 - MariaDB® 10.x
 - MySQL® 5.7, 8.0
 - PostgreSQL® 10 - 13
 - H2 1.4.200
詳細はこちらを参照（英語）
https://kb.sos-berlin.com/display/PKB/JS7+-+Database

# ５．JS7インストール環境（Windows）
・Windows Server 2016 StandardEvaluation
・JS7 2.X.X
・PostgreSQL 13.4
・OracleJDK 1.8
　※Windows版v2.1.0ではJOCのみJAVA11では動きません

・作業はすべてAdministratorアカウントで実施
・スタンドアロン構成
・JOC、Controller、Agent、DBは同居

※Windows版のAgentでも、別サーバにインストールする場合は、Agentのポート（デフォルトでは、4445ポート）をFirewallのルールに許可する設定を追加する必要があります。

# ６．インストール手順

### （１）JAVAのインストール

以下のサイトからJAVAをダウンロードし、適当なディレクトリに配置し、インストーラを実行します。

https://www.oracle.com/java/technologies/downloads/
・ファイル名：jdk-8u311-windows-x64.exe
・配置先：C:\Users\Administrator\Documents

インストーラ起動後、画面に従いインストールします。

コマンドプロンプトを起動し、JAVAのインストール確認を行います。

```shell-session
>java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)
```

### （２）PostgreSQLインストール

以下のサイトからPostgreSQL13をダウンロードし、適当なディレクトリに配置し、インストーラを実行します。
https://www.postgresql.org/
・ファイル名：postgresql-13.4-2-windows-x64.exe
・配置先：C:\Users\Administrator\Documents

インストーラ起動後、画面に従いインストールします。

コマンドプロンプトを起動し、PostgreSQLのインストール確認を行います。

```shell-session
>cd C:\Program Files\PostgreSQL\13\bin
>psql --version
psql (PostgreSQL) 13.4
```

### （３）JS7 DBの作成

「SQL Shell（psql）」を起動し、PostgreSQLにアクセスし、JS7のDB/DBユーザ/ロールを作成し、DBユーザにロールを割り当てを行います。
※postgresユーザ（スーパユーザ）を使用する際はDBの作成のみでユーザ/ロール等の作成は必要ありません。
また、スキーマには以下の権限が必要となるため設定を行います。
　・to manage objects
　　Tables, Views, Functions, Stored Procedures: CREATE, DROP, ALTER
　・to access objects at run-time
　　Tables, Views: SELECT, INSERT, UPDATE, DELETE
　　Functions, Stored Procedures: EXECUTE

```shell-session
# DBの作成
postgres=# CREATE DATABASE js7 ENCODING 'UTF8';

# ユーザの作成
postgres=# CREATE USER js7_user WITH PASSWORD 'js7_user';

# ロールの作成
postgres=# CREATE ROLE js7_role WITH LOGIN;
 
# 上記の権限をロールに付与
postgres=# GRANT USAGE ON SCHEMA PUBLIC TO js7_role;
postgres=# GRANT SELECT,UPDATE,INSERT,DELETE ON ALL TABLES IN SCHEMA PUBLIC TO js7_role;
postgres=# GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA PUBLIC TO js7_role;
postgres=# GRANT CREATE ON SCHEMA PUBLIC TO js7_role;
 
# ユーザにロールを割り当て
postgres=# GRANT js7_role TO js7_user;
```

ロールの確認

```shell-session
postgres=# \du
                                             ロール一覧
 ロール名  |                                   属性                                    | 所属グループ
-----------+--------------------------------------------------------------------------+--------------
 js7_role  |                                                                          | {}
 js7_user  |                                                                          | {js7_role}
 postgres  | スーパユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス      | {}
```

### （４）JOCインストール

以下のサイトからJOCをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_joc_windows.2.X.X.zip
・配置先：C:\Users\Administrator\Documents

解凍後フォルダを移動し、インストーラを実行します。
パス：C:\Users\Administrator\Documents\js7_joc_windows.X.X.0\joc.2.X.X
ファイル名：setup.cmd
![SnapCrab_joc210_2021-10-29_10-56-35_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/cab9c25f-1002-f5f2-0d9c-927787b83af1.png)

![SnapCrab_Language Selection_2021-10-29_12-26-41_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/4bbadf9f-c472-e2f9-09c1-b7b0375e559c.png)


![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-58-46_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/0f1b2959-50b1-dcb5-9bb3-ff450fe1c6d5.png)
インストーラ実行後、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-58-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/31432bdd-f7bd-fedd-3c7a-4ce1c372ddec.png)
「GNU GPL v3.0 License」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-58-59_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/16df9fe6-5a4f-eab7-64ce-cc638cffe1bb.png)
「ライセンス利用許諾に同意します」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-3_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/1e906efb-c6bf-2a34-cd49-1b868dadda49.png)
JOCインストール先を設定します。
本書ではデフォルトのため、そのまま「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-8_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/7db86ab8-f01b-7228-71ef-0eec3ae11e25.png)
ポート、JettyBaseディレクトリ、JVMを設定します。
本書ではデフォルトのため、そのまま「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-12_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/5d92279d-212b-137e-870a-f8fdd0ebd8b2.png)
JOCタイトル、セキュリティレベルを設定します。
本書ではデフォルトのため、そのまま「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-18_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/03f5220f-07a9-c84c-2f77-3f95cdfc44d2.png)
JOCインストール時にDBのテーブルを作成するため、画面のように各項目を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-48_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/3b778212-d5ef-fe7e-e2d1-7f44e29e86bb.png)
データベースの情報を入力し、「次へ」を押します。
ホスト：localhost
ポート：5432
データベース：js7
ユーザ：js7_user
パスワード：js7_user

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_10-59-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/f7b0065a-0288-3466-4fe2-994cde6ce0b9.png)
インストーラが用意しているJDBCドライバを使用するため、画面のように選択し、「次へ」を押します。
既存のものでなく、別のJDBCドライバを使用する際には「外部提供JDBCドライバが使用されます」を選択し、JDBCドライバのパスを指定することができます。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_11-4-4_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/fa34d8a9-df37-0ac7-1720-17e5902fa461.png)
![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_11-4-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/a1b8c5e5-73fb-f474-bc08-ad193bf89695.png)
インストールが開始され、JOCのファイル、DBのテーブル、サービス等がインストールされます。

![SnapCrab_IzPack - インストール - JS7 JOC Cockpit_2021-10-29_11-5-0_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/a6516416-3b69-28f1-e85f-d22e605efe52.png)
インストールが完了し、「完了」を押します。

### （５）Controllerインストール

以下のサイトからControllerをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_controller_windows_installer.2.X.X.zip
・配置先：C:\Users\Administrator\Documents

解凍後フォルダを移動し、インストーラを実行します。
パス：C:\Users\Administrator\Documents\js7_controller_windows_installer.2.X.X\controller.2.X.X
ファイル名：setup.cmd

![SnapCrab_controller210_2021-10-29_12-24-22_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/4524b6bc-377c-1673-7deb-7245ab9b8845.png)


![SnapCrab_Language Selection_2021-10-29_12-25-34_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/d233eef8-1aba-f4e3-5084-d12b36cf6c7e.png)

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-27-44_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/84d0c3f3-473a-10a8-6865-fada6bf30579.png)
インストーラ実行後、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-27-49_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/73357201-87e8-731c-8162-0c45530cb62e.png)
「GNU GPL v3.0 License」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-27-55_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/48a8eadf-81d7-d41c-e7cc-9aae870cade2.png)
「ライセンス利用許諾に同意します」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-27-59_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/c9837a9b-066f-fdd5-f89c-823c92442a90.png)
Controllerインストール先を設定します。
本書ではデフォルトのため、そのまま「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-28-3_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/27a365b5-b41e-3c18-d77d-d6d8b3af48d4.png)
設定ファイル、ログファイルのパスを設定します。
本書ではデフォルトのため、そのまま「次へ」を押します。
本書ではデフォルトの「C:\ProgramData\sos-berlin.com\js7\controller」を指定しております。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-28-8_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/f7b85d20-5d22-9946-c44c-5af5df4e6eb2.png)
本書ではデフォルトの設定のため、「次へ」を押します。
※環境に合わせてポート等の修正を行います。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-28-17_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/ecdc6dd2-9f58-ff6c-2400-9334a5a1f3a0.png)
ログディレクトリやPIDファイルの保存先を変更する際は上記にて設定を行います。
本書ではデフォルトの設定のため、「次へ」を押します。
※環境に合わせてJVM等の設定を行います。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-28-24_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/126ce9fe-424c-70e7-a17c-b5cb18dd3be4.png)

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-29-5_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/1783b902-19f6-cd50-4a14-f1adb8cf4aff.png)
インストールが開始され、Controllerのファイル、サービス等がインストールされます。

![SnapCrab_IzPack - インストール - JS7 Controller_2021-10-29_12-29-9_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/e9aa5d81-6917-37e6-7c26-8bde49ccae5e.png)
インストールが完了し、「完了」を押します。

### （６）Agentインストール

以下のサイトからAgentをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_agent_windows_installer.2.1.0.zip
・配置先：C:\Users\Administrator\Documents

解凍後フォルダを移動し、インストーラを実行します。
パス：C:\Users\Administrator\Documents\js7_agent_windows_installer.2.1.0\agent.2.1.0
ファイル名：setup.cmd
![SnapCrab_agent210_2021-10-29_12-42-42_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/38664c20-9012-2b1e-7817-459e5c4ec7aa.png)

![SnapCrab_Language Selection_2021-10-29_12-44-59_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/8eb15925-ab09-3b9d-d7d6-be7635c88a97.png)

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-20_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/1e314c87-ea4b-2d88-d47d-7d15dae4d35b.png)
インストーラ実行後、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-29_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/0bbd7791-c95c-69c0-46ab-bb2371052d67.png)
「GNU GPL v3.0 License」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-33_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/f4fc5382-2e06-3681-cf4c-1ec5ebc606d6.png)
「ライセンス利用許諾に同意します」を選択し、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-37_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/35592a6b-b624-62d0-a698-a78e1dd870f2.png)
Agentインストール先を選択し、「次へ」を押します。
本書ではデフォルトの「C:\Program Files\sos-berlin.com\js7\agent」を指定しております。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-42_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/862668d4-f43a-dd5b-f63a-d9b93a409deb.png)
本書ではデフォルトの設定のため、「次へ」を押します。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-45_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/7aa8a530-5a5e-1857-7a09-22d4005a060e.png)
設定ファイル、ログファイルのパスを選択し、「次へ」を押します。
本書ではデフォルトの「C:\ProgramData\sos-berlin.com\js7\agent_4445」を指定しております。


![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-48_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/2bdc7cac-c5df-d260-2110-9568068f8ce0.png)
ログディレクトリやPIDファイルの保存先を変更する際は上記にて設定を行います。
本書ではデフォルトの設定のため、「次へ」を押します。
※環境に合わせてJVM等の設定を行います。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-45-54_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/065a2915-3470-bb92-c054-223608440b3d.png)
![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-46-30_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/2a11a1d9-9200-5358-320c-352e2a3f8199.png)
インストールが開始され、Agentのファイル、サービス等がインストールされます。

![SnapCrab_IzPack - インストール - JS7 Agent_2021-10-29_12-46-34_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/497d3c54-b2d9-3dfc-d49d-43e218b7809e.png)
インストールが完了し、「完了」を押します。

### （７）Controller/Agentの登録

JOCのWebUIにログインします。

![SnapCrab_JS7 - Google Chrome_2021-10-29_12-59-40_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/657d9e10-913d-6b2a-bd4c-abad6b2d3149.png)

http://＜IPアドレス＞:4446
ユーザ：root
パスワード：root

ログイン後、Controllerの登録画面が表示されます。
![SnapCrab_JS7 - Google Chrome_2021-10-29_13-1-58_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/65bf9c59-30dc-c6bb-4652-f503c985e702.png)
スタンドアロンタイプを選択し、
「http://localhost:4444」
を入力し、テスト接続で問題がないことを確認し登録します。
※Controllerのインストール時にポートを変更している場合は変更したポートを指定します。

次にJobSchedulerメニューからroot ＞ Manage Controllers/Agents の順で移動し、「Add Agent」を選択し、Agentの登録を行います。
![SnapCrab_JS7 - Google Chrome_2021-10-29_13-9-15_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/896361af-90f2-207c-bf47-8acd1788c923.png)

![SnapCrab_JS7 - Google Chrome_2021-10-29_13-10-53_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/d3ad9802-a9f4-5d7c-ce0b-4201c14cedd6.png)
以下の情報を入力し、「Submit」を押します。
AgentID：localhost
AgentName：localhost
AliasNames：localhost
URL：http://localhost:4445
※Agentのインストール時にポートを変更している場合は変更したポートを指定します。

ダッシュボードに移行し、登録したController、Agentの状態を確認することができます。
![SnapCrab_JS7 - Google Chrome_2021-10-29_13-13-55_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/a095eb90-426d-45e1-b0de-3f4dc169380f.png)

# ７．インストール手順 （ヘッドレスモード）

JS7は上記のようにグラフィカルインストーラを使用せずにインストールすることもできます。
以下にヘッドレスモードでのインストール手順を記載します。
※JAVA、PostgreSQLはインストール、設定済みとします。

### （１）JOCインストール（ヘッドレスモード）

以下のサイトからJOCをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_joc_windows.2.X.X.zip
・配置先：C:\Users\Administrator\Documents
※インストールファイルは、上記で記載したグラフィカルインストールで使用したものと同じです。

解凍後、インストール設定ファイルの「joc_install.xml」を開き編集します。
パス：C:\Users\Administrator\Documents\js7_joc_windows.2.X.X\joc.2.X.X
ファイル名：joc_install.xml

JOCをインストールするパスをフルパスで指定します。

```shell-session
        <!-- SELECT THE INSTALLATION PATH
             The path must be absolute! 
             For example:
             /opt/sos-berlin.com/js7/joc on Unix
             C:\Program Files\sos-berlin.com\js7\joc on Windows -->
        <installpath>C:\Program Files\sos-berlin.com\js7\joc</installpath>
＜中略＞
            <!-- Path to Jetty base directory 
                 For example:
                 /home/[user]/sos-berlin.com/js7/joc on Unix
                 C:\ProgramData\sos-berlin.com\js7\joc on Windows -->
            <entry key="jettyBaseDir" value="C:\ProgramData\sos-berlin.com\js7\joc"/>
```

使用するデータベースを指定します。本書ではPostgreSQLを使用するので「pgsql」と指定します。

```shell-session
            <!-- Choose the database management system. 
                 Supported values are 'mysql' for MySQL, 'oracle' for Oracle, 
                 'mssql' for Microsoft SQL Server, 'pgsql' for PostgreSQL.
                 Used only if databaseConfigurationMethod=withoutHibernateFile -->
            <entry key="databaseDbms" value="pgsql"/>
```

データベース接続の設定をします。

```shell-session
            <entry key="databaseHost" value="localhost"/>           
            <!-- Enter the port number for the database instance. Default ports are for MySQL 3306, 
                 Oracle 1521, Microsoft SQL Server 1433, PostgreSQL 5432. -->
            <entry key="databasePort" value="5432"/>
            
            <!-- Enter the database schema -->
            <entry key="databaseSchema" value="js7"/>
            
            <!-- Enter the user account for database access -->
            <entry key="databaseUser" value="js7_user"/>
            
            <!-- Enter the password for database access -->
            <entry key="databasePassword" value="js7_user"/>
```

設定完了後、ファイルを保存し閉じます。
※本書ではポート、JVM等はデフォルトの設定のため設定しておりませんが、必要に応じて設定します。

コマンドプロンプトを起動し、JOCのインストールを行います。

```shell-session 
>cd C:\Users\Administrator\Documents\js7_joc_windows.2.X.X\joc.2.X.X
>setup.cmd joc_install.xml
```

JOCのインストール完了後、コマンドプロンプトは終了します。
そのため、インストールが成功しているかの確認は、インストールログを確認する必要があります。
パス：C:\Program Files\sos-berlin.com\js7\joc\jetty_base\logs
ファイル：Install_V2.X.X_yyyymmddxxxxx.log

### （２）Controllerインストール（ヘッドレスモード）

以下のサイトからControllerをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_controller_windows_installer.2.X.X.zip
・配置先：C:\Users\Administrator\Documents
※インストールファイルは、上記で記載したグラフィカルインストールで使用したものと同じです。

コマンドプロンプトを起動し、Controllerのインストールを行います。

```shell-session 
>cd C:\Users\Administrator\Documents\js7_controller_windows_installer.2.X.X\controller.2.X.X
>setup.cmd controller_install.xml
```

※本書ではControllerのインストールディレクトリ、ポート等はデフォルトのため「controller_install.xml」を修正しておりません、ポート等の変更を行う場合はファイルの修正が必要となります。

Controllerのインストール完了後、コマンドプロンプトは終了します。
そのため、インストールが成功しているかの確認は、インストールログを確認する必要があります。
パス：C:\Program Files\sos-berlin.com\js7\controller\controller\var\logs
ファイル：Install_V2.X.X_yyyymmddxxxxx.log

また、Controllerのインストールは、インストーラを使用せずにZIPファイルを使用しインストールすることも可能です。
以下のサイトからController（ZIPファイル）をダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_controller_windows.2.X.X.zip
・配置先：C:\Users\Administrator\Documents

解凍後、「controller」フォルダをJS7インストールディレクトリに配置します。
フォルダ：C:\Users\Administrator\Documents\js7_controller_windows.2.X.X\controller
配置先：C:\Program Files\sos-berlin.com\js7\controller

「controller_instance.cmd-example」をコピーし、起動スクリプトを名前を「controller_instance.cmd」へ変更します。
パス：C:\Program Files\sos-berlin.com\js7\controller\bin
ファイル名：controller_instance.cmd　※「controller_instance.cmd-example」をコピーして作成する。
![SnapCrab_bin_2021-11-5_13-7-33_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/7c54e9ff-2610-2431-54c6-85e432d6d92f.png)


Controllerのサービスを登録します。
コマンドプロンプトを起動し、サービス登録スクリプトを実行します。
パス：C:\Program Files\sos-berlin.com\js7\controller\controller\bin
コマンド：controller_instance.cmd install-service

```shell-session 
>cd C:\Program Files\sos-berlin.com\js7\controller\bin
>controller_instance.cmd install-service
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
...try to copy "C:\Program Files\sos-berlin.com\js7\controller\service\amd64\prunsrv.exe"
            to "C:\Program Files\sos-berlin.com\js7\controller\service\js7_controller_controller.exe"
        1 個のファイルをコピーしました。
...try to copy "C:\Program Files\sos-berlin.com\js7\controller\service\manager\prunmgr.exe"
            to "C:\Program Files\sos-berlin.com\js7\controller\service\js7_controller_controllerw.exe"
        1 個のファイルをコピーしました。
"js7_controller_controller" Service has been installed
Please use "C:\Program Files\sos-berlin.com\js7\controller\service\js7_controller_controllerw.exe" to change Service configurations
```

Controllerのサービスを開始します。
Windows 管理ツール ＞ サービス の順で移動し、「SOS JS7 Controller -id=controller」のサービスを開始します。


### （３）Agentインストール（ヘッドレスモード）

以下のサイトからAgentをダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_agent_windows_installer.2.X.X.zip
・配置先：C:\Users\Administrator\Documents
※インストールファイルは、上記で記載したグラフィカルインストールで使用したものと同じです。

コマンドプロンプトを起動し、Agentのインストールを行います。

```shell-session 
>cd C:\Users\Administrator\Documents\js7_agent_windows_installer.2.X.X\agent.2.X.X
>setup.cmd agent_install.xml
```

※本書ではAgentのインストールディレクトリ、ポート等はデフォルトのため「agent_install.xml」を修正しておりません、ポート等の変更を行う場合はファイルの修正が必要となります。

Agentのインストール完了後、コマンドプロンプトは終了します。
そのため、インストールが成功しているかの確認は、インストールログを確認する必要があります。
パス：C:\Program Files\sos-berlin.com\js7\agent\var_4445\logs
ファイル：Install_V2.X.X_yyyymmddxxxxx.log

また、Agentののインストールは、インストーラを使用せずにZIPファイルを使用しインストールすることも可能です。

以下のサイトからAgent（ZIPファイル）をダウンロードし、適当なディレクトリに配置し、解凍します。
https://www.sos-berlin.com/en/jobscheduler-downloads
・ファイル名：js7_agent_windows.2.X.X.zip
・配置先：C:\Users\Administrator\Documents

解凍後、「agent」フォルダをJS7インストールディレクトリに配置します。
フォルダ：C:\Users\Administrator\Documents\js7_agent_windows.2.X.X\agent
配置先：C:\Program Files\sos-berlin.com\js7

「agent_instance.cmd-example」をコピーし、起動スクリプトを名前を「agent_4445.cmd」へ変更します。
パス：C:\Program Files\sos-berlin.com\js7\agent\bin
ファイル名：agent_4445.cmd　※「agent_instance.cmd-example」をコピーして作成する。

![SnapCrab_bin_2021-11-1_16-32-59_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/66557/e9fa34dc-afac-a043-c557-eef10e0745de.png)
※本書はAgentのインストールディレクトリ、ポート等はデフォルトのため、「agent_＜ポート番号＞.cmd」を修正しておりません、ポート等の変更を行う場合はファイルの修正が必要となります。

Agentのサービスを登録します。
コマンドプロンプトを起動し、サービス登録スクリプトを実行します。
パス：C:\Program Files\sos-berlin.com\js7\agent\bin
コマンド：agent_<ポート番号>.cmd install-service
※コマンドの実行には以下のようにポート、データディレクトリを指定する必要があります。

```shell-session 
>cd C:\Program Files\sos-berlin.com\js7\agent\bin
>agent_4445.cmd install-service
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
        1 個のファイルをコピーしました。
...try to copy "C:\Program Files\sos-berlin.com\js7\agent\service\amd64\prunsrv.exe"
            to "C:\Program Files\sos-berlin.com\js7\agent\service\js7_agent_4445.exe"
        1 個のファイルをコピーしました。
...try to copy "C:\Program Files\sos-berlin.com\js7\agent\service\manager\prunmgr.exe"
            to "C:\Program Files\sos-berlin.com\js7\agent\service\js7_agent_4445w.exe"
        1 個のファイルをコピーしました。
"js7_agent_4445" Service has been installed
Please use "C:\Program Files\sos-berlin.com\js7\agent\service\js7_agent_4445w.exe" to change Service configurations
```
※サービス登録後、Agentのデータディレクトリの「C:\Program Files\sos-berlin.com\js7\agent\ver_＜ポート番号＞」のディレクトリが作成されます。

Agentのサービスを開始します。
Windows 管理ツール ＞ サービス の順で移動し、「SOS JS7 Agent -port=4445」のサービスを開始します。