この回が終わると、PUB400 にサインオンして、メインメニューを読んで、抜けられるようになります。

所要 30分。半分は接続の設定で、ここがいちばん詰まります。

1. アカウントを作る

PUB400.COM で SIGNUP。しばらくするとユーザープロファイルとパスワードが届きます。

プロファイル名が、そのままあなたのライブラリー名になります。TAKAH なら TAKAH1 のような名前のライブラリーが用意され、カレント・ライブラリーになっています。

2. クライアントを選ぶ

5250 の画面を出すには端末エミュレーターが要ります。無料で、時間制限がなく、Windows でも macOS でも動くものとなると、選択肢は限られます。

  費用 時間制限 Windows macOS  
TN5250J 無料 なし ○ ○ これを使います。 Java 製
Mocha TN5250 Lite 無料 10分 ○ ○ 演習には足りない
Mocha TN5250 有料 なし ○ ○ 操作感はいい
IBM ACS — なし ○ ○ IBM i の権利が要ります
tn5250(C 版) 無料 なし △ △ 端末の中で動く。日本語が難物

IBM ACS は誰でも使えるわけではありません。 PUB400 自身が「IBM ESS のソフトウェア・アクセスが必要」と書いています。実務で IBM i を使っている人なら持っていますが、この連載は持っていない前提で進めます。

Mocha TN5250 Lite は10分で切れます。 これは PUB400 の制限ではなく無料版の制限です。画面の右下に残り時間が出ます。打ち込みの途中で切れるので、演習には向きません。

3. TN5250J を入れる

Releases から取ります。0.7.6 が正式版、0.8.0-beta2 は beta です。

Java が要ります。入っていなければ先に入れてください。

java -version

展開したら、tn5250j.jar をダブルクリックします。

コマンドラインで引数を渡しても効きません。

java -jar tn5250j.jar pub400.com -p 992 -sslType TLS

これは一見それらしく動きますが、ログに Creating Plain Socket と出て 23番に繋ぎにいき、タイムアウトします。0.8.0-beta2 で確認しました。 引数は使わず、設定ファイルで渡します。

4. 接続の設定

ここがこの回でいちばん大事なところです。

GUI の設定画面は探さないでください。 TN5250J にもセッションの設定画面は ありますが、どこから出すのかが分かりにくく、探すだけで時間が溶けます。 設定ファイルを直接書くほうが速くて確実です。

OS 場所
Windows C:\Users\<あなた>\.tn5250j\sessions
macOS / Linux ~/.tn5250j/sessions

このファイルは「セッション名 = コマンドライン文字列」という形です。こう書きます。

PUB400=pub400.com -e -p 992 -sslType TLS
emul.default=PUB400

保存して、TN5250J を再起動します。起動時にしか読まないので、動かしたまま書き換えても反映されません。

なぜ 992 なのか

PUB400 は素の telnet(23番)を閉じています。 SSL の 992番だけです。

23番   閉
992番  開(TLS 1.2 / TLS 1.3)

23番のまま繋ごうとすると、サーバーが落ちているように見えて、ただ黙って待たされます。「繋がらない」の大半はこれです。

なぜ -sslType TLS なのか

TN5250J は SSL を明示しないと素の telnet で繋ぎます。既定は NONE です。

選べる値は NONE SSLv2 SSLv3 TLS の4つですが、使えるのは TLS だけです。PUB400 は TLS 1.2 と 1.3 しか受けません。SSLv2 / SSLv3 は2000年代の名残で、選ぶと必ず失敗します。

繋がったかの見分け方

いちばん早いのはタブの鍵アイコンです。

┌──────────────────┐
│ 🔒 PUB400.COM  × │   ← 鍵が付いていれば SSL
└──────────────────┘

鍵が無ければ素の telnet です。設定が効いていません。

ログで確かめることもできます。

Creating SSL [TLS] Socket      ← 正解
Creating Plain Socket          ← 設定が効いていない

証明書について聞かれたら受け入れます。PUB400 の証明書は CN=pub400.com です。

繋がって、サインオンまで通るとこうなります。

タブの左に鍵が付きます。 上の画面でも、タブが 🔒 PUB400.COM に なっているのが見えます。これが SSL で繋がっている印です。

5. サインオンする

繋がると、まずこの画面が出ます。

