webMethodsからDb2 on IBM Cloudに接続する

## はじめに

IBM webMethods Integration (SaaS)からDb2へ接続した際のメモ書きです。なかなか初見には難しいところがあるため一旦記事に起こしました。
こちらの記事ではDb2への接続テストまでの手順を記載しています。

### 前提
* webMethods.ioにてワークスフローを利用できる状態である
    * まだ環境を作れていない方は[こちら](https://www.ibm.com/docs/en/wm-integration/11.0.11?topic=workflows-creating)をご参照ください
* IBM Cloud上でDb2インスタンスを作成済みである
    * まだインスタンスを作れていない方は[こちら](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-provisioning)をご参照ください
    * LiteプランでもOKです
    * この記事では接続確認までなので、Db2にデータを投入しておく必要はありません

## 手順概要

接続手順はざっくり以下の通りです。
1. Db2の接続情報を確認する
1. Db2のドライバーをダウンロードする
1. ワークフローにてDb2接続設定をする
1. 接続確認をする

所要時間は約1時間です。

## 手順詳細
### 1. Db2の接続情報を確認する
IBM Cloud ダッシュボードにてDb2の接続情報を確認します。
接続情報は後で使うので、メモしておくか見返せるようにしておいてください。

#### ① 接続するDb2インスタンスを開く
IBM Cloud ダッシュボードの[リソースリスト](https://cloud.ibm.com/resources)から、接続したいDb2インスタンスを開きます。

#### ② サービス資格情報を開く、必要に応じて新規作成する
インスタンスを開いたら、サイドメニューの「サービス資格情報」をクリックし、サービス資格情報を開きます。
サービス資格情報が一つもない場合は[こちら](https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-db_details_cxn_creds#location)を参照し新規作成してください。設定値はデフォルトのままでOKです。
![スクリーンショット 2025-06-18 15.05.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/9bd6efe8-10da-48fd-9955-8c76052cc8d4.png)

#### ③ 接続に必要な情報を取得する
接続に必要な情報は以下の通りです。
| 項目名 | 補足 | サンプル |
|:-----------|------------|:------------:|
| Server name       | 資格情報内ではhostとして記載されています。ポート番号は含めないでください。        | xxxx-xxxx-xxxx.xxxx.databases.appdomain.cloud         |
| User     | 資格情報内ではusernameとして記載されています。      | hoge       |
| Password       |  資格情報内ではpasswordとして記載されています。       | pa$$w0rd         |
| Database name         | 資格情報内ではdatabaseとして記載されています。          | piyo           |
| Port number       |  資格情報内ではhostの末尾やportとして記載されています。       | 30000       |

![スクリーンショット 2025-06-18 15.30.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/9f7b9089-ef63-452d-9939-26c5772faae2.png)

必要な情報が確認できたら一旦IBM Cloudダッシュボードの出番は終わりです。


### 2. Db2のドライバーをダウンロードする
[こちら](https://www.ibm.com/docs/en/wm-integration/11.0.10?topic=developer-database#db_27__title__1)のページからダウンロードページへ辿っていき、ドライバーをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/61d9992e-9f51-4148-a289-1e89d87ce078.png)


### 3. ワークフローにてDb2接続設定をする

#### ① webMethodsワークフローにDatabaseノードを配置する
webMethodsのワークフロー編集ページを開き、画面右のツール群にて「Connectors」タブを開き、「Database」ノードをドラッグ＆ドロップします。
（※ 2025年6月現在、Db2専用のConnectorが存在しないため、共通のDatabaseConnectorを使用します。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/360ca334-73af-4a39-a112-a2265a92c33f.png)

#### ② アクションを追加する
配置したノードをダブルクリックし、設定画面を開きます。
「Select Action」にて右側の＋ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/710bfed6-e5be-40de-80d8-9317def7eae0.png)

接続先のアカウント設定を行います。
任意の「Action name」を入力し、その後画面下部の「Connect to account Database」にて右側の＋ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/857fe2c1-3be7-41ee-ab13-b0a2350f1870.png)

#### ③ Db2接続設定を行う

Add accountにて接続設定を追加していきます。

Nameには任意の名称を入力してください。

##### Basic configuration
* Database: プルダウンから「IBM DB2」を選択します。
* Driver group :Db2のドライバーを選択します。
    * すでにwebMethodsアカウント内でDb2ドライバーをアップしていた場合、選択して使うことができます。他ワークスペースにて作成したものも使用することができます。
    * アカウント内で初回のDb2接続を行う場合、以下の手順でドライバーを追加します。
        1. Driver group にて右側の＋ボタンをクリックします。
        1. Databaseに「IBM DB2」が選択されていることを確認します。
        1. Driver groupに任意の名称を入力します。
        1. Select the driverにて先ほどダウンロードしたドライバーを選択します。
        1. 完了したらSaveをクリックし、画面を閉じます。
        1. Driver groupのプルダウンにて作成したドライバーグループを選択します。
* Transaction type: NO_TRANSACTION（ドライバー選択後自動入力されます）
* Datasource class: （ドライバー選択後自動入力されます）
* Server name: 手順1にて確認したServer nameの値を入力
* User: 手順1にて確認したUserの値を入力
* Password: 手順1にて確認したPasswordの値を入力
* Database name: 手順1にて確認したDatabaseの値を入力
* Port number: 手順1にて確認したPort numberの値を入力

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/1f6fa0fc-57ff-4eec-aab2-6df508ea980f.png)


##### Advanced configuration
* Truststore alias: 設定不要
* Keystore alias: 設定不要
* Network protocol: 設定不要
* Other properties: 以下を設定してください（driverType、sslConnectionは追加する）
    * loginTimeout = 60
    * driverType = 4
    * sslConnection = true

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/3e8dccf6-b283-4ae4-8b45-5cd45f218dd5.png)

設定が完了したら「Save」をクリックし、「Next」をクリック。

Enable connection poolingはそのまま（Falase）で「Next」をクリック。

### 4. 接続確認をする
「Test Connection」をクリックし、接続確認をします。
接続に成功すると以下のような表示になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/a9c71917-91ee-4cd2-81e9-3c7eb0c697bd.png)

#### うまくいかない場合
* ずっとローディングしている
    * 接続設定に誤りがある可能性があります。
* 以下のようなエラーが出力される
    * ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411784/342de9e0-e94a-4f9b-b825-8b5c6c64fbba.png)
    * Advanced configurationの設定不足がある可能性があります。（ハマりポイント）

以上

## 終わりに
あとは作成したアカウントを使ってデータをあれこれすることが可能です。
作成したアカウントは同じプロジェクト内であれば使い回すことができるので、何度も設定する必要はありません。

今後Db2専用のコネクターが作られて簡単に接続できるようになるといいですね。