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

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を書いていきましょう。

まとめ

まとめ
まとめ

本記事ではCOBOLとJCL連携において非常に重要なDISPパラメータについて初心者向けに丁寧に解説してきました。DISPは単なるオプションではなくファイルの扱い方を決定する極めて重要な要素であり正しく理解していないと重大な障害やデータ消失につながる可能性があります。特にNEWOLDSHRの三つの基本を理解することはCOBOL開発において必須の知識です。 まずNEWは新規ファイル作成を意味し主に出力処理で使用されます。存在しないファイルを新しく作る場面で使用するため出力ジョブでは頻繁に登場します。一方でOLDは既存ファイルを専用で使用するための指定であり更新処理や削除処理で使われます。他のジョブからのアクセスを防ぐため安全性が高い反面ロックがかかるため使い方には注意が必要です。そしてSHRは共有アクセスを許可する指定であり参照専用のファイルに対して使われることが多いです。 これら三つの違いを正しく理解することでCOBOLとJCLの連携処理の精度が大きく向上します。特に業務システムでは複数のジョブが同時に動作するためファイルの扱いを誤るとデータ不整合や競合が発生します。そのためDISP指定は単なる記述ではなくシステム設計の一部として意識する必要があります。 また初心者の段階ではNEWは作成OLDは専用SHRは共有というシンプルなルールを確実に覚えることが重要です。この基本を理解するだけでも多くのトラブルを防ぐことができます。さらに実務では異常終了時や正常終了時のファイルの扱いを制御する詳細なDISP指定もありますがまずは基本の三種類を確実に理解することが第一歩です。 COBOL開発ではプログラムだけでなくJCLの理解も不可欠です。特にファイル操作はJCLと密接に関係しておりDISPの理解なしには安全な処理を実現することはできません。COBOLプログラムが正しくてもDISPが誤っていれば処理は失敗したり思わぬ結果を招いたりします。このような背景からもDISPはCOBOLエンジニアにとって非常に重要な知識であると言えます。 今後学習を進める中で実際の業務に近い処理を経験するとDISPの重要性をさらに実感できるようになります。例えばバッチ処理や日次処理月次処理などではファイルの生成更新参照が頻繁に行われます。そのたびに適切なDISP指定が求められるため繰り返し実践することで自然と理解が深まります。 最初は難しく感じるかもしれませんが一つ一つの意味を理解しながら手を動かしていくことで確実に身につきます。特にファイルが新規か既存か共有が必要かという視点で考える習慣をつけることが大切です。これによりDISP指定のミスを防ぎ安全なシステム開発が可能になります。 COBOLとJCLは今でも多くの企業で使われ続けている重要な技術です。その中でもDISPパラメータは基礎でありながら非常に奥が深い要素です。今回学んだ内容をもとにぜひ実際のコードを書きながら理解を深めていきましょう。

サンプルプログラムで復習


IDENTIFICATION DIVISION.
PROGRAM-ID. DISP-SAMPLE.

PROCEDURE DIVISION.
    DISPLAY "DISPの基本を確認します".
    DISPLAY "NEWは新規作成です".
    DISPLAY "OLDは専用利用です".
    DISPLAY "SHRは共有利用です".
    STOP RUN.

実行結果


DISPの基本を確認します
NEWは新規作成です
OLDは専用利用です
SHRは共有利用です
先生と生徒の振り返り会話

生徒

DISPの意味がようやく理解できました

先生

とても良いですね特にNEWOLDSHRの違いを理解できたのは大きな一歩です

生徒

間違えるとデータが消える可能性があるのが怖いですね

先生

その通りですだからこそ意味を理解して使うことが大切です

生徒

まずは三つの基本をしっかり覚えます

先生

それができれば実務でも大きなミスを防げます

生徒

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
Azure
Azureストレージの冗長性比較!LRS/GRS/ZRSの選び方とコストの最適解を完全解説
No.8
Java&Spring記事人気No8
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法