[OCI]Oracle Integrationで接続性エージェントを使用したOracle Databaseへの接続を作成してみた

# はじめに

Oracle Integrationの超初心者が Oracle Integration の接続エージェントを使用したOracle Databaseへの接続を作成してみました。

接続性エージェントを使用することで、オンプレミスのファイアウォールでインバウンドのトラフィックを追加で許可することなく、Oracle Integration とオンプレミスのシステムを接続することが可能になります。

# 1.Oracle Integrationでエージェント・グループを作成

Oracle Integrationのサービス・コンソールにアクセスします。
![スクリーンショット 2021-05-23 10.52.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/053d0309-95a7-98e6-5751-71adf0c7e9a3.png)
コンソールメニューの「統合」をクリックします。
![スクリーンショット 2021-05-23 10.05.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a92a26b2-57c6-a9ee-53bd-568584286db1.png)
「エージェント」をクリックします。
![スクリーンショット 2021-05-23 10.06.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/5f2750d7-a3c2-f71d-b724-0429e18e94cd.png)
エージェントの画面が表示されます。
![スクリーンショット 2021-05-23 10.06.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0209598a-8e0f-4d2c-ae59-5919f230dd95.png)
「エージェント・グループの作成」をクリックします。
![スクリーンショット 2021-05-23 10.07.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/26a71f5c-739f-aa62-ade9-fc6e930d1f2a.png)
エージェント・グループの作成ウィザードが表示されるので、名前、識別子、説明を入力して「作成」をクリックします。
![スクリーンショット 2021-05-23 10.08.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/363802ac-7577-24b2-8e1f-9fb7a5d10188.png)
エージェント・グループが作成されました。
この時点ではまだエージェントが構成されていないので、「エージェント」欄は「0」になっています。
![スクリーンショット 2021-05-23 10.09.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/ff15043c-161a-ecff-dce5-69f489b9b0db.png)

# 2.接続性エージェントのインストーラのダウンロード

画面右上の「ダウンロード」をクリックし、「接続性エージェント」をクリックします。
![スクリーンショット 2021-05-23 10.09.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/dc1397a0-aa73-313e-99ed-b3c6a4f6f249.png)

oic_conn_agent_installer.zip という名前のZIPファイルがダウンロードされます。

# 3.接続性エージェントのインストール

接続性エージェントをインストールするサーバ（今回はOracle Linux 7.9が動作するComputeインスタンス）に 2.でダウンロードしたファイルをコピーします。

接続性エージェントを動作させるにはJDK 8が必要なのでインストールします。

```
[opc@compute1 ~]$ sudo yum install -y jdk
```
環境変数を設定します。

```
[opc@compute1 ~]$ export JAVA_HOME=/usr/java/default
[opc@compute1 ~]$ export PATH=$JAVA_HOME/bin:$PATH
```

ZIPファイル解凍用のディレクトリを作成します。

```
[opc@compute1 ~]$ mkdir agent
```

ZIPファイルを移動して解凍します。

```
[opc@compute1 ~]$ cd agent
[opc@compute1 agent]$ mv ../oic_conn_agent_installer.zip .
[opc@compute1 agent]$ unzip oic_conn_agent_installer.zip
```
作成されたファイルを確認します。

```
[opc@compute1 agent]$ ls
agenthome               InstallerProfile.cfg
connectivityagent.jar   oic_conn_agent_installer.zip
cpi_upgradeutility.jar
```
InstallerProfile.cfgをvi等のエディタで開きます。

```text:InstallerProfile.cfg
# Required Parameters
# oic_URL format should be https://hostname:sslPort
oic_URL=
agent_GROUP_IDENTIFIER=

# Proxy Parameters
# proxy_NON_PROXY_HOSTS: a list of hosts that should be reached directly, bypassing the proxy. This is a list of patterns separated by '|'.
proxy_HOST=
proxy_PORT=
proxy_USER=
proxy_PASSWORD=
proxy_NON_PROXY_HOSTS=
```
以下のように変更して保存します。

```text:InstallerProfile.cfg
# Required Parameters
# oic_URL format should be https://hostname:sslPort
oic_URL=https://<Oracle Integrationのサービス・コンソールのURLのホスト名部分>:443
agent_GROUP_IDENTIFIER=AGENT_GROUP_1

# Proxy Parameters
# proxy_NON_PROXY_HOSTS: a list of hosts that should be reached directly, bypassing the proxy. This is a list of patterns separated by '|'.
proxy_HOST=
proxy_PORT=
proxy_USER=
proxy_PASSWORD=
proxy_NON_PROXY_HOSTS=
```

ドキュメントに記載のあるコマンドを実行してインストールを試みましたがエラーとなりました。。
（2021/5/23現在）

```
[opc@compute1 agent]$ java –jar connectivityagent.jar
Error: Could not find or load main class –jar
[opc@compute1 agent]$ 
```
調査の結果、以下のコマンドでインストールできるとのことなので、再度インストールしてみます。

途中でOICユーザ名とパスワードを聞かれますので、Oracle IntegrationにアクセスできるIDCSのユーザ名とパスワードを指定します。
※MFA（多要素認証）が有効になっているユーザは使用できませんので注意が必要です。

