COBOLとJCL完全ガイド!カタログ・非カタログデータセットの扱い方
生徒
「JCLでデータを扱うとき、カタログと非カタログって何ですか?」
先生
「簡単に言うと、カタログデータセットは名前で管理される便利なデータで、非カタログは直接管理しない生データです。」
生徒
「どう使い分ければいいんですか?」
先生
「順番に特徴と扱い方を見ていきましょう。」
1. カタログデータセットとは?
カタログデータセットとは、IBMメインフレームでJCLやプログラムから簡単にアクセスできるように、名前で管理されるデータです。
イメージとしては、図書館の蔵書カードのように「名前やラベルで本を探す」感じです。COBOL JCL 初心者でも、カタログを使えば直接位置や物理名を意識せずにデータを扱えます。
2. 非カタログデータセットとは?
非カタログデータセットは、名前だけで管理されず、物理的な配置情報でアクセスします。
例えると、自宅の本棚のようなもので、ラベルがなくても直接本を探して使うイメージです。JCLでは、DISP=(NEW,DELETE)のように物理管理を意識する必要があります。
3. カタログデータセットのJCLでの書き方
カタログデータセットは、DD DSN=dataset.name,DISP=SHRのように名前だけでアクセスできます。
//MYDD DD DSN=MY.CATALOG.DATA,DISP=SHR
この書き方なら、初心者でも簡単にCOBOLプログラムからデータを読み書きできます。
4. 非カタログデータセットのJCLでの書き方
非カタログデータセットは、UNIT=SYSDA,DISP=(NEW,CATLG,DELETE)のように、物理装置や処理状態を指定する必要があります。
//MYDD DD DSN=MY.NONCAT.DATA,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,5)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
物理情報を指定することで、JCLが非カタログデータセットを作成して利用できるようになります。
5. カタログ・非カタログの使い分け
通常は、頻繁に使うデータや共通データはカタログデータセットにします。安全性や管理性が高く、COBOLプログラムからも扱いやすいです。
一方で、一時的なデータや一度きりの処理用は非カタログデータセットで作成します。処理後に自動削除する設定も可能です。
6. データセットの参照と管理のポイント
JCLでデータセットを扱う際は、名前の管理とDISPの指定が重要です。DISPはデータセットの状態を示し、NEWは作成、SHRは共有、OLDは排他使用を意味します。
//MYDD DD DSN=MY.CATALOG.DATA,DISP=OLD
COBOL初心者でも、DISPの意味を覚えることで、安全にデータを読み書きできます。
7. カタログ登録と削除
非カタログデータセットは、処理後にカタログに登録することもできます。JCLではDISP=(NEW,CATLG,DELETE)のように指定します。
//MYDD DD DSN=TEMP.DATA,
// DISP=(NEW,CATLG,DELETE)
処理後、必要な場合はカタログに登録し、不要なら自動で削除されます。管理が簡単になるため、COBOLとJCL連携時には便利なテクニックです。
8. 初心者向けのおすすめ実践方法
最初はカタログデータセットを使い、JCLで共通的に管理することを意識しましょう。非カタログはテスト用や一時データ用に限定すると管理が楽です。
COBOL JCL カタログ 非カタログ 初心者 でも、まずは名前で管理されるカタログを理解し、DISPやUNITの意味を少しずつ覚えるのがおすすめです。