カテゴリ: 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#の文字列型(string)を完全解説!連結・分割・検索の方法を紹介
New3
C#
C#非同期処理の進捗状況を表示!IProgressの使い方を初心者向けに解説
New4
C#
C#の文字列フォーマット方法!String.Format・補間文字列の使い方
人気記事
No.1
Java&Spring記事人気No1
C#
C#でJSONファイルを読み書きする方法(JsonSerializer・Newtonsoft.Json)
No.2
Java&Spring記事人気No2
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.3
Java&Spring記事人気No3
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.4
Java&Spring記事人気No4
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.5
Java&Spring記事人気No5
C#
C#の非同期処理とUIスレッドをマスター!WPF/WinFormsでアプリが止まる問題を解決
No.6
Java&Spring記事人気No6
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.7
Java&Spring記事人気No7
C#
C#でファイルのエンコーディングを指定する方法(UTF-8・Shift-JISなど)
No.8
Java&Spring記事人気No8
COBOL
COBOLのMOVE文を完全ガイド!初心者でもわかるデータ移送の基本