```
[opc@compute1 agent]$ java -cp ./connectivityagent.jar:./cpi_upgradeutility.jar oracle.cloud.cpi.agent.CpiBootstrapLoader
Proceeding to install a new agent ...
Enter your OIC username : xxx@yyy.com
Enter password for xxx@yyy.com : 
No Proxy Configuration Detected
Checking for trusted certificates ...
Making call to check OIC Version ...
Making call to check Agent group availability ...
Updating Agent with configuration details ...
Making call to register new agent instance ...
Making call for getting agent app id & keys...
Done with Agent installation & configuration... Starting Agent for message processing.
```
無事にエージェントのインストールが完了し、エージェントが実行されました。

Oracle Integrationのサービス・コンソールでエージェント・エージェントグループを確認します。
作成したエージェント・グループの「エージェント」欄が「1」になっていて、正しく接続性エージェントが構成され Oracle Integrationと通信できていることが確認できました。

![スクリーンショット 2021-05-23 10.15.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/7b166545-a321-d484-fb9a-ced0eb16bec8.png)

エージェントの情報を確認してみます。
「エージェント」をクリックします。
![スクリーンショット 2021-05-23 10.17.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/3670acb8-a60d-3d22-62e2-6a4f702c2290.png)

エージェントの情報が表示されます。
![スクリーンショット 2021-05-23 10.16.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/874c068f-5b7c-1af0-0780-ac57bba48f13.png)

# 4.Oracle Databaseへの接続の作成

3.でインストールした接続性エージェントを使用したOracle Databaseへの接続を作成します。

コンソールメニューの「接続」をクリックします。
![スクリーンショット 2021-05-23 10.23.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/56187903-4379-af42-88af-cfa781020250.png)
「接続」の画面が表示されます。
![スクリーンショット 2021-05-23 10.24.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0d1eed43-d88d-a229-aa4b-30e324e210ca.png)
「作成」をクリックします。
![スクリーンショット 2021-05-23 10.24.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6c6010c8-4648-3e58-4766-55495584b746.png)
アダプタの選択画面が表示されるので、「oracle database」で検索し、「Oracle Database」アダプタを選択して「選択」をクリックします。
![スクリーンショット 2021-05-23 10.26.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/b5cfac4a-4792-fba3-8527-7f9ae1548c81.png)
作成する接続の名前、識別子を入力し、ロールを選択して「作成」をクリックします。
![スクリーンショット 2021-05-23 10.28.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/ce5a87d6-6b10-652c-5db4-360bfec3c920.png)
接続の詳細設定画面が表示されます。
![スクリーンショット 2021-05-23 10.28.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/1a0535df-95a2-a1c2-5bf4-5a7117580ee1.png)
「接続プロパティ」のセクションでは、ホスト名、リスナーポート、サービス名等のDB接続情報を入力します。
![スクリーンショット 2021-05-23 10.30.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/4b49d7d1-b1a8-ccc7-1e23-83ed3f9e2669.png)
「セキュリティ」のセクションでは、DBに接続する際のユーザ名、パスワードを入力します。
![スクリーンショット 2021-05-23 10.30.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/9f56ca14-d369-51c9-0dc8-aa9374e68c85.png)
「エージェント・グループ」のセクションでは、使用するエージェントを含むエージェントグループを指定します。
「エージェントの構成」をクリックします。
![スクリーンショット 2021-05-23 10.31.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/0f8d6e99-d160-8e6d-1516-672ff0a3ec07.png)
1.で作成したエージェント・グループを選択して、「使用」をクリックします。
![スクリーンショット 2021-05-23 10.31.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/a7fadeed-5ddc-394d-2a39-6c3e61ce6e5a.png)
接続で使用するエージェント・グループが設定されました。
![スクリーンショット 2021-05-23 10.32.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/7122493a-cd65-2304-8b12-d4540cf74011.png)
画面上部の「テスト」をクリックして、接続が正しく設定されているかを確認します。
![スクリーンショット 2021-05-23 10.33.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6ead3646-f93b-aab1-5a96-805f758f591a.png)
正しく設定されていると以下のように表示されます。
![スクリーンショット 2021-05-23 10.36.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/ac5ff4f7-0fd4-346a-63d5-995e94d97060.png)
「保存」をクリックして、接続を保存します。
![スクリーンショット 2021-05-23 10.36.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/fc2e50a6-19a8-0ea3-8853-954f8ae8bf55.png)
接続が保存されました。
![スクリーンショット 2021-05-23 10.36.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/d6cc02c8-2710-cbdc-5eb1-df7ffb189eed.png)

# 5.作成した接続の確認
統合を作成し、呼び出し接続として4.で作成した接続を指定し、データベースの内容が参照できるかを確認します。
![スクリーンショット 2021-05-23 10.39.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/784824/6138a262-d528-4d2a-1f8e-b4aed7b94024.png)
4.で作成した接続を使用して、接続の作成時に指定したデータベースの内容が参照できることが確認できました。

# まとめ
接続性エージェントを使用することで、オンプレミスのOracle DatabaseをOracle Integrationに接続することができました。