カテゴリ: COBOL 更新日: 2026/01/01

COBOLとJCL連携で必須!DISPパラメータ(NEW・OLD・SHR)の使い分けを初心者向けに完全解説

DISPパラメータ(NEW, OLD, SHRなど)の使い分け
DISPパラメータ(NEW, OLD, SHRなど)の使い分け

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

生徒

「JCLを書いていたら、DISP=NEWとかOLDとか出てきたんですが、正直よく分かりません…」

先生

「DISPはファイルの扱い方を決めるとても大切な指定です。意味を知らずに書くと事故につながります。」

生徒

「事故って、データが消えるとかですか?」

先生

「その通りです。今日は初心者でも安心して使えるように、DISPの考え方から丁寧に説明します。」

1. DISPパラメータとは何か

1. DISPパラメータとは何か
1. DISPパラメータとは何か

DISPパラメータとは、JCLでファイルを使うときに「このファイルをどう扱うか」を指定するためのものです。 COBOLプログラムは単体では動かず、JCLから呼び出されて実行されます。 そのとき、ファイルの新規作成なのか、既存ファイルを使うのかを決めるのがDISPです。

初心者の方は難しく感じるかもしれませんが、DISPは「ファイルの取扱説明書」だと思うと理解しやすくなります。

2. NEW・OLD・SHRの基本的な意味

2. NEW・OLD・SHRの基本的な意味
2. NEW・OLD・SHRの基本的な意味

DISPにはいくつか種類がありますが、まず覚えるべきはNEWOLDSHRです。 NEWは「新しく作る」、OLDは「すでにあるものを専用で使う」、SHRは「すでにあるものを共有で使う」という意味です。

例えるなら、NEWは新品のノートを買うこと、OLDは自分専用のノートを使うこと、 SHRはみんなで回覧するノートを使うことに近いです。

3. DISP=NEWの使いどころ

3. DISP=NEWの使いどころ
3. DISP=NEWの使いどころ

DISP=NEWは、新しいファイルを作成するときに使います。 主にCOBOLプログラムの出力ファイルで指定されることが多いです。 まだ存在しないファイルを作るときに使う、と覚えておきましょう。


//OUTDD   DD DISP=NEW

もし同じ名前のファイルがすでに存在すると、エラーになることがあります。 そのため、本番環境では特に注意して使う必要があります。

4. DISP=OLDの使いどころ

4. DISP=OLDの使いどころ
4. DISP=OLDの使いどころ

DISP=OLDは、すでに存在するファイルを「自分だけで使う」場合に指定します。 他のジョブやプログラムから同時に使われないようにロックがかかります。

これは、他人に触られたくない大事な書類を机の引き出しにしまって鍵をかけるイメージです。


//INDD    DD DISP=OLD

更新処理や削除処理を行うファイルでは、基本的にOLDを使うことが多いです。

5. DISP=SHRの使いどころ

5. DISP=SHRの使いどころ
5. DISP=SHRの使いどころ

DISP=SHRは、既存のファイルを「みんなで共有して使う」指定です。 主に参照専用、つまり読み取りだけを行うファイルで使われます。

図書館の本を読むような感覚で、誰かが読んでいても自分も読める、というイメージです。


//REFDD   DD DISP=SHR

誤って更新処理でSHRを使うと、データ不整合の原因になるため注意が必要です。

6. DISPの指定を間違えるとどうなるか

6. DISPの指定を間違えるとどうなるか
6. DISPの指定を間違えるとどうなるか

DISPの指定を間違えると、最悪の場合データが消えたり、他のジョブに影響を与えたりします。 特にNEWとOLDの使い間違いは、初心者が最もやりがちなミスです。

「このファイルは新規か、既存か」「他の人と共有してよいか」を必ず考えてから指定しましょう。

7. COBOLとJCL連携でDISPを理解する重要性

7. COBOLとJCL連携でDISPを理解する重要性
7. COBOLとJCL連携でDISPを理解する重要性

COBOLのファイル処理は、JCLのDISP指定とセットで成り立っています。 プログラムが正しくても、DISPが間違っていると正常に動きません。

初心者のうちは「おまじない」のように見えますが、意味を理解すると怖さが減ります。 DISPはCOBOLとJCLをつなぐ大切な橋渡しだと覚えてください。

8. 初心者がまず意識すべきポイント

8. 初心者がまず意識すべきポイント
8. 初心者がまず意識すべきポイント

最初は「NEWは作る、OLDは専用、SHRは共有」という三点を確実に覚えることが大切です。 それだけでも、COBOLとJCL連携での事故は大きく減ります。

焦らず、一つひとつ意味を確認しながらDISPを書いていきましょう。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方