HDC-EDI Apex をインストールしてみた【Apexインストール編】（1/3）

#はじめに
こんにちは、よろず相談担当 **すぎもん:yum:** です。HDC-EDI Suite の最新版 **HDC-EDI Suite for Apex** がリリースされたので、評価版をインストールしてみました。

#今回やってみたこと
Windows環境に評価版をインストールしてみました。
HDC-EDI Suite for Apexは、HDC-EDI Apex と HULFTの2製品で構成されるので、それぞれインストールする必要がありますが、この記事では HDC-EDI Apex のインストールと初期設定にフォーカスしています。従来製品のHDC-EDI Baseは、インストールに手間がかかりなかなか手ごわかったので、新製品であるHDC-EDI Apexはどんな感じか、どのあたりがハマりやすいか、などご紹介します。

**この記事は3部構成の1/3で、HDC-EDI Apexインストール方法が中心になります。**

#システム環境
動作環境はメーカーサイトで詳しく確認できますが、今回は準備が楽でサクッと入れられそうな環境を選びました。

|ソフトウェア|今回インストールした環境|
|:--|:--|
|JDK|Java 8 Update 131|
|OS|Windows Server 2012 R2 Standard|
|DBMS|PostgreSQL 9.5|
|Webブラウザ|Chrome|

この環境を選んだ理由は、いつも業務で利用している検証環境のAWS EC2に表の環境があったからです。EC2イメージ（AMI）からインスタンスを起動するだけでインストール前の準備ができたのでとても楽でした。
（今回の記事では、表のソフトウェアのインストール手順は割愛します。）

##今回利用したマニュアル
HDC-EDI Apex インストールガイド
HDC-EDI Apex 通信機能 HULFT編
HDC-EDI Apex 設定ガイド
HDC-EDI Apex リファレンス コマンド編

#１．HDC-EDI Apexのインストール
###1.1. データベースの設定（PostgreSQL 9.5の場合）
###PostgreSQLの操作方法
マニュアルには、PostgreSQLの操作方法の具体的な記述はありませんでしたので、今回はPostgreSQLの操作には**pgAdmin III**を使うことにしました。
![PostgreSQL_pgAdmin.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/371e3a1d-f5b1-f10d-b34c-0918eef70139.png)
####ユーザー作成
マニュアルの記載内容は次の通り。
> CREATE USER [ユーザー名] WITH
PASSWORD '[パスワード]'
CREATEDB;

今回は、**ユーザー名=apex**、**パスワード=apex**でPostgreSQLのユーザーを作成してみます。
![PostgreSQL_CreUser.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2425e303-5160-c99f-5ac0-e81b4057eaac.png)
###データベース作成
マニュアルの記載内容は次の通り。
> CREATE DATABASE [データベース名] WITH
OWNER = [ユーザー名]
TEMPLATE = template0
ENCODING = 'UTF8'
LC_COLLATE = 'ja_JP.UTF-8'
LC_CTYPE = 'ja_JP.UTF-8';

今回は、**データベース名=apex**、**ユーザー名=apex**（先ほど作成したユーザー）で作成してみます。
![PostgreSQL_CreDB.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/3476b2a9-dff1-faa9-5cbd-08b0e31c5c32.png)
**【ハマった場所】**
PostgreSQLでデータベースを作成する際にLC_COLLATE（文字の並び順）、LC_CTYPE（文字の種類）指定しますが、指定方法に特有のクセがありました。マニュアルには各DBMS毎の細かな指定方法までは記載されていないので注意が必要です。すくなくとも"ja_JP.UTF-8"でがデータベース作成がうまくいきませんでした。今回はWindows環境でエンコーディングがUTF8で指定できる値として調査した上で**Japanese_Japan.932**を指定しました。UTF8なのにMS932に引きずられるの？ とも思いましたが、この指定で問題なくデータベースが作成されました。

###スキーマ作成
マニュアルの記載内容は次の通り。
> CREATE SCHEMA AUTHORIZATION [ユーザー名];

今回は、先ほど作成した**ユーザー名=apex**で作成してみます。
![PostgreSQL_CreSch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2594c50e-8d69-eeea-612d-710357fcab78.png)


###1.2. Java設定（Java 8 Update 131の場合）
マニュアルの記載内容は次の通り。
> ACMS Apex はデータベースやファイルの暗号化のために、無制限強度管轄のJCE ポリシーを必要としています。
Java8u161 より前のバージョンで実行する場合は、Oracle のサイトから強度が無制限のJCE 管轄ポリシー・ファイルを入手し、インストールしてください。
1. Java ベンダーのサイトからJCE ポリシーファイル（local_policy.jar とUS_export_policy.jar）をダウンロードします。
2. [JDK_HOME]/jre/lib/security にあるlocal_policy.jar とUS_export_policy.jar を上書きします。

今回は、Java 8 Update 131を使用しているので、マニュアルの指示に従いOracle社のサイトからダウンロードしてJCE 管轄ポリシー・ファイルをインストールしました。

