カテゴリ: COBOL 更新日: 2025/12/27

COBOLとJCLの連携を理解しよう!初心者でもわかるJOBカードの書き方と主要パラメータ

JOBカードの書き方と主要パラメータ
JOBカードの書き方と主要パラメータ

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

生徒

「COBOLのプログラムを実行するときに、JCLというものを書くと聞きました。でもJOBカードって何ですか?」

先生

「JCLはメインフレームでCOBOLを動かすときに必要になる設定のようなものです。最初に書くJOBカードは、いわば“作業依頼書”の表紙みたいなものだよ。」

生徒

「表紙ですか?何を書けばよいんでしょうか?」

先生

「では、初心者でもすぐ理解できるように、ひとつずつ丁寧に説明していくね。」

1. JOBカードとは?初心者でも理解できる基本のイメージ

1. JOBカードとは?初心者でも理解できる基本のイメージ
1. JOBカードとは?初心者でも理解できる基本のイメージ

メインフレーム環境でCOBOLプログラムを実行するときには、まず最初にJCL(Job Control Language)という指示書を書く必要があります。その中の先頭に置かれるのがJOBカードです。JOBカードは、管理者に対して「誰が、どんな作業を、どのくらいの資源を使って実行するか」を伝える役割があります。

たとえば、学校で提出するレポートの表紙には、名前や学年、提出先を書きますよね。それと同じで、JOBカードにも実行者のID、ジョブ名、通知方法などの情報を書きます。これがなければ、コンピュータはジョブを受け付けてくれません。

初心者でも扱いやすいように、まずは基本構造を見てみましょう。


//SAMPLE  JOB  (ACCT),'TEST USER',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID

一見すると記号がたくさんで難しく見えますが、ひとつひとつの意味を理解すれば怖くありません。ここからは、JOBカードを構成する主要なパラメータをわかりやすく説明していきます。

2. JOBカードの主要パラメータをやさしく解説

2. JOBカードの主要パラメータをやさしく解説
2. JOBカードの主要パラメータをやさしく解説

ここでは多くのJCLで使われている基本パラメータを順番に説明します。COBOLの実行でも頻繁に使うため、しっかり理解しておくと後の学習がとても楽になります。

● JOB名(ジョブ名)

JOBカードの最初に記述するのがジョブ名

● ACCT(アカウント番号)

ACCTは、ユーザがどの部門やプロジェクトに属しているかを示す内部管理番号のようなものです。会社の経費管理番号のように考えると理解しやすいでしょう。

● CLASS(クラス)

CLASSは、ジョブをどの種類のキューで実行するかを指定するものです。キューとは作業の順番待ちの列のようなもので、時間のかかるジョブ、すぐ終わるジョブなどを分類します。電車の急行・各駅停車のように、用途に合わせて分類されています。

● MSGCLASS(メッセージ出力クラス)

MSGCLASSは、ジョブの実行ログをどこに出力するかを指定します。実行結果をプリントするのか、スプールに保存するのかなどを決めます。学校のテストの答案を印刷するのか、画面で確認するのかを選ぶイメージです。

● MSGLEVEL(メッセージレベル)

MSGLEVELはメッセージをどの程度出力するかを指定します。「詳細をすべて出す」「最低限だけ出す」など、ログの量を調整できます。多すぎると読めなくなるため、必要に応じて使い分けます。

● NOTIFY(通知先)

NOTIFYはジョブが終わったときに通知するユーザIDを指定します。「実行が終わりましたよ」と知らせてくれる機能です。自分自身のIDを書いたり、環境によっては自動で設定されることもあります。

3. JOBカードの実例を見て理解を深めよう

3. JOBカードの実例を見て理解を深めよう
3. JOBカードの実例を見て理解を深めよう

ここまで説明したパラメータを使って、COBOLプログラムを実行するためのJOBカードを例として紹介します。実際のJCLの中でどう使われるのかをイメージしやすくなります。


//PAYJOB  JOB (ACCT),'PAYROLL',CLASS=A,
//             MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//STEP01  EXEC PGM=PAYCOBOL
//INPUT   DD  DSN=USER.DATA.INPUT,DISP=SHR
//OUTPUT  DD  SYSOUT=*
//SYSOUT  DD  SYSOUT=*
//SYSUDUMP DD SYSOUT=*

この例では、給与計算プログラムを実行するためのジョブを定義しています。JOBカードはジョブ全体の設定をし、その下に続くEXECやDDステートメントが、実際のプログラムやファイルの指定を行います。

初心者が最初につまずきやすいのは「記号が多い」「細かいルールがある」という点ですが、ひとつひとつの意味を理解すれば自然に読めるようになります。

4. JOBカードを書くときの注意点とよくあるつまずき

4. JOBカードを書くときの注意点とよくあるつまずき
4. JOBカードを書くときの注意点とよくあるつまずき

メインフレームのJCLは、書き方の決まりがとても厳しい世界です。書く位置や桁数が決められているため、少しでもズレるとエラーになります。

特に初心者が気をつけたいのは次の3点です。

● 半角と全角を混ぜない

JOBカードでは記号も含めてすべて半角で入力します。全角に見えない部分でも、意外と混じっていることがあります。コピー&ペーストするとズレることもあるため注意しましょう。

● カンマの位置に注意

CLASS=A のように、パラメータはカンマで区切ります。抜けていたり、多すぎたりするとジョブが正しく受け付けられません。特に複数行に分けて書くときに間違えやすいポイントです。

● コメントの書き方に注意

JCLでは「//*」で始まる行がコメントになります。他の言語と書き方が違うため、慣れるまでは混乱しやすいので覚えておきましょう。

こうした基本を押さえておくと、COBOLプログラムの自動実行やバッチ処理を安心して扱えるようになります。メインフレームの世界は最初は難しく見えますが、ルールを覚えるととても安定して運用できる仕組みが整っています。

カテゴリの一覧へ
新着記事
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演算子の違いと使い方