0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インストールなしで z/OS を触る:ブラウザで動く JCL 練習端末と MVS コンソールを作った

0
Posted at

メインフレーム(IBM Z / z/OS)を学ぼうとすると、最初にぶつかるのが「触れる環境がない」という壁です。実機は職場にしかなく、新人研修でもいきなり本番に近い環境を触らせるわけにはいきません。

そこで、ブラウザを開くだけで動く 練習用のシミュレータを2つ作りました。どちらもインストール不要で、無料で使えます。

01-top.png

どちらも学習用のシミュレーションで、本物の z/OS ではありません。IBM とは関係のない、個人の非公式な教材です。業務や試験の正解としては扱わず、実機の動作は IBM のマニュアルで確かめてください。

JCL 練習端末:書いて、投入して、出力を見る

利用者(プログラマー)の立場の練習台です。

  1. ISPF に似た編集画面で JCL を書く
  2. Command ===> に SUB と入れてジョブを投入する
  3. =SD → ST で SDSF に似た画面を開き、JES2 の出力を確かめる

投入すると、投入を受け付けたことを知らせる IKJ56250I と、ジョブの終了と最大の戻りコードを知らせる $HASP165 が返ってきます。

02-jcl-editor.png

いちばん力を入れたのは 間違えたときの反応 です。JCL を書き間違えると、実機と同じ番号のエラーメッセージが返ります。たとえば SYSOUT を SYSOT と打ち間違えると IEFC630I が出て、どの行のどのキーワードがおかしいかが分かります。コマンド行に JCK と入れれば、投入せずにチェックだけもできます。現場で最初に困るのは「エラーが読めない」ことなので、わざと間違えて、メッセージと原因を結びつける練習に使えます。

03-jcl-error.png

MVS コンソール シミュレータ:システムを立ち上げて、止める

こちらはオペレーターの立場です。

  • HMC からシステムを LOAD し、初期化中の問い合わせに応答して、JES2・VTAM・TCP/IP・TSO を立ち上げる
  • 決められた順番で止める(P TSO → P TCPIP → Z NET → $PJES2 → Z EOD …)。順番が正しかったかは「採点」タブで確かめられる
  • 障害シナリオ:ボリューム名の重複、マスターカタログの指定誤り、JES2 のチェックポイントのロック残りなどを仕込める
  • SYSLOG での調査:夜のあいだの記録から、障害の原因を推定する演習
  • 手順例16本と演習17本:答えを見ずに挑戦し、採点と解説で確認する

たとえばボリューム名の重複を仕込むと、IPL の途中で IEA213A が出て、どちらの装置をオフラインのままにするかを聞かれます。R 00,装置番号 と応答すると先へ進みます。

コンソールのメッセージをクリックすると、意味と、z/OS 3.2 マニュアルの出典ページ が表示されます。シミュレータの中で調べ物が完結するようにしました。

04-mvs-iea213a.png

2つをつなぐと、利用者とオペレーターの両方を体験できる

2つを別々のタブで開いて連携モードにすると、JCL 練習端末で投入したジョブが、シミュレータ側の JES2 で実行されます。

  • 利用者のジョブがデータセットを奪い合って待たされる
  • ジョブがオペレーターに問い合わせを出し、コンソールで応答する
  • 保留されたジョブを、オペレーターが解放する
  • システムの再起動をまたいでジョブが残る

実際の現場では、この「利用者とオペレーターのやり取り」がいちばん分かりにくいところです。一人で両方の立場を行き来できるのが、このシミュレータの特徴です。

作るときに気をつけたこと

メッセージは、マニュアルで確かめたものだけを使う

メッセージ ID と文面は、z/OS 3.2 のマニュアルで一つずつ確かめました。実在しないメッセージ ID は使いません。練習のために足した独自のメッセージ(JCL 練習端末の JCK で始まるものなど)や、シミュレータ独自の説明は、表示のしかたを変えて本物のメッセージと区別しています。

マニュアルの説明文は写していません。シミュレータに入れているのは、メッセージ ID、動作に必要な1行の文面、マニュアルの書名と出典ページだけです。マニュアルに記載が見つからなかった挙動をどう扱ったかは、判断の記録として公開しています。

自動テスト

すべてのメッセージ ID が、少なくとも1か所で使われているかどうかなども、自動テストで確かめています。

単一ページで動く

サーバーは要りません。リポジトリを ZIP で落として index.html を開くだけでも動くので、社内のネットワークが厳しい環境でも使いやすいはずです。2つの連携は、ブラウザの BroadcastChannel で同じオリジンのタブどうしをつないでいます。

こんな人に

  • メインフレームの仕事に就いたばかりで、JCL やコンソールに慣れたい人
  • 新人研修で、実機に触る前の練習台を探している人
  • オープン系のエンジニアで、メインフレームの世界をのぞいてみたい人

おわりに

ソースはどちらも GitHub で公開しています(MIT ライセンス)。

この2つの開発には、AI のコーディング支援(Claude Code)を使いました。メッセージと挙動の確認は、マニュアルと照らし合わせて行っています。

「このメッセージは実機と違う」「この操作も練習したい」といった指摘は、GitHub の Issue か X(@son_jo_sokora)で教えてもらえるとうれしいです。

商標について

IBM、IBM Z、z/OS、MVS、ISPF、SDSF、JES2、VTAM、TSO は、International Business Machines Corporation の商標です。この記事と2つのシミュレータは IBM とは関係がなく、IBM の承認も受けていません。製品名は、何を練習するための道具かを説明するためにだけ使っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?