Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報
トップ  >  A-VXのジョブ制御言語(JCL)

A−VXのジョブ制御言語(JCL)

2 ジョブ制御言語のコマンド

覚えるべきA−VXのジョブ制御言語(JCL)のコマンドは、たったの9種類(8つのコマンド文とコメント行)しかありません。

基本JCL文名前機能
/RUNRUN文LM名、JS名、PM名を指定することにより目的のジョブを起動します。
/>ステップ終了文ジョブステップの終わりやデータの終了を示すために使用します。
/:流れ制御文ジョブ制御変数やセンススイッチの状態など、条件によって処理を分岐させるために使用します。
//ディスプレイ文画面にメッセージ(コメント)を表示するために使用します。
/*コメント文プリンタにメッセージ(コメント)を出力するために使用します。
/PAUSE一時停止文画面にメッセージ(コメント)を表示して一時停止します。
/SET制御変数設定文ジョブ制御変数、ジョブの属性およびセンススイッチの状態を変更します。
/ASSIGNアサイン文MSDファイル名およびMSDファイルの割り当てを変更します。
*コメント先頭1文字が”*”で始まる行はコメント行とし、処理を行いません。

コマンドは以下のような形式になっています。

 [ラベル]/コマンド [パラメータリスト];

・スラッシュ記号(/)及びセミコロン(;)は必ず記述します。
・コマンドの後には1つのブランクを記述します。
・ラベルは6文字以内の英数字。
・1行に記述できるJCL文は75桁です。
・日本語では記述できません。(パラメータリストの中は「コメント」は日本語可能)

2.1 RUN文(/RUN)

ロードモジュール(LM)名、ジョブストリーム(JS)名、パラメータメンバ(PM)名を指定することにより、目的のLM、JS、PMを実行する働きがあります。ジョブステップの開始を示す文でもあります。

書式
[ラベル]/RUN name [,MOD={LAN/ITOS}] [,(P0,P1,P2,P3,P4,P5,P6,P7,P8,P9)] [,RESTART]
                  [,PRI=nn] [,SIZ=nn] [,SIU=CRD[nnn]] [,FIL=ファイル名] [,DEV=装置名]
                  [,TYP={LM/JS/PM}] [,ATTACH={MANUAL/AUTO}]
                  [,{SSWn={ON/OFF}/ALL[SSW]=a1a2a3a4a5a6a7a8}]
                  [,SKIP] [,EXC=nnnn] [,DEBUG];


パラメータは必要なもののみ書けばいいです。
例えば、MSD001のUSERLMLにあるPRG01という名前のLMを実行する時は

/RUN PRG01,DEV=MSD001,FIL=USERLML;

となります。
他のパラメータを使用したい場合はこちらを参照。または「システム管理説明書」などを見てください。

/RUNの次にはnameを書かなければなりませんが、それ以降のパラメータの順番は決まっていません。以下のように、DEVとFILの順番を逆に書くこともできます。

/RUN PRG01,FIL=USERLML,DEV=MSD001;

RUN文を書いた場合、セットで必ずステップ終了文も書きます。(/>)

2.2 ステップ終了文(/>)

ジョブステップの終わりを示す働きがあります。
この文にはラベルを付けることができません。

書式
/> ;



下図のようにステップ終了文はジョブステップの終了を示します。

ステップ終了文を使用した例です。
RUN文とステップ終了文の組み合わせて、3つのジョブステップで構成されているジョブです。
/RUN PRG01;
100_20_ 
/> ;
/RUN #LBM;
MDE=END_
/> ;
/RUN #MENUM;
ACT=END_
/> ;
/RUN #LBM;
MDE=END_
/> ;

RUN文とステップ終了文は必ずセットになります。またジョブ制御のジョブステップのしるしにも使います。したがって1つのジョブストリームでRUN文とステップ終了文は同じ数以上あることになります。

RUN文と対応しないステップ終了文の例
一時停止文とステップ終了文の組み合わせて1ジョブステップ、RUN文とステップ終了文の組み合わせで2ジョブステップの合計3ジョブステップで構成されているジョブです。
一時停止文(/PAUSE)でプログラム放棄コマンドを行った際に、PRG1のジョブを実行せずにジョブを終了させます。
// ジョブを実行しますか。 ;
// 実行しない場合は業務放棄かプログラム放棄を ;
// 行ってください。 ;
/PAUSE ;
/> ;
/: ABORT JUMP=ENDJOB;
/RUN PRG1;
/> ;
/RUN PRG2;
/> ;

上のジョブとよく似ていますが、少し違うパターンです。ステップ終了文の書き方が違うとジョブステップの構成が変わることに注目してください。
下のように一時停止文(/PAUSE)の下にステップ終了文がない場合、一時停止文からPRG1のRUN文の次のステップ終了文までが1ジョブステップ、PRG2のRUN文とステップ終了文で1ジョブステップの合計2ジョブステップのジョブとなります。
プログラム放棄コマンドを実行するとPRG2から実行されます。
// ジョブを実行しますか。 ;
// 実行しない場合は業務放棄を行ってください。 ;
// プログラム放棄を行うとPRG2から実行します。 ;
/PAUSE ;
/: ABORT JUMP=ENDJOB;
/RUN PRG1;
/> ;
/RUN PRG2;
/> ;

もしかしたら何か条件があるのかもしれませんが、ステップ終了文のみ、特別に最後の「;」を省略できることがあるようです。

/>


2.3 流れ制御文(/:)

ジョブ制御変数やセンススイッチの状態、システム日付、直前のジョブステップの正常終了/異常終了の状態によって、指定された文までスキップする働きがあります。

書式
形式1:ジョブ制御変数による流れ制御
[ラベル]/: JRCODE [GE/LT/EQ] ccc [JUMP=ENDJOB/JUMP=ラベル/BJUMP=ラベル];

形式2:ジョブステップ実行結果による流れ制御
[ラベル]/: ABORT/NORMAL [JUMP=ENDJOB/JUMP=ラベル/BJUMP=ラベル];

形式3:センススイッチによる流れ制御
[ラベル]/: SSWn=ON/SSWn=OFF/ALL [SSW]=a1a2a3a4a5a6a7a8 [JUMP=ENDJOB/JUMP=ラベル/BJUMP=ラベル];

形式4:ジョブ実行日付による流れ制御
[ラベル]/: YY/MM/DD [GE/LT/EQ] cc [JUMP=ENDJOB/JUMP=ラベル/BJUMP=ラベル];


各パラメータの説明
JRCODEジョブ制御変数(JRCODE)をテストすることを示します。
cccジョブ制御変数(JRCODE)と比較する値です。0から255の値の範囲で指定します。
YY
MM
DD
システム日付をテストすることを示します。
ここではYYは年、MMは月、DDは日を示します。和暦か西暦かはシステム生成時に選択します。
ccシステム日付と比較する値です。
GEジョブ制御変数またはシステム日付が、比較値より大きいか等しいときはジャンプします。<規定値>
LTジョブ制御変数またはシステム日付が、比較値より小さいときにジャンプします。
EQジョブ制御変数またはシステム日付が、比較値に等しいときにジャンプします。
ABORT直前のステップが異常終了しているときジャンプします。
NORMAL直前のステップが正常終了しているときジャンプします
SSWnセンススイッチnがONまたはOFFのときジャンプします。
ALLセンススイッチ全体がa1a2a3a4a5a6a7a8で示される状態のときジャンプします。
[SSW]anの値は次の通りです。
an=1:センススイッチnはONです。
an=0:センススイッチnはOFFです。
an=X:センススイッチnは比較対象としません。
JUMP条件が満足した時の前方向のジャンプ先を指定します。
BJUMP条件が満足した時の後方向のジャンプ先を指定します。
ENDJOBジョブストリーム(JS)の終了として処理を行うことを示します。<規定値>


[ ]の中は省略できます。省略した場合は、JUMP=ENDJOBと書いた場合と同じになります。

例えば、
/: ABORT ;
は、
/: ABORT JUMP=ENDJOB;
と同じです。

形式1の例。
PRG01、PRG02は正常終了した場合は、JRCODEに0の値を入れて終了するような仕組みになっている。PRG01終了後にJRCODEの値をチェックしてメッセージを表示する。
/RUN PRG01,FIL=TESTLML,DEV=MSD000;
/> ; 
/: JRCODE GE 1 JUMP=ERMSG;
/RUN PRG02,FIL=TESTLML,DEV=MSD000;
/> ; 
/: JRCODE EQ 0 JUMP=ENDJOB;
ERMSG/PAUSE ERROR;


形式1の例その2&形式2の例。
PRG01がアボートで終了したらPRG02を実行してジョブ終了。PRG01が正常終了ならばPRG03を実行します。
6行目について補足すると、JRCODEが0以上かチェックし、0以上ならジョブ終了しています。JRCODEは0から255の範囲の値を取ることができるので、この文は無条件ジャンプとなり、必ずジョブ終了となります。
/RUN PRG01,FIL=TESTLML,DEV=MSD000;
/> ; 
/: NORMAL JUMP=LLL;
/RUN PRG02;
/> ;
/: JRCODE GE 0 JUMP=ENDJOB;
LLL/RUN PRG03;
/> ;


形式2の例のその2。
PRG01というプログラムが正常終了した場合は、ラベルLLLにジャンプします。ジャンプする位置より後にジャンプするのでBJUMPを使用しています。私としては、昔痛い思いをしたので、BJUMPはあまり使用したくないです。
LLL/RUN PRG01,FIL=TESTLML,DEV=MSD000;
_1_1000_ 
/> ; 
/: NORMAL BJUMP=LLL;


形式2の例のその3。
PRG01やPRG02がアボート終了した場合、次のジョブステップは実行せずジョブを終了させます。
/SET SKIP;
/RUN PRG01,FIL=USERJSL2;
/> ;
/: ABORT JUMP=ENDJOB;  
/RUN PRG02,FIL=USERJSL2;
/> ;
/: ABORT JUMP=ENDJOB; 
/RUN PRG03,FIL=USERJSL2;
/> ;


形式3の例その1。
PRG01実行後、センススイッチの1番がOFFだったらPRG02を実行せずにPRG03だけ実行します。ONならPRG02を実行した後にPRG03を実行します。
/SET SKIP;
/RUN PRG01,FIL=USERJSL2;
/> ;
/: SSW1=OFF JUMP=AAA;  
/RUN PRG02,FIL=USERJSL2;
/> ;
AAA/RUN PRG03;
/> ;


形式3の例その2。
PRG01実行後、センススイッチの1番がON、2番がON、3番がOFF、4番がOFFの時、PRG02は実行せずにPRG03だけ実行します。センススイッチの5番以降はON、OFFのどちらでもJSの動きには影響しません。
/SET SKIP;
/RUN PRG01,FIL=USERJSL2;
/> ;
/: ALL=1100XXXX JUMP=AAA;  
/RUN PRG02,FIL=USERJSL2;
/> ;
AAA/RUN PRG03;
/> ;

流れ制御文でBJUMP機能を使用する場合に、次のJCL文のみでジョブを記述すると、システムでデッドロックになります。

  • 流れ制御文(/:)
  • ディスプレイ文(//)
  • コメント文(/*)
  • 一時停止文(/PAUSE)
  • 制御変数設定文(/SET)

システムが無限ループに陥り落ちるので厳禁な記述の例
流れ制御文とディスプレイ文と一時停止文のみで構成されており、上の注意事項の組み合わせに該当。
これを実行するとシステムを落とさないといけなくなるので、絶対に実行してはだめです。
L1// 無限ループでシステム落ちますの例 ;
/PAUSE 絶対にこのように書いたらだめです ;
/: NORMAL BJUMP=L1;

2.4 ディスプレイ文(//)

ディスプレイ情報をステーション上(ディスプレイ画面上)に表示します。

画面が見えている状態(表画面)か、見えていない状態(裏画面)かで動きが変わります。
表画面の場合は画面に表示した後、停止したりはせず、すぐに次の行のジョブ制御文を実行します。一方裏画面の場合は、(文字が表示できないので)ディスプレイ文の文字が表示されるまで待ちます。そして表画面になると画面に文字が表示されて、次の行のジョブ制御文を実行します。なので、ずっと表画面で動くことが前提のバッチの場合はよいのですが、裏画面で動く可能性があるバッチの場合は使用に気をつける必要があります。

すぐに次の行のジョブ制御文を実行するので、例えば次のジョブ制御文でアプリケーションを起動する(アプリケーション内で画面をクリアしたり上書きしたりする)と消えてしまうこともあります。

1行目から24行の範囲で表示し、24行を超えるとスクロールアップして表示します。ディスプレイ情報の最大長は英数字で80文字です。(日本語だと半分の40文字。)

書式
[ラベル]// [ディスプレイ情報];

ディスプレイ文の例
// *************;
// *プログラムを実行します*;
// *************;
// 中止する場合は業務放棄を行ってください。;
/PAUSE プログラムを実行する場合は再開キーを押してください。;
/RUN PRG01,FIL=USERLML,DEV=MSD002;
/> ;


上記のJSの実行結果(5行目のPAUSE文で一時停止中)

ディスプレイ文を使用すると、次のジョブステップのための最初のディスプレイ文の検出時、前のジョブステップの画面がクリアされ1行目からディスプレイ文の内容が表示されます。したがって前のジョブステップの画面を後ろのジョブステップに引き継ぐことはできません。
ディスプレイ文、一時停止文を使用した後、次に起動されるプログラムのLM属性が前に起動されたプログラムのLM属性と異なる場合(ANK→日本語、日本語→ANK)は画面クリア処理を行うため、ディスプレイ情報は消去されます。

2.5 コメント文(/*)

コメント情報をステーション対応プリンタに出力します。ディスプレイ文が画面に表示するのに対して、コメント文はプリンタに出力するという違いがあるだけで、規則はディスプレイ文と同じ。ただし表画面、裏画面のいずれであっても(プリンタの異常がなければ)待ち合わせは発生しません。

ここで注意することは、どのプリンタに出力するか指定することができないということです。
JSを実行する度にプリンタに出力するとは思えないので、業務ではあまり使用しないかもしれません。JSのデバッグ中に、JS中のあちこちにコメント文を書き込んで、どこを通ったかのチェックをするために使用できるかもしれません。(デバッグとはいえ紙が無駄なので、やはり次の一時停止文を使用した方が良いのですが。)

コメント文でワークステーション対応プリンタがノットレディの場合はエラーメッセージが表示されます。その場合は、リセットキーを押すとプリンタの印字をスキップして、次のステップの処理を行います。

コメント文とは別にコメント行というものがあるので、間違えないようにしてください。

書式
[ラベル]/* [コメント情報];

コメント文の例
/* PRG01を起動します;
/RUN PRG01,FIL=USERJSL2;
/> ;

2.6 一時停止文(/PAUSE)

ディスプレイ情報をステーション上(ディスプレイ画面上)に表示した後、一時停止状態になります。ジョブを先に進めるには、再開コマンドを実行します。再開コマンドを実行しない限り、永久に停止したままです。

一時停止文でジョブが停止している状態で、受け付けられるのは以下のコマンドとなります。
  • 画面接続コマンド
  • 再開コマンド
  • プログラム放棄コマンド
  • 業務放棄コマンド
  • 拡張システムコマンド
  • 日付/時刻の表示/変更コマンド
  • メッセージ送信コマンド
  • メッセージ受信コマンド

書式
[ラベル]/PAUSE [ディスプレイ情報] ;

PAUSE文の例
/RUN PRG01,FIL=USERJSL2;
/> ;
/PAUSE PRG01の実行を終了しました;



上記のJS実行結果

一時停止文のステップでプログラム放棄コマンドが実行されると、次のステップ終了文まで読み飛ばされます。
下のように記述した場合、プログラム放棄コマンドを実行するとPRG01の直後のステップ終了文(/>)まで読み飛ばされるので、PRG2から実行されます。

// ジョブを実行しますか。 ;
// 実行しない場合は業務放棄を行ってください。 ;
// プログラム放棄を行うとPRG2から実行します。 ;
/PAUSE ;
/: ABORT JUMP=ENDJOB;
/RUN PRG1;
/> ;
/RUN PRG2;
/> ;
以下の例でのように一時停止文(/PAUSE)の下にステップ終了文(/>)があると、一時停止文でプログラム放棄コマンドを行うとPRG1のジョブを実行せずにジョブを終了させます。
// ジョブを実行しますか。 ;
// 実行しない場合は業務放棄かプログラム放棄を ;
// 行ってください。 ;
/PAUSE ;
/> ;
/: ABORT JUMP=ENDJOB;
/RUN PRG1;
/> ;
/RUN PRG2;
/> ;

2.7 制御変数設定文(/SET)

ジョブ制御変数に値を設定やセンススイッチの状態変更、RUNコマンドにより起動されたジョブの画面接続属性または置換パラメータを指定できます。また、SKIP設定後に実行されるジョブステップが異常終了すると、それ以降のジョブステップはJSの最後まで読み飛ばされます。

書式
形式1:ジョブ制御変数の変更
[ラベル]/SET JRCODE=ccc;


形式2:センススイッチの変更
[ラベル]/SET {SSWn={ON/OFF}/ALL[SSW]=a1a2a3a4a5a6a7a8};


形式3:異常終了時のJS終了指定
[ラベル]/SET SKIP;


形式4:?
[ラベル]/SET ATTACH={AUTO/MANUAL};


形式5:置換パラメータの設定
[ラベル]/SET &n=xx....x;


JRCODEジョブ制御変数(JRCODE)に値をセットすることを示します。
cccジョブ制御変数(JRCODE)にセットする値を指定します。指定できる値は0から255の範囲です。
SSWnセンススイッチnの状態をONあるいはOFFにします。
[SSW]anの値は次の通りです。
an=1:センススイッチnをONにします。
an=0:センススイッチnをOFFにします。
an=X:センススイッチnを元の状態に保ちます。
SKIPSKIP設定後に実行されるジョブステップが異常終了すると、それ以降のジョブステップはJSの最後まで全て読み飛ばされます。
ATTACHRUNコマンドにより起動されたジョブの画面接続属性を指定します。
MANUAL・・・1度画面から切り離されると、画面に接続されて実行中のジョブが終了しても、自動的に画面に接続されません。画面に接続するには、操作者が画面接続コマンドを入力する必要があります。
AUTO・・・当ジョブが画面から切り離されて実行中に、画面に接続されて実行中のジョブが自動的に画面に接続されます。
&nn番目の置換パラメータに値をセットすることを示します。nの範囲は0から9です。
xx.....x置換パラメータにセットする値を最大17桁で指定します。



形式1の例。
4行目に制御変数設定文を記述しています。ここではJRCODEに100を入れています。ちなみにJS開始時点でJRCODEは0に初期化されます。
/RUN PRG01,FIL=USERLML2;
/> ;
/: JRCODE EQ 0 JUMP=AAA;
/SET JRCODE=100;
/RUN PRG02,FIL=USERLML2;
/> ;
/: JRCODE EQ 255 JUMP=AAA;
/RUN PRG03,FIL=USERLML2;
/> ;
AAA/RUN PRG04,FIL=USERLML;
/> ;


形式2の例。
1行目はセンススイッチ1番をONにしています。4行目はセンススイッチ4番をOFFにしています。7行目の/SETはセンススイッチ1番をOFF、2番をON、3番をOFF、4番をON、7番をOFF、8番をONにしています。5番と6番は状態を変更しません。
/SET SSW1=ON;
/RUN PRG01,FIL=USERLML2;
/> ;
/SET SSW2=OFF;
/RUN PRG02,FIL=USERLML2;
/> ;
/SET ALL=0101xx01;
/RUN PRG03,FIL=USERLML2;
/> ;


形式3の例。
1行目に制御変数設定文を記述しています。PRG01、PRG02、PRG03で異常終了した場合に、以降の処理は行わずにJSは終了します。例えばPRG01が異常終了した場合、PRG02とPRG03は実行されません。ジョブステップ毎に「/: ABORT JUMP=ENDJOB;」を付けるのと同じ動きをします。
/SET SKIP;
/RUN PRG01,FIL=USERJSL2;
/> ;
/RUN PRG02,FIL=USERJSL2;
/> ;
/RUN PRG03,FIL=USERJSL2;
/> ;


2.8 アサイン文(/ASSIGN)

プログラム上で指定したファイル名や装置アドレスを変更したい場合に使用します。

書式
形式1:特定のファイルだけ変更
[ラベル]/ASSIGN OEFN=ff...f[,OEDEV=MSD[nnn]][,DEV=MSD[nnn]][,VOL=vvvv],EFN=ff...f;


形式2:形式1で変更した状態を解除
[ラベル]/ASSIGN OEFN=ff...f[,ODEV=MSD[nnn]],RESOURCE=RELEASE;


形式3:特定の(磁気ディスク)装置だけ変更
[ラベル]/ASSIGN ODEV=MSD[nnn],DEV=MSD[nnn][,VOL=vvvvv];


形式4:形式3で変更した状態を解除
[ラベル]/ASSIGN ODEV=MSD[nnn],RESOURCE=RELEASE;


メインフレーム系のOSではアサイン文は必ず書かなければならないようですが、A−VXのアサイン文は必須ではありません。必要無ければ書く必要はありません。どうも「外部ファイル名−内部ファイル名」の関係が、あまり明確ではないようで、アサイン文が無くても用は足ります。アサイン文を1つ1つ丁寧に書いている人はメインフレーム系OSを知っているSE、アサイン文を書かない人は、それ以外の人ということがよくわかりますね・・・。私は書かない人です。

どのような場合に使用するかというと、
例えばファイルにアクセスするCOBOLのプログラムがあり、COBOLのソース内に装置アドレスやファイル名が直に書き込まれているとします。そのCOBOLプログラムは、「MSD001」に有る「A」というファイル名のファイルにアクセスしています。
ところが、「A」ファイルがオーバフローしそうになってしまったので、1個磁気ディスクを増やして「MSD002」を作り、そこにもっと大きなサイズの「A」ファイルを作ることにしました。ところが、COBOLソース内にMSD001と直書きしているので、普通ならばソース内のその部分を全て「MSD001」から「MSD002」と書き直す必要があります。いくつのソースがあるのかわかりませんが、全てのソースを書き直して、再コンパイル・リンクしなければなりません。これは結構大変です。
そこでアサイン文が登場します。/RUNでCOBOLプログラムを起動する前に/ASSIGN文を書き加えてあげればいい訳です。

形式3と形式4の例。
PRG01の中でMSD001はMSD002と変換されて実行されます。
/ASSIGN ODEV=MSD001,DEV=MSD002;
/RUN PRG01;
/> ;
/ASSIGN ODEV=MSD001,RESOURCE=RELEASE;

アサイン文については「システム管理説明書」に詳細な説明が書いてあるので、ここはこのくらいの説明にしておきます。(システム管理説明書の後ろのほうにある付録のページにも注意事項が書いてあるので読む必要があります。)

2.9 コメント(*)

JSL中にコメントを書きます。行の先頭に「*」を記述するとこの行は実行されません。

書式
* [コメント]


例。
*************************
*  TEST JSL  NAME:JS01  *
*************************
* PRG01
/RUN PRG01;
/> ;
* PRG02
/RUN PRG02;
/> ;

新しく作ったJCLを実行するとエラーとなることがありますが、よく調べるとコマンドの後のブランクが「全角」の空白であったりすることがあります。ブランクは「半角」の空白にする必要があります。
その他変なところに全角の空白があって誤動作することもありますので、エラーになって原因が良くわからない場合は、どこかに全角の空白が書かれていないか調べてみましょう。

私の場合、全角の空白が最後の行にあったり、”;”の次に隠れていたり、コメント文をコマンドに直した時に全角文字がゴミとして残っていたりすることがよくありました。ディスプレイ文やコメント文で出力するメッセージを日本語で書いた時に、誤って最後の「;」を全角で書いてしまうことも良くあります。
「GE」は等しいか大きい場合にジャンプ、「LT」は小さい場合にジャンプ。「LT」は等しい時はジャンプしないことに注目。「JRCODE LT 255 JUMP=ENDJOB」とするとJRCODEが255の時はジャンプしません。また比較するための値の範囲は0〜255なので「JRCODE LT 256 JUMP=ENDJOB」とは書けないことも注意。
「システム管理説明書」の巻末の「システム管理における注意事項」に以下の一文があります。

JSの流れ制御文(:/文)でBJUMP機能を使用する場合に、次のJCL文のみで記述すると、システムでデッドロックとなるので記述しないでください。
・流れ制御文(/:文)
・ディスプレイ文(//文)
・コメント文(/*文)
・一時停止文(PAUSE文)
・制御変数設定文(/SET文)

私が新人の頃、JSの勉強をしようといろいろなJS文を作っていた時、たまたま上の条件にひっかかるJSを書いてしまい、見事にステーションストールさせ、大目玉を食らってしまいました。それ以来、私の心の中ではBJUMPは禁止になっています。(一応書いておきますが、正しく使えば危険ではありません。要するにJSはジョブステップのかたまり。ジョブステップは/RUNで始まり/>で終了する。上の5つのコマンドだけを使用すると必然的に/RUNも/>も使用しないことになり、それはジョブステップが1つも無い事になり、「JSはジョブステップの集合である」というJSの仕様に反する。BJUMPの後は必ず/RUNでジョブステップを開始するような作りにしてくださいということです。)

これに限らず、「システム管理説明書」の巻末の「注意事項」には、重要な事項がさらっと書いてあり注意が必要です。いろいろな注意事項が、前後の脈略も無く羅列してあるので、非常に理解しにくいですが。
画面の一番上か一番下(端末装置の設定によって違う)に一時停止文を検出した旨のメッセージを表示して、「再開コマンド待ち」状態となります。
再開コマンドを実行するにはいくつかの方法がある。以下のそのいくつかの例。
(1)キーボード上にある「再開キー」を押す。
 ・A−VXキーボードの場合は[FNC]キーを押しながら[PF5]を押す。
 ・パソコンのキーボード(PC/WSエミュレータ)ならば[CTRL]キーを押しながら[F5]キーを押す。(但しキー設定が初期状態の設定の場合。)
(2)アテンションコマンドを使う。
 ・アテンションキー(A−VXキーボードなら[ATTN]キー、パソコン用のキーボードでキー設定が初期状態のままならば[Pause]キー)を押し、コマンドの一覧画面になったら[PF5]キーを押す。
(3)PC/WSエミュレータならば、左上の[システムコマンド]メニューの[再開]をクリックする。

詳しくは「システムコマンド」の項目を参照してください。