カテゴリ: COBOL 更新日: 2026/07/03

COBOLとJCL完全ガイド!カタログ・非カタログデータセットの扱い方

カタログ・非カタログデータセットの扱い方
カタログ・非カタログデータセットの扱い方

先生と生徒の会話形式で理解しよう

生徒

「JCLでデータを扱うとき、カタログと非カタログって何ですか?」

先生

「簡単に言うと、カタログデータセットは名前で管理される便利なデータで、非カタログは直接管理しない生データです。」

生徒

「どう使い分ければいいんですか?」

先生

「順番に特徴と扱い方を見ていきましょう。」

1. カタログデータセットとは?

1. カタログデータセットとは?
1. カタログデータセットとは?

カタログデータセットとは、IBMメインフレームでJCLやプログラムから簡単にアクセスできるように、名前で管理されるデータです。

イメージとしては、図書館の蔵書カードのように「名前やラベルで本を探す」感じです。COBOL JCL 初心者でも、カタログを使えば直接位置や物理名を意識せずにデータを扱えます。

2. 非カタログデータセットとは?

2. 非カタログデータセットとは?
2. 非カタログデータセットとは?

非カタログデータセットは、名前だけで管理されず、物理的な配置情報でアクセスします。

例えると、自宅の本棚のようなもので、ラベルがなくても直接本を探して使うイメージです。JCLでは、DISP=(NEW,DELETE)のように物理管理を意識する必要があります。

3. カタログデータセットのJCLでの書き方

3. カタログデータセットのJCLでの書き方
3. カタログデータセットのJCLでの書き方

カタログデータセットは、DD DSN=dataset.name,DISP=SHRのように名前だけでアクセスできます。


//MYDD    DD DSN=MY.CATALOG.DATA,DISP=SHR

この書き方なら、初心者でも簡単にCOBOLプログラムからデータを読み書きできます。

4. 非カタログデータセットのJCLでの書き方

4. 非カタログデータセットのJCLでの書き方
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. カタログ・非カタログの使い分け

5. カタログ・非カタログの使い分け
5. カタログ・非カタログの使い分け

通常は、頻繁に使うデータや共通データはカタログデータセットにします。安全性や管理性が高く、COBOLプログラムからも扱いやすいです。

一方で、一時的なデータや一度きりの処理用は非カタログデータセットで作成します。処理後に自動削除する設定も可能です。

6. データセットの参照と管理のポイント

6. データセットの参照と管理のポイント
6. データセットの参照と管理のポイント

JCLでデータセットを扱う際は、名前の管理DISPの指定が重要です。DISPはデータセットの状態を示し、NEWは作成、SHRは共有、OLDは排他使用を意味します。


//MYDD    DD DSN=MY.CATALOG.DATA,DISP=OLD

COBOL初心者でも、DISPの意味を覚えることで、安全にデータを読み書きできます。

7. カタログ登録と削除

7. カタログ登録と削除
7. カタログ登録と削除

非カタログデータセットは、処理後にカタログに登録することもできます。JCLではDISP=(NEW,CATLG,DELETE)のように指定します。


//MYDD    DD DSN=TEMP.DATA,
//             DISP=(NEW,CATLG,DELETE)

処理後、必要な場合はカタログに登録し、不要なら自動で削除されます。管理が簡単になるため、COBOLとJCL連携時には便利なテクニックです。

8. 初心者向けのおすすめ実践方法

8. 初心者向けのおすすめ実践方法
8. 初心者向けのおすすめ実践方法

最初はカタログデータセットを使い、JCLで共通的に管理することを意識しましょう。非カタログはテスト用や一時データ用に限定すると管理が楽です。

COBOL JCL カタログ 非カタログ 初心者 でも、まずは名前で管理されるカタログを理解し、DISPやUNITの意味を少しずつ覚えるのがおすすめです。

本文テキスト文字数:約2840文字(全角の平仮名・カタカナ・漢字のみ、コード・HTML除外)

まとめ

まとめ
まとめ

