COBOLとJCL連携で必須!DISPパラメータ(NEW・OLD・SHR)の使い分けを初心者向けに完全解説
生徒
「JCLを書いていたら、DISP=NEWとかOLDとか出てきたんですが、正直よく分かりません…」
先生
「DISPはファイルの扱い方を決めるとても大切な指定です。意味を知らずに書くと事故につながります。」
生徒
「事故って、データが消えるとかですか?」
先生
「その通りです。今日は初心者でも安心して使えるように、DISPの考え方から丁寧に説明します。」
1. DISPパラメータとは何か
DISPパラメータとは、JCLでファイルを使うときに「このファイルをどう扱うか」を指定するためのものです。 COBOLプログラムは単体では動かず、JCLから呼び出されて実行されます。 そのとき、ファイルの新規作成なのか、既存ファイルを使うのかを決めるのがDISPです。
初心者の方は難しく感じるかもしれませんが、DISPは「ファイルの取扱説明書」だと思うと理解しやすくなります。
2. NEW・OLD・SHRの基本的な意味
DISPにはいくつか種類がありますが、まず覚えるべきはNEW、OLD、SHRです。 NEWは「新しく作る」、OLDは「すでにあるものを専用で使う」、SHRは「すでにあるものを共有で使う」という意味です。
例えるなら、NEWは新品のノートを買うこと、OLDは自分専用のノートを使うこと、 SHRはみんなで回覧するノートを使うことに近いです。
3. DISP=NEWの使いどころ
DISP=NEWは、新しいファイルを作成するときに使います。 主にCOBOLプログラムの出力ファイルで指定されることが多いです。 まだ存在しないファイルを作るときに使う、と覚えておきましょう。
//OUTDD DD DISP=NEW
もし同じ名前のファイルがすでに存在すると、エラーになることがあります。 そのため、本番環境では特に注意して使う必要があります。
4. DISP=OLDの使いどころ
DISP=OLDは、すでに存在するファイルを「自分だけで使う」場合に指定します。 他のジョブやプログラムから同時に使われないようにロックがかかります。
これは、他人に触られたくない大事な書類を机の引き出しにしまって鍵をかけるイメージです。
//INDD DD DISP=OLD
更新処理や削除処理を行うファイルでは、基本的にOLDを使うことが多いです。
5. DISP=SHRの使いどころ
DISP=SHRは、既存のファイルを「みんなで共有して使う」指定です。 主に参照専用、つまり読み取りだけを行うファイルで使われます。
図書館の本を読むような感覚で、誰かが読んでいても自分も読める、というイメージです。
//REFDD DD DISP=SHR
誤って更新処理でSHRを使うと、データ不整合の原因になるため注意が必要です。
6. DISPの指定を間違えるとどうなるか
DISPの指定を間違えると、最悪の場合データが消えたり、他のジョブに影響を与えたりします。 特にNEWとOLDの使い間違いは、初心者が最もやりがちなミスです。
「このファイルは新規か、既存か」「他の人と共有してよいか」を必ず考えてから指定しましょう。
7. COBOLとJCL連携でDISPを理解する重要性
COBOLのファイル処理は、JCLのDISP指定とセットで成り立っています。 プログラムが正しくても、DISPが間違っていると正常に動きません。
初心者のうちは「おまじない」のように見えますが、意味を理解すると怖さが減ります。 DISPはCOBOLとJCLをつなぐ大切な橋渡しだと覚えてください。
8. 初心者がまず意識すべきポイント
最初は「NEWは作る、OLDは専用、SHRは共有」という三点を確実に覚えることが大切です。 それだけでも、COBOLとJCL連携での事故は大きく減ります。
焦らず、一つひとつ意味を確認しながらDISPを書いていきましょう。