PUB400 のサインオン画面。サーバー名・サブシステム・装置名と、システムからのお知らせが並ぶ

        Welcome to PUB400.COM * your public IBM i server
                             Server name . . . :   PUB400
                             Subsystem . . . . :   QINTER2
                             Display name. . . :   QPADEV000T
  Your user name:      ________
  Password (max. 128):

  ==========================================================
          ***** Welcome to IBM i 7.5 *****

  * Beware: each sunday morning system is being restarted
  *** PUB400.COM is now 25 years old. Time to progress...
  * Upgrade to 7.6 planned in October. Expect downtimes.

  - Check out https://pub400.com for news, tools, chat, forum
  connect with SSH to port 2222 -> ssh username -p 2222

ユーザー名とパスワードを入れて Enter。初回はパスワードの変更を求められます。

この画面に出ている、後で効く3つ

Display name — あなたの装置名です。

Display name. . . :   QPADEV000T

5250 のセッション1つにつき、IBM i 側に装置が1つ割り当てられます。QPADEV000T が いまのあなたです。後の回で WRKJOB や WRKOBJLCK を使うとき、自分がどれかを 見分けるのに使います。繋ぎ直すと別の名前になることがあるので、そのつど見ます。

Subsystem — ジョブが動いている場所です。

対話ジョブは QINTER(ここでは QINTER2)というサブシステムで動きます。 バッチは別のサブシステムです。「いまどこで動いているか」は、後でジョブを 扱う回の土台になります。

SSH が 2222番で開いています。

connect with SSH to port 2222 -> ssh username -p 2222

PUB400 は 5250 だけでなく SSH でも入れます。連載の後半で Qshell や PASE、 オープンソースのツールを扱うときに使います。いまは「そういう入口もある」と 覚えておくだけで十分です。

日曜の朝は再起動します

* Beware: each sunday morning system is being restarted for update / cleanup.

共有システムなので、こういう告知がサインオン画面に出ます。作業中に落ちることが ある前提で、こまめに保存する癖をつけてください。

IBM i の版も毎回ここに出ます。この連載は 7.5 の画面で書いています (告知によれば 7.6 への更新が予定されています。画面が少し変わるかもしれません)。

6. メインメニューを読む

これが IBM i の玄関です。

IBM i のメインメニュー。左上に MAIN、右上に System: PUB400、下部にコマンド行と機能キー

読むところは4つです。

   
左上 MAIN いまどの画面にいるか。 迷ったらここを見ます
右上 System: 繋いでいるシステム名
===> コマンド行。 ここに番号でも CL 命令でも打てます
最下部 その画面で使える機能キー。 画面ごとに変わります

画面の外側(枠の右下)に、エミュレーターがカーソルの行と桁を出しています。

TN5250J                                                     20/7
Mocha TN5250     ONLINE-TLS 1.2          20,7        9:48 left

20行7桁 ということです。区切りがクライアントによって / だったり , だったりします。

サインオン画面なら 5/25、つまりユーザー名の欄が5行25桁目にある、と読めます。

この連載では桁を数える場面が何度も出てきます。 DDS は桁が意味を持つので、 「いま何桁目にいるか」を知る必要があります。目で数えずここを読んでください。 これが脊髄反射になると、後の回がずっと楽になります。

Mocha Lite だけ右端に残り時間が出ます。TN5250J には出ません(制限が無いので)。

7. 抜ける

90

をコマンド行に打って Enter。サインオフします。


つまずきポイント

症状 原因
繋がらない・黙って待たされる 23番に行っている。 992番にする
ログに Creating Plain Socket -sslType TLS が効いていない
SSLHandshakeException SSLv2 / SSLv3 を選んでいる。TLS にする
引数を渡したのに効かない TN5250J は引数を見ていない。 sessions ファイルに書く
10分で切れる Mocha TN5250 Lite を使っている
ACS が落とせない IBM i の権利が要ります。この連載では使いません
GUI の設定画面が見つからない 探さなくていいです。sessions ファイルを書きます

何も見ずにもう一度

ここからが本番です。この記事を閉じて、次をやってください。

  1. TN5250J を終了する
  2. もう一度 jar をダブルクリックして起動する
  3. PUB400 に繋ぐ
  4. サインオンする
  5. メインメニューで、カーソルの位置表示を見つける
  6. 90 でサインオフする

詰まったら戻ってきて構いません。ただし詰まった箇所を覚えておいて、もう一度最初からやってください。2回目は必ず速くなります。

覚える1行

pub400.com -e -p 992 -sslType TLS

これが書けるかどうかが、この回の合否です。