今回はCOBOLとJCLにおけるカタログデータセットと非カタログデータセットの違いについて学習しました。COBOLとJCLの連携においてデータセット管理は非常に重要なテーマであり、業務システムの安定運用や保守性の向上に直結する基本知識です。 まずカタログデータセットとは、名前によって管理されるデータであり、JCLから簡単に呼び出すことができる仕組みです。これは図書館の検索システムのようなもので、名前さえ分かればどこに保存されているかを意識せずに利用できます。そのため、COBOLプログラムからのデータ参照や更新が非常に簡単になり、実務ではほとんどのデータがカタログとして管理されています。 一方で非カタログデータセットは、物理的な場所や装置を意識して扱う必要があるデータです。UNITやSPACEなどのパラメータを指定して作成するため、JCLの知識がより重要になります。初心者にとっては難しく感じますが、一時ファイルやテストデータなど、短期間だけ使うデータに適しています。 特に重要なのがDISPパラメータの理解です。NEWは新規作成、SHRは共有、OLDは排他利用を意味し、CATLGを指定することでカタログ登録が行われます。DELETEを指定すれば処理後に自動削除されるため、不要なデータを残さずに済みます。このDISPの組み合わせによって、データのライフサイクルを細かく制御できる点がJCLの大きな特徴です。 また実務では、カタログと非カタログを適切に使い分けることが求められます。長期保存や他プログラムと共有するデータはカタログに登録し、一時的な処理データは非カタログとして扱うことで、システム全体の管理が効率的になります。こうした設計の考え方を理解することが、COBOLエンジニアとしての成長につながります。 さらにCOPY句や帳票処理と同様に、JCLのデータセット管理も業務システムの基盤となる重要な技術です。単にプログラムを書くだけでなく、どのデータをどのように管理するかを考えることが、実務では非常に重要になります。 以下に、カタログ登録を含む実践的なサンプルを示します。


* COBOL側はデータセット名を意識して処理する
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE.
PROCEDURE DIVISION.
    DISPLAY "データセット処理を開始します".
    STOP RUN.

//STEP1   EXEC PGM=SAMPLE
//INPUT   DD DSN=MY.CATALOG.DATA,DISP=SHR
//OUTPUT  DD DSN=TEMP.DATA,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,
//            SPACE=(TRK,(5,2))

実行イメージは以下の通りです。


データセット処理を開始します

このようにCOBOLとJCLを組み合わせることで、データの読み込みや書き込み、作成や削除まで一連の流れを管理できます。初心者の方はまずカタログデータセットの扱いに慣れ、その後に非カタログやDISP制御を理解していくことで、段階的にスキルを伸ばしていくことができます。 COBOL JCL カタログ 非カタログ データセット管理をしっかり理解することで、実務で求められる基礎力が身につきますので、繰り返し学習しながら理解を深めていきましょう。

先生と生徒の振り返り会話

生徒

「カタログと非カタログの違いがやっと分かってきました」

先生

「とても重要なポイントです。名前で管理するか、物理で管理するかの違いですね」

生徒

「DISPの意味も理解できました。NEWやSHRの使い分けが大事ですね」

先生

「その通りです。DISPはデータの状態を決める重要な指定です」

生徒

「一時データは非カタログにするのが良いんですね」

先生

「はい。用途に応じて使い分けることが大切です」

生徒

「COBOLとJCLはセットで理解する必要があると感じました」

先生

「その理解ができれば実務でも十分通用しますよ」

カテゴリの一覧へ
新着記事
New1
Azure
Azure Application Insights活用ガイド!Webアプリの応答時間とエラーの可視化を徹底解説
New2
C#
C#の型変換まとめ!int.Parse・ToStringなどの変換方法を解説
New3
COBOL
COBOLのADD・SUBTRACT文の使い方を完全ガイド!初心者でもわかる足し算と引き算の基本
New4
COBOL
COBOLのクラウド移行における法的要件と規制完全ガイド!初心者でもわかるコンプライアンス対策
人気記事
No.1
Java&Spring記事人気No1
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.2
Java&Spring記事人気No2
C#
C#のトランザクション処理を完全ガイド!初心者でもわかるCommit・Rollbackの使い方
No.3
Java&Spring記事人気No3
Azure
Azure SQL Database購入モデル比較!vCoreとDTUの違いと選び方を初心者向けに解説
No.4
Java&Spring記事人気No4
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.5
Java&Spring記事人気No5
COBOL
COBOLのコンパイラと開発環境を徹底解説!初心者にもわかりやすい入門ガイド
No.6
Java&Spring記事人気No6
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.7
Java&Spring記事人気No7
COBOL
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.8
Java&Spring記事人気No8
Azure
Azureストレージの冗長性比較!LRS/GRS/ZRSの選び方とコストの最適解を完全解説