IBM i RiSING - IBM i 若手技術者コミュニティ 2025
G班 idb-connector 担当 社会人1年目の @ioliol です。
本記事では前後編に分けて、IBM i のオープンソース環境(OSS)で使える Node.js モジュール 「idb-connector」 について紹介します。
前編では「idb-connector の概要」「itoolkit との違い」「インストール手順」までを扱います。
後編では「実際に Db2 for i を操作する方法」について詳しく解説します。
はじめに
近年では、IBM i でも Node.js や Python などのモダン言語 を利用できるようになっています。その中で、Node.js から IBM i 上の データベースに直接アクセスできる OSS モジュール が「idb-connector」です。
idb-connector を用いることで、従来の RPG や SQL スクリプトではなく、JavaScript から データベース を操作できるようになります。
idb-connector とは?
idb-connector は、IBM i 用に提供されている Node.js モジュール のひとつで、Node.js から IBM i 上の データベース にアクセスするための API を提供します。
npm install idb-connector
で、簡単に導入できます。
SQL の発行、SELECT/INSERT/UPDATE/DELETE といった操作を実現できます。
なぜ idb-connector が重要なのか?
IBM i 環境で Node.js を初めて扱う際、多くの開発者は最初に 「idb-connector」 と 「itoolkit」 のふたつのモジュールを目にするかと思います。
両者の違いとして、itoolkit は「RPG プログラムや CL コマンドを呼び出す」ためのモジュールであり、データベース操作には RPG 上などを経由して操作を行います。
その点、idb-connector は SQL ベースで Db2 for i を直接操作できるため、データベースアプリや API 開発 に最適です。
itoolkit との違い
両者の違いをざっくりまとめると、次のようになります。
| 項目 | idb-connector | itoolkit |
|---|---|---|
| 主な用途 | データベースの操作 | RPG / CL / コマンド呼び出し |
| アクセス対象 | テーブルや SQL | PGM, CMD, QSYS.LIB |
| 通信方式 | ローカル Db2 for i 接続 | XMLSERVICE経由 |
| 実行速度 | 高速 (直接アクセス) | やや低速 (中間層あり) |
まとめ
idb-connector→ SQL (データ操作)itoolkit→ コマンド・プログラム呼び出し
このふたつを併用することで、IBM i のシステムと Node.js アプリを柔軟に連携できます。
アーキテクチャのイメージ
Node.js から Db2 for i へアクセスする流れを図にすると以下のようになります。
idb-connector は、IBM i の内部 API を利用して Db2 for i に直接アクセスするため、中間レイヤーが不要で非常に高速・安定しています。
idb-connector のインストール方法
Step 1. PATH を調整します
PATH の調整には、2パターンの方法があります。
- 一時的な PATH
- 永続的な PATH
今回は、推奨されている「永続的な PATH 調整」を紹介します。以下のコマンドをターミナル(shell)から一行ごとに実行していきます。
touch $HOME/.profile
setccsid 1208 $HOME/.profile
echo 'PATH=/QOpenSys/pkgs/bin:$PATH' >> $HOME/.profile
echo 'export PATH' >> $HOME/.profile
【補足】5250エミュレータ画面よりターミナルを起動する方法
CALL QP2TERM
PATH が通っているか確認します。
echo $PATH
/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin
Step 2. Node.js がインストールされているか確認
IBM i では、Access Client Solutions (ACS) の
「オープン・ソース・パッケージ管理」から Node.js を導入できます。
導入済みであれば、以下のコマンドでバージョン確認を行います。
node -v
npm -v
v22.15.0
10.9.2
Node.js をインストールすると npm も一緒にインストールされます。
Step 3. idb-connectorをインストール
Node.js 環境が整ったら、次のコマンドを実行します。
npm install idb-connector
インストール時に古い依存ライブラリに関する警告が表示されることがありますが、インストール自体は正常に完了し、動作に問題はありません。
インストール後、node_modules 内に idb-connector フォルダが生成されていればOKです。
Step 4. 動作確認
まずは接続確認だけの簡単なテストコードを作成してみましょう。
const { dbconn } = require('idb-connector');
const connection = new dbconn();
connection.conn('*LOCAL'); // IBM i 上のローカル Db2 for i に接続
console.log('接続成功!');
connection.disconn();
node test.js
接続成功!
この表示が出れば、idb-connector は正しく動作しています。
【補足】ローカルの接続ではなくリモートで接続を行いたい場合
connection.conn('database', 'user', 'password'); //リモート環境への接続.conn で指定している、
*LOCALを上記のように変更します。
databaseが分からない場合には、リレーショナル・データベース・ディレクトリーに設定されたエントリー名を指定します。WRKRDBDIRE
まとめ
お疲れ様でした。
これで、idb-connectorを用いてデータベースに接続することができました。
後編では、idb-connectorの2つの主要クラスである
- dbconn(データベース接続の管理)
- dbstmt(SQL文の実行)
この2つを中心に、実際に登録(INSERT)方法を紹介します。
参考文献
当記事の著作権はIBMに帰属します。
詳細はこちらを参照ください