###1.3. HDC-EDI Apexモジュール展開
インストールメディアの**module**ディレクトリにある**hdc_apex.zip**ファイルを展開します。
![Apex_install1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/baf780f8-a834-266f-35d6-40324ef38950.png)
今回の展開先は、**C:\hdc_apex**にしました。（ディレクトリは予め作成しておきます。）
![Apex_install2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/dd4ff42b-2ad2-f293-08f1-4cd1bb25d753.png)

###1.4. JDBCドライバーの配置
先ほど展開したHDC-EDI Apex内のディレクトリ**C:\hdc_apex\bin\Common**にJDBCドライバーをコピーします。
JDBCドライバーはマニュアルの記載にしたがって、適切なDBMS・バージョンのものを入手してください。
![Apex_install3_jdbc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f2e35553-1989-ef5a-2fe3-8c929c6af310.png)

###1.5. HDC-EDI Apexシステムパラメータ設定
**C:\hdc_apex**に展開した3つのシステムパラメータファイルの初期設定について、ポイントを紹介します。
####設定ファイルのコピー
各設定ファイルを有効にするために下表のとおりコピーします。（**".org"**を削除するだけです。）

|コピー元|コピー先|補足説明|
|:--|:--|:--|
|systems.properties.org|systems.properties|Apex全体のシステム設定|
|local.properties.org|local.properties|ノード固有のシステム設定|
|holidays.properties.org|holidays.properties|国民の休日を設定|

####system.properties
マニュアルにしたがって、**system.properties**ファイルを編集します。
今回は、最低限の設定箇所として下表の項目だけ編集しました。

|項目|説明|
|:--|:--|
|masterNodeName|ノード名を設定（ここではコンピュータ名のsedemoを設定）|
|pse.storage_type|DBMSの種類を設定（ここではPOSTGRESQLを設定）|
|pse.storage_url|JDBC接続情報を設定（マニュアルに記載のPostgreSQL例に従って記述、DBMSのホスト名、ポート番号には注意）|
|pse.storage_user|PostgreSQLに設定したユーザーを設定   |
|pse.storage_password※|PostgreSQLに設定したパスワードを設定|
|pse.encrypt_id|Apexの暗号キーの一部として利用される（ここでは適当な文字列をとりあえず設定しますが、初回起動以降は絶対に値を変更しないでください。）|
※今回はデータベースのパスワードを設定ファイルにそのまま記述しましたが、秘匿情報を設定ファイルに記述するのはセキュリティ上好ましくありません。HDC-EDI Apexにはパスワードを暗号化して運用することが可能なので、実運用では秘匿情報の暗号化を強くお勧めします。（EncPasswordコマンドで設定ファイルの暗号化が可能）
![Apex_system.properties.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e92026b1-08f6-f0a7-b1fa-0cee47bc86d4.png)
![すぎもんポイント1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c1e031e9-4688-c06e-ae2c-0c1dafc6e795.png)
####local.properties
今回は編集しません。
####holidays.properties
編集しません。（マニュアルには編集禁止とあります。）
####apex.batの有効化
C:\hdc_apex にある**apex.bat**を有効化（ファイル名の変更）します。変更内容は下表のとおりです。（これも**".org"**を削除するだけです。）
このバッチファイルは、HDC-EDI Apexの起動/停止をはじめ、あらゆるコマンド操作で利用します。

|コピー元|コピー先|補足説明|
|:--|:--|:--|
|apex.bat.org|**apex.bat**|Windowsの場合（今回はこちらを実施）|
|apex.sh.org|apex.sh|UNIX（Linux）の場合|

###1.6. HDC-EDI Apexサービス起動
コマンドプロンプトからHDC-EDI Apexを起動します。
まずは、初期設定のために構成モード（通信を行わない設定作業のためのモード）で起動します。
`> cd C:\hdc_apex`
`> apex.bat boot -construct` 
![Apex_boot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/209fbf8a-21b2-f442-c544-3105f7fed3d9.png)
Webブラウザから次のURLにアクセスします。（起動するまで少し時間がかかることがあります）
`https://<ホスト名>:8080/login.html`
初回ログイン用のユーザー（オペレーター）でログインします。
**テナントID=（入力しない）
オペレーターID=administrator
パスワード=admin123**
![Apex_login1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e8cf21c5-d25a-6c0d-86e8-3c701e4da4fd.png)
ログインできるとHDC-EDI Apexの設定が可能になります。
![Apex_login2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9e26a703-cda5-b650-dd10-b28dac8b5faa.png)

---

今回はHDC-EDI Apexをインストールして起動まで実施しました。次回はHDC-EDI Apexの固有機能であるHULFT連携機能を有効にするための初期設定がテーマになりますので、ぜひご覧ください。

---

:arrow_forward: HDC-EDI Apex をインストールしてみた【Apexインストール編】（1/3）
:arrow_forward: [HDC-EDI Apex をインストールしてみた【HULFT初期設定編】（2/3）](https://qiita.com/sugimon/items/359fba2dbd032e11566a)
:arrow_forward: [HDC-EDI Apex をインストールしてみた【HDC-EDI Apex初期設定編】（3/3）](https://qiita.com/sugimon/items/6200efaaedbbfb28187e)

---