どうやって覚えればいいのか、何から始めればいいのか? -1-
サイトに併設している掲示板に「1週間で覚えられることは?」という質問がありました。1週間という期間はともかくとしても、全く始めてメインフレーム・コンピューターの仕事に携わることになった人達には切実なことでしょう。コンピューターがまったく初めてなのか、他のプラットフォームは経験があるのか、などベースの知識や技術に違いがあってもメインフレーム・コンピューターそのものに携わったことがないのに、即戦力でないと困る、勉強は自分でやってね、みたいなツラい状況に置かれている人達に何かのアドバイスになればと考えます。
基本の対話ツールを使えるようにしましょう
ふた昔もそれ以前であれば、メインフレームはまずJCLから入りました。JCLを作れないと何もできなかったからです。でも今は最初にTSOの使い方から入る方がいいでしょう。それもISPF/PDFですね。MSPならPFD、VOS3ならASPENです。これらは対話型プログラム開発ツールと呼ばれますが、JCLを作るにせよ、プログラムを作るにせよこれらの開発ツールが使えないことには作業になりません。
まずはエディターやデータセットのビュワー(ブラウザー)、データセットリストの表示など絶対使うものは最初に基本的な使い方を覚えましょう。
PDFの機能番号(オプション番号)で言えば、3.4(DSLIST),2(EDIT),1(VIEW),3.2(DATASET),3.3(MOVE/COPY)あたりでしょう。PDFの3.4はEDIT,BROWSE,COPY,DELETEなどなどそこからさまざまなことが行える万能ツールでもあります。実行したジョブのアウトプット(SYSOUT)はSDSFのST機能で表示できます。他にもOだのHだのいろいろありますが、STならジョブが実行中でも終了後でも状況や内容を見ることができますから、どれから覚えればいいのか?と思うならSTがいいと思います。MSPならPFDの3.8、VOS3ならASPENの@SLISTが相当します。
今後どのようなエンジニア(アプリケーション開発、システムプログラマー、運用保守のアドミニストレーターetc)でメインフレームに携わるにせよ、ISPFは必須のツールですから最低限使いこなせる必要があります。
JCLを書けるようにしましょう
とにもかくにもJCLはz/OS(MSP,VOS3)でプログラムを動かし、システムを運用する上で欠かせないものです。「バッチ処理しかしない」と言う人は珍しいですが、「バッチ処理はしない」と言う人もまずいません。基本中の基本なのです。マニュアルがベースになりますが、マニュアルはリファレンスであって親切な書き方の説明はされていません。このサイトでも「JCL入門」としてさわりを紹介してますが、細かな説明はしていません。基本となるJOB,EXEC,DDの各ステートメントで構成されることを覚えたら、会社で使っているJCLや、先輩達が作ったJCLなど、他人が作ったJCLをそれこそサンプルにして、それぞれのステートメントでどんなパラメーターが使われているか?どんな内容が定義されているか?などを調べるのもいいでしょう。初めて見るパラメーターや意味がわからないパラメーターが出てきたら、それをキーにしてマニュアルから探して調べるのです。そうすれば、JCLの膨大なパラメーターや機能から、その職場で必要とする、使っているものをピックアップしてターゲットを絞ることもできます。実践的な学習法でしょう。
ユーティリティ・プログラムを使ってみましょう
z/OS(MSP,VOS3)にはさまざまな機能のユーティリティ・プログラムが提供されています。データセットをコピーする、メンバーをプリントする、データをソートする等々です。すべてのユーティリティをいきなり覚える必要はありませんが、コピーやプリント、AMS(VSAMユーティリティ)などは基本的なものです。これら以外はJCL同様に職場で利用されるものからピックアップして使い方を覚えてもいいでしょう。何がよく利用されるかは職場や先輩達のJCLライブラリーを覗けば大体わかるでしょう。滅多に使わないものもありますが、JCLメンバーの最終保存日などを参考にして選択するのも1つの方法です。
多くのユーティリティはバッチジョブとして実行します。ユーティリティを覚えることは、さまざまなJCLを作ることにもなるため、JCL作成の勉強にもなります。既存のユーティリティJCLなどを材料にして自分なりのJCLライブラリーを少しずつでも作って行きます。それが貯まっていくと、こんな時はこのJCLで、あんな時はあのJCLで、と引き出しが増え作業の効率も上がりますし、組み合わせてさまざまな応用もできるようになります。
メインフレームは範囲が広い
マニュアルの数だけを見ても扱う範囲が広く、これさえ覚えれば後はどうとでもなる、と言う万能的なものもありません。やる仕事が決まっているのならターゲットを絞ることはできますが、それは中級レベル以上の知識でしょう。何をやるにせよ基本の部分をあまりに端折ると、結局中途半端なことになってあとで苦労します。とは言え基本の部分の範囲が広いのと、セルフスタディの材料が少ないのが最大のネックです。ここに挙げた3つで済むわけではありません。また昔は基本知識と言えば、OSコマンドがありましたが今はセキュリティの意味からも誰もがコンソールを使うことができません。こんなことも含めて基本知識や技術の習得に関してステップバイステップで考えてみようと思います。
この話題に関してはこれからメインフレームに携わる人達には切実です。ベテランの方々の幅広いご意見やお知恵があればぜひお聞かせ下さい。