メインフレーム(大型コンピュータ)は、銀行、保険、電気、鉄道、製造業など、私たちの暮らしを裏側で支えるきわめて重要なシステムで活躍しています 。最新のメインフレームはAIの処理機能が載っていたり、高度なセキュリティで守られていたりと、日々進化を続けています 。
しかし、メインフレームを操作するための技術(ISPFやSDSFなど)は、本屋さんに行っても分かりやすい解説書がほとんど売っていません 。そのため、「先輩から教わった暗黙知」や「社内の古いマニュアル」を頼りに頑張っている方も多いのではないでしょうか 。
このマニュアルは、そんな「新しくメインフレームの世界へ入ってきた方」や「もっと効率よく作業したい中堅の方」が、少しでも楽に、そしてスピーディに仕事ができるように、実務で本当によく使う便利なコマンドや設定を優しく、簡潔にまとめたものです 。
ISPFでは、最大で8つの画面(設定によっては32画面まで)を同時に開いて作業できます 。 「プログラムを修正しながら、JCLの実行結果(SDSF)を見て、さらに別のファイルの中身も確認する」といった複数の並行作業をスピーディに行うための便利コマンドです 。
SWAPBAR(スワップバー)で画面を並べる : コマンドラインに
SWAPBAR と入力してEnterキーを押すと、画面の最下部に「現在開いている画面の一覧」がバーのように表示されます
。その画面名にカーソルを合わせてEnterキーを押すだけで、一瞬で画面を切り替えられます 。
SWAP
LIST(スワップリスト)で一覧から選ぶ : 3つ以上の画面を開いていて「どの画面で何をやっていたか分からなくなった」ときは、コマンドラインに
SWAP LIST と入力します 。開いている画面の名前と状態が一覧(ポップアップ)で表示されます
。移動したい画面の左端にある「・」にカーソルを置いてEnterを押すだけで、その画面に飛びます 。
SCRNAME(スクリーンネーム)で画面に名前をつける :
開いている画面に好きな名前(最大8文字)を付けられます 。例えば、JCL編集画面で
SCRNAME JCL と入力すると、一番下のSWAPBARの表示が「JCL」に変わります 。これで画面の「迷子」が完全になくなります
。
PANELID(パネルアイディ)で画面のIDを調べる : コマンドラインに
PANELID と打つと、画面の左上にそのパネルの「システム的な名前(画面ID)」が表示されるようになります
。社内の作業手順書などに書かれている画面名と一致しているか確認するときに便利です 。
RETP(リトリーブポップアップ)で過去のコマンドを再利用 :
前に打ったコマンドをもう一度打ちたいときは、
RETP と入力します
。過去に入力したコマンド履歴が一覧表示されるので、番号を選んでEnterを押すだけで、長いコマンドを再入力する手間が省けます
。
| コマンド名 | 打鍵方法 | どんなときに使う? |
|---|---|---|
| SETTINGS |
SETTINGS |
ISPFの全体的な設定(動作環境)画面へワープします 。 |
| SWAPBAR |
SWAPBAR |
画面最下部の「開いている画面一覧バー」の表示/非表示を切り替えます 。 |
| SWAP LIST |
SWAP LIST |
開いている画面をポップアップ一覧で表示して、選んで移動できます 。 |
| SCRNAME |
SCRNAME 画面名 |
現在の画面に好きな名前(例:
JCL や
LOG など)をつけます 。 |
| PANELID |
PANELID |
画面の左上にシステム画面IDを表示/非表示にします 。 |
| RETP |
RETP |
過去に入力したコマンドを履歴から選んで再利用できます 。 |
| ISRROUTE CAL |
ISRROUTE CAL |
画面上に小さなカレンダーをポップアップ表示します 。 |
メインフレームのファイル(データセット)は、名前がドット(.)で区切られていて最長44文字と非常に長く、手入力するのが大変です
。手入力をなくして、スマートにファイルを探すコツです。
DSLIST(データセットリスト)で履歴を活用する : コマンドラインに
DSLIST と入力してEnterを押すと、データセットの一覧画面(ISPF 3.4)に直接行けます 。 さらに、
DSLIST REFLIST と打つと、「自分が最近アクセスしたファイル(最大30個)」が履歴リストとして一覧表示されます
。ファイル名を一文字も打つことなく、左側に「S」と入力するだけで編集(Edit)や確認(Browse)ができるため、打ち間違いがなくなります 。
EPDF(イーピーディーエフ)で今すぐファイルを開く :
今の画面を開いたまま、他のファイルを確認したいときは
EPDF 'データセット名' B(Browseモード)または
EPDF 'データセット名' V(Viewモード)を入力します 。確認が終わって
PF3 キーを押せば、すぐに元の作業画面に戻れます 。
LISTC(リストカタログ)でファイルの情報をのぞく :
ファイル一覧画面で、知りたいファイルの左側に
LISTC ENT(/) ALL
と入力すると、そのファイルの作成日や、どのボリューム(物理的な保管場所)に入っているかなどの情報が一目で分かります
。
プログラムのソースコードや、ジョブを実行するための「JCL」を編集する画面(ISPFエディター)で使う強力なコマンド群です 。
編集作業中に誤って大事な行を消してしまったり、置換を間違えてしまったりしたとき、焦る必要はありません 。
RECOVERY
ON(リカバリー・オン)を設定しておく : 編集を始める前に、コマンドラインに
RECOVERY ON(または
REC ON)と入力しておきます 。
UNDO(アンドゥ)で元に戻す :
Enterキーを押して変更が確定された後であっても、コマンドラインに
UNDO と入力すれば、操作を1つ前の状態に綺麗に戻せます 。
Enterを押す前なら「Escキー」でキャンセル : キー入力を間違えた時、エミュレータ設定によりますが、Enterキーを押す前であれば「Escキー」を押すだけで、その行に入力中の内容をキャンセルしてすぐ元の状態に戻せます 。
PROFILE(プロファイル)で確認
: 今のリカバリー設定がONになっているか確認したいときは、
PROFILE(または
PRO)と打てば、画面に設定状態が表示されます 。
★注意(圧縮 - COMPRESS) 区分データセット(PDS:中に複数のメンバーが入るファイル)の編集や削除を繰り返すと、ファイルの中に「ゴミ(古い残りカス)」が溜まり、満杯(スペース枯渇エラー)になってしまいます 。このときはファイルを「COMPRESS(圧縮)」してゴミ掃除をする必要があります 。
画面の上にある
COMMAND ===> という欄に打って、ファイル全体に効果を及ぼすコマンドです
。
| コマンド名 | 打鍵例 | どんなときに使う? |
|---|---|---|
| FIND |
FIND 検索文字列 |
ファイル内から探したい文字列を検索します 。 |
| CHANGE |
CHANGE 旧文字 新文字 |
ファイルの中の文字を置き換えます 。 |
| CAPS |
CAPS ON |
入力した文字を自動で「大文字」に変換してくれます(メインフレームは基本大文字なので、ONがおすすめ) 。 |
| HEX |
HEX |
文字を16進数(バイナリコード)で表示します。目に見えない改行コードや不正文字を探す時に便利です 。 |
| RESET |
RESET |
画面上のエラーメッセージや、一時的な強調表示などを綺麗に消し去ります 。 |
| SUBMIT |
SUBMIT |
編集中のJCL(ジョブ制御言語)を実行システム(JES)へ送信して動かします 。 |
| COPY |
COPY メンバー名 |
他のファイル(メンバー)の中身を、現在の編集画面に丸ごとコピーして挿入します(貼り付け位置に
|
| CREATE |
CREATE 新メンバー名 |
編集中の画面の一部(または全部)を指定して、別の新しいファイル(メンバー)として新規保存します 。 |
通常の文字検索だけでなく、特殊な記号を使って「数字だけ」「アルファベットだけ」といった高度なパターン検索ができます 。
P'#' :数字(0〜9)すべてにマッチします(例:
FIND P'#' で数字を検索) 。
P'@' :アルファベットすべてにマッチします 。
P'<'
:小文字のアルファベットだけにマッチします(メインフレームでエラーの原因になりやすい小文字を探すのに役立ちます)
。
P'=' :どんな1文字でもマッチします 。
画面の左側にある「行番号」が表示されているエリアに打ち込んで、行単位で操作するコマンドです 。
1行操作と「まとめて操作(ブロック指定)」 :
文字を重ねることで、範囲をまとめて操作できます 。たとえば
D は1行削除ですが、削除したい開始行に
DD、終了行に
DD と打ち込んでEnterを押すと、その範囲をまとめて削除できます 。
データシフト(<
/
>)とカラムシフト((
/
)) : 文字を左右にずらすコマンドです
。COBOLなどのプログラムを修正する際、プログラムの構文規則を壊さずに(カラム位置を守ったまま)コードの段落(インデント)を綺麗に左右へずらしたいときは、
( や
) (カラムシフト)を使います 。
| コマンド | 入力例 | 動作内容 |
|---|---|---|
| I |
I /
I5 |
カーソルのある行の直後に |
| D |
D /
DD |
行(または |
| C |
C /
CC |
行(または |
| M |
M /
MM |
行を移動(切り取り)します(貼り付けたい場所に |
| R |
R /
R3 |
その行(または |
| X |
X /
XX |
その行(または |
| S |
S /
S5 |
非表示にしている行のうち、先頭の |
| COLS |
COLS |
何桁目か一目で分かる「カラム定規(目盛り行)」をその行の真上に表示します 。 |
| BOUNDS |
BOUNDS |
置換や検索の範囲を「何桁目から何桁目の間だけ」に制限するための境界線行を表示します 。 |
自分が送信(SUBMIT)したジョブの処理結果や、システムの活動ログ(SYSLOG)を監視するツール「SDSF」で使える便利コマンドです 。
BOT(ボトム)で一番下にジャンプ :
何万行もあるシステムログや実行結果を見ているとき、キーボードのPF8を連打して下に行くのは大変です 。コマンドラインに
BOT と打ってEnterを押すと、一瞬で一番最後(最新のログが記録されている一番下)にスクロールします
。
LOG;BOT(ログ・セミコロン・ボトム)の合わせ技 :
今見ているジョブの実行結果画面から、システム全体のログ(SYSLOG)画面へ移動し、かつその最新ログ(一番下)を表示したい時は、コマンドラインに
LOG;BOT と入力します 。;(セミコロン)でコマンドを繋ぐことで、画面の移動と最下部へのスクロールを一度に完了できます
。
「/」だけで過去のシステムコマンドを再利用 :
SDSFの画面で、OS(MVS)に直接命令を出すシステムコマンドを使う際、コマンドラインに
/(スラッシュ)だけを入力してEnterを押します 。すると、「System Command
Extension」というポップアップ窓が表示され、過去に入力したシステムコマンドの履歴から選んで再実行できます
。
メインフレームに接続するPCソフト(IBM Pcommなど)の設定を少し変更するだけで、作業スピードが数倍になり、目の疲れも大きく軽減されます 。
タスクに合わせて画面サイズを変えよう :
43 × 80 サイズ(縦43行・横80桁):縦に広く表示されるので、プログラムソースやJCLをスクロールせずに見渡すのに最適です 。
27 × 132 サイズ(縦27行・横132桁):横に広く表示されるので、SDSFで長めのシステムログや印刷用帳票データを確認するのに最適です(横スクロールの手間が減ります) 。
HOMEキーとTABキーをカスタマイズしよう :
HOMEキー:押すだけで、画面の一番上の入力欄(COMMAND
===>)へカーソルが瞬時に移動するように設定しておきましょう
。いちいちマウスを持ったり、矢印キーを何度も押す必要がなくなります 。
TABキー:押すことで、次の入力フィールド(行コマンドの入力箇所など)へすばやくジャンプできるようにします 。
カーソルの形状を「ブロック型」にしよう : カーソルの形を通常の細い「アンダーライン」から、黒塗りの「ブロック型(■)」に変更し、チカチカ点滅(ブリンク)するように設定します 。これで広い画面の中でカーソルを見失わなくなります 。
メインフレームでは、ファイルの操作やデータの加工を行うために「標準の便利プログラム(システムユーティリティ)」が用意されています 。JCLを作成する際、よく呼び出す定番プログラムです 。
IDCAMS(アイディーキャムズ) : ファイルの作成(定義)、不要になったファイルの削除、ファイル情報の確認をしたいときに呼び出します 。
DFSORT(ディエフソート) : 大量のデータを指定のルールで並び替え(ソート)したり、必要なデータだけを抽出・集計する、とても処理スピードが速いプログラムです 。
DFSMSdss(ディーエフエスエムエスディーエスエス) : 複数のファイルやディスク丸ごとを効率よく別ディスクにコピーしたり、バックアップ(DUMP)や復元(RESTORE)を行うときに呼び出します 。
A1. コマンドラインに
DSLIST REFLIST と打ってみてください 。最近自分が使ったデータの履歴が表示され、手入力ゼロで目的のファイルを開くことができます
。
A2. 事前に
RECOVERY ON(REC ON)を設定していれば、コマンドラインに
UNDO と入力するだけで変更前の状態にパッと戻せます 。また、確定(Enter)前なら
Esc キー(エミュレータ設定による)を押すだけでキャンセルできます 。
A3.
SWAPBAR や
SWAP LIST を使いましょう 。開いている画面が一覧でき、名前を割り振る
SCRNAME 画面名 コマンドと組み合わせれば、画面迷子を完全に防げます 。