
AS/400環境のPUB400.COMで、5250端末からDb2 for iでSQLを実行してみた
はじめに
データ事業本部の藤川です。
生成AIの目覚ましい進化が続いています。レガシーシステムをモダナイズできるようになった、COBOLをJavaに変換して、オープン化を実現できるようになったという話題と共に、IBM iSeriesや旧呼称であるAS/400といったキーワードを目にする機会が多いです。
まだまだ現役で稼働していますが、基幹系ホストの実機を検証目的で気軽に触れる機会はなかなかないと思います。資料や画面キャプチャで見ることはできても、自分で画面キャプチャを撮って、ネットに公開する行為は珍しいことになりつつあるのではないでしょうか。
そんな中、IBM iのDb2 for iに無償でアクセスできる公開環境PUB400を見つけました。商用利用は不可で、個人の学習・検証用途に限られますが、興味本位で登録して試用してみたのでご紹介します。DevelopersIOでも珍しい題材かもしれません。
この記事では、PUB400にアカウントを登録し、5250端末エミュレーターでサインオンして、SQL文を実行するまでの手順をご紹介します。
概要
IBM i と Db2 for i
IBM iは、IBMのPowerサーバー上で動くOSです。AS/400、iSeries、System iと名前を変えながら、1988年から続いています。日本では「オフコン」と呼ばれる系譜のシステムです。厳密には、IBM Z(いわゆるメインフレーム)とは別の製品ラインですが、どちらも長年にわたり企業の基幹業務を支えてきた点は共通しています。
IBM iの特徴は、リレーショナルデータベースDb2 for iがOSに統合されていることです。別途データベース製品をインストールする必要はなく、システム1台につきデータベースが1つ存在します。用語の対応は次のとおりです。
| SQL の用語 | IBM i の用語 |
|---|---|
| スキーマ | ライブラリー |
| テーブル | 物理ファイル |
| 行 | レコード |
PUB400
PUB400は、インターネット経由で無償利用できる公開IBM i環境です。2026年11月時点でIBM i 7.5が動いており、サインオン画面には「PUB400.COM is now 25 years old.」と表示されていました。長く運営されている環境のようです。
不特定多数の利用者が同じシステムを共有するため、利用ルールが定められています。主なルールは、他の利用者のデータを覗かないこと、機密情報を置かないことです。また、予告なく停止することがあります。
5250 端末と tn5250j
IBM iの伝統的な操作画面は、5250と呼ばれる端末の画面です。黒地に緑の文字が並ぶ、いわゆる「グリーンスクリーン」です。現在は物理端末の代わりに、TN5250プロトコルで接続する端末エミュレーターを使います。
IBM公式のIBM i Access Client Solutions(ACS)もありますが、ダウンロードにIBM IDが必要です。今回は、オープンソースのtn5250jを使います。Javaで動くため、macOSでもそのまま動作します。
準備
今回の環境は次のとおりです。
- macOS
Java(mise でインストール)tn5250j0.8.0-beta2
tn5250jはJava 1.8以降で動きます。作業用のディレクトリに次のmise.tomlを置き、Javaをインストールします。
[tools]
java = "latest"
mise install
java -version
java -versionでバージョンが表示されれば問題ありません。
続いて、tn5250jをダウンロードして展開します。
mkdir -p ~/tools
curl -fsSL -o ~/tools/tn5250j-0.8.0-beta2.zip https://github.com/tn5250j/tn5250j/releases/download/0.8.0-beta2/tn5250j-0.8.0-beta2.zip
unzip ~/tools/tn5250j-0.8.0-beta2.zip -d ~/tools
~/tools/tn5250j-0.8.0-beta2/tn5250j.jarが存在すれば準備完了です。
やってみた
PUB400 にアカウントを登録
ブラウザで PUB400 の申請ページ を開き、利用ルール(these notesのリンク先)を読んでから、次のように入力します。
IBM i user nameは、スキーマ名などに含まれ、他の利用者からも見えます。本名や会社名を推測できる名前は避けましょう。
| 入力フィールド | 入力値サンプル | 備考 |
|---|---|---|
| Your first name | Taro |
任意。空欄なら anonymous |
| Your last name | Yamada |
任意。空欄なら anonymous |
| eMail-Address | taro.yamada@example.com |
確認メールの送信先 |
| eMail-Address (repeat) | taro.yamada@example.com |
同じ値 |
| IBM i user name | HELLO0101 |
9文字以内 |
| 利用ルールへの同意 | チェックを入れる |

Submitをクリックすると、件名PUB400 - your user profile requestの確認メールが届きます。サイトの案内では、届くまで最大1時間かかります。
メールが届いたら、メール内の確認リンクをクリックして、再度、待ちます。
15分程度で件名PUB400 - your user profileのメールが届き、本文に初期パスワードが記載されています。
Your user profile <IBM i ユーザー名> has been created for you. Your
initial password for signon is: <初期パスワード>
tn5250j に接続先を登録
tn5250jを起動します。mise.tomlを置いたディレクトリで実行し、miseのJavaを使います。
java -jar ~/tools/tn5250j-0.8.0-beta2/tn5250j.jar
Connect - Connectionsダイアログが開くので、Addをクリックします。GeneralタブのSystem NameにPUB400.COMと入力し、TCP/IPタブを次のように設定します。
初期値の23番ポートは暗号化されないTelnetです。パスワードが平文で流れるため、992番ポートとTLSを使います。
| 項目 | 初期値 | 設定値 |
|---|---|---|
Host IP/DNS |
空欄 | PUB400.COM |
Port |
23 |
992 |
SSL Type |
NONE |
TLS |

カーソルを見やすくする
一覧からPUB400.COMを選んでConnectをクリックすると、サインオン画面が表示されます。

tn5250jの初期設定ではカーソルが見えにくく、入力位置が分かりにくいため、サインオンの前に設定を変更することをお勧めします。
画面を右クリックしてSettings...を開き、左側のツリーのCursorで次のように設定します。
| 設定項目 | 設定値 |
|---|---|
Cursor Size |
Full Height |
Ruler |
None |
Blink |
Yes |
ApplyをクリックしてからSaveをクリックします。SaveはApplyで反映済みの設定を保存するだけなので、順番を逆にすると設定が保存されません。
初回サインオンでパスワードを変更
Your user name:にユーザー名、Tabキーで移動してPassword (max. 128):に初期パスワードを入力し、Enterを押します。
初回は、パスワード変更画面が表示されます。Current passwordに初期パスワード、New passwordとNew password (to verify)に新しいパスワードを入力してEnterを押すと、IBM i Main Menuが表示されます。
新しいパスワードは、パスワードマネージャーなどに保存しておきましょう。

対話型 SQL で SQL を実行
SQLを実行します。画面下部のコマンド行(===>)に次のコマンドを入力し、Enterを押します。
STRSQL NAMING(*SQL)
STRSQLは対話型SQLを起動するコマンドです。NAMING(*SQL)を指定すると、スキーマ.テーブルの形式で名前を書けます。省略するとスキーマ/テーブルというIBM i独自の形式になります。
Enter SQL Statements画面が表示され、Current connection is to relational database PUB400.と表示されれば問題ありません。

===>の行に次のSQLを入力し、Enterを押します。SYSIBM.SYSDUMMY1は、OracleのDUAL表(懐かしい。。。)に当たる1行だけのダミー表です。
SELECT * FROM SYSIBM.SYSDUMMY1
Display Data画面に、列IBMREQDと値Yの1行が表示されました。

F3を押すとEnter SQL Statements画面に戻ります。macOSではF3などのファンクションキーがOSの機能に割り当てられているため、fn + F3を押します。5250の画面操作では、ファンクションキーを多用します。
続けて、次のSQLも同じ方法で実行できます。接続しているデータベース名と、自分のスキーマにあるテーブルの一覧を確認するSQLです。<カレントライブラリー>には自分のライブラリー名を英大文字で指定します。
VALUES CURRENT SERVER
SELECT TABLE_NAME, TABLE_TYPE, TABLE_TEXT
FROM QSYS2.SYSTABLES
WHERE TABLE_SCHEMA = '<カレントライブラリー>'
対話型 SQL を終了してサインオフ
Enter SQL Statements画面でF3を押すと、Exit Interactive SQL画面が表示されます。Optionが1(Save and exit session)であることを確認してEnterを押すと、IBM i Main Menuに戻ります。

最後に、コマンド行にSIGNOFFと入力してEnterを押し、サインオフします。
さいごに
ご覧の通り、アカウント登録から5250端末でのSQL実行まで、無償の環境で一通り試せることが分かりました。メールの到着を待つ時間はありますが、手を動かす作業はそれほど多くありません。
実際に触ってみると、いくつか気付きがありました。
-
SQL は普通に書ける
STRSQLでは、標準的なSQLをそのまま実行できます。Db2 for iは、カタログビュー(QSYS2.SYSTABLESなど)も充実しており、SQLの知識があればデータの構造を調べられます。 -
公開環境であることを忘れない
PUB400は不特定多数が共有する環境です。顧客データや機密情報は絶対に置かず、他の利用者のデータを覗かないようにしましょう。あくまで個人の学習・検証用途です。
どなたかのお役に立てれば幸いです。
tenseiのご紹介
tensei(テンセイ) は、AIを活用してレガシーシステムのソースコードを分析・変換し、最新のアーキテクチャのシステムに移行するための支援サービスです。
オンプレミスのハードウェア運用保守、ライセンス費用の高騰、脆弱性・EOL対策、レガシーシステムに精通したエンジニアの確保など、課題が山積みのレガシーシステムを運用し続けることは負の資産となります。
是非ご相談ください。





