Comments
Description
Transcript
MVS JCL ユーザーズ・ガイド
z/OS MVS JCL ユーザーズ・ガイド SA88-8570-02 (英文原典:SA22-7598-04) z/OS MVS JCL ユーザーズ・ガイド SA88-8570-02 (英文原典:SA22-7598-04) お願い 本書および本書で紹介する製品をご使用になる前に、 323 ページの『付録 E. 特記事項』に記載されている情報をお読みくだ さい。 本書は、SA88-8570-03 (英文原典: SA22-7598-03) の改訂版です。 本書は、z/OS (5694-A01) のバージョン 1 リリース 6 に適用されます。また、新版で特に断りのない限り、これ以 降のすべてのリリースおよびモディフィケーションにも適用されます。 本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただきます。 http://www.ibm.com/jp/manuals/main/mail.html なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。 (URL は、変更になる場合があります) お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示さ れたりする場合があります。 原 典: SA22–7598–04 z/OS MVS JCL User’s Guide 発 行: 日本アイ・ビー・エム株式会社 担 当: ナショナル・ランゲージ・サポート 第1刷 2004.12 この文書では、平成明朝体™W3、平成明朝体™W7、平成明朝体™W9、平成角ゴシック体™W3、平成角ゴシック体™ W5、および平成角ゴシック体™W7を使用しています。この(書体*)は、 (財)日本規格協会と使用契約を締結し使用し ているものです。フォントとして無断複製することは禁止されています。 注* 平成明朝体™W3、平成明朝体™W7、平成明朝体™W9、平成角ゴシック体™W3、 平成角ゴシック体™W5、平成角ゴシック体™W7 © Copyright International Business Machines Corporation 1988, 2004. All rights reserved. © Copyright IBM Japan 2004 目次 図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii 本書について . . . . . . . . . . . . . . . . . . 本書の対象読者 . . . . . . . . . . . . . . . . . . その他の情報. . . . . . . . . . . . . . . . . . . プログラム . . . . . . . . . . . . . . . . . . ハードウェア. . . . . . . . . . . . . . . . . . インターネットで z/OS ライセンス文書をアクセスする方法 . LookAt を使用して、メッセージ説明を検索する方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv . xv . xv . xv . xv . xvi . . . . . . . xvii 変更の要約 . . . . . . . . . . . . . . . . . . . . . . . . . . xix 第 1 部 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 第 1 章 はじめに - ジョブ制御ステートメント . . . . . . . . . . . . . 3 JCL ステートメント . . . . . . . . . . . . . . . . . . . . . . . 3 JECL ステートメント . . . . . . . . . . . . . . . . . . . . . . . 4 第 2 章 はじめに - ジョブ制御言語 (JCL) . . . . . . . . . JCL について . . . . . . . . . . . . . . . . . . . . 「MVS の店」で. . . . . . . . . . . . . . . . . . メニューと JCL との関係 . . . . . . . . . . . . . . ジョブ制御ステートメント . . . . . . . . . . . . . . 必須制御ステートメント . . . . . . . . . . . . . . . 練習 : ジョブの作成と入力 . . . . . . . . . . . . . . . 始める前に . . . . . . . . . . . . . . . . . . . ステップ 1: JCL を入れるデータ・セットの割り振り . . . . ステップ 2: JCL データ・セットの編集と必要な JCL の追加. ステップ 3: JCL をジョブとしてシステムに実行を依頼する . ステップ 4: ジョブの出力の表示および解釈 . . . . . . . ステップ 5: JCL の変更 . . . . . . . . . . . . . . ステップ 6: 最終出力の表示および解釈 . . . . . . . . . より複雑なジョブ . . . . . . . . . . . . . . . . . . ストリーム内プロシージャーとカタログ式プロシージャー . . 入力ストリーム . . . . . . . . . . . . . . . . . . 追加情報 . . . . . . . . . . . . . . . . . . . . . ご使用のシステムでの取り決め事項のワークシート . . . . ISPF を使用したデータ・セットの割り振りと編集 . . . . . SDSF を使用したジョブの保留出力の表示 . . . . . . . . 有用なユーティリティー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 7 . 7 . 7 . 9 . 9 . 9 . 10 . 11 . 11 . 12 . 14 . 15 . 16 . 18 . 18 . 19 . 20 . 20 . 21 . 22 . 24 第 3 章 ジョブ制御タスク ジョブの入力. . . . . . ジョブの処理. . . . . . リソースの要求 . . . . . タスク図表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 28 29 第 2 部 ジョブを入力するためのタスク. . . . . . . . . . . . . . . . . . . . . 37 © Copyright IBM Corp. 1988, 2004 iii 第 4 章 ジョブの入力 - 識別 ジョブの識別. . . . . . . ステップの識別 . . . . . . プロシージャーの識別 . . . INCLUDE グループの識別 . . アカウントの識別 . . . . . ローカル実行の場合 . . . リモート実行の場合 . . . プログラマーの識別 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 40 40 41 42 42 42 43 第 5 章 ジョブの入力 - 実行 . . . . . . . . . . . . . . . . プログラムの実行 . . . . . . . . . . . . . . . . . . . . . プロシージャーの実行 . . . . . . . . . . . . . . . . . . . 再始動およびチェックポイント機能を使用した再始動の実行 (非 APPC) . 異常終了後の再始動 . . . . . . . . . . . . . . . . . . . JES2 システムでシステム障害が発生した場合の再始動 . . . . . . JES3 システムでシステム障害が発生した場合の再始動 . . . . . . JES3 システムにおける期限実行または定期 (周期) 的実行 . . . . . . 締切スケジューリングの使用方法 . . . . . . . . . . . . . . 定期的 (周期) スケジューリングの使用方法 . . . . . . . . . . JES3 システムにおいて他のジョブに依存している場合の実行. . . . . リモート・ノードにおける実行 (非 APPC). . . . . . . . . . . . リモート・ジョブを実行依頼する際の考慮事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 46 46 46 47 48 48 48 49 49 51 52 第 6 章 ジョブの入力 - ジョブ入力制御 . . . . . . . . . . . . ジョブの入力を保留にすることによるジョブ入力制御 (非 APPC) . . . ローカル入力読み取りプログラムを保留にすることによるジョブ入力制御 APPC) . . . . . . . . . . . . . . . . . . . . . . . . 入力ストリームをコピーすることによるジョブ入力制御 (非 APPC) . . リモート・ワークステーションからのジョブ入力制御. . . . . . . . JES2 リモート・ジョブ入力 . . . . . . . . . . . . . . . . JES3 リモート・ジョブ処理 . . . . . . . . . . . . . . . . . . . . (非 . . . . . . . . . . . 55 . 55 . . . . . 56 57 57 57 58 第 7 章 ジョブの入力 - 通信 . . . . . . . . . . . . . . JCL からシステムへの通信 (非 APPC) . . . . . . . . . . . JCL からオペレーターへの通信 (非 APPC) . . . . . . . . . JCL からプログラマーへの通信 . . . . . . . . . . . . . . JCL からプログラムへの通信. . . . . . . . . . . . . . . IBM 提供のプログラムに指定する PARM 値 . . . . . . . . システムからオペレーターへの通信 . . . . . . . . . . . . ボリュームの取り付け時に出されるメッセージ . . . . . . . ジョブが出力限界値を超えた場合に出されるメッセージ . . . . システムからユーザー ID への通信 . . . . . . . . . . . . ジョブの完了. . . . . . . . . . . . . . . . . . . . 印刷の完了 . . . . . . . . . . . . . . . . . . . . タイム・シェアリング・ユーザー ID から JES3 システムへの通信 機能サブシステムからプログラマーへの通信 . . . . . . . . . ジョブ・ログを介して行う通信 . . . . . . . . . . . . . . ジョブ・ログおよび SYSOUT データ・セットの連続印刷 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 62 62 63 63 63 63 64 65 65 66 66 67 67 68 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 8 章 ジョブの入力 - 保護 . . . . . . . . . . . . . . . . . . . 71 RACF を使用した保護 . . . . . . . . . . . . . . . . . . . . . . 71 iv z/OS MVS JCL ユーザーズ・ガイド 第 9 章 ジョブの入力 - リソース制御 . . . . . プログラム・ライブラリーのリソース制御 . . . . システム・ライブラリー . . . . . . . . . 専用ライブラリー . . . . . . . . . . . . 一時ライブラリー . . . . . . . . . . . . プロシージャー・ライブラリーのリソース制御 . . プロシージャー・ライブラリーの検索 . . . . プロシージャー・ライブラリーの更新 . . . . INCLUDE グループのリソース制御 . . . . . . INCLUDE グループの検索 . . . . . . . . . アドレス・スペースのリソース制御 . . . . . . ストレージのタイプ . . . . . . . . . . . ストレージの量とタイプの要求 . . . . . . . 処理装置のリソース制御 . . . . . . . . . . スケジューリング環境を使用する処理装置の選択 JES2 における処理装置の選択 . . . . . . . JES3 における処理装置の選択 . . . . . . . JES3 システムにおけるスプール区画のリソース制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 74 74 76 77 77 78 79 79 79 79 80 82 82 82 83 84 第 3 部 ジョブを処理するためのタスク. . . . . . . . . . . . . . . . . . . . . 87 第 10 章 ジョブの処理 - 処理制御 . . . . . . . . . . . 条件付き実行による処理制御 . . . . . . . . . . . . . . 以前のステップの評価にもとづいたステップのう回または実行 戻りコードにもとづいたステップのう回または実行 . . . . 出力限界値を超えたジョブを取り消すことによる処理制御 . . APPC スケジューリング環境における出力の制限 . . . . . 非 APPC スケジューリング環境における出力の制限. . . . テストの際の使用方法 . . . . . . . . . . . . . . . タイミング実行による処理制御 . . . . . . . . . . . . JOB および EXEC TIME パラメーター . . . . . . . . JES2 の時間パラメーター . . . . . . . . . . . . . OS/390 UNIX システム・サービスに関する考慮事項 . . . テストにおける処理制御 . . . . . . . . . . . . . . . テストのための通常処理の変更 . . . . . . . . . . . | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 . 89 . 89 . 94 . 102 . 102 . 103 . 103 . 104 . 104 . 105 . 105 . 106 . 106 第 11 章 ジョブの処理 - パフォーマンス制御 . . . . . . . ジョブ・クラスの割り当てによるパフォーマンス制御 (非 APPC) . 選択優先順位によるパフォーマンス制御 (非 APPC) . . . . . . JES2 ジョブにおける優先順位 . . . . . . . . . . . . . JES3 ジョブにおける優先順位 . . . . . . . . . . . . . 優先順位繰り上げ . . . . . . . . . . . . . . . . . 入出力と処理の比率によるパフォーマンス制御 (非 APPC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 111 112 112 113 113 114 第 4 部 データ・セット・リソースを要求するためのタスク . . . . . . . . . . . 115 第 12 章 データ・セット・リソース - 識別 . . . . . . . データ・セットの識別 . . . . . . . . . . . . . . . . 永続データ・セット . . . . . . . . . . . . . . . . 一時データ・セット . . . . . . . . . . . . . . . . 以前の DD ステートメントからのデータ・セット名のコピー データ・セットの連結 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 117 118 119 121 121 目次 v vi ストリーム内データ・セットの識別 (非 APPC) . . . . . . . . . . . 入力ストリームを介したデータの入力 . . . . . . . . . . . . . . JES3 システムにおけるストリーム内データ・セット . . . . . . . . 3540 ディスケット入出力装置におけるデータ・セットの識別 . . . . . . カタログを介した識別 . . . . . . . . . . . . . . . . . . . . . 専用カタログの使用方法 . . . . . . . . . . . . . . . . . . . ラベルを介した識別 . . . . . . . . . . . . . . . . . . . . . . テープにおける記憶場所の識別 . . . . . . . . . . . . . . . . . TCAM メッセージ・データ・セットとしての識別 . . . . . . . . . . 端末装置からのデータ・セットまたは端末装置へのデータ・セットの識別 (非 APPC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 13 章 データ・セット・リソース - 記述 . . . . . . 状況の記述 . . . . . . . . . . . . . . . . . . . データ・セット保全性処理 . . . . . . . . . . . . データ属性の記述 . . . . . . . . . . . . . . . . データ制御ブロック (DCB) の場合 . . . . . . . . . マイグレーションおよびバックアップ (SMS を使用する場合) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 129 131 133 133 136 第 14 章 データ・セット・リソース - 保護 . . . . . RACF を使用した保護 . . . . . . . . . . . . . . PROTECT パラメーターを使用した保護 . . . . . . SECMODEL パラメーターを使用した保護 . . . . . ISO/ANSI/FIPS バージョン 3 のテープについての保護 . . パスワードによる保護 . . . . . . . . . . . . . . BSAM または BDAM データ・セットへのアクセスの保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 137 137 138 138 139 139 第 15 章 データ・セット・リソース - 割り振り . . . . . . . . . . . . 装置の割り振り . . . . . . . . . . . . . . . . . . . . . . . . SMS 管理データ・セットのための装置割り振り . . . . . . . . . . . 非 SMS 管理データ・セットのための装置の割り振り . . . . . . . . . JES3 システムにおける装置割り振り . . . . . . . . . . . . . . . ボリュームの割り振り . . . . . . . . . . . . . . . . . . . . . . SMS 管理データ・セットに対するボリューム割り振り . . . . . . . . . 非 SMS 管理データ・セットに対するボリューム割り振り . . . . . . . 非システム管理データ・セットおよびシステム管理テープ・ボリュームのデ ータ・セットに対するボリューム割り振り . . . . . . . . . . . . 装置とボリュームの割り振りにおける相互の影響 . . . . . . . . . . . . UNIT パラメーターと VOLUME パラメーターとの関係 (非 SMS 管理デー タ・セット) . . . . . . . . . . . . . . . . . . . . . . . . UNIT パラメーターと VOLUME パラメーターとの関係 (SMS 管理データ・ セット). . . . . . . . . . . . . . . . . . . . . . . . . . 非システム管理データ・セットおよびシステム管理テープ・ボリュームのデ ータ・セットに対する装置およびボリューム類似性 . . . . . . . . . データ・セットのスタッキング . . . . . . . . . . . . . . . . . . データ・セット・スタッキングの例 . . . . . . . . . . . . . . . . データ・セットのスタッキングとテープ・マウント管理 . . . . . . . . 直接アクセス・スペースの割り振り . . . . . . . . . . . . . . . . . システムによるスペース割り当ての要求 . . . . . . . . . . . . . . 特定のトラックの要求 . . . . . . . . . . . . . . . . . . . . . 仮想入出力の割り振り . . . . . . . . . . . . . . . . . . . . . . VIO データ・セットの逆方向参照 . . . . . . . . . . . . . . . . 141 142 142 143 153 158 158 160 z/OS MVS JCL ユーザーズ・ガイド . . . . . . . 122 122 123 123 123 124 125 127 128 . 128 160 168 168 173 174 183 185 187 190 190 195 196 198 JES2 システムにおけるボリュームの事前取り付けを指定した割り振り . . . . 199 動的割り振り . . . . . . . . . . . . . . . . . . . . . . . . . 199 第 16 章 データ・セット・リソース - 処理制御 . . . . 処理の抑止による処理制御 . . . . . . . . . . . . 指定の延期による処理制御 . . . . . . . . . . . . チェックポイント機能を使用した処理制御 . . . . . . サブシステムによる処理制御 . . . . . . . . . . . サブシステムの要求 . . . . . . . . . . . . . . サブシステムに指定するプログラム制御ステートメント TCAM ジョブまたはタスクによる処理制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 201 202 204 204 204 205 205 第 17 章 データ・セット・リソース - 終了処理 . . . . 割り振り解除の終了処理 . . . . . . . . . . . . . データ・セットの後処理の終了処理 . . . . . . . . . DISP パラメーターによって制御する後処理 . . . . . 時間による後処理の制御 . . . . . . . . . . . . 終了処理における未使用の直接アクセス・スペースの解放 ボリュームの後処理の終了処理 . . . . . . . . . . 取り外し可能ボリュームの後処理 . . . . . . . . . ボリュームの保存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 207 207 208 217 218 219 219 220 第 5 部 SYSOUT データ・セット・リソースを要求するためのタスク . . . . . . 221 第 18 章 SYSOUT リソース - 識別 . . . . . . . . . SYSOUT データ・セットとしての識別 . . . . . . . . . 出力クラスの識別 . . . . . . . . . . . . . . . . 3540 ディスケット入出力装置におけるデータ・セットの識別 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 223 224 224 第 19 章 SYSOUT リソース - 記述 . . . . . . . . . . . . . . . . 225 データ属性の記述 . . . . . . . . . . . . . . . . . . . . . . . 225 第 20 章 SYSOUT リソース - 保護 . . . . . . . . . . . . . . . . 227 印刷出力の保護 . . . . . . . . . . . . . . . . . . . . . . . . 227 第 21 章 SYSOUT リソース - パフォーマンス制御 . . . . . . . . . . 229 キュー選択によるパフォーマンス制御 (非 APPC) . . . . . . . . . . . . 229 第 22 章 SYSOUT リソース - 処理制御 . . . . . . . . . . . . 追加のパラメーターを指定した処理制御 . . . . . . . . . . . . . OUTPUT JCL ステートメントからのパラメーターの追加 . . . . . . JES2 /*OUTPUT ステートメントからのパラメーターの追加 . . . . . JES3 //*FORMAT ステートメントからのパラメーターの追加 . . . . セグメント化による処理制御 . . . . . . . . . . . . . . . . . その他のデータ・セットを使用した処理制御 . . . . . . . . . . . 出力クラスの使用方法 . . . . . . . . . . . . . . . . . . . JES3 システムにおける SYSOUT データ・セットのサイズの使用方法 . JES2 システムにおけるグループの使用方法 . . . . . . . . . . . 外部書き出しプログラムによる処理制御 . . . . . . . . . . . . . モードによる処理制御 . . . . . . . . . . . . . . . . . . . . 保留による処理制御 . . . . . . . . . . . . . . . . . . . . . DD ステートメントによる保留. . . . . . . . . . . . . . . . OUTPUT JCL ステートメントによる保留 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 目次 231 232 232 235 235 235 236 236 236 237 237 238 238 239 239 vii 出力の抑止による処理制御 . . . . . . . . . . . . . . . . . . . 出力を抑止するためのダミーの状況の使用方法 . . . . . . . . . . . JES2 システムにおける出力を抑止するためのクラスの使用方法 . . . . JES2 システムにおいて出力を抑止するための OUTPUT JCL ステートメン トの使用方法 . . . . . . . . . . . . . . . . . . . . . . チェックポイント機能を使用した処理制御 . . . . . . . . . . . . . 印刷サービス機能による処理制御 . . . . . . . . . . . . . . . . . PSF へのライブラリーの識別 . . . . . . . . . . . . . . . . . . 240 . 240 . 241 . . . . 241 241 242 242 第 23 章 SYSOUT リソース - 終了処理 . . . . . . . . . . . . . . 245 割り振り解除の終了処理 . . . . . . . . . . . . . . . . . . . . . 245 第 24 章 SYSOUT リソース - 宛先制御 . . . . . . . . ローカル装置、リモート装置、または別のノードへの宛先制御 . 複数の宛先 . . . . . . . . . . . . . . . . . . . JES2 ネットワークにおける出力宛先の制御 . . . . . . . JES3 ネットワークにおける出力宛先の制御 . . . . . . . JES3 システムにおける別の処理装置への宛先制御 . . . . . 内部読み取りプログラムへの宛先制御 . . . . . . . . . . 端末装置への宛先制御 . . . . . . . . . . . . . . . . SYSOUT の配布を支援する宛先制御 . . . . . . . . . . . . . . . . . . . 247 247 248 248 251 252 252 254 254 第 25 章 SYSOUT リソース - 出力のフォーマット設定 . . . . . . . . . 任意のプリンターへの出力のフォーマット設定 . . . . . . . . . . . . . 3800 印刷サブシステムへの出力のフォーマット設定. . . . . . . . . . . コピー変更機能 . . . . . . . . . . . . . . . . . . . . . . . 文字の配列 . . . . . . . . . . . . . . . . . . . . . . . . . JES2 システムにおける索引付け機能付きの 3211 プリンターへの出力のフォー マット設定 . . . . . . . . . . . . . . . . . . . . . . . . . 穿孔装置への出力のフォーマット設定 . . . . . . . . . . . . . . . . 穿孔カードの解釈 . . . . . . . . . . . . . . . . . . . . . . 3800 印刷サブシステムにおけるダンプ出力のフォーマット設定 . . . . . . 255 255 256 257 257 第 26 章 SYSOUT リソース - 出力の制限 . . . . . 出力の制限 . . . . . . . . . . . . . . . . . APPC スケジューリング環境における出力の制限 . . 非 APPC スケジューリング環境における出力の制限. 制限値を超えた場合の処置 . . . . . . . . . . 261 261 261 262 262 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 259 259 260 第 27 章 SYSOUT リソース - USERDATA OUTPUT JCL キーワード 265 参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 第 6 部 例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 第 28 章 例 - アセンブル、リンク・エディット、および実行 . . . . . . . 269 第 29 章 例 - 複数の出力 . . . . . . . . . . . . . . . . . . . . 271 第 30 章 例 - JES2 システムにおける出力の作成 . . . . . . . . . . . 273 第 31 章 例 - JES3 システムにおける出力の作成 . . . . . . . . . . . 275 第 32 章 例 - システムへのデータ・セットの識別 . . . . . . . . . . . 277 viii z/OS MVS JCL ユーザーズ・ガイド 第 7 部 付録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 付録 A. 索引順次データ・セット . . . . . . . 索引順次データ・セットの作成 . . . . . . . . 割り振りエラーが発生した場合のプロシージャー . 索引順次データ・セットの区域配置 . . . . . . 索引順次データ・セットの検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 281 285 285 286 付録 B. 世代別データ・セット . . . . . . . . . . GDG 基本項目の作成 . . . . . . . . . . . . . . SMS 管理の世代別データ・セットの属性の定義 . . . . SMS 管理の世代別データ・セットの作成 . . . . . . SMS 管理の世代別データ・セットの後処理 . . . . . 非 SMS 管理の世代別データ・セットの属性の定義 . . 非 SMS 管理の世代別データ・セットの作成 . . . . 世代別データ・セットの検索 . . . . . . . . . . 世代別データ・セットの削除およびカタログからの除去 再始動のためのジョブの実行依頼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 292 293 293 294 294 296 297 300 301 付録 C. VSAM データ・セット . . . . . . . . . . . . . VSAM データ・セット - SMS を使用する場合 . . . . . . . VSAM データ・セットの作成 - SMS を使用する場合 . . . . 既存の VSAM データ・セットの検索 - SMS を使用する場合 . SMS に関するマイグレーションの考慮事項 . . . . . . . . DD ステートメント・パラメーター - SMS を使用する場合 . . VSAM データ・セット - SMS を使用しない場合 . . . . . . . VSAM データ・セットの作成 - SMS を使用しない場合 . . . 既存の VSAM データ・セットの検索 - SMS を使用しない場合 DD ステートメント・パラメーター - SMS を使用しない場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 307 307 307 308 308 311 311 311 311 付録 D. SMS を使用したデータ・セット . . . . . . SMS 構成 . . . . . . . . . . . . . . . . . . 既存の JCL . . . . . . . . . . . . . . . . . デフォルトの装置 . . . . . . . . . . . . . . 構成の指定 . . . . . . . . . . . . . . . . . . データ・クラスに定義された属性のオーバーライド . . 管理クラスに定義された属性のオーバーライド . . . . ストレージ・クラスに定義された属性のオーバーライド RACF によるデータ・セットの保護 . . . . . . . . . データ・セットの属性のモデル化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 317 318 319 319 319 320 320 320 321 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 付録 E. 特記事項 . . . . . . . . . . . . . . . . . . . . . . . 323 商標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 目次 ix x z/OS MVS JCL ユーザーズ・ガイド 図 1. 2. 3. JCL 関連の処置 (ユーザーと MVS) . . . . . . . . . . . . . . . . . . . . . . . . 8 IEFBR14 プログラムを呼び出したジョブの出力 . . . . . . . . . . . . . . . . . . . 15 SORT プログラムを呼び出したジョブの出力 . . . . . . . . . . . . . . . . . . . . 17 © Copyright IBM Corp. 1988, 2004 xi xii z/OS MVS JCL ユーザーズ・ガイド 表 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. MVS ジョブ制御言語 (JCL) ステートメント . . . . . . . . . . . . . . . . . . . . . 3 ジョブ入力制御言語 (JECL) ステートメント . . . . . . . . . . . . . . . . . . . . . 4 ストリーム内プロシージャー . . . . . . . . . . . . . . . . . . . . . . . . . . 18 カタログ式プロシージャー : SYS1.PROCLIB 中のメンバー MYPROC . . . . . . . . . . . 19 カタログ式プロシージャー MYPROC を実行するジョブ . . . . . . . . . . . . . . . . 19 3 つのジョブから成る入力ストリーム内でのジョブの境界. . . . . . . . . . . . . . . . 20 タスクおよびユーティリティー・プログラム. . . . . . . . . . . . . . . . . . . . . 24 ジョブを入力するためのタスク. . . . . . . . . . . . . . . . . . . . . . . . . . 29 ジョブを処理するためのタスク. . . . . . . . . . . . . . . . . . . . . . . . . . 31 データ・セット・リソースを要求するためのタスク . . . . . . . . . . . . . . . . . . 31 SYSOUT データ・セット・リソースを要求するためのタスク . . . . . . . . . . . . . . 33 ジョブを入力するための識別タスク . . . . . . . . . . . . . . . . . . . . . . . . 39 ジョブを入力するための実行タスク . . . . . . . . . . . . . . . . . . . . . . . . 45 ジョブを入力するための入力制御タスク . . . . . . . . . . . . . . . . . . . . . . 55 ジョブを入力するための通信タスク . . . . . . . . . . . . . . . . . . . . . . . . 61 ジョブを入力するための保護タスク . . . . . . . . . . . . . . . . . . . . . . . . 71 ジョブを入力するためのリソース制御タスク. . . . . . . . . . . . . . . . . . . . . 73 ジョブを処理するための処理制御タスク . . . . . . . . . . . . . . . . . . . . . . 89 ジョブを処理するためのパフォーマンス制御タスク . . . . . . . . . . . . . . . . . . 111 データ・セット・リソースを要求するための識別タスク . . . . . . . . . . . . . . . . 117 データ・セット・リソースを要求するための記述タスク . . . . . . . . . . . . . . . . 129 データ・セット保全性処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 データ・セット・リソースを要求するための保護タスク . . . . . . . . . . . . . . . . 137 DD LABEL サブパラメーター IN または OUT を指定した処理 . . . . . . . . . . . . . 140 データ・セット・リソースを要求するための割り振りタスク . . . . . . . . . . . . . . 141 割り振りに及ぼす装置の状況の影響 . . . . . . . . . . . . . . . . . . . . . . . 144 JES3 ジョブ・セットアップ (SETUP=JOB) . . . . . . . . . . . . . . . . . . . . . 155 JES3 最高水準点セットアップ (SETUP=HWS) . . . . . . . . . . . . . . . . . . . . 156 JES3 明示セットアップ (SETUP=ddname) . . . . . . . . . . . . . . . . . . . . . 157 テープ・ライブラリー要求の装置類似性の例 . . . . . . . . . . . . . . . . . . . . 176 装置とボリュームの類似性 (非 SMS 管理データ・セット) . . . . . . . . . . . . . . . 179 データ・セットのスタッキングにお勧めするパラメーター . . . . . . . . . . . . . . . 184 データ・セット・リソースを要求するための処理制御タスク . . . . . . . . . . . . . . 201 データ・セット・リソースを要求するための終了処理タスク . . . . . . . . . . . . . . 207 SYSOUT データ・セット・リソースを要求するための識別タスク . . . . . . . . . . . . 223 SYSOUT データ・セット・リソースを要求するための記述タスク . . . . . . . . . . . . 225 SYSOUT データ・セット・リソースを要求するための保護タスク . . . . . . . . . . . . 227 SYSOUT データ・セット・リソースを要求するためのパフォーマンス制御タスク . . . . . . 229 SYSOUT データ・セット・リソースを要求するための処理制御タスク . . . . . . . . . . . 231 SYSOUT データ・セット・リソースを要求するための終了処理タスク . . . . . . . . . . . 245 SYSOUT データ・セット・リソースを要求するための宛先制御タスク . . . . . . . . . . . 247 SYSOUT データ・セット・リソースを要求するための出力のフォーマット設定タスク . . . . . 255 SYSOUT データ・セット・リソースを要求するための出力の制限タスク . . . . . . . . . . 261 ISAM データ・セットの区域配置 . . . . . . . . . . . . . . . . . . . . . . . . 285 ISAM データ・セットの検索または拡張のための DD パラメーター . . . . . . . . . . . 288 VSAM データ・セットを処理するときに使用する DD パラメーター (SMS を使用する場合) 308 VSAM データ・セットの処理時に使用してはいけない DD パラメーター (SMS を使用する場合) 310 VSAM データ・セットの処理時に使用する DD パラメーター (SMS を使用しない場合) . . . . 312 © Copyright IBM Corp. 1988, 2004 xiii 49. VSAM データ・セットの処理時に使用しない DD パラメーター (SMS を使用しない場合) xiv z/OS MVS JCL ユーザーズ・ガイド 314 本書について 本書は、オペレーティング・システムにジョブを入力したり、システムによるジョ ブの処理を制御したり、ジョブの実行に必要なリソースを要求したりするときに必 要なジョブ制御タスクについて説明します。このようなタスクを実行するには、プ ログラマーがジョブ制御ステートメントを指定します。本書では、これらのステー トメントの使用方法について説明します。次のステートメントがあります。 v ジョブ制御言語 (JCL) ステートメント v ジョブ入力サブシステム 2 (JES2) 制御ステートメント v ジョブ入力サブシステム 3 (JES3) 制御ステートメント 本書は使用者の手引きとして書かれており、どのようにジョブを制御するかを判断 する際にお読みください。ステートメントの指定方法については説明しません。ス テートメントの説明および指定方法については、z/OS MVS JCL 解説書、SA88-8569 を参照してください。 本書の対象読者 本書は、オペレーティング・システムにプログラムを入力するシステム・プログラ マーおよびアプリケーション・プログラマーの方を対象に書かれています。本書を お読みになる方は、ジョブ管理とデータ管理の概念を理解しておいてください。 その他の情報 JCL 情報の詳細については、下記の資料を参照してください。 z/OS MVS JCL 解説書、SA88-8569 本書で他の資料の情報を参照する場合は、その資料の略称を使用します。z/OS を構 成する全プロダクトに関する資料の資料名、資料番号の詳細は、z/OS 情報ロードマ ップ を参照してください。次の表は、別のプロダクトに関する資料の資料名、資料 番号を示したものです。 プログラム 本書で使用する略称 資料名 資料番号 ACF/TCAM Installation Reference Advanced Communications Function for TCAM, Version 2 Installation Reference SC30-3133 ISPF/PDF Guide and Reference ISPF/PDF Guide and Reference V3.4 for MVS SC34-4258 PSF/MVS System Programming Guide PSF/MVS System Programming Guide S544-3672 PSF/MVS Application Programming Guide PSF/MVS Application Programming Guide S544-3673 本書で使用する略称 資料名 資料番号 2821 Component Description IBM 2821 Control Unit Component Description GA24-3312 ハードウェア © Copyright IBM Corp. 1988, 2004 xv 本書で使用する略称 資料名 資料番号 なし IBM 3340 Disk/Storage - Fixed Head Feature User’s Guide GA26-1632 3540 Programmer’s Reference OS/VS2 IBM 3540 Programmer’s Reference GC24-5111 3800 Programmer’s Guide IBM 3800 Printing Subsystem Programmer’s Guide GC26-3846 IBM 3800 用紙設計のための参照ガイ ド IBM 3800 印刷サブシステム 用紙設計のための参照ガイ ド N:GA26-1633 インターネットで z/OS ライセンス文書をアクセスする方法 z/OS™ のライセンス文書は、PDF 形式のものを、インターネットから入手できま す。次の IBM Resource Link™ Web サイトにアクセスしてください。 http://www.ibm.com/servers/resourcelink ライセンス文書は、z/OS のライセンスをお持ちのお客様だけが入手できます。これ らの文書へアクセスするには、IBM Resource Link のユーザー ID、パスワード、お よびキー・コードが必要です。選択したオファリング (ServerPac、CBPDO、SystemPac) に基づいて、z/OS および z/OS.e のオーダーとと もに納入されるインストール・ガイドに、キー・コードに関する次の情報が記載さ れています。 v ServerPac Installing Your Order v CBPDO Memo to Users Extension v SystemPac Installation Guide IBM Resource Link のユーザー ID とパスワードを取得するには、次にログオンし てください。 http://www.ibm.com/servers/resourcelink z/OS ライセンス・ブックにアクセスできるように登録するには、次のように行いま す。 1. Resource Link のユーザー ID とパスワードを使用して、Resource Link にログオ ンします。 2. 左側のナビゲーション・バーにあるユーザー・プロファイルを選択する。 注: z/OS ライセンス資料は、利用登録をして、処理完了をお知らせする電子メール を受け取ると利用できるようになります。 ハードコピーのライセンス文書は IBM では取り扱っていません。 z/OS Licensed Product Library CD-ROM または IBM Resource Link の PDF 形 式のファイルからライセンス文書を印刷することができます。 xvi z/OS MVS JCL ユーザーズ・ガイド LookAt を使用して、メッセージ説明を検索する方法 LookAt というオンライン機能により、多くの IBM® メッセージや、いくつかのシ ステム異常終了およびコードに関する説明を検索できます。LookAt では、通常、該 当メッセージの説明がただちに表示されるため、従来の方法よりも短時間で、必要 な情報を検索することができます。 以下の場所から LookAt を使用すると、z/OS のエレメントとフィーチャー、 z/VM®、VSE/ESA™、および AIX® および Linux のクラスターについての IBM メ ッセージの説明がご覧いただけます。 v インターネット。http://www.ibm.com/eserver/zseries/zos/bkserv/lookat/ の LookAt Web サイトから、IBM メッセージの説明に直接アクセスできます。 v ご使用の z/OS TSO/E ホスト・システム。ご使用の z/OS または z/OS.e システ ム上にコードをインストールすると、TSO/E コマンド行 (たとえば、TSO/E プロ ンプト、ISPF、OMVS を実行している z/OS UNIX® システム・サービス) から LookAt を使用して、IBM メッセージの説明にアクセスできます 。 v ご使用の Microsoft® Windows® ワークステーション。コードをインストールする と、Microsoft Windows のコマンド・プロンプト (DOS コマンド行) から LookAt を使用して、z/OS コレクション (SK3T-4269) 上で IBM メッセージの説明にアク セスできます。 v ご使用のワイヤレス・ハンドヘルド・デバイス。ワイヤレス・アクセス機能とイ ンターネット・ブラウザーを備えたハンドヘルド・デバイス (たとえば、ポケッ ト PC、Blazer または Eudora for Palm OS 向けインターネット・エクスプロー ラー、あるいは Linux ベースのハンドヘルド・デバイス向け OPERA) があれ ば、モバイル版 LookAt を使用できます。LookAt モバイル版へは、LookAt Web サイトからリンクしてください。 ご使用の z/OS コレクション (SK3T-4269) 上のディスクまたは LookAt Web サイト (Download をクリックし、お客様の用件に合ったプラットフォーム、リリース、コ レクション、および場所を選択する) から、ご使用のホスト・システムまたは Microsoft Windows ワークステーション上に LookAt をインストールするためのコ ードを入手できます。ダウンロード中に入手できる LOOKAT.ME ファイルに詳細 が記載されています。 本書について xvii xviii z/OS MVS JCL ユーザーズ・ガイド 変更の要約 変更の要約 SA88-8570-02 (英文原典: SA22-7598-04) z/OS バージョン 1 リリース 6 本書には、z/OS バージョン 1 リリース 5 を解説した、本書の前の版の SA88-8570-03 の情報も含まれています。 本書には、整合性や検索の容易性を高めるための、用語、保守、および編集上の変 更が含まれます。本文または図表に対して技術的な変更または追加が行われている 場合には、その箇所の左側に縦線を引いて示してあります。 変更の要約 SA22-7598-03 (英文資料のみ) z/OS バージョン 1 リリース 5 本書には、z/OS バージョン 1 リリース 4 を解説した SA88-8570-0? の情報も記載 されています。 本書には、整合性や検索の容易性を高めるための、用語、保守、および編集上の変 更が含まれます。 変更の要約 SA88-8570-02 (英文原典: SA22-7598-02) z/OS バージョン 1 リリース 4 2003 年 10 月に更新 本書には、z/OS バージョン 1 リリース 2 を解説した、SA88-8570-01 の情報も記 載されています。 XMIT ステートメントは JES2 でもサポートするようになりました - 以前は JES3 のみがサポートしていました。 本書には、整合性や検索の容易性を高めるための、用語、保守、および編集上の変 更が含まれます。 変更の要約 SA88-8570-01 (英文原典: SA22-7598-01) z/OS バージョン 1 リリース 2 本書には、z/OS バージョン 1 リリース 1 を解説した、本書の前の版の SA88-8570-00 の情報も含まれています。 本書には、用語、細かな修正、および編集上の変更が含まれています。本文または 図表に対して技術的な変更または追加が行われている場合には、その箇所の左側に 縦線を引いて示してあります。 © Copyright IBM Corp. 1988, 2004 xix 変更の要約 SA88-8570 (英文原典 SA22-7598-00) z/OS バージョン 1 リリース 1 本書は、OS/390 MVS JCL ユーザーズ・ガイド に記述された情報も含みます。 xx z/OS MVS JCL ユーザーズ・ガイド 第 1 部 はじめに コンピューターでプログラムを実行し、そのプログラムに書かれた作業を行うに は、そのプログラムをユーザーのオペレーティング・システムで処理しなければな りません。オペレーティング・システムは、ジョブ入力サブシステム (JES2 または JES3) を備えた基本制御プログラム (BCP) で構成されており、DFSMSdfp もインス トールされています。 オペレーティング・システムがプログラムを処理できるようにするために、プログ ラマーは特定のジョブ制御タスクを実行する必要があります。これらのタスクは、 ジョブ制御ステートメントを介して実行されます。ジョブ制御ステートメントは、 第 1 章の一覧表に示します。ジョブ制御タスクおよび JCL に関する情報について は、第 2 章で紹介します。第 3 章の図表では、ジョブ制御タスクを詳細なサブタ スクに分けます。ジョブ制御タスクには、次の種類があります。 v ジョブの入力 v ジョブの処理 v リソースの要求 © Copyright IBM Corp. 1988, 2004 1 第 1 部 紹介 2 z/OS MVS JCL ユーザーズ・ガイド 第 1 章 はじめに - ジョブ制御ステートメント 本章では、表 1 に 1 つを除くすべての MVS ジョブ制御言語 (JCL) ステートメン トを、また、 4 ページの表 2 に JES2 と JES3 サブシステム用の JECL (ジョブ入 力制御言語) ステートメントを、それらの目的とともにリストします。(印刷サービ ス機能 (PSF) を使用するための PRINTDEV JCL ステートメントは、PSF for z/OS: Customization という資料に記載してあります。) JCL ステートメント 表 1. MVS ジョブ制御言語 (JCL) ステートメント ステートメント 名称 用途 // command JCL コマンド 入力ストリームを介して MVS システ ム・オペレーター・コマンドを入力しま す。コマンド・ステートメントは、主に オペレーターが使用します。JCL コマン ド・ステートメントの代わりに、 COMMAND ステートメントを使用してく ださい。 // COMMAND コマンド JCL が変換されるときにシステムが出 す、MVS コマンドまたは JES コマンド を指定します。JCL コマンド・ステート メントの代わりに、COMMAND ステート メントを使用してください。 //* comment コメント コメントを入れます。コメント・ステー トメントは、主にプログラムとそのリソ ースに関する要件を文書化するときに使 用します。 // CNTL 制御 1 つまたは複数のプログラム制御ステー トメントの始まりを示します。 // DD データ定義 データ・セットを識別し、記述します。 /* 区切り文字 入力ストリームに置かれたデータの末尾 を示します。 注 : 区切り文字として任意の 2 文字を指 定することができます。 // ENDCNTL 制御の終わり 1 つまたは複数のプログラム制御ステー トメントの終わりを示します。 // EXEC 実行 ジョブ・ステップの始まりを示し、ステ ップに名前を割り当てます。このステッ プで実行するプログラム、カタログ式プ ロシージャー、またはストリーム内プロ シージャーを識別します。 // IF/THEN/ELSE/ENDIF IF/THEN/ELSE/ENDIF ジョブ内のジョブ・ステップの条件付き ステートメント構成 実行を指定します。 © Copyright IBM Corp. 1988, 2004 3 はじめに - ステートメント 表 1. MVS ジョブ制御言語 (JCL) ステートメント (続き) ステートメント 名称 用途 // INCLUDE 組み込み ジョブ・ストリームに入れる JCL ステー トメントが入っている区分データ・セッ ト (PDS) または拡張区分データ・セット (PDSE) のメンバーを識別します。 // JCLLIB JCL ライブラリー システムが探索するライブラリーを識別 します。 v INCLUDE グループ v EXEC ステートメントに指定されたプ ロシージャー // JOB ジョブ ジョブの始まりを示します。そのジョブ に名前を割り当てます。 // ヌル ジョブの終わりを示します。 // OUTPUT 出力 JCL ジョブ入力サブシステムが SYSOUT デー タ・セットを印刷するときに使用する処 理オプションを指定します。 // PEND プロシージャーの終わ ストリーム内プロシージャーまたはカタ り ログ式プロシージャーの終わりを示しま す。 // PROC プロシージャー ストリーム内プロシージャーの始まりを 示し、カタログ式プロシージャーの始ま りを示す場合もあります。プロシージャ ーで定義されているパラメーターにデフ ォルト値を割り当てます。 // SET セット JCL ステートメントの処理時に記号パラ メーターを定義し、初期値を割り当てま す。記号パラメーターに割り当てられた 値を、変更または無効にします。 // XMIT 伝送 あるノードから別のノードに入力ストリ ーム・レコードを伝送します。 JECL ステートメント 表 2. ジョブ入力制御言語 (JECL) ステートメント ステートメント 用途 ジョブ入力サブシステム 2 (JES2) 制御ステートメント 4 /*$command 入力ストリームを介して JES2 オペレーター・コマンドを入力し ます。 /*JOBPARM 入力時にジョブ関連パラメーターを指定します。 /*MESSAGE オペレーター・コンソールを介してオペレーターにメッセージを 送信します。 /*NETACCT ネットワーク・ジョブのアカウント番号を指定します。 /*NOTIFY 通知メッセージの宛先を指定します。 /*OUTPUT SYSOUT データ・セット (複数の場合もある) に処理オプション を指定します。 z/OS MVS JCL ユーザーズ・ガイド はじめに - ステートメント 表 2. ジョブ入力制御言語 (JECL) ステートメント (続き) ステートメント 用途 /*PRIORITY ジョブ・キュー選択優先順位を割り当てます。 /*ROUTE ジョブの出力宛先または実行ノードを指定します。 /*SETUP ジョブに必要なボリュームのマウントを要求します。 /*SIGNOFF リモート・ジョブ・ストリーム処理セッションを終了します。 /*SIGNON リモート・ジョブ・ストリーム処理セッションを開始します。 /*XEQ ジョブの実行ノードを指定します。 /*XMIT 別の JES2 ノードまたは適格な非 JES2 ノードに伝送するジョブ またはデータ・ストリームを示します。 ジョブ入力サブシステム 3 (JES3) 制御ステートメント //**command 入力ストリームを介して、*DUMP と *RETURN 以外の JES3 オ ペレーター・コマンドを入力します。 //*DATASET 入力ストリーム内の入力データ・セットを開始します。 //*ENDDATASET //*DATASET ステートメントから始まる入力データ・セットを終 了します。 //*ENDPROCESS 一連の //*PROCESS ステートメントを終了します。 //*FORMAT SYSOUT データ・セット、JES3 管理の印刷データ・セット、ま たは穿孔データ・セットの処理オプションを指定します。 //*MAIN ジョブについて選択した処理パラメーターを定義します。 //*NET 依存ジョブ制御ネット内の先行ジョブと後続ジョブとの関係を識 別します。 //*NETACCT ネットワーク・ジョブのアカウント番号を指定します。 //*OPERATOR オペレーターにメッセージを送信します。 //*PAUSE 入力読み取りプログラムを停止します。 //*PROCESS 標準外ジョブを識別します。 //*ROUTE ジョブに実行ノードを指定します。 /*SIGNOFF リモート・ジョブ・ストリーム処理セッションを終了します。 /*SIGNON リモート・ジョブ・ストリーム処理セッションを開始します。 第 1 章 はじめに - ジョブ制御ステートメント 5 はじめに - ステートメント 6 z/OS MVS JCL ユーザーズ・ガイド 第 2 章 はじめに - ジョブ制御言語 (JCL) 本章は、次のセクションに分かれています。 見出し 記述 『JCL について』 JCL の目的と使用法について説明します。 9 ページの『練習 : ジョブの ジョブの基本部分として使用できる JCL コードの例を示し 作成と入力』 ます。 18 ページの『より複雑なジョ ストリーム内プロシージャーとカタログ式プロシージャーの ブ』 作成法と用法、および 2 つ以上のジョブをグループにまと めて入力ストリームに入れる方法について説明します。 20 ページの『追加情報』 ご使用のシステムでのきまりを文書化する場合に使用するワ ークシートを示します。この部分では、ISPF を使用してデ ータ・セットの割り振りと編集を行う方法、SDSF を使用し てジョブの保留出力を表示する方法について説明します。各 種のタスクを実行するために JCL と一緒に使用できるユー ティリティーの一覧も示します。 JCL について MVS システムを使用して作業を行うには、MVS システムに対して、行いたい作業 と必要とするリソースを記述しなければなりません。 このために、ジョブ制御言語 (JCL) を使用して MVS に必要な情報を提供します。 「MVS の店」で JCL を理解するため、1 つの方法として JCL をレストランのメニューにたとえて みましょう。 あなたが客としてレストランにいるものとします。この場合、あなたは他の客と同 じく、調理場に入ったり、自分で食事を作ったりはしないはずです。そのようなこ とをすれば、レストランに来た意味はないでしょう。お客のすることは、レストラ ンが準備しているメニューの中から選んで注文することです。好みの料理やサラ ダ・ドレッシングを決め、他にも特別な注文があれば追加します。ウェイターに は、調理場に注文を伝えるように頼みます。 調理場では、迅速かつ能率よく料理の準備ができるように、シェフ達が作業を分担 し、必要な料理の材料を分けています。食事が用意されている間、あなたや友人 は、調理場内部の作業を気にすることもなく、最新のニュースなどを話題としなが ら会話に興じることができます。ウェイターが食事を運んでくると、あなたの関心 は食事に移ることになります。 メニューと JCL との関係 ここで、MVS システムを使用しているオフィスにいると仮定した上で、JCL をメ ニューと想定してみてください。あなたと他の客はメニューから料理を選び、ウェ イターに注文し、シェフに料理を依頼します。同様に、あなたと他の MVS ユーザ © Copyright IBM Corp. 1988, 2004 7 はじめに - ジョブ制御言語 (JCL) ーは JCL を使用して作業要求 (ジョブと呼ばれるもの) を定義し、ジョブ入力サブ システム (JES) を使用してジョブの実行を MVS に要求します。 ユーザーが JCL ステートメントを用いて提供する情報を使用して、MVS はジョブ のすべてを完了するために必要なリソースを割り振ります。このことは、調理場の シェフが作業を分担し、すべてのお客の注文料理を準備することに相当します。 客達がテーブルにつき食事以外のことに関心を向けている間、シェフが調理場で料 理に専念するように、MVS はシステムのバックグラウンドで実行要求されたジョブ を完了させます。この場合、MVS はあなたと他のユーザーがフォアグラウンドで他 の活動を継続して行えるようにします。 ウェイターがシェフの作った料理をあなたのもとに運ぶことは、JES がジョブの出 力をあなたに示すことに相当します。 図 1 は、ジョブの実行要求の過程を示したものです。ユーザーの処置は図の左側の 部分、システムの処置は図の右側の部分に相当します。この図では、MVS と JES がシステムを構成しています。この章の後の部分では、MVS と JES 並びに JES の 2 つの版 (JES2 と JES3) を互いに区別します。 図 1. JCL 関連の処置 (ユーザーと MVS) 8 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) ジョブ制御ステートメント 実行依頼するどのジョブについても、該当の入力を見つけ出す場所、その入力の処 理法 (実行するプログラムは何かということ)、結果の出力の処理法を MVS に伝え ることが必要です。 この情報を MVS に伝えるには、JCL を使用し、ジョブ制御ステートメントとして 知られている一連のステートメントを使用します。JCL のセットであるジョブ制御 ステートメントはかなり大きなものであり、これを使用して MVS に大量の情報を 与えることができます。 ただし、大部分のジョブは小さな限られたサブセットの制御ステートメントを使用 して実行できます。よく実行するジョブの特性が分れば、あとは一部の制御ステー トメントの詳細を知るだけで十分なこともあります。 それぞれのジョブの中では、制御ステートメントはジョブ・ステップにまとめられ ます。1 つのジョブ・ステップは、1 つの プログラムの実行に必要なすべての制御 ステートメントで構成されます。ジョブで 2 つ以上のプログラムを実行する必要が ある場合、そのジョブにはプログラムごとに異なるジョブ・ステップを構成しま す。 必須制御ステートメント どのジョブにも、少なくとも 次の 2 つのタイプの制御ステートメントを入れなけ ればなりません。 v JOB ステートメント 。ジョブの始めを示し、ジョブに名前を割り当てます。JOB ステートメントはセキュリティー、アカウンティング、および識別情報を含めた 所定の管理情報を提供するためにも使用します。どのジョブでも、JOB ステート メントはただ 1 つ だけです。 v EXEC (実行) ステートメント 。ジョブ・ステップの始めを示し、ジョブ・ステッ プに名前を割り当て、このジョブ・ステップで実行されるプログラムまたはプロ シージャーを識別します。EXEC ステートメントには各種のパラメーターを付け 加え、プログラムの実行方法をカスタマイズすることができます。どのジョブに も、少なくとも 1 つ の EXEC ステートメントがあります。 大部分のジョブには、JOB ステートメントと EXEC ステートメントの他に、次の ステートメントが入っています。 v 1 つまたは複数の DD (データ定義) ステートメント 。ジョブ・ステップで使用 される入出力データを識別し、記述します。DD ステートメントを使用して、事 前作成のデータ・セットの要求、新規データ・セットの定義、一時データ・セッ トの定義、または出力特性の定義と指定を行うことができます。 第 1 章では、ジョブ制御ステートメントの全セットを一覧表にしてあります。 練習 : ジョブの作成と入力 下記の練習には、制御ステートメントの基本セットをグループにまとめて 1 つのジ ョブ内の 1 つのジョブ・ステップにする方法、ジョブの実行依頼の仕方、および結 果の出力の解釈の方法を示します。 第 2 章 はじめに - ジョブ制御言語 (JCL) 9 はじめに - ジョブ制御言語 (JCL) 始める前に どんなジョブでも、作成するには次のことを確認しておく必要があります。 v ご使用のシステムでのきまり。どのジョブに対しても必要となるものは、特定の アカウンティング情報と識別情報です。この情報の指定の方法は、MVS のご使用 のシステムごとに異ります。 JCL を正しく実行依頼するためには、ご使用のシステムでの取り決め事項を確認 しておく必要があります。 この章の最後 ( 20 ページの『ご使用のシステムでの取り決め事項のワークシー ト』を参照) に、これらの情報を文書化する際の手引きとなるワークシートを載 せてあります。ワークシート上の取り決め事項を確認するには、ご使用のシステ ムに詳しい担当者に問い合わせることも必要となるでしょう。 v データ・セットの割り振りと編集の方法。 練習段階では必要に応じて後で変更 し、再使用することができるように、JCL ステートメントを入力してデータ・セ ットに入れます。したがって、ご使用の MVS システムに特有の要件に応じてデ ータ・セットの割り振りと編集を行うために、ISPF パネルの使用法 (または同等 の技法) について知っておくことが必要です。詳細については、 21 ページの 『ISPF を使用したデータ・セットの割り振りと編集』を参照してください。 注: 1. プログラミングの一般的な慣例として、JCL を含む任意のデータ・セットに は、userid.SORT.JCL のように、JCL で終わる名前を付けます。 2. JCL を入れるデータ・セットは、固定ブロック形式 (RECFM=FB) とし、論理 レコード長を 80 (LRECL=80) にしなければなりません。 v 実行するジョブと必要なリソース。ここで、MVS に実行させたい作業を決める必 要があります。決めることは次のとおりです。 – どんな入力 (リソース) が必要か、入力 (リソース) はどこにあるか。 – どんなプログラムを使用するのか。 – 出力がある場合、その宛先をどこにするのか。(ジョブの終了時には出力を破棄 するか、後の印刷または表示に備えて保留しておきます。) この練習のジョブは簡単なファイルをソートし、その内容をアルファベット順に リストします。入力、出力、および処理については、すでに決められているもの とします。したがって、 11 ページの『ステップ 2: JCL データ・セットの編集と 必要な JCL の追加』の段階で行うべきことは、提供されているサンプル・コード をコピーすることだけです。 v 保留された出力の表示と解釈。ジョブの実行に伴い次の 3 種類の出力が作り出さ れます。 – システム・メッセージ (JES と MVS) – 拡張されたプロシージャー、適用されたオーバーライド、および変換済みの記 号が入った JCL コード – JCL コードで要求した出力 保留した出力は表示、印刷、または除去することができます。 22 ページの 『SDSF を使用したジョブの保留出力の表示』には、SDSF を使用して JCL 出力 を表示する方法を説明します。 10 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 14 ページの『ステップ 4: ジョブの出力の表示および解釈』 と 16 ページの 『ステップ 6: 最終出力の表示および解釈』 の例では、練習の結果である出力を 示し、出力のそれぞれの部分が意味することを説明します。 ステップ 1: JCL を入れるデータ・セットの割り振り ISPF (または同等の機能) を使用して、固定ブロック形式 (RECFM=FB) で、論理レ コード長が 80 (LRECL=80) の、userid.SORT.JCL (userid は TSO ユーザー ID) と いう名前のデータ・セットを割り振ります。 この割り振りの方法がわからないときには、 21 ページの『ISPF を使用したデー タ・セットの割り振りと編集』を参照してください。 ステップ 2: JCL データ・セットの編集と必要な JCL の追加 ISPF (または同等の機能) を使用して、割り振りを終えたデータ・セットを編集しま す。 次の JCL ステートメントをデータ・セットに入力してください。 JCL ステートメ ントは、すべて特殊な識別子である // で始めるということに注意してください。 //SORT JOB ’accounting_data’, 1 // ’user_name’, 2 // NOTIFY=&SYSUID, 3 // MSGCLASS=message_class, 4 // MSGLEVEL=(1,1), 5 // CLASS=n, 6 //STEP1 EXEC PGM=IEFBR14 7 //SORTIN DD * 8 NEPTUNE 9 PLUTO EARTH VENUS MERCURY MARS URANUS SATURN JUPITER /* 10 //SORTOUT DD SYSOUT=* 11 /* 12 上記の JCL コードについて説明します。 1 20 ページの『ご使用のシステムでの取り決め事項のワークシート』に記入 した事項を参照しながら、accounting_data (アカウンティング・データ) を 適切なセキュリティー区分と識別情報に置き換えてください。 2 user_name (ユーザー名) を自分の名前に置き換えてください。 3 NOTIFY= はシステムに「ジョブ完了」情報の宛先を伝えるものです。 &SYSUID は、ユーザーのユーザー ID をここに自動的に挿入するようにシ ステムに指示するものです。これで、情報はユーザーに送られることになり ます。 4 MSGCLASS= は、システムがジョブの処理時に、ユーザーに送るメッセー ジの処理方法をシステムに指示するものです。たとえば、保留出力クラスを 使用して、後でメッセージを表示できるようにします。message_class (メッ 第 2 章 はじめに - ジョブ制御言語 (JCL) 11 はじめに - ジョブ制御言語 (JCL) セージ・クラス) を適切なメッセージ・クラス値に置き換えてください。適 切な値については、 20 ページの『ご使用のシステムでの取り決め事項のワ ークシート』を参照してください。 5 MSGLEVEL=(1,1) は、この JCL コードを出力の中に再作成することと、割 り振りメッセージを含めることを、システムに指示します。 6 CLASS=n はジョブのシステム・リソース要件を示します。適切な値につい ては、 20 ページの『ご使用のシステムでの取り決め事項のワークシート』 を参照してください。 7 この EXEC ステートメントは、プログラム IEFBR14 を呼び出し、このジ ョブの中の最初の (しかも唯一の) ジョブ・ステップを示します。ここで は、ジョブ・ステップの名前を任意に STEP1 としています。EXEC ステー トメントに続く制御ステートメント (次の EXEC ステートメントがあれ ば、その EXEC ステートメントまで) はすべて、このジョブ・ステップの 一部です。 IEFBR14 は、MVS システム内のプログラムの名前です。このプログラム は、実際にはデータを処理することはありません。このプログラムは、テス ト目的でこのジョブを実行し、JCL ステートメントを検査できるようにする ほか、入力データを作成できるようにします。この練習では、後で IEFBR14 を置き換えて、データをソートする他のプログラムの名前に変え ます。 8 SORTIN は、入力データを記述する DD ステートメントに指定した名前で す。 9 NEPTUNE から JUPITER まではソートの対象となる項目です。このような 方式でプログラムに与えるデータのことを、ストリーム内 データと呼びま す。これは、別に割り振られたデータ・セットの中にデータを準備する方式 の代替と考えられます。 10 /* は入力データ・ストリームの終わりを示します。 11 SORTOUT は、ジョブの実行結果である出力が置かれる場所を記述する DD ステートメントに指定した名前です。この例では、SYSOUT=* は出力デー タが MSGCLASS ステートメントで定義される SYSOUT 装置に向けられる ということを指定しています。 12 /* (任意指定) はジョブの終わりを示します。 各 JCL ステートメントと構文上の要件についての詳細は、z/OS MVS JCL 解説書 を参照してください。 ステップ 3: JCL をジョブとしてシステムに実行を依頼する JCL をデータ・セットに入れた後で、ISPF EDIT コマンド行または TSO/E コマン ド行から、あるいは READY モード・メッセージの後で SUBMIT コマンドを入力 して、ジョブの実行を要求します。以上の 3 種類の入力方法は次のとおりです。 v ISPF EDIT コマンド行 : 12 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) EDIT ---- userid.SORT.JCL -------------------------- LINE 00000000 COL 001 080 COMMAND ===> SUBMIT SCROLL ===> CSR ********************************* TOP OF DATA ******************************** //userid JOB ’accounting data’, . . . v TSO/E コマンド行 : ------------------------- TSO COMMAND PROCESSOR ENTER TSO COMMAND OR CLIST BELOW: ---------------------------- ===> SUBMIT ’userid.SORT.JCL’ ENTER SESSION MANAGER MODE ===> NO (YES or NO) v READY モード・メッセージの後 : . . . READY SUBMIT ’userid.SORT.JCL’ 注: TSO コマンド行から、または READY メッセージが出された後でこのコマ ンドを入力するときには、ユーザー ID を含める場合、単一引用符でデー タ・セット名を囲まなければなりません。ただし、次に示すように、ユーザ ー ID を指定せず、単一引用符も使用しないでこのコマンドを入力すること もできます。 SUBMIT SORT.JCL ユーザー ID を指定せず、単一引用符も使用しないときには、システムがデ ータ・セット名の前に自動的にユーザー ID を挿入します。(ユーザー ID の 挿入は、現行ジョブの間だけのものです。データ・セット名に対する永続的 な変更ではありません。) コマンドを入力すると、ジョブの実行要求が正しく行われたことを示す次のメッセ ージが表示されます。 v ISPF EDIT コマンド行からの実行要求時 : EDIT ---- userid.SORT.JCL -------------------------- LINE 00000000 COL 001 080 COMMAND ===> SUBMIT SCROLL ===> CSR ********************************* TOP OF DATA ******************************** //userid JOB ’accounting data’, . . . JOB jobname(jobnumber) SUBMITTED *** v TSO コマンド行からの実行要求時 : 第 2 章 はじめに - ジョブ制御言語 (JCL) 13 はじめに - ジョブ制御言語 (JCL) ------------------------- TSO COMMAND PROCESSOR ENTER TSO COMMAND OR CLIST BELOW: ----------- ===> SUBMIT ’userid.SORT.JCL’ ENTER SESSION MANAGER MODE ===> NO JOB jobname(jobnumber) SUBMITTED *** (YES or NO) v READY モード・メッセージ後の実行要求時 : . . . READY SUBMIT ’userid.SORT.JCL’ . . . JOB jobname(jobnumber) SUBMITTED *** . . READY ジョブの終了時には、ジョブの完了、JCL エラー、またはプログラムの異常終了の 3 つの状態のうちの 1 つを示すメッセージが表示されます。メッセージがエラーま たは異常終了を示している場合には、この練習のステップ 2 とステップ 3 を調べ て、指示どおりに入力したかどうかを確認してから、ジョブの実行要求を再度行っ てください。 それでもなおジョブが失敗するときには、場合に応じて次に示す資料で原因を確か めてください。 メッセージが HASP で始まる場合は、JES2 によりジョブが失敗しました。詳 細については、z/OS JES2 メッセージ を参照してください。 メッセージが IAT で始まる場合は、JES3 によりジョブが失敗しました。詳細に ついては、z/OS JES3 Messages を参照してください。 ステップ 4: ジョブの出力の表示および解釈 ご使用のシステムの表示機能 (たとえば SDSF) を使用して出力を表示し、ジョブが 正常終了したかどうかを判別します。(SDSF を使用して出力を表示する方法が分ら ない場合には、 22 ページの『SDSF を使用したジョブの保留出力の表示』を参照し てください。) ジョブが保留キューの中で保留状態になっている場合は、ジョブ活動の記録を印刷 してみてください。 14 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 1 0 J E S 2 J O B L O G -- S Y S T E M A Q T S -- N O D E P L P S C ----| 15.21.28 JOB17653 IRR010I USERID userid IS ASSIGNED TO THIS JOB. | 15.21.28 JOB17653 ICH70001I userid LAST ACCESS AT 15:21:28 ON WEDNESDAY, OCTOBER 13, 1996 | 15.21.28 JOB17653 $HASP373 SORT STARTED - INIT 9 - CLASS 5 - SYS AQTS | 15.21.28 JOB17653 IEF403I SORT - STARTED - TIME=15.21.28 | 15.21.28 JOB17653 - ============================================================================================================== | 15.21.28 JOB17653 REGION --- STEP TIMINGS ------PAGING COUNTS---|--- 1 15.21.28 JOB17653 - STEPNAME PROCSTEP PGMNAME CC USED CPU TIME ELAPSED TIME EXCP SERV PAGE SWAP VIO SWAPS | 15.21.28 JOB17653 - STEP1 IEFBR14 00 4K 00:00:00.01 00:00:00.03 1 211 0 0 0 0 | 15.21.28 JOB17653 IEF404I SORT - ENDED - TIME=15.21.28 | 15.21.28 JOB17653 - ============================================================================================================== | 15.21.28 JOB17653 - NAME-user_name TOTALS: CPU TIME= 00:00:00.01 ELAPSED TIME= 00:00:00.05 SERVICE UNITS= 21 | 15.21.28 JOB17653 - ============================================================================================================== | 15.21.28 JOB17653 $HASP395 SORT ENDED ----| 0------ JES2 JOB STATISTICS ---------| - 13 OCT 1996 JOB EXECUTION DATE | 20 CARDS READ | 45 SYSOUT PRINT RECORDS |--- 2 0 SYSOUT PUNCH RECORDS | 3 SYSOUT SPOOL KBYTES | 0.00 MINUTES EXECUTION TIME ----| 1 //SORT JOB ’662282,D58,9211064,S=C’, JOB17653 ----| // ’user_name’, | // NOTIFY=userid, | // MSGCLASS=H, 00280009 | // MSGLEVEL=(1,1), 00430010 |--- 3 // CLASS=5 00430010 | 2 //STEP1 EXEC PGM=IEFBR14 | 3 //SORTIN DD * | 4 //SORTOUT DD SYSOUT=* | 5 //SYSIN DD * GENERATED STATEMENT ----| ICH70001I userid LAST ACCESS AT 15:21:28 ON WEDNESDAY, OCTOBER 13, 1996 ----| IEF236I ALLOC. FOR SORT STEP1 | IEF237I JES2 ALLOCATED TO DATAIN | IEF237I JES2 ALLOCATED TO SYSIN | IEF142I SORT STEP1 - STEP WAS EXECUTED - COND CODE 0000 4 | IEF285I IEF285I IEF285I IEF373I IEF374I IEF375I IEF376I userid.SORT.JOB17653.D0000101.? SYSIN userid.SORT.JOB17653.D0000103.? SYSOUT userid.SORT.JOB17653.D0000102.? SYSIN STEP /STEP1 / START 1996286.1521 STEP /STEP1 / STOP 1996286.1521 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC VIRT JOB /SORT / START 1996286.1521 JOB /SORT / STOP 1996286.1521 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC 4K SYS 180K EXT 4K SYS |--- 5 | | | 9424K | | ----| 図 2. IEFBR14 プログラムを呼び出したジョブの出力 図 2は、この練習での保留出力の例を示したものです。次に、この出力の各部分につ いて説明します。 1 は、ご使用のシステムに特有のものであり、必ずしもこのようになるとは限 りません。 2 は、ジョブに関する JES メッセージを示します。 3 は、ジョブの結果である JCL ステートメントを示します。 4 では、条件コード 0000 が、プログラムが正常に実行されたことを示しま す。ジョブの中のステップごとに 1 つの条件コードが示されます。条件コード が 0 以外の場合には、呼び出した特定のプログラムに関する資料を参照してく ださい。 5 は、ジョブの処理に伴うシステム出力メッセージを示します。IEFBR14 の 詳細については、 107 ページの『テストにおける IEFBR14 プログラムの使用方 法』を参照してください。 ステップ 5: JCL の変更 ジョブが正しく実行されたときには、JCL が入っているデータ・セットを編集し、 制御ステートメントを次に示すとおりに変更もしくは追加します。 第 2 章 はじめに - ジョブ制御言語 (JCL) 15 はじめに - ジョブ制御言語 (JCL) //SORT JOB ’accounting_data’, // ’user_name’, // NOTIFY=&SYSUID, // MSGCLASS=H, // MSGLEVEL=(1,1), // CLASS=5 //STEP1 EXEC PGM=SORT 1 //SYSIN DD * SORT FIELDS=(1,75,CH,A) 2 /* //SYSOUT DD SYSOUT=* 3 //SORTIN DD * NEPTUNE PLUTO EARTH VENUS MERCURY MARS URANUS SATURN JUPITER /* //SORTOUT DD SYSOUT=* /* 1 プログラム名をソート・プログラムの名前に置き換えます。このジョブで は、SORT が SORTIN DD ステートメントで識別される入力データをソー トします。 2 SYSIN 制御ステートメントを追加します。SYSIN は行いたいソートの方法 を指定するものです。ここでは、1 桁目から 75 桁目までフィールドの文字 を昇順にソートします。 3 SYSOUT 制御ステートメントを追加します。SYSOUT には、SORT がその メッセージを書き込むデータ・セットを指定します。SYSOUT データ・セ ットは、システムが処理する出力データ・セットです。このデータ・セット は、一時的に直接アクセス記憶装置に置かれます。システムは、後でそのデ ータ・セットを印刷するか、または指定したロケーションに送ります。 データ・セットへの JCL の入力が終われば、 12 ページの『ステップ 3: JCL をジ ョブとしてシステムに実行を依頼する』で行ったようにジョブの実行を要求してく ださい。 ステップ 6: 最終出力の表示および解釈 14 ページの『ステップ 4: ジョブの出力の表示および解釈』で行ったように、出力 を表示します。 17 ページの図 3 は、完成した練習用の保留出力の例を示したものです。次に、この 出力の各部分について説明します。 16 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 1 0 J E S 2 J O B L O G -- S Y S T E M A Q T S -- N O D E P L P S C ----| 13.40.27 JOB06572 IRR010I USERID ’userid’ IS ASSIGNED TO THIS JOB. | 13.40.27 JOB06572 ICH70001I ’userid’ LAST ACCESS AT 13:39:20 ON MONDAY, NOVEMBER 15, 1996 | 13.40.27 JOB06572 $HASP373 SORT STARTED - INIT 9 - CLASS 5 - SYS AQTS | 13.40.27 JOB06572 IEF403I SORT - STARTED - TIME=13.40.27 | 13.40.28 JOB06572 - ============================================================================================================== | 13.40.28 JOB06572 REGION --- STEP TIMINGS ------PAGING COUNTS---|--13.40.28 JOB06572 - STEPNAME PROCSTEP PGMNAME CC USED CPU TIME ELAPSED TIME EXCP SERV PAGE SWAP VIO SWAPS | 13.40.28 JOB06572 - STEP1 SORT 00 576K 00:00:00.03 00:00:00.15 20 1614 0 0 0 0 | 13.40.28 JOB06572 IEF404I SORT - ENDED - TIME=13.40.28 | 13.40.28 JOB06572 - ============================================================================================================== | 13.40.28 JOB06572 - NAME-’user name’ TOTALS: CPU TIME= 00:00:00.03 ELAPSED TIME= 00:00:00.16 SERVICE UNITS= 1614 | 13.40.28 JOB06572 - ============================================================================================================== | 13.40.28 JOB06572 $HASP395 SORT ENDED ----| 0------ JES2 JOB STATISTICS ---------| - 15 NOV 1996 JOB EXECUTION DATE | 25 CARDS READ | 81 SYSOUT PRINT RECORDS |--0 SYSOUT PUNCH RECORDS | 4 SYSOUT SPOOL KBYTES | 0.00 MINUTES EXECUTION TIME ----| 1 //SORT JOB ’accounting data’, JOB06572 ----| // ’userid’, | // NOTIFY=&SYSUID, | // MSGCLASS=H, | // MSGLEVEL=(1,1), | // CLASS=5 |--2 //STEP1 EXEC PGM=SORT | 3 //SYSIN DD * | 4 //SYSOUT DD SYSOUT=* | 5 //SORTIN DD * | 6 //SORTOUT DD SYSOUT=* | /* ----| ICH70001I ’userid’ LAST ACCESS AT 13:39:20 ON MONDAY, NOVEMBER 15, 1996 ----| IEF236I ALLOC. FOR SORT STEP1 | IEF237I JES2 ALLOCATED TO SYSIN | IEF237I JES2 ALLOCATED TO SYSOUT | IEF237I JES2 ALLOCATED TO SORTIN | IEF237I JES2 ALLOCATED TO SORTOUT | IEF142I SORT STEP1 - STEP WAS EXECUTED - COND CODE 0000 5 | IEF285I userid.SORT.JOB06572.D0000101.? SYSIN | IEF285I userid.SORT.JOB06572.D0000103.? SYSOUT | IEF285I userid.SORT.JOB06572.D0000102.? SYSIN | IEF285I userid.SORT.JOB06572.D0000104.? SYSOUT | IEF373I STEP /STEP1 / START 1996319.1340 | IEF374I STEP /STEP1 / STOP 1996319.1340 CPU 0MIN 00.03SEC SRB 0MIN 00.00SEC VIRT 576K SYS 188K EXT 4096K SYS 9444K | IEF375I JOB /SORT / START 1996319.1340 | IEF376I JOB /SORT / STOP 1996319.1340 CPU 0MIN 00.03SEC SRB 0MIN 00.00SEC | 1ICE143I 0 BLOCKSET SORT TECHNIQUE SELECTED |--ICE000I 1 --- CONTROL STATEMENTS/MESSAGES ---- 5740-SM1 REL 12.0 ---- 13.40.28 NOV 15, 1996 -| 0 SORT FIELDS=(1,75,CH,A) | ICE088I 1 SORT .STEP1 . , INPUT LRECL = 80, BLKSIZE = 80, TYPE = F | ICE093I 0 MAIN STORAGE = (MAX,4194304,4194304) | ICE156I 0 MAIN STORAGE ABOVE 16MB = (3624960,3624960) | ICE128I 0 OPTIONS: SIZE=4194304,MAXLIM=1048576,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=SYSOUT | ICE129I 0 OPTIONS: VIO=N,RESDNT=ALL ,SMF=NO ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N ,ABCODE=MSG | ICE130I 0 OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,STIMER=Y,COBEXIT=COB1 | ICE131I 0 OPTIONS: TMAXLIM=4194304,ARESALL=0,ARESINV=0,OVERRGN=65536,EXCPVR=NONE ,CINV=Y,CFW=Y | ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=N,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N | ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL ,DSPSIZE=MAX | ICE084I 0 BSAM ACCESS METHOD USED FOR SORTOUT | ICE084I 0 BSAM ACCESS METHOD USED FOR SORTIN | ICE090I 0 OUTPUT LRECL = 80, BLKSIZE = 80, TYPE = F | ICE080I 0 IN MAIN STORAGE SORT | ICE055I 0 INSERT 0, DELETE 0 | ICE054I 0 RECORDS - IN: 9, OUT: 9 | ICE134I 0 NUMBER OF BYTES SORTED: 720 | ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES | ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES | ICE052I 0 END OF DFSORT ----| EARTH ----| JUPITER | MARS | MERCURY | NEPTUNE |--PLUTO | SATURN | URANUS | VENUS ---| 1 2 3 4 6 図 3. SORT プログラムを呼び出したジョブの出力 1 は、ご使用のシステムに特有のものであり、必ずしもこのようになるとは限 りません。 2 は、ジョブに関する JES メッセージを示します。 3 は、ジョブの結果である JCL リストを示します。 第 2 章 はじめに - ジョブ制御言語 (JCL) 17 はじめに - ジョブ制御言語 (JCL) 4 は、ジョブの処理に伴うシステム・メッセージを示します。 5 では、条件コード 0000 が、プログラムが正常に実行されたことを示しま す。ジョブの中のステップごとに 1 つの条件コードが示されます。条件コード が 0 以外の場合には、呼び出した特定のプログラム (この場合は、SORT) に関 する資料を参照してください。 6 には、SORT プログラムにより作り出された出力が示されます。 より複雑なジョブ ストリーム内プロシージャーとカタログ式プロシージャー ジョブの実行要求に関する経験が深まるにつれ、同じジョブ制御ステートメントの セットをほとんど、あるいは何も変更することなく、繰り返し使用することがよく あるということに気付くはずです。 繰り返し実行できるジョブ制御ステートメントのセットを用意すれば、時間を節約 し、エラーを防止することができます。これは、ストリーム内プロシージャーとカ タログ式プロシージャーの 2 種類のプロシージャーを使用して行うことができま す。 ストリーム内プロシージャー ストリーム内プロシージャーとは、ジョブの中にある、名前の付けられたジョブ制 御ステートメントのセットのことです。このセットは、そのプロシージャー名を呼 び出すだけで、そのジョブ内で 繰り返し実行することができます。したがってこの プロシージャーを使用すれば、同じジョブ内で制御ステートメントのセットを 2 回 以上、繰り返し指定する必要もなく実行できます。 表 3 は、ストリーム内プロシージャーを含むジョブを示したものです。プロシージ ャーは、名前が PTEST であり、PEND ステートメントで終わります。 表 3. ストリーム内プロシージャー ジョブ制御ステートメント //JOB1 JOB CT1492,’JIM MOSER’ //PTEST PROC //PSTA EXEC PGM=CALC //DDA DD DSNAME=D.E.F,DISP=OLD //DDB DD DSNAME=DATA1,DISP=(MOD,PASS) //DDOUT DD SYSOUT=* //PSTB EXEC PGM=PRNT //DDC DD DSNAME=*.PSTA.DDB,DISP=OLD //DDREP DD SYSOUT=A // PEND //STEP1 EXEC PROC=PTEST //PSTA.IN DD * . (data) . /* 説明 ジョブを開始します。 ストリーム内プロシージャーを開始します。 プロシージャー中の最初のステップを示します。 最初のプロシージャー・ステップ用に 3 つのデータ・セ ットを要求します。 プロシージャー中の 2 番目のステップを示します。 2 番目のプロシージャー・ステップ用に 2 つのデータ・ セットを要求します。 ストリーム内プロシージャーを終了します。 JOB1 の最初のステップ。プロシージャーを実行します。 ストリーム内データをプロシージャー・ステップ PSTA に追加します。 注: どのジョブでも、その中に指定できるストリーム内プロシージャーは、最大 15 個です。 18 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) カタログ式プロシージャー カタログ式プロシージャーとは、ストリーム内プロシージャーと同じく、名前の付 けられたジョブ制御ステートメントのセットのことです。ただし、これらのジョブ 制御ステートメントは、プロシージャー・ライブラリーと呼ばれる区分データ・セ ット (PDS) または拡張区分データ・セット (PDSE) の中に置かれるか、カタログさ れています。これにより、カタログ式プロシージャーをどのジョブからも 呼び出す ことが可能です。 カタログ式プロシージャーは、システム・プロシージャー・ライブラリー SYS1.PROCLIB に、あるいはユーザー指定の任意のプロシージャー・ライブラリー (たとえば、JCLLIB) に入れておくことができます。プロシージャー・ライブラリー の補足情報については、z/OS MVS JCL 解説書 を参照してください。 表 4 は、MYPROC という名前のカタログ式プロシージャーの例を示したもので す。表 5 は、MYPROC を実行するジョブの例を示したものです。 表 4. カタログ式プロシージャー : SYS1.PROCLIB 中のメンバー MYPROC ジョブ制御ステートメント //MYPROC PROC //MY1 EXEC PGM=WORK1 //MYDDA DD SYSOUT=A //MYDDB DD SYSOUT=* //MY2 EXEC PGM=TEXT5 //MYDDC DD DSNAME=F.G.H,DISP=OLD //MYDDE DD SYSOUT=* // PEND 説明 カタログ式プロシージャーを開始します。 プロシージャー中の最初のステップを示します。 最初のプロシージャー・ステップ用に 2 つのデータ・セ ットを要求します。 プロシージャー中の 2 番目のステップを示します。 2 番目のプロシージャー・ステップ用に 2 つのデータ・ セットを要求します。 プロシージャーの終わりを示します。 表 5. カタログ式プロシージャー MYPROC を実行するジョブ ジョブ制御ステートメント //JOB2 JOB ,’JACKIE DIGIAN’ //STEPA EXEC PROC=MYPROC //MY2.MYDDC DD DISP=(OLD,DELETE) 説明 ジョブを開始します。 JOB2 の最初のステップ。プロシージャーを実行します。 プロシージャー・ステップ MY2 中の、DD ステートメン ト MYDDC を変更します。 注: プロシージャーをカタログする前に、まずそれをストリーム内プロシージャー としてテストしてください。 入力ストリーム いくつかのステップをグループにして、1 つのジョブにすることができますが、同 様にいくつかのジョブをグループにして、1 つの入力ストリームにすることができ ます。ジョブはいつでも一続きに置かれ、1 台の入力装置を介して入力されます が、そのような一連のジョブは入力ストリームと見なされます。入力装置は端末装 置でもよく、磁気テープ装置や直接アクセス装置でもかまいません。 20 ページの表 6 は、3 つのジョブから成る入力ストリームが入っているデータ・セ ットを示したものです。 第 2 章 はじめに - ジョブ制御言語 (JCL) 19 はじめに - ジョブ制御言語 (JCL) 表 6. 3 つのジョブから成る入力ストリーム内でのジョブの境界 ジョブ制御ステートメント ジョブ 1 ジョブ 2 ジョブ 3 説明 1 番目のジョブ //JOB1 //STEP1 //DDA //DDB //JOB2 //STEPA //DD1 JOB AT45,’GARY PUCHKOFF’ EXEC PGM=A33 DD DSNAME=CATDS,DISP=OLD DD SYSOUT=A JOB AT87,’JAN BUSKIRK’ EXEC PGM=REP DD * . (データ) . //DD2 DD SYSOUT=C //JOB3 JOB 1726,’MARK LAMAN’ //ST1 EXEC PGM=ADDER //DDIN DD DATA . (データ) . /* //DDOUT DD SYSOUT=A 2 番目のジョブ 3 番目のジョブ 追加情報 ご使用のシステムでの取り決め事項のワークシート このワークシートを使用して、MVS ご使用のシステムに適用する取り決め事項を確 認してください。取り決め事項は文書化しておくと、ご使用のシステムが受け入れ る JCL データ・セットを作成する場合に役立ちます。ワークシート上の取り決め事 項を確認するには、ご使用のシステムに詳しい担当者に問い合わせることも必要と なるでしょう。 取り決め事項 ご使用のシステム固有の属性 ジョブ入力サブシステム (JES2/JES3) データ・セット編集プログラム セキュリティー要件 ボリューム通し番号 総称装置 スペース単位 1 次割り振り量 2 次割り振り量 データ・セットの割り振り ディレクトリー・ブロック レコード・フォーマット 固定ブロック (RECFM=FB) 論理レコード長 80 (LRECL=80) ブロック・サイズ v 0 (順次データ・セットの場合) v >0 (区分データ・セットの場合) 20 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 取り決め事項 ご使用のシステム固有の属性 アカウンティング・データ ジョブ情報および要件 メッセージ・クラス 入力処理情報 出力処理情報 ISPF を使用したデータ・セットの割り振りと編集 ここでは ISPF を使用してデータ・セットを割り振り、編集し、その中に JCL 制御 ステートメントを入れる方法について説明します。 注: ISPF 画面は、MVS システムごとに多少異なることもあります。 1. ISPF Primary Option (基本オプション) メニュー上で適切な項目を選択して、 Data Set Utility (データ・セット・ユーティリティー) メニューを表示します。 2. Data Set Utility (データ・セット・ユーティリティー) メニュー上でオプション A (新規データ・セットの割り振り) を選択してから、次のステップ 3 で示して いるように、データ・セット名を入力します。この場合、userid の部分を自分の ユーザー ID に置き換えてください。 ---------------------------OPTION == A DATA SET UTILITY A - Allocate new data set R - Rename entire data set D - Delete entire data set blank - Data set information C U S M ----------------------------- - Catalog data set Uncatalog data set Data set information (short) Enhanced data set allocation ISPF LIBRARY: PROJECT ===> GROUP ===> TYPE ===> OTHER PARTITIONED OR SEQUENTIAL DATA SET: DATA SET NAME ===> ’userid.SORT.JCL’ VOLUME SERIAL ===> (If not cataloged, required for option "C) DATA SET PASSWORD ===> (If password protected) 3. Allocate New Data Set (新規データ・セットの割り振り) メニュー上で、次の例 で示しているフィールドに入力します。この場合、 20 ページの『ご使用のシス テムでの取り決め事項のワークシート』に記入した内容に従って volser、unit、 および size を適切な値に変えてください。 第 2 章 はじめに - ジョブ制御言語 (JCL) 21 はじめに - ジョブ制御言語 (JCL) ---------------------COMMAND ===> ALLOCATE NEW DATA SET -------------------------------- DATA SET NAME: userid.SORT.JCL VOLUME SERIAL GENERIC UNIT SPACE UNITS PRIMARY QUANTITY SECONDARY QUANTITY DIRECTORY BLOCKS RECORD FORMAT RECORD LENGTH BLOCK SIZE EXPIRATION DATE ===> ===> ===> ===> ===> ===> ===> ===> ===> ===> volser unit 1 1 0 FB 80 size (Blank for authorized default volume) * (Generic group name or unit address) * (BLKS, TRKS, or CYLS) (In above units) (In above units) (Zero for sequential data set) (YY/MM/DD, YYYY/MM/DD YY.DDD, YYYY.DDD in Julian form DDDD for retention period in days or blank) ( * Only one of these fields may be specified) 4. メッセージの 『DATA SET ALLOCATED (データ・セットが割り振られまし た)』 は、割り振りが完了したことを示します。 ---------------------------- DATA SET UTILITY ----------- DATA SET ALLOCATED 5. ISPF を使用して、割り振られたデータ・セットを編集し、そのデータ・セット に JCL 制御ステートメントを入れます。 EDIT ---- userid.SORT.JCL ------------------------------------ COLUMNS 001 072 COMMAND ===> SCROLL ===> CSR ****** ***************************** TOP OF DATA ****************************** ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ’ ****** **************************** BOTTOM OF DATA **************************** 6. JCL ジョブの作成と入力の練習をしている場合は、ここで 11 ページの『ステッ プ 2: JCL データ・セットの編集と必要な JCL の追加』に戻ってください。 SDSF を使用したジョブの保留出力の表示 ここでは、JES2 システムとともに SDSF を使用してジョブの出力を表示する方法 について説明します。 注: SDSF 画面は、JES2 の個々のご使用のシステムで多少異なることもあります。 JES3 を使用している場合には、出力を表示するために (E)JES または同等のツ ールが使用できます。 22 z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 1. SDSF Primary Option Menu (基本オプション・メニュー) を表示し、オプシ ョンの H を選択します。 V1R4M0 NZ06 ------------COMMAND INPUT ===> H SDSF PRIMARY OPTION MENU ------------------------SCROLL ===> PAGE Type an option or command and press Enter. DA I O H ST - Display Display Display Display Display active users of the system jobs in the JES2 input queue jobs in the JES2 output queue jobs in the JES2 held output queue status of jobs in the JES2 queues TUTOR END - Short course on SDSF (ISPF only) - Exit SDSF Licensed Materials - Property of IBM 5665-488 (C) Copyright IBM Corp. 1981, 1993. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 2. 個々のデータ・セットを表示するには、次のようにします。 a. SDSF Held Output Display All Classes (SDSF 保留出力全クラスの表示) 画面 で、出力データ・セットを表示したいジョブの左側に疑問符 (?) を指定しま す。 SDSF HELD OUTPUT DISPLAY ALL CLASSES 174 LINES LINE 1-2 (2) COMMAND INPUT ===> SCROLL ===> PAGE PREFIX=* DEST=(ALL) OWNER=userid NP JOBNAME JOBID OWNER PRTY C ODISP DEST TOT-REC TOT-P ? jobname JOB20482 userid 7 H HOLD LOCAL 87 jobname JOB20517 userid 7 H HOLD LOCAL 87 . . . b. SDSF Job Data Set Display (SDSF ジョブ・データ・セット表示) 画面で、表 示したいデータ・セットの名前の左側に英字の S を指定します。 SDSF JOB DATA SET DISPLAY - JOB useridS (JOB20482) COMMAND INPUT ===> PREFIX=* DEST=(ALL) OWNER=userid NP DDNAME STEPNAME PROCSTEP DSID OWNER C DEST S JESMSGLG JES2 2 userid H LOCAL JESJCL JES2 3 userid H LOCAL JESYSMSG JES2 4 userid H LOCAL SYSOUT SORT 103 userid H LOCAL SORTOUT SORT 104 userid H LOCAL LINE 1-5 (5) SCROLL ===> REC-CNT 22 6 28 22 9 注: この画面上で、 v JESMSGLG にはシステム・メッセージが入っています。 v JESJCL には拡張されたプロシージャー、適用されたオーバーライド、 および変換済みの記号が入った JCL が入っています。 v JESYSMSG には MVS システム・メッセージが入っています。 v SYSOUT にはこのジョブで実行されたプログラム (この場合は、 SORT) が生成したメッセージが入っています。 第 2 章 はじめに - ジョブ制御言語 (JCL) 23 はじめに - ジョブ制御言語 (JCL) v SORTOUT にはこのジョブで実行されたプログラム (この場合は、 SORT) が生成した出力が入っています。 c. システムは、選択されたデータ・セット (この場合は、JESMSGLG) を次のよ うに表示します。 1 0 J E S 2 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 15.21.28 211 15.21.28 15.21.28 J O B L O G -- S Y S T E M A Q T S -- N O D E P L P S C JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 JOB17653 IRR010I USERID userid IS ASSIGNED TO THIS JOB. ICH70001I userid LAST ACCESS AT 15:21:28 ON WEDNESDAY, OCTOBER 13, 1993 $HASP373 SORT STARTED - INIT 9 - CLASS 5 - SYS AQTS IEF403I SORT - STARTED - TIME=15.21.28 - ============================================================================================================== REGION --- STEP TIMINGS ------PAGING COUNTS---- STEPNAME PROCSTEP PGMNAME CC USED CPU TIME ELAPSED TIME EXCP SERV PAGE SWAP VIO SWAPS - STEP1 IEFBR14 00 4K 00:00:00.01 00:00:00.03 1 211 0 0 0 0 IEF404I SORT - ENDED - TIME=15.21.28 - ============================================================================================================== - NAME-user_name TOTALS: CPU TIME= 00:00:00.01 ELAPSED TIME= 00:00:00.05 SERVICE UNITS= JOB17653 JOB17653 - ============================================================================================================== $HASP395 SORT ENDED 3. 出力の全体を表示するには 、次のようにします。 a. SDSF Held Output Display All Classes (SDSF 保留出力全クラスの表示) 画面 で、表示したい出力のジョブの左側に英字の S を指定します。 SDSF HELD OUTPUT DISPLAY ALL CLASSES 174 LINES LINE 1-2 (2) COMMAND INPUT ===> SCROLL ===> PAGE PREFIX=* DEST=(ALL) OWNER=userid NP JOBNAME JOBID OWNER PRTY C ODISP DEST TOT-REC TOT-P S jobname JOB20482 userid 7 H HOLD LOCAL 87 jobname JOB20517 userid 7 H HOLD LOCAL 87 . . . b. 出力の全体を示す画面 ( 17 ページの図 3) が表示されます。 有用なユーティリティー 表 7 は、データ・セットを管理するいくつかの共通タスク、およびそれらのタスク の実行に使用できる IBM が提供するユーティリティーを一覧表にしたものです。 ユーティリティーの補足情報については、下記資料を参照してください。 v ISPF/PDF Guide and Reference v z/OS DFSMS カタログのためのアクセス方式サービス・プログラム v z/OS DFSMSdfp ユーティリティー v z/OS TSO/E ユーザーズ・ガイド 共通タスクおよびその他のシステム・タスクを実行するために、他のユーティリテ ィー・プログラムを使用することも可能です。 表 7. タスクおよびユーティリティー・プログラム 24 タスク ユーティリティー データ・セットの割り振り v TSO/E ALLOCATE コマンド v ISPF/PDF データ・セット・ユーティリテ ィー v アクセス方式サービスの ALLOCATE コマ ンド v JCL DD ステートメントの DISP=NEW パ ラメーター z/OS MVS JCL ユーザーズ・ガイド はじめに - ジョブ制御言語 (JCL) 表 7. タスクおよびユーティリティー・プログラム (続き) タスク ユーティリティー データ・セットの削除 v TSO/E DELETE コマンド v ISPF/PDF データ・セット・ユーティリテ ィー v アクセス方式サービスの DELETE コマン ド v JCL DD ステートメントの DISP=OLD,DELETE パラメーター データ・セットの比較 IEBCOMPR (DFSMSdfp) データ・セットのコピー IEBCOPY (DFSMSdfp) データ・セット内のレコードの削除 IEBUPDTE (DFSMSdfp) データ・セットの編集 / 印刷 / 穿孔 IEBPTPCH (DFSMSdfp) データ・セットへのレコードの挿入 IEBUPDTE (DFSMSdfp) データ・セットのマージ IEBCOPY (DFSMSdfp) データ・セットの変更 IEBUPDTE (DFSMSdfp) データ・セットの印刷 IEBPTPCH (DFSMSdfp) メンバー / データ・セットの名前変更 IEBCOPY (DFSMSdfp) データ・セットのスクラッチ IEHPROGM (DFSMSdfp) 第 2 章 はじめに - ジョブ制御言語 (JCL) 25 はじめに - ジョブ制御言語 (JCL) 26 z/OS MVS JCL ユーザーズ・ガイド 第 3 章 ジョブ制御タスク コンピューターでプログラムを実行し、そのプログラムに書かれた作業を行うに は、そのプログラムをユーザーのオペレーティング・システムで処理しなければな りません。 オペレーティング・システムは、ジョブ入力サブシステム (JES2 または JES3) がイ ンストールされている MVS 基本制御プログラム (BCP)、およびこれと一緒にイン ストールされている DFSMSdfp とから構成されています。 オペレーティング・システムがプログラムを処理できるようにするために、プログ ラマーは特定のジョブ制御タスクを実行する必要があります。これらのタスクは、 ジョブ制御ステートメントを介して実行されます。ジョブ制御ステートメントには 次のものがあります。 JCL ステートメント JES2 制御ステートメント JES3 制御ステートメント ジョブの入力 ジョブ・ステップ ユーザーはプログラムをジョブ・ステップとしてオペレーティング・システム (OS) に入力します。ジョブ・ステップは、プログラムの実行の要求と制御を行い、プロ グラムの実行に必要なリソースを要求するジョブ制御ステートメントで構成されま す。ジョブ・ステップは EXEC ステートメントによって識別されます。ジョブ・ス テップには、プログラムが必要とするデータを入れることもできます。オペレーテ ィング・システムは、レコードの内容によってジョブ制御ステートメントをデータ と区別します。 ジョブ ジョブは、関連するジョブ・ステップの集合体です。ジョブは JOB ステートメント によって識別されます。 入力ストリーム 連続して置かれ、1 つの入力装置を介して入力されたジョブは、入力ストリームを 形成します。オペレーティング・システムは入力ストリームを入出力装置または内 部読み取りプログラムからコンピューターに読み取ります。入力装置はカード読取 装置でもよく、磁気テープ装置や端末装置または直接アクセス装置でもかまいませ ん。内部読み取りプログラムとは、あたかも入力ストリームのようにプログラムか らシステムへ読み取られるバッファーのことです。 カタログ式プロシージャーとストリーム内プロシージャー 同じジョブ制御ステートメントのセットをほとんど、あるいは何も変更することな く、繰り返し使用することがよくあります。たとえば、プログラムをコンパイル、 アセンブル、リンク・エディット、実行するときなどです。時間を節約し、エラー © Copyright IBM Corp. 1988, 2004 27 タスク を防止するために、ジョブ制御ステートメントのセットを用意し、これらをプロシ ージャー・ライブラリーと呼ばれる区分データ・セット (PDS) または拡張区分デー タ・セット (PDSE) に入れたり、カタログすることができます。プロシージャー・ ライブラリーのデータ・セット属性は、SYS1.PROCLIB (レコード長が 80 でレコー ド・フォーマットが FB) と一致させてください。システムのプロシージャー・ライ ブラリーである SYS1.PROCLIB (またはご使用のシステム定義のプロシージャー・ ライブラリー) 内のこのようなジョブ制御ステートメントのセットは、カタログ式 プロシージャーと呼ばれます。 プロシージャーをカタログに配置する前にテストするには、そのプロシージャーを 入力ストリームに置いてそれを実行します。入力ストリーム内のプロシージャーは ストリーム内プロシージャーと呼ばれます。どのジョブでも、その中に指定できる ストリーム内プロシージャーは、最大 15 個です。 ジョブ内のステップ ジョブは、単純なものも複雑なものもあります。ジョブには、1 ステップのものも あれば、多くのストリーム内プロシージャーおよびカタログ式プロシージャーを呼 び出す多数のステップから成るものもあります。ジョブを構成するジョブ・ステッ プ数は、ジョブが呼び出すすべてのプロシージャー内のすべてのステップを含め、 最大 256 です。ステップの数をこれより多く指定すると JCL エラーになります。 ジョブの処理 オペレーティング・システムは数多くのジョブ制御タスクを自動的に実行します。 ユーザーが指定する JCL および JES2 または JES3 パラメーターによって、ジョブ の処理方法に影響を与えることができます。たとえば、ジョブ入力サブシステムは 実行のためジョブを選択しますが、ユーザーが指定するパラメーターによってジョ ブの選択を早めたり遅らせたりすることができます。 リソースの要求 データ・セット・リソース プログラムを実行するためには、データをプログラムに提供し、出力レコードをプ ログラムから受け取るのに必要なデータ・セットを要求しなければなりません。 SYSOUT データ・セット・リソース SYSOUT データ・セットは、システムが処理する出力データ・セットです。このデ ータ・セットは、一時的に直接アクセス記憶装置に置かれます。後で、システムは 都合のよい時にデータ・セットを印刷または穿孔するか、あるいは指定されたロケ ーションに送ります。SYSOUT データ・セットはシステムによって処理されるた め、プログラマーは数多くのパラメーターを指定してその処理を制御することがで きます。 28 z/OS MVS JCL ユーザーズ・ガイド タスク タスク図表 以下の図表は、z/OS MVS JCL ユーザーズ・ガイド で述べているジョブ制御タスク を、以下の 4 つのグループに分けてリストします。 v ジョブの入力 (表 8) v ジョブの処理 ( 31 ページの表 9) v データ・セット・リソースの要求 ( 31 ページの表 10) v SYSOUT データ・セット・リソースの要求 ( 33 ページの表 11) 各タスクについて、そのタスクを実行するときに使用できるパラメーターとステー トメントを図表にリストします。大半の場合、別のステートメントで別のパラメー ターを使用して、同じタスクを実行することができます。JOB ステートメントと EXEC ステートメントの両方に指定することができるパラメーターは、JOB ステー トメントに指定したときはジョブ全体に適用され、EXEC ステートメントに指定し たときはそのステップだけに適用されます。 システムは、ユーザーがさまざまな方法でいろいろなタイプのジョブ制御を実行で きるように設計されています。このような柔軟性を持たせるために必要なものは、 ジョブ入力の次の 2 つのタスクだけです。 v 識別 : ジョブは、JOB ステートメントの jobname フィールド で識別しなければ なりません。 v 実行 : 実行するプログラムまたはプロシージャーは、EXEC ステートメントの PGM または PROC パラメーターに指定しなければなりません。 したがって、下記のステートメントはジョブ制御タスクを実行する上で、最小限必 要なステートメントです。 //jobname JOB // EXEC {PGM=program-name } {PROC=procedure-name} {procedure-name} 表 8. ジョブを入力するためのタスク ジョブを 入力するための タスク ステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント /*NETACCT //*NETACCT /*JOBPARM に ROOM を指定 //*NETACCT に PNAME、 BLDG、 DEPT、 ROOM、お よび USERID を指定 識別 ジョブの jobname フィールド ステップの ヌル・ステートメント (JES3 のみ) stepname フィールド プロシージャーの PROC PEND INCLUDE グループの INCLUDE アカウントの JOB JES2 アカウンテ ィング情報にアカウン ティング情報または pano を指定 プログラマーの JOB JES2 アカウンテ ィング情報 USER に プログラマー名および 部屋を指定 ACCT 実行 プログラムの PGM プロシージャーの PROC 第 3 章 ジョブ制御タスク 29 タスク 表 8. ジョブを入力するためのタスク (続き) ジョブを 入力するための タスク 再始動およびチェック ポイント機能を使用し て再始動した場合 ステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL RESTART RD RD SYSCHK DD JES2 ステートメント JES3 ステートメント /*JOBPARM に RESTART を指定 //*MAIN に FAILURE および JOURNAL を指定 締切期限または定期的 (周期的) //*MAIN に DEADLINE を指定 他のジョブに依存して いる場合の //*NET リモート・ノードにお ける XMIT JCL /*ROUTE XEQ /*XEQ /*XMIT //*ROUTE XEQ ジョブ入力制御 ジョブの入力を保留に することによる //*MAIN に HOLD、UPDATE、ま たは CLASS を指定 //*NET TYPRUN CLASS ローカル入力読み取り プログラムを保留にす ることによる 入力ストリームをコピ ーすることによる (JES2 のみ) //*PAUSE TYPRUN CLASS リモート・ワークステ ーションから /*SIGNON /*SIGNOFF /*SIGNON /*SIGNOFF /*$command //**command /*MESSAGE //*OPERATOR 通信 JCL からシステムへの COMMAND コマンド JCL からオペレーター への JCL からプログラマー パラメーター・フィー への ルドがない場合は、コ メント欄 コメント欄 JCL からプログラムへ の PARM システムからオペレー ターへの BYTES、CARDS、 LINES、および PAGES に WARNING を指定 システムからユーザー ID への - ジョブ完了 の - 印刷完了の NOTIFY //*ENDPROCESS と //*PAUSE にコメント 欄を指定 //*comment、ヌル・ステー トメント以外のすべてのス テートメントにコメント欄 を指定 //*MAIN に FETCH を指定 //*MAIN の BYTES、CARDS、 LINES、および PAGES に WARNING を指定 /*NOTIFY OUTPUT JCL ステートメ ントに NOTIFY を指定 TSO/E ユーザー ID からシステムへの //*MAIN に USER を 指定 機能サブシステムから プログラマーへの ジョブ・ログを介して OUTPUT JCL に PIMSG を指定 MSGCLASS JOB JES2 アカウンティング情報 に MSGLEVEL のロ グを指定 保護 RACF を使用した GROUP PASSWORD SECLABEL USER リソース制御 30 JOB NOTIFY の指定 と共に //*MAIN に ACMAIN を指定 z/OS MVS JCL ユーザーズ・ガイド OUTPUT JCL に JESDS を指定 /*JOBPARM に NOLOG を指定 タスク 表 8. ジョブを入力するためのタスク (続き) ジョブを 入力するための タスク ステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント プログラム・ライブラ リーの JOBLIB DD、 STEPLIB DD、PDS または PDSE の メンバーを定義する DD プロシージャー・ライ ブラリーの JCLLIB /*JOBPARM に PROCLIB を指定 //*MAIN に PROC お よび UPDATE を指 定 INCLUDE グループの JCLLIB /*JOBPARM に PROCLIB を指定 //*MAIN に PROC お よび UPDATE を指 定 アドレス・スペースの REGION ADDRSPC //*MAIN に LREGION を指定 REGION ADDRSPC 処理装置の /*JOBPARM に SYSAFF を指定 スプール区画の //*MAIN に SYSTEM を指定 //*MAIN に SPART および TRKGRPS を 指定 表 9. ジョブを処理するためのタスク ジョブを 処理するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL COND COND IF/THEN/ELSE/ ENDIF ス テートメント構成 JES2 ステートメント JES3 ステートメント /*JOBPARM の BYTES、CARDS、 LINES、および PAGES に CANCEL を指定 //*MAIN の BYTES、 CARDS、LINES、お よび PAGES に CANCEL を指定 処理制御 条件付き実行による BYTES、CARDS、 LINES、および PAGES タイミング実行による TIME または JOB JES2 アカウンティン グ情報に時間を指定 TIME テストのための : 1. 通常の処理の変更 TYPRUN CLASS BYTES、CARDS、 LINES、および PAGES に DUMP を 指定 PGM=IEFBR14 による 2. エラー発生後のダ ンプによる /*JOBPARM に TIME を指定 SYSMDUMP DD SYSUDUMP DD SYSABEND DD //*PROCESS //*ENDPROCESS //*MAIN 上の BYTES、CARDS、 LINES、および PAGES に DUMP を 指定 PGM=JCLTEST PGM=JSTTEST (JES3 のみ) 3800 印刷サブシステムで ダンプをフォーマット設定 する場合、dump DD に FCB=STD3 および CHARS=DUMP を指定 パフォーマンス制御 ジョブ・クラス割り当 てによる CLASS 選択優先順位による PRTY パフォーマンス・グル ープの割り当てによる PERFORM //*MAIN に CLASS を指定 /*PRIORITY PERFORM 入出力と処理の比率に よる //*MAIN に IORATE を指定 表 10. データ・セット・リソースを要求するためのタスク データ・セット・リソ ースを要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 識別 第 3 章 ジョブ制御タスク 31 タスク 表 10. データ・セット・リソースを要求するためのタスク (続き) データ・セット・リソ ースを要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD データ・セットの DSNAME ストリーム内データ・ セットの * または DATA SYSIN DD DLM 3540 ディスケット入 出力装置におけるデー タ・セットの DSID カタログを介した JOBCAT DD STEPCAT DD ラベルを介した LABEL にラベル・タ イプを指定 テープ上の位置によっ て LABEL にデータ・セ ット・シーケンス番号 を指定 TCAM メッセージ・ データ・セットとして の QNAME 端末から、または端末 への TERM OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント //*MAIN に UPDATE を指定 /* または xx 区切り文字 //*DATASET //*ENDDATASET JOB に CLASS を指定 (JES3 のみ) //*MAIN に SETUP および CLASS を指 定 記述 状況の DISP データ属性の - モデ ル化による DCB AMP DATACLAS KEYLEN DSNTYPE KEYOFF LRECL RECFM RECORG LIKE REFDD ISO/ANSI バージョン 4 のテープについての データの CCSID マイグレーションおよ びバックアップの MGMTCLAS 保護 RACF を使用した PROTECT SECMODEL ISO/ANSI/FIPS バージ ョン 3 テープおよび ISO/ANSI バージョン 4 テープの ACCODE パスワードによる LABEL に PASSWORD および NOPWREAD を指定 BSAM および BDAM データ・セットへのア クセスの LABEL に IN および OUT を指定 割り振り 装置の 32 UNIT STORCLAS z/OS MVS JCL ユーザーズ・ガイド タスク 表 10. データ・セット・リソースを要求するためのタスク (続き) データ・セット・リソ ースを要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD テープまたは直接アク セス・ボリュームの VOLUME STORCLAS 直接アクセス・スペー スの SPACE AVGREC DATACLAS 仮想入出力の UNIT DSNAME= 一時データ・セット ボリュームの取り付け を遅らせる場合 UNIT に DEFER を指 定 OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント //*MAIN に EXPDTCHK および RINGCHK を指定 ボリュームを事前に取 り付けておく場合 /*SETUP 動的 EXEC に DYNAMNBR を 指定 処理制御 処理の抑止による DUMMY DSNAME に NULLFILE を指定 指定の延期による DDNAME チェックポイント機能 を使用した CHKPT SYSCKEOV DD SYSCHK DD JOB に RESTART を指定 EXEC に RD を指定 サブシステムによる SUBSYS CNTL CNTL ENDCNTL TCAM ジョブまたは タスクによる QNAME 終了処理 割り振り解除 FREE データ・セットの後処 理 DISP RETPD EXPDT 未使用の直接アクセ ス・スペースの解放 SPACE に RLSE を指 定 ボリュームの後処理 VOLUME に RETAIN および PRIVATE を指 定 /*OUTPUT に OUTDISP を指定 表 11. SYSOUT データ・セット・リソースを要求するためのタスク データ・セット・リソ ースを要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL CLASS JOB に MSGCLASS を指 定し、さらに SYSOUT=* または CLASS=* および SYSOUT=(,) を指定 JES2 ステートメント JES3 ステートメント 識別 SYSOUT データ・セ ットとして SYSOUT 名前 (最後の修飾子) DSNAME 出力クラスの SYSOUT にクラスを 指定 3540 ディスケット入 出力装置におけるデー タ・セットの DSID 記述 データ属性の DCB 保護 印刷出力の DPAGELBL SYSAREA 第 3 章 ジョブ制御タスク 33 タスク 表 11. SYSOUT データ・セット・リソースを要求するためのタスク (続き) データ・セット・リソ ースを要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント パフォーマンス制御 キュー選択による PRTY 処理制御 その他のパラメーター を指定した OUTPUT SYSOUT に コード名を指定 セグメント化による SEGMENT その他のデータ・セッ トを使用した SYSOUT にクラスを 指定 THRESHLD (JES3 のみ) GROUPID (JES2 のみ) 外部書き出しプログラ ムによる SYSOUT に書き出し プログラム名を指定 WRITER モードによる DEFAULT PRMODE 保留による HOLD SYSOUT にク ラスを指定 CLASS OUTDISP 出力の抑止による DUMMY SYSOUT に クラスを指定 OUTPUT に OUTDISP=PURGE を指 定 チェックポイント機能 を使用した CKPTLINE CKPTPAGE CKPTSEC 印刷サービス機能 (PSF) による AFPSTATS COLORMAP COMSETUP DUPLEX FORMDEF FORMLEN INTRAY OFFSETXB OFFSETXF OFFSETYB OFFSETYF OVERLAYB OVERLAYF PAGEDEF PRTERROR RESFMT USERLIB USERPATH Infoprint Server による FSSDATA MAILBCC MAILCC MAILFILE MAILFROM MAILTO PORTNO PRTOPTNS PRTQUEUE REPLYTO RETAINF RETAINS RETRYL RETRYT | 終了処理 割り振り解除 FREE SPIN 宛先制御 34 z/OS MVS JCL ユーザーズ・ガイド /*OUTPUT に CKPLNS および CKPPGS を指定 JES3 ステートメント タスク 表 11. SYSOUT データ・セット・リソースを要求するためのタスク (続き) データ・セット・リソ ースを要求するための タスク ローカル装置、リモー ト装置、または別のノ ードへ タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL DEST SYSOUT にクラスを 指定 DEST COMPACT その他の JCL JES2 ステートメント JES3 ステートメント /*ROUTE PRINT /*ROUTE PUNCH //*MAIN に ORG を 指定 別の処理装置へ //*MAIN に ACMAIN を指定 内部読み取りプログラ ムへ SYSOUT の書き出し プログラム名に INTRDR を指定 端末装置へ TERM SYSOUT 配布を支援 するための /*EOF /*DEL /*PURGE /*SCAN /*OUTPUT に ROOM を指定 ADDRESS BUILDING DEPT NAME ROOM TITLE 出力のフォーマット設定 任意のプリンターへの COPIES FCB SYSOUT に用紙名を 指定 UCS COPIES FCB FORMS LINECT (JES2 のみ) UCS CONTROL 大部分のプリンター・ パラメーターに加えて AFP プリンターへ BURST CHARS FLASH MODIFY DCB= OPTCD=J BURST CHARS FLASH MODIFY TRC 索引付け機能のある 3211 印刷装置へ JOB JES2 アカウンティン グ情報にフォーム、コピ ー、および行カウントを指 定 /*JOBPARM 上に COPIES、 FORMS、 および LINECT を指 定 /*OUTPUT 上に COPIES、FCB、およ び FORMS を指定 //*FORMAT PR に COPIES および FORMS を指定 /*JOBPARM に BURST を指定 //*FORMAT PR に CHARS および FLASH を指定 /*OUTPUT に CHARS、FLASH、 および BURST を指定 INDEX (JES2 LINDEX のみ) 穿孔装置への COPIES FCB SYSOUT COPIES に用紙名、 FCB DCB=FUNC=I を指定 FORMS 3800 印刷サブシステ ムにおけるダンプの CHARS=DUMP FCB=STD3 CHARS=DUMP FCB=STD3 出力の制限 JOB JES2 アカウン ティング情報に 行とカードを指定 OUTLIM /*JOBPARM に BYTES、 CARDS、 LINES、および PAGES を指定 //*MAIN に BYTES、 CARDS、 LINES、お よび PAGES を指定 JOB に BYTES、 CARDS、LINES、 および PAGES を 指定 USERDATA 指定 ご使用のシステムの指 定 USERDATA 第 3 章 ジョブ制御タスク 35 タスク 36 z/OS MVS JCL ユーザーズ・ガイド 第 2 部 ジョブを入力するためのタスク ここでは、システムにジョブを入力する方法について説明します。ジョブを入力す るときに必要なタスクは、次のとおりです。 v 識別 v 実行 オプショナルで、次のタスクを実行することができます。 v ジョブ入力制御 v 通信 v 保護 v リソース制御 © Copyright IBM Corp. 1988, 2004 37 第 2 部 ジョブを入力するためのタスク 38 z/OS MVS JCL ユーザーズ・ガイド 第 4 章 ジョブの入力 - 識別 表 12. ジョブを入力するための識別タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント 識別 ジョブの jobname フィール ド ヌル・ステート メント (JES3 のみ) ステップの stepname フィー ルド プロシージャーの PROC PEND INCLUDE グルー プの INCLUDE アカウントの JOB JES2 アカウ ACCT ンティング情報に アカウンティング 情報または pano を指定 /*NETACCT //*NETACCT プログラマーの JOB JES2 アカウ ンティング情報 USER にプログラ マーの名前および 部屋を指定 /*JOBPARM に ROOM を指定 //*NETACCT に PNAME、 BLDG、 DEPT、 ROOM、および USERID を指定 ジョブの識別 JOB ステートメントの jobname フィールドでは、各ジョブを識別しなければなりま せん。この識別は必須であり、次のように指定します。 //jobname JOB その次に現れる JOB ステートメント、あるいは入力ストリームの終わりで、ジョブ の終わりが識別できます。ヌル・ステートメントで、ジョブまたは入力ストリーム の終わりを示すことができます。 例 //MYJOB //MCS167 © Copyright IBM Corp. 1988, 2004 JOB . . JOB . . 39 ジョブの入力 - 識別 //R#123 //@5AB JOB . . JOB . . // この 5 番目のステートメントがヌル・ステートメントです。 ステップの識別 ステップ名は、特定の EXEC ステートメントにだけ必要です。実際に使用するとき は、すべてのステップに名前を付けてください。システムは、メッセージでステッ プ名を使用します。ステップ名を省略すると、システムはメッセージのこのフィー ルドをブランクのままにしておくため、どのステップが原因でそのメッセージが出 されたのかが判別しにくくなります。ステップ名は、次のように指定します。 //stepname EXEC 例 //STEP1 EXEC PGM=A . . //CHECK EXEC PROC=MHB15 . . //A$9 EXEC PGM=RPTWRT . . //MYPROGRM EXEC PGM=CALC . プロシージャーの識別 ストリーム内プロシージャーの場合には、PROC ステートメントでその始まりを、 PEND ステートメントでその終わりを識別します。PROC ステートメントに名前を 指定してください。TSO/E ログオン・プロシージャーの名前は、サブシステムの名 前と同じにしないでください。 カタログ式プロシージャーの場合、PROC と PEND ステートメントはオプショナル です。PROC ステートメントはカタログ式プロシージャーを識別しません。このプ ロシージャーは、プロシージャー・ライブラリー内のメンバー名または別名によっ て呼び出されます。ただしプロシージャー内のすべての記号パラメーターにデフォ ルト値を割り当てるときは、PROC ステートメントを使用してください。これによ って、呼び出し側の EXEC ステートメントまたは SET ステートメントで記号パラ メーターに値を割り当てなかったり、すべての記号パラメーターを無効にしたりし ても、そのステップは失敗しません。 例 ストリーム内プロシージャーの場合 : 40 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 識別 //PAYROLL PROC . . // PEND //DESK3 //ENDING PROC . . PEND A=NEWYORK,F=3350,C=(OLD,CATLG,DELETE) THIS STATEMENT ENDS IN-STREAM PROCEDURE DESK3. カタログ式プロシージャーの場合 : // PROC UT=3800,FM=J287,DT=LOCAL INCLUDE グループの識別 INCLUDE ステートメントは、一連の JCL ステートメントが入っている PDS また は PDSE のメンバーを識別します。この一連の JCL ステートメントを INCLUDE グループと呼びます。システムは、INCLUDE ステートメントを INCLUDE グルー プ内のステートメントに置き換えます。 例 INCLUDE グループ INOUTDD には、下記のステートメントが入っています。 //INOUT4 // //INOUT5 // DD DD DSNAME=DS4,UNIT=3380,VOL=SER=111112, DISP=(NEW,KEEP),SPACE=(TRK,(5,1,2)) DSNAME=DS5,UNIT=3380,VOL=SER=111113, DISP=SHR システムは、下記のジョブ・ステップを実行します。 //STEP2 //SYSPRINT //INOUT //SYSUT3 //SYSUT4 COPYOPER EXEC PGM=IEBCOPY DD SYSOUT=A INCLUDE MEMBER=INOUTDD DD UNIT=SYSDS,SPACE=(TRK,(1)) DD UNIT=SYSDS,SPACE=(TRK,(1)) COPY OUTDD=INOUT1 システムがステップを実行すると、JCL ストリームは次のようになります。 //STEP2 //SYSPRINT //INOUT4 // //INOUT5 // //SYSUT3 //SYSUT4 COPYOPER EXEC DD DD DD DD DD COPY PGM=IEBCOPY SYSOUT=A DSNAME=DS4,UNIT=3380,VOL=SER=111112, DISP=(NEW,KEEP),SPACE=(TRK,(5,1,2)) DSNAME=DS5,UNIT=3380,VOL=SER=111113, DISP=SHR UNIT=SYSDS,SPACE=(TRK,(1)) UNIT=SYSDS,SPACE=(TRK,(1)) OUTDD=INOUT1 第 4 章 ジョブの入力 - 識別 41 ジョブの入力 - 識別 アカウントの識別 ローカル実行の場合 JES 初期設定パラメーターには、JOB ステートメントのアカウンティング情報パラ メーターまたは EXEC ステートメントの ACCT パラメーター (あるいはその両方) にアカウンティング情報が必要かどうかを、ご使用のシステムで指定します。ご使 用のシステムでは、必要なアカウンティング情報とその情報の形式を決めます。 例 //J28 //XYZ JOB (12A75,DEPTD58,921) . . JOB ’12A75,DEPTD58,921’ If a subparameter contains special characters: //GHI //JKL JOB (12A75,’DEPT/D58’,921) . . JOB ’12A75,DEPT/D58,921’ If only an account number is coded: //MNO //PQR JOB 12A75 . . JOB ’12A.75’ If the account number is omitted: //STU JOB (,DEPTD58,921) リモート実行の場合 JES2/*NETACCT ステートメントと JES3//*NETACCT ステートメントは、実行のた めにリモート・ノードに送信されるジョブについてのアカウンティング情報を提供 します。 例 For remote execution in a JES2 system: /*NETACCT 27FD16 For remote execution in a JES3 system: //*NETACCT PNAME=FKRUPA,ACCT=27FD16,BLDG=921,DEPT=D58, . . //*NETACCT ROOM=2T13,USERID=DDFKPGMR 42 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 識別 プログラマーの識別 JES 初期設定パラメーターには、JOB ステートメントにプログラマー名パラメータ ーが必要かどうかをご使用のシステムで指定します。ご使用のシステムで指定しな ければならないパラメーターを決めます。 例 //ABC //DEF //GHI //JKL JOB . . JOB . . JOB . . JOB ,L.GORDON ,’L GORDON’ ,’SP/4 L. GORDON’ ,’DEPT. 7202’ ジョブを実行依頼するユーザーを識別するために、USER パラメーターを JOB ス テートメントに指定することができます。 例 //MNO JOB ACCT15,’DON PIZZUTO’,USER=ID32DBP 第 4 章 ジョブの入力 - 識別 43 ジョブの入力 - 識別 44 z/OS MVS JCL ユーザーズ・ガイド 第 5 章 ジョブの入力 - 実行 表 13. ジョブを入力するための実行タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 JES3 ステートメント ステートメント 実行 プログラムの PGM プロシージャーの PROC 再始動およびチェ ックポイント機能 を使用して再始動 RESTART RD した場合 RD SYSCHK DD /*JOBPARM に RESTART を指 定 //*MAIN に FAILURE およ び JOURNAL を指定 締切期限または定 期的 //*MAIN に DEADLINE を 指定 他のジョブに依存 している場合 //*NET リモート・ノード における //*ROUTE XEQ XMIT JCL /*ROUTE XEQ /*XEQ /*XMIT プログラムの実行 実行するすべてのプログラムは、区分データ・セット (PDS) または拡張区分デー タ・セット (PDSE) であるライブラリー内になければなりません。ご使用のシステ ムでは、そのライブラリーにある使用可能なプログラムのリストを維持管理する必 要があります。ライブラリーは、次の 3 種類があります。 v システム・ライブラリー : SYS1.LINKLIB など v 専用ライブラリー : JOBLIB または STEPLIB DD ステートメントで指定しま す。 v 一時ライブラリー : ジョブの直前のステップで作成されます。 ライブラリーの詳細については、 73 ページの『プログラム・ライブラリーのリソー ス制御』を参照してください。 システム・ライブラリーまたは専用ライブラリー内のプログラムを実行するとき は、次のように指定します。 //stepname EXEC PGM=program-name 一時ライブラリー内のプログラムを実行するときは、次のように指定します。 //stepname //stepname © Copyright IBM Corp. 1988, 2004 EXEC EXEC PGM=*.stepname.ddname PGM=*.stepname.procstepname.ddname 45 ジョブの入力 - 実行 例 //ST1 EXEC //DSPROG DD //ST2 EXEC PGM=MYPROG DSNAME=PDS1(MEMP),DISP=SHR PGM=*.ST1.DSPROG プロシージャーの実行 実行するプロシージャーは、次のいずれかでなければなりません。 v ストリーム内プロシージャー。入力ストリーム内にあって、それを呼び出す EXEC ステートメントより前にあります。 v カタログ式プロシージャー。システム・プロシージャー・ライブラリー連結にあ る SYS1.PROCLIB、ご使用のシステム定義のプロシージャー・ライブラリー、ま たは専用ライブラリーに定義されています。 ストリーム内プロシージャーまたはカタログ式プロシージャーを実行するときは、 次のように指定します。 //stepname //stepname EXEC EXEC PROC=procedure-name procedure-name 例 //ST1 EXEC PROC=PROCA //STEP9 EXEC PROC=DAILY 再始動およびチェックポイント機能を使用した再始動の実行 (非 APPC) APPC スケジューリング環境では、ジョブの再始動はサポートされません。 異常終了後の再始動 ジョブが異常終了すると、チェックポイント / 再始動機能によって、次のようにジ ョブを再始動することができます。 v 自動ステップ再始動。システムによってジョブ・ステップの最初から再始動され ます。 v 自動チェックポイント再始動。システムによってジョブ・ステップ内のチェック ポイントから再始動されます。 v 据え置きステップ再始動。後で、ジョブ・ステップの最初から再始動されます。 v 据え置きチェックポイント再始動。後で、ジョブ・ステップのチェックポイント から再始動されます。 再始動は、以下のもので制御します。 v JOB ステートメントと EXEC ステートメントに指定する RD パラメーター。 (再始動は開始タスクではサポートされません。開始タスクでは、JOB ステートメ ントに RD パラメーターを使用しないでください。) v チェックポイント (書き込まれる場合)。CHKPT マクロが実行されるたびに、チ ェックポイントが書き込まれます。 46 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 実行 v ジョブ・ジャーナル。自動再始動の場合のみ必要です。JES3 システムの場合、プ ログラマーは JES3 //*MAIN ステートメントに JOURNAL パラメーターを指定 して、JES3 がジョブについてのジャーナルを作成するかどうかを制御することが できます。 v 据え置き再始動の場合には、再始動するジョブについての JOB ステートメント の RESTART パラメーター、および CHKPT マクロに応答して書き込まれるチ ェックポイントが入っているデータ・セットを識別する SYSCHK DD ステート メント。(再始動は開始タスクではサポートされません。開始タスクでは、JOB ス テートメントに RESTART パラメーターを使用しないでください。) 再始動の使用方法 いずれの形式の再始動であっても、ジョブの最初から実行することは避けられま す。ジョブが長い場合は、再始動により多大な時間とコンピューター・リソースを 節約することができます。 再始動の詳細については、z/OS DFSMS Checkpoint/Restart を参照してください。 例 //J1 JOB ,’B. MORRISON’,RD=RNC //J2 //S1 //S2 JOB EXEC EXEC ,’H. MORRILL’ PGM=TESTING,RD=R PGM=TESTED,RD=NC JES2 システムでシステム障害が発生した場合の再始動 RESTART=Y が JES2 /*JOBPARM ステートメントに指定されている場合に、下記 の状態がすべて当てはまると、JES2 は実行のためにジョブを再度エンキューしま す。 v システム障害が発生したときに、ジョブが実行中であった。 v オペレーターが、JES2 ウォーム・スタートによってシステムを再初期設定してい る。 v ジョブがステップ、またはチェックポイントから再始動できない場合。 再実行はジョブの最初から行われます。 ジョブが自動再始動管理に登録されていると、自動再始動管理は RESTART=N を取 り消して、再実行させるためにジョブをキューに入れます。 自動再始動管理の使用についての詳細は、z/OS MVS シスプレックスのセットアッ プ および z/OS MVS プログラミング: シスプレックス・サービス ガイド を参照 してください。 例 //J3 JOB ,’J. BUSKIRK’ /*JOBPARM RESTART=Y . . 第 5 章 ジョブの入力 - 実行 47 ジョブの入力 - 実行 JES3 システムでシステム障害が発生した場合の再始動 システム障害が発生したときにジョブが実行中であった場合は、JES3 //*MAIN ステ ートメントの FAILURE パラメーターによって、ジョブの処理方法を JES3 に伝え ます。ジョブは再始動、取り消し、保留、または印刷後に再始動のために保留にす ることができます。 ジョブが自動再始動管理に登録されていると、自動再始動管理は FAILURE= キーワ ードの値を取り消して、再実行させるためにジョブをキューに入れます。 自動再始動管理の使用についての詳細は、z/OS MVS シスプレックスのセットアッ プ および z/OS MVS プログラミング: シスプレックス・サービス ガイド を参照 してください。 例 //J4 JOB ,’G. HILL’,RD=NC //*MAIN FAILURE=RESTART . . JES3 システムにおける期限実行または定期 (周期) 的実行 特定の時刻、または毎週、毎月、毎年など定期 (周期) 的にジョブを実行するとき は、JES3 //*MAIN ステートメントの DEADLINE パラメーターを使用してくださ い。期限が近づくと、JES3 はジョブが実行されるまでジョブの優先順位を上げま す。2 番目のサブパラメーターで要求したご使用のシステム定義のアルゴリズムに 従って、優先順位は上げられます。 注: 「定期的 (周期的)」という用語は、処理の必要のある回数だけジョブを実行依 頼することを意味します。たとえば、1 年間に毎月 1 回だけジョブを実行する 必要がある場合は、各月ごとの日付を指定して 12 個のジョブを実行依頼しま す。1 度にジョブを実行依頼することはできないので、12 回処理を行います。 締切スケジューリングの使用方法 締切スケジューリングの目的は、使用可能なリソースを JES3 が最も有効に使える ようにすることです。たとえば最初のシフトで作業して、その日の終わりにジョブ を実行依頼するときは、翌日の朝まで出力は必要ありません。DEADLINE パラメー ターに翌日の午前 7 時を指定し、優先順位の低いジョブを割り当ててください。 JES3 はリソースが使用可能となる、夜間のどこかでジョブをスケジュールすること ができます。しかし、そのジョブが午前 7 時より数時間前までにスケジュールされ ていないと、JES3 はその優先順位を高くします。JES3 は午前 7 時までに実行のた めに選択されるように、そのジョブの優先順位を定期的に高くします。 例 To execute a job by 7 a.m. on January 20, 1986, code: //*MAIN DEADLINE=(0700,B,012086) 2000 年以降の日付を指定する場合、構文は少し変わります。 48 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 実行 To execute a job by 7 a.m. on January 20, 2000, code: //*MAIN DEADLINE=(0700,B,01/20/2000) 定期的 (周期) スケジューリングの使用方法 定期的 (周期) スケジューリングは、プログラムを自動的に毎週、毎月、または毎年 実行されるようにするときに使用します。 例 To execute a job by 2 p.m. every Friday, code: //*MAIN DEADLINE=(1400,A,6,WEEKLY) JES3 システムにおいて他のジョブに依存している場合の実行 特定の順序でジョブを実行しなければならないときは、依存ジョブ制御 (DJC) を使 用してください。相互に依存しているジョブ・グループは、依存ジョブ制御 (DJC) ネットワークを形成します。DJC ネットワークにおけるジョブの相互関係を JES3 に示すときは、各ジョブに JES3 //*NET ステートメントを指定してください。ネッ トワーク内のジョブは 2 種類あります。 v 先行ジョブ。別のジョブが始まる前に完了していなければなりません。 v 後続ジョブ。1 つ以上のジョブが完了するまで実行されません。 //*NET ステートメントのパラメーターを使用すると、先行ジョブがどのように終了 したか (正常終了または異常終了) に依存しているジョブを実行することができま す。先行ジョブが完了すると、後続ジョブは、次の処理を行うことができます。 v 後続ジョブが待っている先行ジョブのカウントを 1 つ減らすことができます。カ ウントがゼロになると、後続ジョブが実行のためにエンキューされます。 v システムからフラッシュすることができます。後続ジョブとそれに続くすべての 後続ジョブは取り消され、印刷され、システムからフラッシュされます。 v オペレーターによって解放されるまで、保持することができます。後続ジョブと それに続くすべての後続ジョブは、スケジュールされません。ジョブは直前の先 行ジョブが再実行依頼されるか、またはオペレーターが先行のジョブ数を減らす まで解放されません。 外部依存 ジョブが外部のイベントに依存している場合には、必要なものより 1 つ大きい先行 ジョブのカウントを指定することができます。カウントがゼロにならないので、シ ステムはそのジョブを保留にしておきます。外部イベントが発生すると、オペレー ターは *MODIFY,N コマンドを出して、ジョブが実行されるように数値を減らすこ とができます。 ネットワークのテスト プログラムを実行せずにネットワークをテストするときは、実際の EXEC ステート メントを次のもので置き換えてください。 第 5 章 ジョブの入力 - 実行 49 ジョブの入力 - 実行 //stepname EXEC PGM=IEFBR14 例 1 DJC ネットワークをセットアップするために、まず依存関係の図を作成します。 JOBA JOBB | | JOBC | | JOBD JOBE ネットワークに XMP1 という名前を付けます。これは、//*NET ステートメント NETID パラメーターです。 次に、各ジョブおよびその先行ジョブと後続ジョブをリストします。 ジョブ名 先行ジョブ //*NET NHOLD JOBA JOBB JOBC JOBD JOBE 0 0 2 1 1 後続ジョブ //*NET RELEASE JOBC JOBC JOBD, JOBE none none 最後に、各ジョブに //*NET ステートメントを指定します。 //JOBA JOB ... //*NET NETID=XMP1,RELEASE=(JOBC) //S1 EXEC ... . . //JOBB JOB ... //*NET NETID=XMP1,RELEASE=(JOBC) //SA EXEC ... . . //JOBC JOB ... //*NET NETID=XMP1,NHOLD=2,RELEASE=(JOBD,JOBE) //S1 EXEC ... . . //JOBD JOB ... //*NET NETID=XMP1,NHOLD=1 //SA EXEC ... . . //JOBE JOB ... //*NET NETID=XMP1,NHOLD=1 //S1 EXEC ... . 例 2 この例は、2 つのネットワークを示しています。ネットワーク XMP3 内の JOB3 は、ネットワーク XMP2 内の JOBC に依存しています。 XMP2 50 z/OS MVS JCL ユーザーズ・ガイド XMP3 ジョブの入力 - 実行 JOBA JOBB | | JOBC <--| | JOBD ---> ジョブ名 JOB1 | JOB2 | JOB3 先行ジョブ //*NET NHOLD 後続ジョブ //*NET RELEASE JOBA JOBB JOBC JOBD 0 0 2 1 JOBC JOBC JOB3 none JOB1 JOB2 JOB3 0 1 2 JOB2 JOB3 none 各ジョブの //*NET ステートメントは、次のとおりです。 For For For For For For For JOBA: JOBB: JOBC: JOBD: JOB1: JOB2: JOB3: //*NET //*NET //*NET //*NET //*NET //*NET //*NET NETID=XMP2,RELEASE=(JOBC) NETID=XMP2,RELEASE=(JOBC) NETID=XMP2,NHOLD=2,NETREL=(XMP3,JOB3),RELEASE(JOBD) NETID=XMP2,NHOLD=1 NETID=XMP3,RELEASE=(JOB2) NETID=XMP3,NHOLD=1,RELEASE=(JOB3) NETID=XMP3,NHOLD=2 リモート・ノードにおける実行 (非 APPC) JES 制御ステートメントおよび XMIT ステートメントは、APPC スケジューリング 環境では機能しません。 下記のいずれかのステートメントを指定すると、別のシステムで実行するためにシ ステムを介してジョブを入力することができます。入力読取装置、内部読み取りプ ログラム、TSO/E 端末、または RJE (リモート・ジョブ入力) か RJP (リモート・ ジョブ処理) の端末またはワークステーションを介して、ジョブを入力することが できます。 JES2 システムを介して入力する場合 : v JES2 システムが受け取る場合は、次のいずれかを指定します。 | //name XMIT DEST=node,DLM=xx /*ROUTE XEQ node /*XEQ node v JES2 システムまたは JES3 システムが受け取る場合は、次のように指定します。 | //name XMIT /*XMIT node DEST=node,DLM=xx v MVS システムがゲストとして実行されている VM システムが受け取る場合は、 次のいずれかを指定します。 | | //name XMIT DEST=node,DLM=xx /*ROUTE XEQ node.vmguestid /*XEQ node.vmguestid /*XMIT node.vmguestid JES2 または JES3 システムを介して入力する場合 : v VM システム以外のシステムが受け取る場合は、次のように指定します。 第 5 章 ジョブの入力 - 実行 51 ジョブの入力 - 実行 //name XMIT DEST=node,DLM=xx v 別のシステムがゲストとして実行されている VM システムが受け取る場合は、次 のように指定します。 //name XMIT DEST=node.vmuserid,DLM=xx | JES システムにおける XMIT JCL ステートメントの使用方法 | | | | | | 新しい JCL を書くときには XMIT JCL (//name XMIT 形式) を使用することをお 勧めします。なぜなら、このステートメントは特定の JES サブシステムの使用に依 存していないためです (ただし、JES2 がサポートしていない、SUBCHARS= オペラ ンドの使用が必要でない場合に限ります) さらに、XMIT JCL は、//*ROUTE XEQ、/*ROUTE XEQ または /*XEQ ステートメントでは不可能なレコードの伝送 が可能になるという利点があります。 たとえば受信側のノードの JOB ステートメントは、//*ROUTE XEQ ステートメン トの直後に指定しなければなりません。これは、$$ POWER 制御ステートメントか ら始まるレコードを VSE ノードに伝送するときには、//*ROUTE XEQ ステートメ ントを使用することはできないということです。しかし、XMIT JCL ステートメン トは、そのようなレコードを伝送することができます。 リモート・ジョブを実行依頼する際の考慮事項 リモートで実行させるためにジョブを実行依頼するときは、ご使用のシステムで定 義した実行側システムの属性を知っておいてください。ジョブの JCL には、それら の値を指定してください。 JOB ステートメントの内容と形式 : 実行側のシステムが処理する JOB ステー トメントには、実行側のシステムのパラメーターを指定します。 実行側のシステムの JES : 実行側のシステムの JES には、自分の JES 制御ス テートメントと JCL パラメーターを指定します。 実行側のシステムの SYS1.PROCLIB の内容 : 実行側のシステムで使用できる プロシージャーだけを呼び出します。 実行側のシステムにおけるデータ・セット : 実行側のシステムで使用できるデ ータ・セットだけを使用します。実行側のシステムで必要な DD パラメーター を指定します。 ご使用のシステム固有の装置名 : 実行側のシステムが使用する UNIT 名だけを 指定します。 実行側のシステムにおける SYSOUT クラス : 必要な属性をもつ実行側のシス テムの SYSOUT クラスを指定します。 実行側のシステムにおけるジョブ・クラス : 必要な属性をもつ実行側のシステ ムのジョブ・クラスを指定します。 例 //MYJOB JOB 27D15,’DON SMITH’ //TRANS XMIT DEST=FARSYS //THEIRJOB JOB (DLD1,2E44),’POK LAB’ //*MAIN JOURNAL=YES //S1 EXEC PROC=RR23,A=3350, // C=25,DP=OLD /* v ジョブ MYJOB は、ジョブを実行依頼する JES3 側で処理されます。 v XMIT TRANS は、後続のジョブを FARSYS に送信します。 52 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 実行 v THEIRJOB は JOB ステートメントとして送信されます。FARSYS によって処理 されます。 第 5 章 ジョブの入力 - 実行 53 ジョブの入力 - 実行 54 z/OS MVS JCL ユーザーズ・ガイド 第 6 章 ジョブの入力 - ジョブ入力制御 表 14. ジョブを入力するための入力制御タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント ジョブ入力制御 ジョブの入力を保留 にすることによる //*MAIN に HOLD、UPDATE、 または CLASS を指定 //*NET //*NET TYPRUN CLASS ローカル入力読み取 りプログラムを保留 にすることによる 入力ストリームをコ ピーすることによる (JES2 のみ) //*PAUSE TYPRUN CLASS リモート・ワークス テーションから /*SIGNON /*SIGNOFF /*SIGNON /*SIGNOFF ジョブの入力を保留にすることによるジョブ入力制御 (非 APPC) 状況によっては、ある外部イベントが起こるまで、ジョブの実行を遅らせる必要が あります。このトピックでは、そのような場合のジョブ入力制御方法について述べ ます。ただし、この方法はどの環境でもサポートされているわけではありません。 v これらの方法は、APPC スケジューリング環境ではサポートされません。 v TYPRUN パラメーターは開始タスクには使用できません。TYPRUN を指定する と、ジョブは失敗します。 v JES2 の環境で CLASS パラメーターは開始タスクには使用できません。JES3 環 境での開始タスクの場合、クラス関連の属性と機能は、デバイス隔離、SPOOL 区 画化およびトラック・グループ割り振りを除き、すべて無視されます。クラスの 属性と機能についての詳細は、z/OS JES3 初期設定およびチューニング ガイド を参照してください。 ジョブが外部イベントの発生を待ってからでないと実行できない場合は、システ ム・オペレーターがジョブを解放するか、またはあるイベントが発生するまで、下 記のいずれかを使用して JES にそのジョブを保留させます。 JES2 システムの場合 v JOB ステートメントの TYPRUN=HOLD または TYPRUN=JCLHOLD。オペレー ターはジョブを解放しなければなりません。 v JES2 の初期設定時に保留として定義されたジョブ・クラスを要求する JOB ステ ートメントの CLASS。オペレーターはジョブを解放しなければなりません。 © Copyright IBM Corp. 1988, 2004 55 ジョブの入力 - ジョブ入力制御 JES3 システムの場合 v JOB ステートメントの TYPRUN=HOLD または CLASS、または //*MAIN ステ ートメントの HOLD=YES または CLASS。オペレーターはジョブを解放しなけ ればなりません。 v 依存ジョブ・ネットワーク内のジョブ。 49 ページの『JES3 システムにおいて他 のジョブに依存している場合の実行』を参照してください。JES3 は、他のジョブ (複数の場合もある) の実行が完了するか、オペレーターがジョブを解放すると、 ジョブを解放します。 v このジョブが更新されるプロシージャー・ライブラリーまたはそれに連結されて いるライブラリーを使用している場合には、別のジョブの //*MAIN ステートメ ントの UPDATE。JES3 は更新中のジョブの実行が完了した時点で、そのジョブ を解放します。 ジョブの保留の使用 何らかの理由で、ジョブの実行を遅らせる必要が生じる場合があります。たとえ ば、次の場合がこれに当たります。 v 別のジョブが使用しなければならないデータ・セットをあるジョブが更新する場 合。 v 外部イベントが発生するまで、ジョブが必要とするリソースを獲得できない場 合。 注: ジョブの実行順序を制御するときに、ジョブ優先順位に依存することはできま せん。JOB ステートメントの PRTY パラメーターまたは JES2 /*PRIORITY ス テートメントに指定された優先順位は、選択される順序に影響を与えます。優 先順位の高いジョブが、優先順位の低いジョブよりも先に実行を完了するとい う保証はありません。 例 //J1 //J2 JOB . JOB ,’J. COLE’,TYPRUN=HOLD ACCT1734,’T. CURATOLO’,CLASS=H //*MAIN HOLD=YES //*MAIN UPDATE=DS3 ローカル入力読み取りプログラムを保留にすることによるジョブ入力制御 (非 APPC) APPC スケジューリング環境では、//**PAUSE ステートメントはサポートされませ ん。//**PAUSE を指定するとシステムはそれを無視し、ジョブ・リストにコメント として記載します。 JES3 システムの場合、入力読み取りプログラムを停止するときは、//**PAUSE を使 用してください。JES3 はメッセージを出して、オペレーターが *START コマンド を出すか、またはコンソール・レベル 15 のリモート・ワークステーションが始動 メッセージを送信するのを待ちます。 例 56 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - ジョブ入力制御 //**PAUSE //FIRST JOB . . ,’D. SCHOFER’ 入力ストリームをコピーすることによるジョブ入力制御 (非 APPC) ここでは、なんらステップを実行せずに入力ジョブをコピーする方法を説明しま す。これらの方法は JES2 環境でしか使用できません。APPC スケジューリング環 境と開始タスクにはサポートされません。 JES2 システムでは、JOB ステートメントに下記のいずれかを指定して、ステップ を実行することなく入力ジョブをコピーしてください。 v TYPRUN=COPY v 実行せずにコピーするジョブが入っているクラスとして、JES2 の初期設定時に定 義された CLASS ジョブ・クラス。 入力ストリームをコピーするときに、JES2 は構文エラーがないかどうか JCL をス キャンします。 どちらの場合でも、JES2 は SYSOUT データ・セットに入力ストリームのコピーを 入れます。SYSOUT データ・セットは、JOB ステートメントの MSGCLASS パラ メーターに指定されたクラスに入っています。MSGCLASS クラスを選択して、コピ ーされた入力ストリームの処理方法を次のように制御してください。 v JES2 または外部書き出しプログラムによって処理。 v すぐに出力するようにスケジュールするか、またはメッセージ・クラスが保留に なっているために保留する。保留にされる場合は、TSO/E OUTPUT コマンドで SYSOUT データ・セットを処理することができます。 例 //CPYJ1 //CPYJ2 JOB . JOB . 1589D10,’I. BUTLER’,TYPRUN=COPY ,’D. BALLARD’,CLASS=P リモート・ワークステーションからのジョブ入力制御 JES2 リモート・ジョブ入力 JES2 リモート・ジョブ入力 (RJE) を使用すると、リモート・ワークステーション から離れた場所にあるシステムにジョブを実行依頼して、そのシステムの JES2 に よってジョブを処理させることができます。ご使用のシステムのセキュリティー・ プロダクトで、RJE 端末を制御することができます。出力はホスト・システムで保 持するか、ワークステーションに送信するか、または別のロケーションに送信する ことができます。JES2 はローカルで実行依頼されたかのように、そのリモート・ジ ョブを処理します。リモート端末装置は、そのジョブを処理するコンピューター・ システムの論理的な拡張部分になります。 JES2 は、RJE リモート端末装置と通信するための 2 種類の方法をサポートしま す。 第 6 章 ジョブの入力 - ジョブ入力制御 57 ジョブの入力 - ジョブ入力制御 v システム・ネットワーク体系同期データ・リンク制御 (SNA/SDLC) プロトコル を介して行う方法。SNA 端末は VTAM を介して JES2 へアクセスします。 v 2 進データ同期通信 (BSC) プロトコルを介して行う方法。ローカル・プロセッ サーと BSC RJE 端末との通信では、マルチリービング と呼ばれる JES2 機能を 使用します。マルチリービングを使用すると、複数の印刷ストリームと穿孔スト リームを同時に伝送することができ、JES2 は複数のコンソール・メッセージと入 力ストリームを受け取ることができます。 詳細については、z/OS JES2 初期設定およびチューニング ガイド および z/OS Communications Server: SNA Programming にあるリモート・ジョブ入力に関する項 を参照してください。 JES2 は、リモート・ステーションがリモート・オペレーターの制御の下で実行され るものと仮定しています。RJE ステーションは、次の 2 種類の装置で構成すること ができます。 v リモート端末装置。処理装置を備えていません。JES2 にジョブを入力したり、 JES2 からデータを受信したりするときに、リモート端末装置 (2780 や 2770 な ど) を使用することができます。 v リモート・ワークステーション。処理装置を備えています。この処理装置、たと えばシステム/370 やシステム/390 が、JES2 生成のプログラムを実行して、JES2 にジョブを送信したり、JES2 からデータを受信したりします。リモート・ワーク ステーションにはプリンター、カード読取装置、穿孔装置、およびコンソールが 含まれます。 リモート・ジョブ入力ステーション JES2 の初期設定時に、ご使用のシステムではリモート回線を専用または非専用にす ることができます。非専用リモート回線の場合には、次のように指定して、リモー ト・ジョブ・ストリーム処理セッションの開始と終了を JES2 に知らせてくださ い。 v SNA リモート・ワークステーションの場合 : LOGON コマンドを使用して開始 を知らせ、LOGOFF コマンドまたは JES2 /*SIGNOFF 制御ステートメントを使 用して終了を知らせます。 v BSC リモート・ワークステーションの場合 : JES2 /*SIGNON 制御ステートメン トを使用して開始を知らせ、JES2 /*SIGNOFF 制御ステートメントを使用して終 了を知らせます。 LOGON と LOGOFF コマンドについては、z/OS JES2 初期設定およびチューニン グ 解説書 および z/OS Communications Server: SNA Programming を参照してくだ さい。 JES3 リモート・ジョブ処理 JES3 リモート・ジョブ処理 (RJP) を使用すると、リモート・ワークステーション はデータ・リンクを介してリモート・グローバル・プロセッサーにジョブを実行依 頼して、システムの JES3 でそのジョブを処理することができます。出力はホス ト・システムで保持するか、ワークステーションに送信するか、または別のロケー ションに送信することができます。JES3 はローカルで実行依頼されたものとして、 そのリモート・ジョブを処理します。 58 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - ジョブ入力制御 チャネルで処理装置に接続された装置は、ローカル装置です。データ・リンクで処 理装置に接続された装置は、リモート装置です。 JES3 は、RJP リモート装置との 2 種類の通信方法をサポートします。 v システム・ネットワーク体系同期データ・リンク制御 (SNA/SDLC) プロトコル を介して行う方法。 v 2 進データ同期通信 (BSC) プロトコルを介して行う方法 リモート・ワークステーション JES3 の初期設定時に、ご使用のシステムではリモート回線を専用または非専用にす ることができます。非専用リモート回線の場合には、次のように指定して、リモー ト・ジョブ・ストリーム処理セッションの開始と終了を JES3 に知らせてくださ い。 v SNA リモート・ワークステーションの場合 : LOGON コマンドを使用して開始 を知らせ、LOGOFF コマンドまたは JES3 /*SIGNOFF 制御ステートメントを使 用して終了を知らせます。 v BSC リモート・ワークステーションの場合 : JES3 /*SIGNON 制御ステートメン トを使用して開始を知らせ、JES3 /*SIGNOFF 制御ステートメントを使用して終 了を知らせます。 LOGON と LOGOFF コマンドについては、z/OS JES3 初期設定およびチューニン グ 解説書 および z/OS Communications Server: SNA Programming を参照してくだ さい。 第 6 章 ジョブの入力 - ジョブ入力制御 59 ジョブの入力 - ジョブ入力制御 60 z/OS MVS JCL ユーザーズ・ガイド 第 7 章 ジョブの入力 - 通信 表 15. ジョブを入力するための通信タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント /*$command //**command /*MESSAGE //*OPERATOR 通信 JCL からシステ ムへの COMMAND コマンド JCL からオペレ ーターへの JCL からプログ ラマーへの パラメーター・ フィールドがな い場合は、コメ ント欄 JCL からプログ ラムへの システムからオ ペレーターへの コメント欄 //*ENDPROCESS と //*PAUSE に コメント欄を指定 //*comment、ヌル・ ステートメント以外 のすべてのステート メントにコメント欄 を指定 PARM //*MAIN に FETCH を指定 //*MAIN の BYTES、 CARDS、 LINES、および PAGES に WARNING を指定 BYTES、 CARDS、 LINES、および PAGES に WARNING を指 定 OUTPUT JCL ステ ートメントに NOTIFY を指定 NOTIFY システムからユ ーザー ID への ジョブ完了の 印刷完了の /*NOTIFY //*MAIN に USER を指定 TSO/E ユーザー ID からシステム への OUTPUT JCL に PIMSG を指定 機能サブシステ ムからプログラ マーへの ジョブ・ログを 介して JOB NOTIFY の指定と共に //*MAIN に ACMAIN を指定 MSGCLASS JOB JES2 アカウンテ ィング情報に MSGLEVEL のロ グを指定 OUTPUT JCL に JESDS を指定 /*JOBPARM に NOLOG を指定 JCL からシステムへの通信 (非 APPC) ここで説明するステートメントは、APPC スケジューリング環境ではサポートされ ません。 下記のステートメントを使用して、JCL からシステムへの通信を行ってください。 v JES2 システムの場合は、 – オペレーターのコンソールから出すことができる MVS と JES コマンドを入 力する JCL COMMAND ステートメント © Copyright IBM Corp. 1988, 2004 61 ジョブの入力 - 通信 – システム・オペレーター・コマンドを入力する JCL コマンド・ステートメン ト – JES2 コマンドを入力する JES2 /*$command ステートメント v JES3 システムの場合は、 – オペレーターのコンソールから出すことができる MVS と JES コマンドを入 力する JCL COMMAND ステートメント – システム・オペレーター・コマンドを入力する JCL コマンド・ステートメン ト – JES3 コマンドを入力する JES3 //**command ステートメント システムは、ストリーム内コマンドを読み込むとすぐに実行します。したがって、 コマンドはいずれのジョブまたはステップの実行とも同期はとられません。 例 In a JES2 system: /*$SI3-5 // COMMAND ’CANCEL MYJOB,DUMP’ In a JES3 system: //**START JCL からオペレーターへの通信 (非 APPC) JES2 システムの場合は /*MESSAGE 制御ステートメントを、JES3 システムの場合 は //*OPERATOR 制御ステートメントを使用して、JES が入力ストリームからジョ ブを読み込むときにオペレーターにメッセージを送信してください。メッセージ は、いずれのジョブまたはステップの実行とも同期化されないことに注意してくだ さい。 例 In a JES2 system: /*MESSAGE JOB J67 IS HELD. CALL X65335 BEFORE RELEASING J67. In a JES3 system: //*OPERATOR JOB J67 IS HELD. CALL X65335 BEFORE RELEASING J67. JCL からプログラマーへの通信 JCL からプログラマーへの通信を行うときは、コメント欄または JCL //*comment ステートメントを使用してください。JOB ステートメントの MSGLEVEL パラメー ターでステートメントを印刷する要求を出すと、コメントはジョブ・ログ出力リス トに記載されます。 コメントはジョブおよびそのリソース要件を文書化するときに、主に使用してくだ さい。 例 //* JOB J67 IS HELD UNTIL THE OPERATOR RELEASES IT. //* THE OPERATOR SHOULD RELEASE J67 WHEN DISK 398 //* IS AVAILABLE. 62 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 通信 JCL からプログラムへの通信 処理プログラムには、実行ごとに異なる情報が必要になることがあります。たとえ ばアセンブラーとリンケージ・エディターには、実行時にプログラマー提供のオプ ションとモジュール属性が必要になります。プログラムに情報を提供するときは、 プログラムを実行する EXEC ステートメントに PARM パラメーターを指定してく ださい。 情報を使用するためには、情報を検索するための命令が処理プログラムに入ってい なければなりません。PARM 情報の検索についての詳細は、z/OS MVS プログラミ ング: アセンブラー・サービス ガイド を参照してください。 例 //FIRST EXEC //LATER EXEC PGM=IEV90,PARM=(OBJECT,NODECK,’LINECOUNT=50’) PGM=HEWL,PARM=’XREF,LIST,LET’ IBM 提供のプログラムに指定する PARM 値 IBM 提供のプログラムには、選択肢のセットからオプションが選択できるようにな っているものがあります。PARM 値は、プログラムに関する資料にリストされてい ます。大半の IBM 提供のプログラムの場合、システムの初期設定時に PARM 値に デフォルト値を割り当てることができます。つまり、ご使用のシステムでは代替値 を選択するか、固定値を割り当てることができます。IBM 提供のプログラムを実行 するときに PARM パラメーターに別の値を指定しない限り、システムはこのデフ ォルト値を使用します。 ご使用のシステムでは、システムの初期設定時に割り当てられたデフォルト値のリ ストを維持管理する必要があります。 システムからオペレーターへの通信 システムは、オペレーターが必要だと思われるメッセージをオペレーター・コンソ ールに送信します。 ボリュームの取り付け時に出されるメッセージ JES3 システムでは、プログラマーはジョブのディスクとテープ・ボリュームについ て、JES3 がオペレーター・コンソールに出す取り出しメッセージを制御することが できます。下記のいずれかを要求するときは、JES3 //*MAIN ステートメントの FETCH パラメーターを指定してください。 v JES3 セットアップ装置にマウントするすべてのボリュームに関するすべての取り 出しメッセージ v JES3 //*MAIN ステートメントの SETUP パラメーターに指定する DD ステート メントに指定されたボリュームに関する取り出しメッセージ v 名前付き DD ステートメントに指定されたボリュームに関する取り出しメッセー ジ v 取り出しメッセージは不要 v 名前付き DD ステートメントに指定されたボリュームに関する取り出しメッセー ジは不要 第 7 章 ジョブの入力 - 通信 63 ジョブの入力 - 通信 FETCH パラメーターとは無関係に、JES3 はジョブ・ログにすべての取り出しメッ セージを送信します。 例 //*MAIN //*MAIN //*MAIN //*MAIN //*MAIN FETCH=ALL FETCH=NONE FETCH=SETUP FETCH=(DDA,INDS,DD7) FETCH=/MYDS ジョブが出力限界値を超えた場合に出されるメッセージ ジョブからの出力が指定されている限界値を超えると、システムはオペレーターに 警告メッセージを送信します。限界値を超えたときにシステムが警告メッセージを 送信する方法は、そのジョブを実行している環境によって異なります。 APPC スケジューリング環境において出力限界値を超えたときに出さ れるメッセージ APPC スケジューリング環境では、JOB ステートメントの BYTES、CARDS、 LINES、および PAGES パラメーターによってジョブの出力を制限します。これら のパラメーターに WARNING サブパラメーターを指定すると、出力が指定の限界 値を超えたときに、システムはオペレーターに警告メッセージを送信します。 JOB ステートメントの BYTES、CARDS、LINES、および PAGES パラメーターに 出力限界値を指定しないと、JES の初期設定時に指定したご使用のシステムでのデ フォルトの限界値をジョブの出力が超えたときに、システムはオペレーターに警告 メッセージを送信します。 非 APPC スケジューリング環境において出力限界値を超えたときに 出されるメッセージ 非 APPC スケジューリング環境では、APPC スケジューリング環境において出力限 界値を超えたときに出されるメッセージで説明した JOB ステートメントのパラメー ターとご使用のシステムでのデフォルトを使用して、限界値を超えた時点でシステ ムに警告メッセージの送信を要求することができます。さらに、JES2 /*JOBPARM ステートメントまたは JES3 //*MAIN ステートメントに BYTES、CARDS、 LINES、または PAGES パラメーターを指定して、ジョブの出力を制限することが できます。 //*MAIN ステートメントに WARNING サブパラメーターを指定すると、ジョブの 出力が指定の限界値を超えたときに、システムはオペレーターに警告メッセージを 送信します。 /*JOBPARM ステートメントに出力の限界値を指定すると、次のときにシステムは オペレーターに警告メッセージを送信します。 v ジョブの出力が指定の限界値を超えた場合。 v JES2 の初期設定時に、ご使用のシステムでのデフォルトとして警告オプションが 指定されたとき。 デフォルトおよび複数のメッセージ 64 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 通信 JOB ステートメントに出力の限界値を指定しないと、システムは、//*MAIN ステー トメントまたは /*JOBPARM ステートメントに指定された限界値を使用します。 //*MAIN または /*JOBPARM ステートメントを指定しないと、システムは JES の 初期設定時に指定された、ご使用のシステムでのデフォルト限界値を使用します。 ジョブについての出力の限界値を指定した複数の //*MAIN ステートメントを指定す るか、JOB ステートメントと //*MAIN ステートメントに限界値と WARNING サ ブパラメーターを指定すると、オペレーターは複数の警告メッセージを受け取りま す。 警告メッセージの使用方法 出力限界値は、プログラム・テスト時に使用されます。警告メッセージは、プログ ラムが予定以上の出力を作成していることをオペレーターに知らせます。プリンタ ーまたは穿孔装置へレコードを送る命令が入っているプログラムが、永久ループ状 態に入っている可能性があります。オペレーターは、プログラムの実行を停止させ ることができます。 例 下記の例は、APPC スケジューリング環境または非 APPC スケジューリング環境に おいて、ジョブの出力が JES システムで限界値を超えたときにオペレーターに警告 する JCL JOB ステートメントの使用法を示したものです。 //JOB1 JOB ACCT01,’D. PIKE’,BYTES=(50,WARNING) //JOB2 JOB 1542,RWALLIN,CARDS=(120,WARNING) //JOB3 JOB ,ZOBES,LINES=(200,WARNING) //JOB4 JOB ACCT27,’S M SHAY’,PAGES=(,WARNING) 下記の例は、非 APPC スケジューリング環境において、ジョブの出力が限界値を超 えたときにオペレーターに警告する JES3 //*MAIN ステートメントの使用法を示し たものです。 //*MAIN //*MAIN //*MAIN //*MAIN BYTES=(50,WARNING) CARDS=(120,WARNING) LINES=(200,WARNING) PAGES=(,WARNING) システムからユーザー ID への通信 NOTIFY パラメーターを使用すると、ジョブまたは印刷が完了した時にシステムか らユーザーに通知させることができます。 ジョブの完了 バックグラウンド・ジョブまたはバッチ・ジョブを実行するときは、ジョブが完了 した時点でタイム・シェアリング・ユーザー ID または別のユーザー ID に知らせ るようにシステムに依頼することができます。TSO/E のもとでは、バックグラウン ド・ジョブは SUBMIT コマンドによって、またはバックグラウンドで TSO/E を実 行するステップを実行することによって、端末装置から入力されます。詳細につい ては、z/OS TSO/E コマンド解説書 を参照してください。バッチ・ジョブは、入力 ストリームから入力されます。 第 7 章 ジョブの入力 - 通信 65 ジョブの入力 - 通信 自動通知を要求するときは、ジョブの JCL に下記のいずれかを指定してください。 v JES2 または JES3 システムにおける TSO/E バックグラウンド・ジョブの場合に は、JOB ステートメントの NOTIFY パラメーターにユーザー ID (任意でノード も) を指定してください。ノードを指定する場合には、ユーザー ID をそのノー ドに接続しなければなりません。ノードを指定しない場合には、ユーザー ID を、ジョブの生成元であるノードに接続しなければなりません。 v JES2 システムにおける TSO/E バックグラウンド・ジョブまたはバッチ・ジョブ の場合には、JES2 /*NOTIFY ステートメントにユーザー ID を指定してくださ い。ユーザー ID が別のノードに接続されているときは、ノードを指定してくだ さい。 v JES3 システムにおけるバッチ・ジョブの場合には、JOB ステートメントの NOTIFY パラメーターにはユーザー ID (オプショナルでノードも) を、JES3 //*MAIN ステートメントの ACMAIN パラメーターにはユーザー ID の処理装置 を指定してください。 | | | | 例 In a JES2 or JES3 system: //MYJOB JOB ,’I. BUTLER’,NOTIFY=DN62PSS //MYJOB JOB ,’I. BUTLER’,NOTIFY=FARNODE.DN62PSS In a JES2 system: /*NOTIFY DN62PSS4 /*NOTIFY FARNODE.DN62PSS In a JES3 system: //MYJOB JOB ,’I. BUTLER’,NOTIFY=DN62PSS //*MAIN ACMAIN=2 印刷の完了 OUTPUT JCL ステートメントに NOTIFY パラメーターを指定しておくと、出力の 印刷が完了したときに通知されます。NOTIFY を指定すると、印刷完了メッセージ を最高 4 人のユーザーに送信することができます。メッセージは印刷の完了した出 力を識別し、印刷が正しく完了したかどうかを示します。 例 //OUT1 OUTPUT NOTIFY=(PLPSC.ARNOLD,SMYTHE) タイム・シェアリング・ユーザー ID から JES3 システムへの通信 JES3 システムでは、JES3 //*MAIN ステートメントの USER パラメーターが、 TSO/E ユーザーのジョブを識別します。ご使用のシステムでジョブの命名規則に従 うことを強制していない場合は、内部読み取りプログラム以外であれば、いかなる 入力ソースからでも実行依頼することができます。USER を使用すると、TSO/E ユ ーザー ID は下記の処理を実行することができます。 v TSO/E OUTPUT コマンドを出して、ジョブから SYSOUT データ・セットにアク セスします。 v ジョブの状況について照会するか、それを取り消します。 例 //*MAIN USER=J63ET91 66 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 通信 機能サブシステムからプログラマーへの通信 プログラマーは、機能サブシステムが作成する SYSOUT データ・セットの出力に 続けて、出力リストにメッセージを印刷するかどうかを制御することができます。 このような制御を行うためには、OUTPUT JCL ステートメントに PIMSG パラメー ターを指定します。 例 //ODS3 OUTPUT PAGEDEF=IMAG4,PIMSG=YES ジョブ・ログを介して行う通信 システムは、ジョブに関するシステム管理の 3 つのデータ・セットを作成します。 システム管理データ・セットは、次のもので構成されています。 v ジョブ・ログ。プログラマーのためのジョブ関連情報の記録です。ジョブ・ログ は、次のもので構成されます。 – 入力ストリーム内のジョブ制御ステートメント。つまり、JCL ステートメント および JES2 または JES3 ステートメント。 – ジョブ・ステップが呼び出すプロシージャーについてのカタログ式プロシージ ャー・ステートメント。 – ジョブ制御ステートメントに関するメッセージ。 v ジョブのハードコピー・ログ。オペレーター・コンソールとの間のジョブに関す るすべてのメッセージ通信の記録です。これらのメッセージは装置とボリューム の割り振り、ジョブ・ステップとジョブの実行と終了、およびデータ・セットの 後処理について記述します。 v ジョブに関するシステム・メッセージ。 ジョブ・ログの出力クラスは、JOB ステートメントの MSGCLASS パラメーターに よって設定されます。あるいは、ジョブ・レベル OUTPUT JCL ステートメントに JESDS パラメーターが指定されている場合は、OUTPUT JCL ステートメントに適 用されるクラスによって設定されます。(注 : MSGCLASS パラメーターは、APPC スケジューリング環境では無効です。MSGCLASS を指定すると、システムは構文を 検査し、無視します。)クラスを指定しないと、システムは、ジョブの入力ソースに もとづいてデフォルトのクラスを使用します。デフォルト値は、JES の初期設定時 に指定されます。 ジョブ・ログの印刷は、下記のパラメーターで制御します。 v JOB ステートメントの MSGLEVEL パラメーター v JESDS パラメーターが指定されている OUTPUT JCL ステートメントのすべての パラメーター ジョブ・ログを印刷しないようにするには、下記のいずれかを指定します。 v JOB ステートメントの JES2 アカウンティング情報パラメーターのログ・サブパ ラメーター v JES2 /*JOBPARM ステートメントの NOLOG パラメーター 例 1 第 7 章 ジョブの入力 - 通信 67 ジョブの入力 - 通信 //JOBC //SMDS JOB ,’V. ST PIERRE’,MSGLEVEL=(1,1) OUTPUT JESDS=ALL,CLASS=D,COPIES=2,BURST=YES, 例 2 //JOBF JOB (,,,,,,,N) /*JOBPARM NOLOG 例 3 //J1 //O1 //O2 //S1 JOB OUTPUT OUTPUT EXEC 1518,’SECT. E98’ JESDS=ALL JESDS=ALL,WRITER=JCLOGGER PGM=REPORT この例では、3 つのシステム管理データ・セットを通常どおりに印刷することと、 それぞれのコピーを JCLOGGER という名前の外部書き出しプログラムに宛先指定 することを要求します。 //MYEX //SYSPROG //OPER //USER //REMOTE //S1 //SYSPRINT JOB OUTPUT OUTPUT OUTPUT OUTPUT EXEC DD ,’DEPT. 28H’,MSGCLASS=A JESDS=ALL,GROUPID=SYSPROG JESDS=ALL,GROUPID=OPER JESDS=ALL,GROUPID=USER,DEFAULT=YES JESDS=ALL,DEST=REMOTE,DEFAULT=YES PGM=REPORT SYSOUT=A この例では、4 つの異なる出力グループが作成されます。グループ SYSPROG に は、3 つのシステム管理データ・セットすべてのコピーが入ります。グループ OPER にも、3 つのシステム管理データ・セットすべてのコピーが入ります。グル ープ USER には、3 つのシステム管理データ・セットすべてのコピーと、DD ステ ートメント SYSPRINT に指定されたデータ・セットのコピーが入ります。グループ USER は、ローカルで処理されます。 システムは、システム生成のグループ名を付けた 4 つ目のグループを作成します。 このグループには、3 つのシステム管理データ・セットのコピーと、DD ステート メント SYSPRINT に指定されたデータ・セットのコピーが入ります。このグループ は、宛先 REMOTE においてリモートで処理されます。 ジョブ・ログおよび SYSOUT データ・セットの連続印刷 1 つのジョブからのジョブ・ログと SYSOUT データ・セットを同じ出力リストに 印刷するときは、それらを同じ出力クラスに入れてください。下記のいずれかを指 定します。 v DD ステートメントの SYSOUT=* v OUTPUT JCL ステートメントの CLASS=* v JOB MSGCLASS パラメーターに指定した出力クラスと同じ DD SYSOUT パラ メーターまたは OUTPUT JCL CLASS パラメーターの出力クラス あるいは、JESDS パラメーターを指定した OUTPUT JCL ステートメントを使用し て、システム管理データ・セットの印刷を制御してください。次のような理由によ り、OUTPUT JESDS ステートメントと SYSOUT DD ステートメントを指定すると きには注意が必要です。 v SYSOUT DD ステートメントに指定した値が、OUTPUT JCL ステートメントに 指定した値をオーバーライドします。 68 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - 通信 v OUTPUT JCL ステートメントに指定した値は、常にシステム管理データ・セット に適用されます。 したがって、すべてのデータ・セットが同じ OUTPUT JCL ステートメントを参照 していても、システム管理の出力データ・セットと SYSOUT データ・セットの処 理に使用する出力パラメーターは異なることもあります。たとえば SYSOUT DD ステートメントがある出力クラスを指定し、JESDS ステートメントが別の出力クラ スを指定している場合、SYSOUT データ・セットとシステム管理データ・セットは 別のサブグループに入れられて、それぞれが固有の出力クラスで印刷されます。 例 1 //J1 //S1 //OUT JOB DF16,MSGCLASS=B EXEC PGM=ABC DD SYSOUT=* //J2 //S1 //OUT JOB ,’V. FOTI’,MSGCLASS=C EXEC PGM=DEF DD SYSOUT=C //J3 //S1 //OT1 //DS1 JOB ,’G. ROY’,MSGCLASS=D EXEC PGM=GHI OUTPUT CLASS=* DD SYSOUT=(,),OUTPUT=*.OT1 //J4 //S1 //OT1 //DS1 JOB ,’T. POLAKOWSKI’,MSGCLASS=E EXEC PGM=JKL OUTPUT DEFAULT=YES,CLASS=E DD SYSOUT=(,) 例 2 //SYSDS JOB ,’J. HIGGINS’, MSGCLASS=A //OUT1 OUTPUT JESDS=ALL,GROUPID=JOINT,DEFAULT=YES //STEP1 EXEC PGM=REPORT //REQPRT DD SYSOUT=A この例は、SYSOUT データ・セットとシステム管理の出力データ・セットを 1 つ の出力グループに組み合わせる方法を示しています。システムは、SYSOUT デー タ・セット REQPRT と 3 つのシステム管理データ・セットを同じグループに印刷 します。 第 7 章 ジョブの入力 - 通信 69 ジョブの入力 - 通信 70 z/OS MVS JCL ユーザーズ・ガイド 第 8 章 ジョブの入力 - 保護 表 16. ジョブを入力するための保護タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント 保護 RACF を使用した GROUP PASSWORD SECLABEL USER RACF を使用した保護 z/OS セキュリティー・サーバー (RACF を含む) は、データ・セットへのアクセス とジョブの実行のためのセキュリティー・レベルを制御することによって、ご使用 のシステムがデータ・セキュリティーを実現するときに役立つプログラム・プロダ クトです。RACF の詳細については、以下を参照してください。 http://www.ibm.com/servers/eserver/zseries/racf/ RACF 保護の場合、ユーザーはユーザー ID とパスワードを RACF に対して設定し なければなりません。ジョブのグループ名とセキュリティー・ラベルはオプショナ ルです。ご使用のシステムの RACF オプションによって、グループ名とセキュリテ ィー・ラベルを JOB ステートメントの USER、PASSWORD、GROUP、および SECLABEL パラメーターに指定することができます。TSO/E ユーザーが実行依頼 するジョブの場合は、これらの項目を TSO/E ログオンから獲得することができま す。 開始タスクのセキュリティー環境は USER、PASSWORD、GROUP、および SECLABEL パラメーターではなく、RACF クラスを使用して定義します。これらの パラメーターを指定すると、開始タスクは失敗します。 RACF がインストールされているシステムでは、次のジョブの場合、JOB ステート メントには USER と PASSWORD パラメーターは必須であり、GROUP と SECLABEL パラメーターはオプショナルです。 v カード読取装置などの入力ストリームを介して実行依頼されたバッチ・ジョブ。 – ジョブが RACF 保護リソースにアクセスする必要がある場合 – ご使用のシステムの要件として、すべてのジョブを RACF で識別させること が必要な場合 v 別のユーザーのために RACF 定義のユーザーが実行依頼したジョブ。この場合、 JOB ステートメントには別のユーザーのユーザー ID を指定しなければならず、 パスワードが必要となることもあります。グループ ID とセキュリティー・ラベ ルはオプショナルです。 v RACF 保護を使用する別のネットワーク・ノードで実行されるジョブ © Copyright IBM Corp. 1988, 2004 71 ジョブの入力 - 保護 例 //MYJOB //YOURS //RAJOB 72 z/OS MVS JCL ユーザーズ・ガイド JOB JOB JOB D58,SUE,USER=D58STW,PASSWORD=41168X D58,DON,USER=DSCHOF,PASSWORD=404632,GROUP=D58DISK D58,ALE,USER=D59AFG,PASSWORD=3316YX,SECLABEL=CONF 第 9 章 ジョブの入力 - リソース制御 表 17. ジョブを入力するためのリソース制御タスク ジョブを 入力するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント JOB EXEC その他の JCL JES2 ステートメント JES3 ステートメント リソース制御 プログラム・ライ ブラリーの JOBLIB DD STEPLIB DD PDS または PDSE のメンバー を定義する DD プロシージャー・ ライブラリーの JCLLIB /*JOBPARM に //*MAIN に PROCLIB を指定 PROC および UPDATE を指定 INCLUDE グルー プの JCLLIB /*JOBPARM に //*MAIN に PROCLIB を指定 PROC および UPDATE を指定 アドレス・スペー REGION スの ADDRSPC 処理装置の //*MAIN に LREGION を指 定 REGION ADDRSPC SCHENV スプール区画の /*JOBPARM に SYSAFF を指定 //*MAIN に SYSTEM を指定 //*MAIN に SPART および TRKGRPS を指 定 プログラム・ライブラリーのリソース制御 プログラムを実行するためには、次のいずれかのライブラリーにプログラムを入れ ておかなければなりません。 システム・ライブラリー 専用ライブラリー 一時ライブラリー ライブラリーは、直接アクセス記憶装置上の区分データ・セット (PDS) または拡張 区分データ・セット (PDSE) です。 PDS および PDSE は、メンバーと呼ばれる区 画に分かれています。 ライブラリー内の各メンバーには、プログラムまたはプログ ラムの一部が入っています。 PDS または PDSE のメンバーの作成および削除については、z/OS DFSMS: デー タ・セットの使用法 を参照してください。 © Copyright IBM Corp. 1988, 2004 73 ジョブの入力 - リソース制御 システム・ライブラリー ジョブまたはステップで専用ライブラリーを指定しないかぎり、次のように指定す ると、システムはシステム・ライブラリー内のプログラムを探します。 //stepname EXEC PGM=program-name システムは、指定の program-name と同じ名前または別名のメンバーがないかどう かライブラリーを探します。最も頻繁に使用されるシステム・ライブラリーは SYS1.LINKLIB です。これには、リンケージ・エディターで処理された実行可能プ ログラムが入っています。 ジョブ内のこれより前の DD ステートメントに、システム・ライブラリーのメンバ ーとしてプログラムが定義されているときは、その DD ステートメントを参照して プログラムを実行します。 //stepname EXEC PGM=*.stepname.ddname 専用ライブラリー 実行可能な、それぞれのユーザー作成プログラムは、専用ライブラリーのメンバー です。プログラムが専用ライブラリーに入っていることをシステムに伝えるとき は、次のいずれかの方法でそのライブラリーを定義する DD ステートメントを指定 してください。 v ジョブ全体で使用する専用ライブラリーを定義するときは、JOB ステートメント の後の最初の EXEC ステートメントの前に、DD 名 JOBLIB を指定した DD ス テートメントを入れます。 v 1 つのステップだけで使用するライブラリーを定義するときは、そのステップに DD 名 STEPLIB を指定した DD ステートメントを入れます。 専用ライブラリーのプログラムを実行するときは、次のように指定してください。 //stepname EXEC PGM=program-name JOBLIB または STEPLIB を指定すると、システムは、実行するプログラムがない かどうか、システム・ライブラリーを探す前に、JOBLIB または STEPLIB DD ステ ートメントで定義されたライブラリー内を探します。 このジョブ内でこれ以前に指定された DD ステートメントに専用ライブラリーのメ ンバーとしてプログラムが定義されているときは、その DD ステートメントを参照 してプログラムを実行します。 //stepname EXEC PGM=*.stepname.ddname 専用ライブラリーの使用方法 専用ライブラリーには、まれにしか使用しないためシステム・ライブラリーに入れ ておく必要がないプログラムを入れておくと便利です。たとえば、年に 4 回売上税 報告書を作成するようなプログラムは、専用ライブラリーに入れておくとよいでし ょう。 専用ライブラリーの作成 専用ライブラリーを作成するには、JOBLIB または STEPLIB DD ステートメントを 指定し、そのジョブで、そのライブラリーに 1 つあるいは複数のメンバーを追加し 74 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 てください。JOBLIB ライブラリーはメンバーを追加したり、すでに追加されてい るメンバーを実行するために、ジョブのすべてのステップで使用できるので、 STEPLIB より便利です。 STEPLIB DD は受け渡しされるか、使用する各ステップ で再度定義しなければなりません。 専用ライブラリーへのメンバーの追加 ライブラリーにメンバーを追加するときは、ライブラリーを定義して、ライブラリ ーに追加するメンバーを指定する DD ステートメントを指定してください。 専用ライブラリーの作成および追加の例 //EG //JOBLIB // // //STEP1 //ADDPGMD // //STEP2 JOB 5328,’MARGARET NONNSEN’ DD DSNAME=GROUPLIB,DISP=(NEW,CATLG), UNIT=3350,VOL=SER=727104, SPACE=(CYL,(50,3,4)) EXEC PGM=FIND DD DSNAME=GROUPLIB(RATE),DISP=MOD, VOL=REF=*.JOBLIB EXEC PGM=RATE この例では、JOBLIB DD ステートメントで GROUPLIB という名前のライブラリ ーを作成します。STEP1 のプログラム FIND によって、プログラム RATE がライ ブラリーに追加されます。STEP2 によって、プログラム RATE が呼び出されま す。 STEP1 では、JOBLIB DD ステートメントで作成された専用ライブラリーはメンバ ーが追加されるまで実際には存在しないため、システムはプログラム FIND がない かどうか SYS1.LINKLIB を探します。STEP2 では、システムはまずプログラム RATE がないかどうか、JOBLIB ライブラリーを探します。 既存の専用ライブラリーの検索 1 つのジョブについて複数のプログラムが同じ専用ライブラリー内にあるときは、 JOBLIB DD ステートメントでそのライブラリーを識別してください。そのライブ ラリーは、STEPLIB DD ステートメントが指定されていないすべてのジョブ・ステ ップで使用することができます。 1 つのステップでライブラリーを使用できるようにするには、そのライブラリーを STEPLIB DD ステートメントで指定してください。 STEPLIB ライブラリーは、受 け渡しされて後続のステップで検索されない限り、STEPLIB DD ステートメントが 指定されたステップでしか使用できません。 システムは、ユーザーが指定した専用ライブラリー内でプログラムを探します。ジ ョブに JOBLIB DD ステートメントを指定し、ステップに STEPLIB DD ステート メントを指定すると、システムはまず STEPLIB ライブラリー内でそのステップの プログラムを探し、次にシステム・ライブラリー内で探します。システムは、その ステップについては JOBLIB ライブラリーを無視します。 JOBLIB ライブラリーを使用したジョブのステップの場合に、JOBLIB ではなくシス テム・ライブラリー内で探したいときは、システム・ライブラリーを指定した STEPLIB DD ステートメントを指定してください。 //STEPLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR 第 9 章 ジョブの入力 - リソース制御 75 ジョブの入力 - リソース制御 ジョブおよびステップ・ライブラリーの検索の例 //MYJOB //JOBLIB //STEP1 //STEP2 //STEPLIB // JOB MSGLEVEL=1 DD DSNAME=LIB5.GRP4,DISP=SHR EXEC PGM=FIND EXEC PGM=GATHER DD DSNAME=ACCOUNTS,DISP=(SHR,KEEP), UNIT=3350,VOL=SER=727104 v STEP1 では、システムは JOBLIB DD ステートメントに定義されたライブラリー LIB5.GRP4 内でプログラム FIND を探します。 v STEP2 では、システムは STEPLIB DD ステートメントに定義されたライブラリ ー ACCOUNTS 内でプログラム GATHER を探します。 専用ライブラリーの連結 1 つのジョブがいくつかのライブラリーからプログラムを使用する場合は、これら のライブラリーを JOBLIB DD ステートメントまたは STEPLIB DD ステートメン トに連結することができます。連結するライブラリーはすべて、既存のライブラリ ーでなければなりません。ライブラリーの最初の DD ステートメント以外の全 DD ステートメントから DD 名を省いてください。 システムは、DD ステートメントと同じ順番でライブラリー内でプログラムを探し ます。 連結されたライブラリーの例 //JOBLIB DD DSNAME=D58.LIB12,DISP=(SHR,PASS) // DD DSNAME=D90.BROWN,DISP=(SHR,PASS), // UNIT=3330,VOL=SER=411731 // DD DSNAME=A03.EDUC,DISP=(SHR,PASS) 一時ライブラリー 一時ライブラリーは、同じジョブの 後のステップで使用されるまでプログラムを保 管しておくために作成される区分データ・セットです。一時ライブラリーは 1 つの ジョブ内で作成され、削除されます。 新しく作成されたプログラムをテストする場合には、リンケージ・エディターによ って作られたロード・モジュールを、後のジョブ・ステップで実行されるまで一時 ライブラリーに保管しておくと、特に便利です。そのモジュールは、完全にテスト されるまで他のジョブに必要ではないので、システム・ライブラリーに入れるべき ではありません。 システムが一時ライブラリー内でそのモジュールに名前を割り当てるので、その名 前を予測することはできません。したがって、PGM パラメーターを使用して、名前 ではなく保管場所によってそのプログラムを識別してください。一時ライブラリー を定義する DD ステートメント逆方向参照を指定してください。 //stepname EXEC PGM=*.stepname.ddname 一時ライブラリーの作成 プログラムを作成するステップでは、区分データ・セットを作成する DD ステート メントを指定して、それにプログラムを入れてください。これで後のステップで、 このプログラムを検索することができます。これとは別に、一時ライブラリーを定 76 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 義する仮想入出力 (VIO) 機能を使用することができます。詳細については、 196 ペ ージの『仮想入出力の割り振り』を参照してください。 例 //STEP2 EXEC PGM=IEWL . . . //SYSLMOD DD DSNAME=&&PARTDS(PROG),UNIT=3350, // DISP=(NEW,PASS),SPACE=(1024,(50,20,1)) //STEP3 EXEC PGM=*.STEP2.SYSLMOD STEP2 では、オブジェクト・モジュールをリンク・エディットして実行可能なロー ド・モジュールを作成するプログラム IEWL を呼び出します。STEP2 では、 SYSLMOD DD ステートメントで定義したライブラリーにそのモジュールを入れま す。 STEP3 では、ライブラリーを作成したステップ、およびライブラリーのメンバーと してプログラムを定義する DD ステートメントを指定して、そのプログラムを呼び 出しています。STEP2 でプロシージャーを呼び出していて、そのプロシージャーの PROCSTEP3 に DD ステートメント SYSLMOD が含まれている場合は、 PGM=*.STEP2.PROCSTEP3.SYSLMOD と指定します。 プロシージャー・ライブラリーのリソース制御 プロシージャー・ライブラリーは、プロシージャーまたは INCLUDE グループが入 っているメンバーで構成されている区分データ・セットです。 INCLUDE グループ の詳細については、 79 ページの『INCLUDE グループのリソース制御』を参照して ください。 ライブラリーにカタログされているプロシージャーを呼び出して実行するときは、 次のように指定してください。 //stepname EXEC PROC=procedure-name カタログ式プロシージャーの名前は、ライブラリーのメンバー名または別名です。 プロシージャー・ライブラリーの検索 ジョブでプロシージャー・ライブラリーを指定しないと、システムは EXEC ステー トメントによって呼び出されるすべてのカタログ式プロシージャーを、そのジョブ のジョブ・クラスに対してご使用のシステムで定義したプロシージャー・ライブラ リーから検索します。 ジョブのカタログ式プロシージャーが別のプロシージャー・ライブラリーに入って いるときは、下記のパラメーターを使用して、システムにそのライブラリーを指示 してください。このパラメーターには、JES の初期設定時に定義したプロシージャ ー・ライブラリーを指定する必要があります。 v JCLLIB ステートメントを指定して、システム・プロシージャー・ライブラリ ー、ご使用のシステム定義のプロシージャー・ライブラリー、または専用ライブ ラリーを探索するようにシステムに指示してください。システムは、JCLLIB に 指定された順序でライブラリーを探索します。 第 9 章 ジョブの入力 - リソース制御 77 ジョブの入力 - リソース制御 v JES2 システムでは、JES2 /*JOBPARM ステートメントに PROCLIB パラメータ ーを指定します。 v JES3 システムでは、JES3 //*MAIN ステートメントに PROC パラメーターを指 定します。 プロシージャー・ライブラリーの更新 プロシージャー・ライブラリーには、バッチまたはフォアグラウンド・プロセスに よって追加または更新されたプロシージャーが入っている場合があります。バッ チ・モードにおいて、プロシージャー・ライブラリーを更新するには、ユーザー・ アプリケーション・プログラムに加えて、IEBUPDTE、IEBCOPY、または IEBGENER などのユーティリティー・プログラムを使用する方法があります。フォ アグラウンドの更新は、ISPF 編集、ISPF コピー、あるいはそれらと同等の方法を 使用して行うことができます。 JES3 環境においては、//*MAIN JECL ステートメント上の UPDATE= パラメータ ーが、JES3 複合システムで実行する JES3 グローバルおよびすべての C/I FSS ア ドレス・スペースにプロシージャー・ライブラリーの更新を知らせるための方法と して推奨されます。 更新がバッチ・モードで行われたときに JES3 に通知するには、更新を行うバッ チ・ジョブに //*MAIN UPDATE= JECL ステートメントを組み込みます。 //*MAIN JECL ステートメントについては、z/OS MVS JCL 解説書 を参照してください。 例 //JOB1 //LIBS //STEP1 JOB JCLLIB ORDER=(MYPRI.PROCS.JCL,SYS1.PROCLIB,INSTALL.JCL.PROCS) EXEC PROC=STAT . . . JES2 システムの場合: //JOB87 JOB ,’S. WENDALL’ /*JOBPARM PROCLIB=PROC15 //S1 EXEC PROC=ALEG //INDS DD * . (データ) . /* JES3 システムの場合: //JOB87 JOB ,’S. WENDALL’ //*MAIN PROC=15 //S1 EXEC PROC=ALEG //INDS DD * . (データ) . /* 以上の例では、システムはプロシージャー・ライブラリー PROC15 からプロシージ ャー ALEG を入手します。 78 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 INCLUDE グループのリソース制御 INCLUDE グループは、システム・ライブラリー、ご使用のシステム定義のライブ ラリー、または専用ライブラリーのメンバーです。 INCLUDE ステートメントで JCL ストリームに INCLUDE グループを組み込むと きは、次のように指定してください。 //name INCLUDE MEMBER=member-name システムは、INCLUDE ステートメントを INCLUDE グループに入っている JCL ステートメントに置き換えます。 INCLUDE グループの検索 システム・ライブラリー、ご使用のシステム定義のライブラリー、または専用ライ ブラリー内で INCLUDE ステートメントに指定されたメンバーを探索するようにシ ステムに指示するときは、次のように指定してください。 //name JCLLIB ORDER=library-name1,library-name2 例 //IDLIB //INCGRP JCLLIB ORDER=(PRILIB.INCL.ONE,PRILIB.INC.TWO) INCLUDE MEMBER=OUTSTMTS アドレス・スペースのリソース制御 ストレージのタイプ MVS の場合、プログラムが使用できるストレージは、仮想記憶域または (実記憶域 とも呼ばれる) 中央記憶装置です。 v 仮想記憶域は、ユーザーには中央 (実) 記憶装置として見える、アドレス可能スペ ースです。命令とデータは、仮想記憶域からそれらが実行される中央記憶装置の 保管場所にマップされます。 v 中央 (実) 記憶装置は、処理装置がそこから命令とデータを直接得て、そこに直接 結果を戻すことができる記憶機構です。 仮想記憶域 仮想記憶域アドレス・スペースは 2 ギガバイトです。アドレス・スペースは、共通 にアドレス可能なシステム・ストレージ、中核、およびユーザーの領域が入ってい る専用アドレス・スペースで構成されています。 プログラムが選択されると、システムはそれを仮想記憶域に入れて、4K バイトのペ ージに分割します。システムは、実行のためにプログラムのページを中央 (実) 記憶 装置に転送し、不要になると補助記憶装置に入れます。ページングは、自動的に行 われます。プログラマーにとっては、プログラム全体が常時、中央記憶装置内の連 続スペースを占めているように見えます。実際には、プログラムのページがすべて 同時に中央記憶装置内にあるとは限りません。また、中央記憶装置内のページが必 ずしも連続したスペースを占めているとは限りません。 中央 (実) 記憶装置 第 9 章 ジョブの入力 - リソース制御 79 ジョブの入力 - リソース制御 実行時に、プログラムのページがすべて連続した中央 (実) 記憶装置を必要とするプ ログラムもあります。そのようなプログラムは、ページ分割することができませ ん。 このようなプログラムは、ページ不可動的区域と呼ばれる仮想記憶域の区域に 入れなければなりません。このストレージの仮想アドレスは実アドレスと同じで す。 このようなプログラムには、次のようなものがあります。 v アクティブなチャネル・プログラムを変更するプログラム v 時間に依存することが大きいプログラム 以上のようなプログラムを使用するときだけは、中央記憶装置を要求する必要があ ります。中央記憶装置を要求するときは、JOB または EXEC ステートメントに ADDRSPC=REAL を指定して、REGION パラメーターで必要な量の中央記憶装置を 要求してください。 ストレージの量とタイプの要求 ジョブまたはステップに必要なスペースの量は、JOB または EXEC ステートメン トの REGION パラメーターに指定することができます。 REGION を JOB ステー トメントに指定すると、そのジョブの各ステップは要求した量のスペース内で実行 されます。ジョブ内の EXEC ステートメントに指定すると、各ステップはそれだけ の量のスペースで実行されます。さまざまなステップが大きく異なる量のスペース を必要とするときに、EXEC ステートメントの REGION パラメーターを使用して ください。 REGION パラメーターは、プログラムが仮想記憶域または中央記憶装置のどちらを 使用するのかによって異なります。 仮想記憶域の領域サイズ ADDRSPC=VIRT を指定または暗黙指定すると、システムは REGION パラメーター またはご使用のシステム定義のデフォルトから、2 つの値を設定します。これらの 値は、次のとおりです。 v 可変長の GETMAIN の領域サイズを制限する上限の値 v 2 番目の限界値は、IBM 提供のまたはご使用のシステム提供のルーチン IEALIMIT または IEFUSI によって設定されます。システムはこの 2 番目の値を 使用して、次のものを制限します。 – 固定長の GETMAIN – 領域内に残されているスペースが要求された最少量より少ない場合の、可変長 の GETMAIN 可変長の GETMAIN について要求された最少の長さ、または固定長の GETMAIN について要求された量が 2 番目の値を超えると、ジョブまたはステッ プは異常終了します。 z/OS MVS 初期設定およびチューニング ガイド および z/OS MVS プログラミング: アセンブラー・サービス ガイド を参照してくださ い。 要求するスペースの量には、下記のスペースを含めなければなりません。 v 実行するプログラムすべてに必要なスペース 80 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 v 実行中にプログラムが GETMAIN マクロ命令で要求する追加のスペースすべて v タスク終止のために用いる割り振られていない十分なスペース 中央 (実) 記憶装置の領域サイズ ADDRSPC=REAL を指定すると、システムは REGION パラメーターまたはご使用 のシステム定義のデフォルトから、ある値を設定します。この値は、すべての GETMAIN についての領域サイズを制限する上限として使用されます。 最小の領域サイズは、次のようになっていなければなりません。 v 8K: 実行するプログラムが再入可能で、許可ライブラリー内に常駐している場 合。 v 12K: その他のすべてのプログラムの場合。 これは正常な実行のために必要な最小の領域ですが、正常なジョブ完了のために必 要な最小の領域サイズであるとは限らないことに注意してください。中央記憶装置 で実行されるプログラムは、終了前にできるかぎりの終結処理を実行しなければな りません。 例 1 //J28 //S1 //DD1 //S2 //DD2 JOB EXEC DD EXEC DD ,’F. GOLAZESKI’,CLASS=D PGM=PROGREAL,REGION=20K,ADDRSPC=REAL DSNAME=A.B.C,DISP=OLD PGM=PROGVIRT,REGION=75K,ADDRSPC=VIRT DSNAME=MYDS2,DISP=OLD この例は、ページ分割をしてはならないプログラムと、ページ分割ができるプログ ラムに必要なストレージを要求する方法を示しています。ステップ S1 は中央 (実) 記憶装置内でページ分割なしで実行され、ステップ S2 は仮想記憶域内でページ分 割ありで実行されます。 例 2 //STEPA // EXEC PROC=MYPROC8,REGION.FIRST=750K, REGION.SECOND=700K この EXEC ステートメントは、プロシージャー MYPROC8 の FIRST と SECOND という 2 つのプロシージャー・ステップにスペース要求を割り当てます。 OS/390 UNIX システム・サービスに関する考慮事項 OS/390 UNIX システム・サービス では、呼び出し可能サービス BPX1SRL を使用 すれば、プログラムで領域サイズを変更することができます。REGION サイズを増 すことができるのは、スーパーユーザーだけであることに注意してください。 BPX1SRL 呼び出し可能サービスについての詳細は、z/OS UNIX システム・サービ ス プログラミング: アセンブラー呼び出し可能サービス 解説書 を参照してくださ い。 JES3 システムにおける論理ストレージ量の要求 JES3 //*MAIN ステートメントの LREGION パラメーターを指定すると、最大のス テップの中央 (実) 記憶装置内実効ページ・セットのおおよそのサイズを指定するこ 第 9 章 ジョブの入力 - リソース制御 81 ジョブの入力 - リソース制御 とができます。 JES3 では、LREGION 値を使用してジョブ・スケジューリングを 改善しています。詳細については、z/OS JES3 初期設定およびチューニング 解説書 を参照してください。 注意して LREGION を使用してください。LREGION に対して選択した値が小さす ぎると、ジョブの実行時間が長くなります。 例 //*MAIN LREGION=100K 処理装置のリソース制御 スケジューリング環境を使用する処理装置の選択 JOB ステートメントの SCHENV パラメーターを使用して、WLM スケジューリン グ環境の名前を指定することができます。スケジューリング環境とは、リソースと そのリソースが必要とする設定のリストです。スケジューリング環境名をジョブと 関連付けると、ジョブはリソース状態の要件を満足するシステム上でのみスケジュ ーリングされます。 スケジューリング環境は、JES2 の SYSAFF パラメーターおよび JES3 の SYSTEM パラメーター (次のセクションで説明) とは異なります。スケジューリング環境は抽 象的で動的なもので、あるジョブを特定のシステム上で実行しなければならないと いう依存状況を、特別にシステムに指定しなくても示すことができます。スケジュ ーリング環境は状況を変更することができるので、JCL を変更しなくても、ジョブ を実行できるシステムを変更することができます。SYSAFF および SYSTEM パラ メーターは、それらがシステム名をリストするため、特定的で静的なものとしてし か使用できません。 また、SYSAFF パラメーターは、ジョブを変換し実行する場所を制御しますが、ス ケジューリング環境は、ジョブを実行する場所だけを制御します。(この点において は、SYSTEM パラメーターは、スケジューリング環境と異なるところはありませ ん。つまり、両方ともジョブを実行する場所のみを制御します。) スケジューリング環境と SYSAFF または SYSTEM パラメーターは、一緒に使用す ることができます。たとえば、ジョブはその作業に関連したスケジューリング環境 によって、SYS1 または SYS2 のいずれかに制限される場合があります。SYSAFF または SYSTEM パラメーターが、さらにその作業を SYS1 だけに制限する場合が あります。 WLM スケジューリング環境についての詳細は、z/OS MVS 計画: ワークロード管理 を参照してください。 例 //JOBA JOB 1,’STEVE HAMILTON’,SCHENV=DB2LATE JES2 における処理装置の選択 JES2 マルチアクセス・スプール構成の場合、ジョブはローカル入力ストリーム、リ モート・ワークステーション、および他のネットワーク・ノードにある処理装置か 82 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 ら入力されます。入力したジョブがシステムを指定しないと、JES2 はそのジョブを スプール構成の中の任意のシステムで実行するように割り当てることができます。 マルチアクセス・スプール構成内では、ジョブは特定のシステム上で実行するよう に要求することができます。次のように指定して要求します。 /*JOBPARM /*JOBPARM /*JOBPARM /*JOBPARM SYSAFF=cccc SYSAFF=(cccc,cccc,cccc) SYSAFF=* SYSAFF=ANY 指定されたシステムがジョブの JCL を処理して、そのジョブを実行します。そのジ ョブからの出力は、マルチアクセス・スプール構成内のどのシステムでも処理する ことができます。 ジョブにこの構成内のどのシステムも実行できない特別な処理要件がある場合に は、特定のシステムを要求しなければなりません。たとえば、エミュレーション・ ジョブは特定のシステムで実行する必要があります。 JOBCLASS(c) の指定をすることによって、SCHENV のデフォルトを JES2 環境に 設定することができます。 JES2 マルチアクセス・スプール構成の詳細については、z/OS JES2 初期設定および チューニング ガイド を参照してください。 独立モード システムが独立モードで処理しなければならないジョブの場合は、次のように指定 してください。 /*JOBPARM SYSAFF=(cccc,IND) /*JOBPARM SYSAFF=(,IND) /*JOBPARM SYSAFF=(ANY,IND) 指定のシステムが独立モードで作動している場合は、ジョブの JCL を処理してその ジョブを実行します。それと同じシステムがジョブの出力を処理します。 独立モードは共用構成において、選択したジョブの新しいコンポーネントをテスト するときに役立ちます。 例 /*JOBPARM SYSAFF=SYS2 /*JOBPARM SYSAFF=(S333,IND) /*JOBPARM SYSAFF=(*,IND) JES3 における処理装置の選択 JES3 は実行のためにジョブが必要とするリソースを認識し、それにもとづいてその ジョブに処理装置を自動的に選択します。このリソースには次のものがあります。 v 装置 v ボリューム v データ・セット v エミュレーター、標準外カタログ、または特定のシステム管理の装置との接続な どの処理装置の機能。 第 9 章 ジョブの入力 - リソース制御 83 ジョブの入力 - リソース制御 JES3 が制御しないリソース、または JES3 がジョブ制御ステートメントから推察で きないリソースをジョブが使用しなければならない場合は、次のように指定して、 ジョブを実行すべき処理装置、または実行してはならない処理装置を指定してくだ さい。 //*MAIN //*MAIN //*MAIN //*MAIN //*MAIN SYSTEM=ANY SYSTEM=JGLOBAL SYSTEM=JLOCAL SYSTEM=(main-name,main-name,...) SYSTEM=/(main-name,main-name,...) 他のパラメーターとの関係 要求した処理装置は、次のジョブ制御ステートメントに指定した他のパラメーター と整合性がなければなりません。 v JOB ステートメントまたは //*MAIN ステートメントの CLASS パラメーター。 処理装置は、JES3 の初期設定時に有効なジョブ・クラスに定義されます。 SYSTEM パラメーターに指定のクラスのジョブを実行しない処理装置が指定され ていると、JES3 はジョブを異常終了させます。 v JES3 管理装置または JES3/MVS 共同管理の装置の装置番号を指定する DD ステ ートメントの UNIT パラメーター。指定の装置は、要求した処理装置に接続され ていなければなりません。さらに特定の装置を要求するので、SYSTEM パラメー ターが必要になります。 v //*MAIN ステートメントの TYPE パラメーターは、要求した処理装置で実行さ れるシステムを指定しなければなりません。 v JES3 //*PROCESS ステートメントでなされる処理要求。//*PROCESS ステートメ ントで呼び出される動的サポート・プログラムは、要求した処理装置で実行でき なければなりません。 例 //*MAIN SYSTEM=(PRS1,PRS3) JES3 システムにおけるスプール区画のリソース制御 JES3 が JOB を読み込むときは、最初にスプール・ボリュームにそのジョブを入れ ます。ご使用のシステムでは、スプール・ボリュームを区画と呼ばれるグループに 分割することができます。区画は JES3 の初期設定時に定義され、出力クラス、ジ ョブ・クラス、および処理装置と関連づけられます。詳細については、z/OS JES3 初期設定およびチューニング ガイド を参照してください。 ジョブ処理時に、JES3 は以下に示すオーバーライドの順番で、スプール・データ・ セットを区画に割り当てます。 1. SYSOUT データ・セットの出力クラスについてのスプール区画 2. ジョブのクラスについてのスプール区画 3. ジョブを実行する処理装置についてのスプール区画 4. デフォルトのスプール区画 //*MAIN ステートメントを使用して JES3 区画割り振りをオーバーライドすること ができます。ただし、SYSOUT データ・セットと SYSIN データ・セットについて の区画の割り振りをオーバーライドすることはできません。SYSOUT データ・セッ トは、常に出力クラスとして使用する区画に入れられます。SYSIN データ・セット 84 z/OS MVS JCL ユーザーズ・ガイド ジョブの入力 - リソース制御 は、常にデフォルトのスプール区画に入れられます。ご使用のシステムにおける区 画の定義の仕方によって、JES3 が 1 つのジョブについてすべてのスプール・デー タを指定のスプール区画に割り振るようにしたり、出力などの特定のタイプのスプ ール・データすべてを指定のスプール区画に割り振るようにすることができます。 したがって、JES3 ジョブのスプール・データ・セットとして使用するスプール・ボ リュームの数を制限することができます。スプール区画を制御するときは、次のよ うに指定してください。 //*MAIN SPART=partition-name 例 1 //ONE //*MAIN //S1 //OUT1 //OUT2 JOB ,’PAT EGAN’ SYSTEM=SY2 EXEC PGM=ABC DD SYSOUT=N DD SYSOUT=S 初期設定時に、ご使用のシステムでは次のようにスプール区画を割り当てました。 v PARTD は出力クラス S に割り当てる。 v PARTC は処理装置 SY2 に割り当てる。 v PARTA はデフォルトの区画である。 v 出力クラス N には、区画を割り当てない。 ジョブの入力スプール・データ・セットは、デフォルトのスプール区画 PARTA に 割り振られます。 ジョブは処理装置 SY2 で 実行され、出力クラス N に割り振られる区画がないた め、SYSOUT データ・セット OUT1 は区画 PARTC に割り振られます。 SYSOUT データ・セット OUT2 は、PARTD に割り振られます。 例 2 //TWO //*MAIN //S1 //OUT1 //OUT2 JOB ,’LEE BURKET’ CLASS=IMSBATCH,SYSTEM=SY2 EXEC PGM=DEF DD SYSOUT=N DD SYSOUT=S 初期設定時に、ご使用のシステムではジョブ ONE に追加として、次のようにスプ ール区画を割り当てました。 v PARTB は、ジョブ・クラス IMSBATCH に割り当てます。 SYSOUT データ・セット OUT1 は、ジョブ・クラスの区画である区画 PARTB に 割り振られます。ジョブ・クラスの区画は処理装置の区画をオーバーライドするこ とに注意してください。 例 3 //THREE //*MAIN //STEP1 //OUT //OUT2 JOB ,’T. POLAKOWSKI’ CLASS=IMSBATCH,SPART=PARTE,SYSTEM=SY2 EXEC PGM=GHI DD SYSOUT=N DD SYSOUT=S 初期設定時に、ご使用のシステムではジョブ TWO にスプール区画を割り当てまし た。 第 9 章 ジョブの入力 - リソース制御 85 ジョブの入力 - リソース制御 SYSOUT データ・セット OUT1 は、SPART パラメーターに指定された区画 PARTE に割り振られます。SPART パラメーターは、処理装置の区画とジョブ・ク ラスの区画をオーバーライドすることに注意してください。 86 z/OS MVS JCL ユーザーズ・ガイド 第 3 部 ジョブを処理するためのタスク ここでは、システムに入力されたジョブの処理方法について説明します。これらの タスクはすべてオプショナルです。次にこれらの処置を示します。 v 処理制御 v パフォーマンス制御 © Copyright IBM Corp. 1988, 2004 87 第 3 部 ジョブを処理するためのタスク 88 z/OS MVS JCL ユーザーズ・ガイド 第 10 章 ジョブの処理 - 処理制御 表 18. ジョブを処理するための処理制御タスク タスクのためのステートメントおよびパラメーター ジョブを 処理するための JCL ステートメント タスク JOB EXEC その他の JCL JES2 JES3 ステートメント ステートメント 処理制御 条件付き実行に COND よる COND IF/THEN/ELSE/ENDIF ステートメント構成 BYTES、CARDS、 LINES、および PAGES 1. 通常の処理 の変更によ る 2. エラー発生 後のダンプ による PGM=IEFBR14 TYPRUN CLASS PGM=JCLTEST PGM=JSTTEST BYTES、CARDS、 (JES3 のみ) LINES、および PAGES に DUMP を指定 /*MAIN の BYTES、CARDS、 LINES、および PAGES の CANCEL /*JOBPARM に TIME を指定 タイミング実行 TIME または JOB TIME による JES2 アカウンテ ィング情報に時間 を指定 テストのための: /*JOBPARM の BYTES、 CARDS、 LINES、および PAGES の CANCEL SYSMDUMP DD SYSUDUMP DD SYSABEND DD 3800 印刷サブシステ ムでダンプをフォーマ ット設定するために は、dump DD に FCB=STD3 および CHARS=DUMP を指 定 //*PROCESS //*ENDPROCESS //*MAIN の BYTES、CARDS、 LINES および PAGES に DUMP を指定 条件付き実行による処理制御 IF/THEN/ELSE/ENDIF ステートメント構成または COND パラメーターを使用する と、ジョブのステップを条件によって実行することができます。 以前のステップの評価にもとづいたステップのう回または実行 ジョブ・ステップの結果によっては、後のステップをう回または実行する必要があ ります。たとえばステップが異常終了したときには、エラー・ルーチン・プロシー ジャーを実行します。ステップが正常に終了したときには、次のステップの処理を 続行します。 IF/THEN/ELSE/ENDIF ステートメント構成の使用方法 IF/THEN/ELSE/ENDIF ステートメント構成を指定すると、ジョブのステップを条件 によって実行することができます。下記の条件にもとづいてジョブ・ステップを実 行するときは、COND パラメーターではなくこのステートメント構成を使用してく ださい。 v 戻りコード © Copyright IBM Corp. 1988, 2004 89 ジョブの処理 - 処理制御 v 異常終了状態 v システムまたはユーザー異常終了完了コード IF/THEN/ELSE/ENDIF ステートメント構成は、このステートメントより前のジョ ブ、ステップ、またはプロシージャー・ステップ内でこのような状態が発生したか どうかをテストします。 IF/THEN/ELSE/ENDIF ステートメント構成は、JOB ステートメントの後であれば、 ジョブ内のどこに指定しても構いません。次のように指定することができます。 //[name] //STEPTRUE //[name] //STEPFALS // IF (relational expression) EXEC ELSE EXEC ENDIF THEN 関係式は、次の演算子とキーワードで構成されます。 v 比較演算子 v 論理演算子 v 否定 (¬) 演算子 v 関係式キーワード 比較演算子は、関係式キーワードと数値を比較します。この比較によって、真か偽 のいずれかの状態になります。システムが 2 つ以上の関係式のブール結果を評価す ることを示すためには、複合関係式に論理演算子の & (AND) と | (OR) を使用し てください。¬ (NOT) 演算子を使用すれば、関係式のテスト結果が逆になります。 関係式キーワードは戻りコード、異常終了条件、または異常終了完了コードを評価 することを示します。 THEN 文節または ELSE 文節には、少なくとも 1 つの EXEC ステートメントを指 定しなければなりません。EXEC ステートメントは、関係式の評価にもとづいてシ ステムが実行するジョブ・ステップを示します。THEN または ELSE 文節に EXEC ステートメントを指定しないと、ヌル文節になります。 IF/THEN/ELSE/ENDIF ステートメント構成は、最高 15 レベルのネスト構成にする ことができます。 戻りコード・テストの使用方法 標準戻りコードを出す IBM プログラムもあります。たとえばコンパイラーまたは リンケージ・エディターは、コード 8 を戻して、コンパイルしたプログラムまたは リンク・エディットしたプログラムに重大なエラーが発生したことを示します。そ のプログラムは、正しく実行されないことがあります。新たにコンパイルまたはリ ンク・エディットしたプログラムを実行する前に、コンパイラーまたはリンケー ジ・エディターからの戻りコードをテストしてください。戻りコードが 8 の場合 は、プログラムの実行をう回してください。 ユーザー作成のプログラムの場合には、特定の状態を示す戻りコードを割り当てて ください。たとえば、ジョブの STEP1 は後続のステップが処理するアカウントを 読み取るものとします。STEP1 は不良アカウントが検出されると、戻りコード 10 を設定します。STEP3 は不良アカウントだけを処理します。STEP3 が実行される前 に、STEP1 からの戻りコードをテストしてください。 90 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 v STEP1 からの戻りコードが、不良アカウントを示す 10 のときは、STEP3 を実行 します。 v STEP1 からの戻りコードが 10 以外のときは、STEP3 をう回します。 IF/THEN/ELSE/ENDIF ステートメント構成は、次のように指定してください。 //RCTEST //STEP3 //IFNOT // //NEXTSTEP IF (STEP1.RC = 10) EXEC ELSE ENDIF EXEC THEN 互換性のある戻りコードのテスト: システムはジョブ、ステップ、またはそのジョ ブのプロシージャー・ステップから出された戻りコードがある場合、 IF/THEN/ELSE/ENDIF ステートメント構成に指定された戻りコード・テストをそれ に適用します。このステートメント構成を利用するには、各ステップの戻りコード の意味に互換性がなければなりません。たとえば、COBOL コンパイラーとリンケ ージ・エディターの戻りコードには互換性があります。 4 小さなエラーが検出されましたが、コンパイルされたプログラムまたはロー ド・モジュールは作成されました。実行は成功すると考えられます。 8 大きなエラーが検出されましたが、コンパイルされたプログラムまたはロー ド・モジュールは作成されました。実行はおそらく失敗となります。 12 重大なエラーが検出されました。コンパイルされたプログラムまたはロー ド・モジュールは作成されませんでした。 小さなエラーを無視して処理を続行するときは、次のように戻りコード・テストを 指定してください。 //NOTBAD //BADERR //NOGOOD //NEXTSTEP // IF (RC > 4) THEN EXEC PGM=ERRRTN ELSE EXEC ENDIF 前のジョブ・ステップの戻りコードが 4 よりも大きいときには、ステップ BADERR がエラー・ルーチンのプロシージャー ERRRTN を実行します。前のすべ てのジョブ・ステップの戻りコードが 4 以下のときには、ELSE ステートメントに より処理はステップ NEXTSTEP を続行することができます。 IF/THEN/ELSE/ENDIF ステートメント構成を使用したジョブおよび ステップ・レベルの評価 IF/THEN/ELSE/ENDIF ステートメント構成を指定する方法によって、すべてのジョ ブ・ステップ、1 つのジョブ・ステップ、またはプロシージャー・ステップのどれ をそのステートメント構成がテストするかを決めます。 ジョブ・レベルの評価: stepname を指定しないと、IF/THEN/ELSE/ENDIF ステー トメント構成は戻りコード、異常終了条件、またはそのジョブ内の前の全ステップ の実行条件を評価します。条件 (戻りコード、異常終了条件、または実行条件) がこ れまでに実行したジョブのステップにもとづいて満たされると、システムは THEN 文節を実行します。 ステップ・レベルの評価: 1 つのステップをテストするには、テストするステップ の stepname を指定してください。プロシージャー・ステップをテストするとき 第 10 章 ジョブの処理 - 処理制御 91 ジョブの処理 - 処理制御 は、テストするプロシージャー・ステップの stepname.procstepname を指定して ください。評価するステップまたはプロシージャー・ステップが実行しないか、取 り消されたか、異常終了した場合には、評価の結果は偽になります。 IF/THEN/ELSE/ENDIF ステートメント構成と COND パラメーターと の関係 IF/THEN/ELSE/ENDIF ステートメント構成と COND パラメーターの両方をジョ ブ・ステップに指定すると、EXEC ステートメントで示されたジョブ・ステップ は、IF/THEN/ELSE/ENDIF ステートメント構成と COND パラメーターの両方が実 行することを評価したときだけしか実行されません。 ジョブが異常終了した場合に、IF/THEN/ELSE/ENDIF ステートメント構成にも COND パラメーターにも異常終了条件が指定されていないと、デフォルトによって ジョブ・ステップは実行されません。IF/THEN/ELSE/ENDIF ステートメント構成と COND パラメーターの両方を 1 つのジョブ・ステップに指定する場合は、どちら にも異常終了条件が指定されていないときにだけデフォルトが適用されます。 システムは、ジョブにおける 最初の EXEC ステートメントに指定された COND パラメーターを偽と見なします。しかし、ジョブの最初の EXEC ステートメントの 前に IF ステートメントを使用して、ステップをう回することはできます。 前のステップの異常終了後のステップの実行 ステップが異常終了すると、システムは通常後続のステップをう回し、そのジョブ を終了させます。しかし IF/THEN/ELSE/ENDIF ステートメント構成を指定すると、 前のステップが異常終了してもステップの実行を要求することができます。 異常終了条件についてのテスト: ジョブ・ステップが異常終了すると、システムは 異常終了または異常終了完了コードをテストする、IF/THEN/ELSE/ENDIF ステート メント構成がないかどうか残りのステップをスキャンします。この構成がないと、 システムはそのジョブを終了します。 異常終了後にエラー・ルーチン・プログラムを実行するときは、次のいずれかを指 定してください。 //IFBAD //ERROR // //NEXTSTEP IF (ABEND) THEN EXEC PGM=ERRRTN ENDIF EXEC or: //IFBAD //ERROR // //NEXTSTEP IF (ABEND=TRUE) EXEC PGM=ERRRTN ENDIF EXEC THEN システムは、1 つまたはそれ以上の先行ステップが異常終了したときにだけ、ステ ップ ERROR を実行します。 異常終了完了コードについてのテスト: 異常終了完了コードの評価にもとづいてス テップを実行するときは、次のように指定してください。 92 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 //IFABEND //ABNDSTEP // //NEXTSTEP IF (ABENDCC=S0C4) EXEC PGM=CLEANUP ENDIF EXEC THEN 前のステップからのシステム異常終了完了コードが 0C4 のときに、システムはプロ グラム CLEANUP を実行します。 先行ステップの異常終了後に実行されないステップ 特定のエラー条件があると、システムは IF/THEN/ELSE/ENDIF ステートメント構成 の THEN または ELSE 文節の実行ができなくなります。そのようなエラー条件が 発生すると、IF ステートメントのテスト条件とは関係なく、システムは、THEN ま たは ELSE 文節を実行しないことになります。そのようなエラー条件が発生するの は、次の場合です。 v 何らかのシステム完了コードが発行される。 v ジョブ時間が満了する。 v 参照されたデータ・セットが不完全である。 v プログラムに制御が渡らない。 IF ステートメントのテスト条件に関係なく実行が不能になるエラーについての詳細 は、z/OS MVS JCL 解説書 を参照してください。 IF/THEN/ELSE/ENDIF ステートメント構成の例 例 1: この例では、ステップの戻りコードをテストします。 //RCTEST //STEP3 //ENDTEST //NEXTSTEP IF (STEP1.RC GT 20|STEP2.RC = 60) EXEC PGM=U ENDIF EXEC THEN 次のような場合に、システムは STEP3 を実行します。 v STEP1 からの戻りコードが 20 より大きい場合 v STEP2 からの戻りコードが 60 である場合 関係式の評価が偽であると、システムは STEP3 をう回し、ステップ NEXTSTEP から処理を続行します。 例 2: この例では、プロシージャー・ステップ内の異常終了条件をテストします。 //ABTEST //BADPROC //CLEANUP //ENDTEST //NEXTSTEP IF (STEP4.LINK.ABEND=FALSE) ELSE EXEC PGM=ERRTN ENDIF EXEC THEN 関係式は、STEP4 の EXEC ステートメントで呼び出されたプロシージャー LINK で異常終了が発生していないことをテストします。関係式が真の場合には、異常終 了は発生していません。ヌルの THEN ステートメントは、ステップ NEXTSTEP に 制御を渡します。関係式が偽の場合には、異常終了が発生しています。ELSE 文節 は、プログラムにより呼び出された ERRTN に制御を渡します。 例 3: この例では、ジョブ内のユーザー異常終了完了コードをテストします。 第 10 章 ジョブの処理 - 処理制御 93 ジョブの処理 - 処理制御 //CCTEST IF (ABENDCC = U0100) //GOAHEAD EXEC PGM=CONTINUE //NOCC ELSE //EXIT EXEC PGM=CLEANUP // ENDIF THEN いずれかのジョブ・ステップでユーザー異常終了完了コード 0100 が出されると、 EXEC ステートメント GOAHEAD はプロシージャー CONTINUE を呼び出しま す。完了コードを出すステップがないと、EXEC ステートメント EXIT はプログラ ム CLEANUP を呼び出します。 戻りコードにもとづいたステップのう回または実行 実行の結果を示すために、プログラムは戻りコード を出すことができます。COND パラメーターを使用すると、戻りコードをテストし、そのテスト結果にもとづいて ステップをう回または実行することができます。 COND パラメーターは、JOB または EXEC ステートメントに指定することができ ます。次のように指定します。 //jobname JOB acct,progname,COND=(code,operator) //jobname JOB acct,progname,COND=((code,operator),(code,operator)) //stepname EXEC PGM=x,COND=(code,operator) //stepname EXEC PGM=x,COND=(code,operator,stepname) //stepname EXEC PROC=x,COND=((code,operator,stepname.procstepname)) //stepname //stepname //stepname //stepname EXEC EXEC EXEC EXEC PGM=x,COND=EVEN PGM=x,COND=ONLY PGM=x,COND=((code,operator),EVEN) PGM=x,COND=((code,operator,stepname),ONLY) EXEC ステートメント COND パラメーターを指定してステップをう回するように すると、そのステップだけが実行されません。後続のステップが実行されるかどう かは、それぞれの COND パラメーターによって決まります。JOB ステートメント COND パラメーターを指定してステップをう回するようにすると、システムは残り のすべてのジョブ・ステップをう回します。 EXEC COND パラメーターを指定したためにステップをう回することと、ステップ の異常終了とは意味が異なります。う回処理では、後続のステップを実行すること ができます。異常終了の場合は、EXEC COND パラメーターに EVEN または ONLY が指定されていないと、後続のすべてのステップはう回されます。 戻りコード・テストの使用方法 標準戻りコードを出す IBM プログラムもあります。たとえばコンパイラーまたは リンケージ・エディターは、コード 8 を戻して、コンパイルしたプログラムまたは リンク・エディットしたプログラムに重大なエラーが発生したことを示します。そ のプログラムは、正しく実行されないことがあります。新たにコンパイルまたはリ ンク・エディットしたプログラムを実行する前に、コンパイラーまたはリンケー ジ・エディターからの戻りコードをテストしてください。戻りコードが 8 の場合 は、プログラムの実行をう回してください。 ユーザー作成のプログラムの場合には、特定の状態を示す戻りコードを割り当てて ください。たとえば、ジョブの STEP1 は後続のステップが処理するアカウントを 読み取るものとします。STEP1 は不良アカウントが検出されると、戻りコード 10 94 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 を設定します。STEP3 は不良アカウントだけを処理します。STEP3 が実行される前 に、STEP1 からの戻りコードをテストしてください。 v STEP1 からの戻りコードが、不良アカウントを示す 10 のときは、STEP3 を実行 します。 v STEP1 からの戻りコードが 10 以外のときは、STEP3 をう回します。 JOB ステートメントおよび EXEC ステートメントに指定した COND パラメーターの関係 さまざまなステートメントについての戻りコード・テストを行うと、次の効果があ ります。 v JOB ステートメント COND パラメーターは、ジョブ内の各ステップについて同 じ戻りコード・テストを行います。JOB ステートメント戻りコード・テストが満 たされると、ジョブは終了します。 v EXEC ステートメント COND パラメーターは、ジョブ内のそのステップだけに ついて戻りコード・テストを行います。EXEC COND パラメーターを使用する と、各ステップについて異なったテストを行うことができます。したがって、同 じ戻りコードであってもジョブ・ステップによって意味が異なる場合、または戻 りコードを出したジョブ・ステップに従って異なる処置を取る場合には、EXEC COND パラメーターを使用すると便利です。 システムは、ジョブにおける 最初の EXEC ステートメントに指定された COND パラメーターを偽と見なします。しかし、ジョブの最初の EXEC ステートメント の前に IF ステートメントを使用して、ステップをう回することはできます。 v JOB COND パラメーター (EXEC ステートメントにも COND パラメーターが 指定されている場合) は、ジョブ内の各ステップについて同じ戻りコード・テス トを行います。 – JOB ステートメントの戻りコード・テストが満たされると、そのジョブは終了 します。EXEC ステートメントに COND パラメーターが指定されていてもい なくても、EXEC 戻りコード・テストが満たされていてもいなくても、ジョブ は終了します。 – JOB ステートメントの戻りコード・テストが満たされないと、システムは、次 のステップとして EXEC ステートメントに COND パラメーターが指定されて いないかどうかを検査します。EXEC ステートメントの戻りコード・テストが 満たされると、システムはそのステップをう回し、戻りコード・テストを含む 次のステップの処理を開始します。 JOB と EXEC ステートメントの両方に COND パラメーターを指定すると、ジ ョブ内のすべてのステップに条件を設定し、かつ特定のステップに別の条件を設 定するときに役立ちます。 v JOB または EXEC ステートメントに COND パラメーターを指定しないと、シ ステムは戻りコード・テストを実行せずに、そのジョブ内の各ステップを実行し ようとします。 先行ステップの異常終了後のステップの実行 ステップが異常終了すると、システムは通常後続のステップをう回し、そのジョブ を終了させます。ただし EXEC ステートメント COND パラメーターを指定する と、ステップの実行を要求することができます。次のように指定します。 第 10 章 ジョブの処理 - 処理制御 95 ジョブの処理 - 処理制御 //stepname EXEC PGM=x,COND=EVEN 1 つまたはそれ以上の先行ステップが異常終了しても、このステップは実行され ます。つまり、先行ステップが異常終了していてもしていなくても、このステッ プは必ず実行されます。 //stepname EXEC PGM=x,COND=ONLY 1 つまたはそれ以上の先行ステップが異常終了したときだけしか、このステップ は実行されません。つまり、先行ステップが異常終了していないときに、このス テップは実行されません。 ステップが異常終了すると、システムは EXEC COND パラメーターをスキャンし て、EVEN または ONLY サブパラメーターが次のステップにないかどうか調べま す。どちらのサブパラメーターも指定されていないと、システムはそのステップを う回します。EVEN または ONLY が指定されていると、システムは、実行されて 異常終了していない前のステップからの戻りコードに対して、要求された戻りコー ド・テストを行います。テストが満たされると、そのステップはう回されます。そ れ以外の場合には、そのステップは実行されます。 注: 特定のエラー条件により、COND パラメーターに指定した要求とは関係なく、 システムはステップの実行ができなくなります。これ以外に考慮すべきこと は、COND パラメーターの用法に関連するものです。COND パラメーターを指 定するときの注意事項については、z/OS MVS JCL 解説書 の EXEC ステート メントの COND パラメーターに関する事項を参照してください。 互換性のある戻りコードのテスト: システムはジョブ内の各ステップから出される 戻りコードがあると、それに対して JOB COND パラメーターに指定された戻りコ ード・テストを適用します。このパラメーターを利用するには、各ステップの戻り コードの意味に互換性がなければなりません。たとえば、COBOL コンパイラーと リンケージ・エディターの戻りコードには互換性があります。 4 小さなエラーが検出されましたが、コンパイルされたプログラムまたはロー ド・モジュールは作成されました。実行は成功すると考えられます。 8 大きなエラーが検出されましたが、コンパイルされたプログラムまたはロー ド・モジュールは作成されました。実行はおそらく失敗となります。 12 重大なエラーが検出されました。コンパイルされたプログラムまたはロー ド・モジュールは作成されませんでした。 次のように戻りコードを指定します。 COND=(4,LT) - 小さいエラーを無視して処理を続行する場合。ステップからの 戻りコードが 4 より大きい場合にだけ、ジョブは終了します。 COND=(4,LE) - エラーが発生していない場合に限り、処理を続行する場合。ス テップからの戻りコードが 4 以上である場合にだけ、ジョブは終了します。 JOB ステートメントの戻りコード・テストの例 例 1: //J1 JOB ,’LEE BURKET’,COND=((10,GT),(20,LT)) この例では、「10 が戻りコードより大きいのか、または 20 が戻りコードより小さ いのか」が条件になっています。どちらかが真であると、システムは残りのジョ 96 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 ブ・ステップをすべてスキップします。各ステップの実行後に両方が偽であると、 システムはすべてのジョブ・ステップを実行します。 たとえば、あるステップからコード 12 が戻されると、どちらのテストも満たして いないことになります。次のステップが実行されます。しかし、ステップからコー ド 25 が戻されると最初のテストは偽ですが、2 番目のテストが満たされているこ とになります。これは、20 が 25 よりも小さいからです。システムは、残りのジョ ブ・ステップをすべてう回します。 例 2: //J2 JOB ,’D WEISKOPF’,COND=((50,GE),(60,LT)) この例では、「50 が戻りコード以上であるか、または 60 が戻りコードより小さい と、残りのジョブ・ステップをう回すること」を指定します。つまり、戻りコード 51 から 60 までであれば、ジョブの処理は続行します。 例 3: //J3 JOB ,’E. SASSMANN’,COND=(8,NE) この例は、単一の戻りコード・テストを示します。 例 4: //J4 JOB COND=((5,GT),(8,EQ),(12,EQ),(17,EQ),(19,EQ),(21,EQ),(23,LE)) この例は、7 とおりの戻りコード・テストを示します。ジョブは、次の戻りコード が戻された場合だけ 処理を続行します。戻りコードは、5、6、7、9、10、11、13、 14、15、16、18、20、または 22 です。 EXEC ステートメントの戻りコード・テストの例 例 1: //S3 EXEC PGM=U,COND=((20,GT,STEP1),(60,EQ,STEP2)) この例は、「20 が STEP1 から出される戻りコードより大きいか、または STEP2 から出される戻りコードが 60 である場合に、このステップをう回すること」を示 します。 例 2: //S4 EXEC PGM=V,COND=((20,GT,STEP1),(60,EQ)) この例は、「20 が STEP1 から出される戻りコードより大きいか、または先行ステ ップから出される戻りコードが 60 である場合に、このステップをう回すること」 を示します。 例 3: //T7 EXEC PGM=B15,COND=(10,LT) //STEP8 EXEC PGM=MYPROG,COND=(15,NE,STEP5) これらの例は、単一の戻りコード・テストを示します。 例 4: //NEXT EXEC PGM=AFTERPRC,COND=(7,LT,STEP4.LINK) 第 10 章 ジョブの処理 - 処理制御 97 ジョブの処理 - 処理制御 この例は、「7 が EXEC ステートメント STEP4 によって呼び出されるカタログ式 プロシージャー内のプロシージャー・ステップ LINK から出される戻りコードより 小さい場合に、このステップをう回すること」を示します。 例 5: //RCERROR EXEC PGM=ABEND,COND=(4,GE) この例は、単一の戻りコード・テストを示します。stepname を指定しないと、すべ ての先行ステップからの戻りコードが COND で指定されたテストを満たしていな い場合だけに、ステップ RCERROR が実行されます。 EVEN と ONLY を指定した EXEC COND パラメーターの例 例 1: //S5 //R8 //S6 //CX EXEC EXEC EXEC EXEC PGM=R,COND=EVEN PGM=S,COND=((5,LT),EVEN) PGM=T,COND=ONLY PGM=U,COND=((4,GE,STEP3),(8,EQ,STEP2),ONLY,(12,LT,BX)) 例 2: //LATE EXEC PGM=CLEANUP,COND=EVEN この例は、「1 つまたはそれ以上の先行ステップが異常終了していても、プログラ ム CLEANUP を実行すること」を示します。 例 3: //LATER EXEC PGM=SCRUB,COND=((10,LT,STEPA),(20,EQ),ONLY) この例は、「先行ステップのいずれかが異常終了した場合だけこのステップを実行 するが、10 が STEPA が発行する戻りコードがより小さい場合、または正常に終了 したステップのいずれかが戻りコード 20 を発行した場合にはステップをう回す る」ことを示します。 例 4: //LATEST EXEC PGM=FIX,COND=((10,LT,STEPA),(20,EQ),EVEN) この例は、「10 が STEPA が発行する戻りコードがより小さい場合、または先行ス テップのいずれかが戻りコード 20 を発行する場合には、このステップをう回す る。そうでない場合、先行ステップのいずれかが異常終了した場合でもこのステッ プを実行する」ことを示します。 例 5: //EXG EXEC PGM=A1,COND=(EVEN,(4,GT,STEP3)) //EXH EXEC PGM=A2,COND=((8,GE,STEP1),(16,GE),ONLY) //EXI EXEC PGM=A3,COND=((15,GT,STEP4),EVEN,(30,EQ,STEP7)) ジョブ内の COND 戻りコード・テストの例 入力ストリーム //MYJOB JOB ,A.SMITH,COND=(10,LT) 98 z/OS MVS JCL ユーザーズ・ガイド RC 実行されるテスト ジョブの処理 - 処理制御 入力ストリーム //STEP1 EXEC PGM=A . . . . //STEP2 EXEC PGM=B,COND=((2,EQ),(4,EQ)) . . . . . //STEP3 EXEC PGM=C,COND=ONLY . . . . . //STEP4 EXEC PGM=D, // COND=((5,GT,STEP1),(2,EQ)) . . //STEP5 EXEC PGM=E . . . . . . //STEP6 EXEC PGM=F, // COND=((8,GT,STEP5),EVEN) . . . . . . //STEP7 EXEC PGM=G,COND=(4,GT,STEP4) . . . //STEP8 EXEC PGM=H . . . //STEP9 EXEC PGM=I,COND=ONLY //ABC JOB RC 6 実行されるテスト STEP2 の前: 1. 10 は 6 よりも小さいですか? いいえ 2. 戻りコードは 2 または 4 ですか? いいえ STEP2 を実行します。 2 STEP3 の前: 1. 10 は 2 または 6 よりも小さいですか? いいえ 2. 1 つまたは複数の先行ステップが 異常終了していますか? いいえ STEP3 をう回します。 - STEP4 の前: 1. 10 は 2 または 6 よりも小さいですか? いいえ 2. 5 は 6 よりも大きいですか ? いいえ 3. 前に出された戻りコードの いずれかは 2 ですか? はい STEP4 をう回します。 STEP5 の前: 1. 10 は 2 または 6 よりも小さいですか? いいえ STEP5 を実行します。 - 9 10 12 STEP6 の前: 1. 10 は 9、2、または 6 よりも小さいですか? いいえ 2. 8 は 9 よりも大きいですか? いいえ 3. 先行ステップのいずれかが 異常終了していますか ? いいえ STEP6 を実行します。 STEP7 の前: 1. 10 は 10、9、2、または 6 よりも小さいですか? いいえ 2. 4 は、STEP4 からの戻りコードよりも大きいですか? STEP4 はう回されて戻りコードが出されていないの で、このテストは偽と見なされます。STEP7 を実行し ます。 STEP8 の前: 1. 10 は 12、10、9、2、または 6 より小さいですか? はい STEP8 と STEP9 をう回します。 - - 12345,COND=(5,EQ) 第 10 章 ジョブの処理 - 処理制御 99 ジョブの処理 - 処理制御 入力ストリーム RC //STEP1 . . . . //STEP2 . . . . . //STEP3 // . . . . . //STEP4 . . . //STEP5 . . . //STEP6 . . . . . . . //STEP7 // . . . //STEP8 . . . //STEP9 EXEC PGM=A 4 EXEC PGM=B,COND=(7,LT) ABEND EXEC PGM=C, COND=((20,GT,STEP1),EVEN) - EXEC PGM=D,COND=((3,EQ),ONLY) 6 EXEC PGM=E,COND=(2,LT,STEP3) - EXEC PGM=F - EXEC PGM=G, COND=((6,EQ,STEP5),ONLY) 5 EXEC PGM=H,COND=EVEN - EXEC PGM=I - 実行されるテスト STEP2 の前: 1. 5 は 4 に等しいですか? いいえ 2. 7 は 4 よりも小さいですか? いいえ STEP2 を実行します。 STEP3 の前: 1. EVEN または ONLY が STEP3 に指定されていますか? はい 2. 5 は 4 に等しいですか? いいえ 3. 20 は 4 よりも大きいですか? はい STEP3 をう回します。 STEP4 の前: 1. EVEN または ONLY が STEP4 に指定されていますか? はい 2. 5 は 4 に等しいですか? いいえ 前に出されたいずれかの戻りコード は 3 ですか? いいえ STEP4 を実行します。 STEP5 の前: 1. EVEN または ONLY が STEP5 に指定されていますか? いいえ STEP5 をう回します。 STEP6 の前: 1. EVEN または ONLY が STEP6 に指定されていますか? いいえ STEP6 をう回します。 STEP7 の前: 1. EVEN または ONLY が STEP7 に指定されています か? はい 2. 5 は 6 または 4 に等しいですか? いいえ 3. STEP5 から出された戻りコードは 6 ですか? STEP5 はう回されて戻りコードが出されていないの で、このテストは偽と見なされます。STEP7 を実行し ます。 STEP8 の前: 1. 5 は 5、6、または 4 に等しいですか? はい STEP8 と STEP9 をう回します。 プロシージャー内の COND パラメーターの例 例 1: 100 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 //TEST // // EXEC PROC=PROC4,COND.STEP4=((7,LT,STEP1), (5,EQ),EVEN),COND.STEP6=((2,EQ), (10,GT,STEP4)) この例では、プロシージャー PROC4 を呼び出す EXEC ステートメントが、2 つの ステップ (STEP4 と STEP6) に COND パラメーターを渡します。 例 2: //TEST EXEC PROC=MYPROC,COND=((7,LT,STEP1),(5,EQ)) この EXEC ステートメントは、呼び出されるプロシージャー内のすべてのステップ に COND パラメーターを設定します。この値を指定すると、プロシージャー内に 指定されている COND パラメーターがオーバーライドされます。 例 3: //PS3 EXEC PGM=ADD3,COND=(5,EQ,STEP2) プロシージャー内のこの EXEC ステートメントの場合、COND パラメーターに指 定されている STEP2 を、このプロシージャー内の先行ステップまたはジョブ内の 先行ステップの名前にすることができます。 例 4: カタログ式 プロシージャー PRA . //EDIT EXEC . . ジョブに指定されているステートメント . . //TWO . . . EXEC PROC=PRA . . . //THREE . . . EXEC PROC=PRB,COND.SP3=(10,LT,TWO.EDIT) カタログ式 プロシージャー PRB . //SP3 EXEC . . . この例は、このジョブ内の前のステップで呼び出された別のプロシージャー内のス テップから出された戻りコードをテストするプロシージャー、EXEC ステートメン ト COND パラメーターを示しています。 1. ステップ TWO は、プロシージャー・ステップ EDIT が指定されているカタロ グ式プロシージャー PRA を呼び出します。システムは EDIT からの戻りコード をテストします。 第 10 章 ジョブの処理 - 処理制御 101 ジョブの処理 - 処理制御 2. ステップ THREE は、プロシージャー・ステップ SP3 が指定されているカタロ グ式プロシージャー PRB を呼び出します。SP3 が実行されるかどうかは、EDIT からの戻りコードによって決まります。 3. EXEC ステートメント THREE の COND パラメーターは、プロシージャー・ス テップ EDIT からの戻りコードが 10 よりも大きい場合に SP3 をう回するよう に、システムに指示します。 COND パラメーターは、EXEC ステートメント SP3 にも指定することができま す。 //SP3 EXEC PGM=DEPEND,COND=(10,LT,TWO.EDIT) プロシージャー PRB 内のステップをすべてう回するようにシステムに指示すると きは、SP3 修飾子を指定しないで COND パラメーターを次のように指定してくだ さい。 //THREE EXEC PRB,COND=(10,LT,TWO.EDIT) ステップを強制実行する COND パラメーターの例 //S1 EXEC PGM=A . . . //CLEANUP EXEC PGM=FIX,COND=(12,NE,S1) これは、たとえステップ S1 が実行されて、データ・セットに無効なデータが入っ ていることを示す戻りコード 12 が出ていても、ステップ CLEANUP を強制的に実 行させる例です。プログラム FIX が無効なレコードの終結処理をします。 出力限界値を超えたジョブを取り消すことによる処理制御 ジョブの出力が指定の限界値を超えたときに、そのジョブの取り消しを要求するこ とによって、ジョブの実行を制御することができます。限界値を指定する方法は、 ジョブの実行環境によって異なります。 APPC スケジューリング環境における出力の制限 APPC スケジューリング環境の場合、下記の数値を制限するときは、JOB ステート メントの BYTES、CARDS、LINES、および PAGES パラメーターを使用します。 v ジョブについてスプールするバイト数 v ジョブについて穿孔するカード枚数 v ジョブについて印刷する行数 v ジョブについて印刷するページ数 これらのいずれかのパラメーターを指定した CANCEL サブパラメーターを指定す ると、システムは出力が指定の限界値を超えたときに、そのジョブを取り消しま す。 JOB ステートメントの BYTES、CARDS、LINES、または PAGES パラメーターに 限界値を指定しないと、ジョブの出力が JES の初期設定時に指定されたご使用のシ ステムでのデフォルト限界値を超えたときに、JES 取り消しオプションが指定され ていると、システムはそのジョブを取り消します。 102 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 非 APPC スケジューリング環境における出力の制限 非 APPC スケジューリング環境では、JOB ステートメント・パラメーターと APPC スケジューリング環境における出力の制限で説明したご使用のシステムでのデフォ ルトを使用して、出力の限界値を指定することができます。さらに JES2 /*JOBPARM ステートメントまたは JES3 //*MAIN ステートメントに BYTES、 CARDS、LINES、または PAGES パラメーターを指定することができます。これら のパラメーターは、次の数値を制限します。 v ジョブについてスプールするバイト数 v ジョブについて穿孔するカード枚数 v ジョブについて印刷する行数 v ジョブについて印刷するページ数 //*MAIN ステートメントに CANCEL サブパラメーターを指定すると、システムは 出力が指定の限界値を超えたときに、そのジョブを取り消します。 /*JOBPARM ステートメントに出力の限界値を指定すると、システムは次の場合に ジョブを取り消します。 v ジョブの出力が指定の限界値を超えた場合。 v JES2 の初期設定時に、ご使用のシステムでのデフォルトとして取り消しオプショ ンが指定されている場合。 JOB ステートメントに出力の限界値を指定しないと、システムは、//*MAIN ステー トメントまたは /*JOBPARM ステートメントに指定された限界値を使用しま す。//*MAIN または /*JOBPARM ステートメントを指定しないと、システムは JES の初期設定時に指定されたご使用のシステムでのデフォルトの限界値を使用して、 JES 取り消しオプションが指定されていればそのジョブを取り消します。 テストの際の使用方法 出力限界値は、プログラム・テスト時に使用されます。SYSOUT データ・セットに レコードを送信するという命令が入っている、永久ループ状態のプログラムを取り 消すことができます。 例 : 下記の例は、APPC スケジューリング環境または非 APPC スケジューリング環境に おいて、ジョブの出力が JES システムで限界値を超えたときにオペレーターに警告 する JCL JOB ステートメントの使用法を示したものです。 //JOB1 JOB ACCT01,’D. PIKE’,BYTES=(50,CANCEL) //JOB2 JOB 1542,RWALLIN,CARDS=(120,CANCEL) //JOB3 JOB ,ZOBES,LINES=(200,CANCEL) //JOB4 JOB ACCT27,’S M SHAY’,PAGES=(,CANCEL) 下記の例は、非 APPC スケジューリング環境において、ジョブの出力が限界値を超 えたときにオペレーターに警告する JES3 //*MAIN ステートメントの使用法を示し たものです。 第 10 章 ジョブの処理 - 処理制御 103 ジョブの処理 - 処理制御 //*MAIN //*MAIN //*MAIN //*MAIN BYTES=(50,CANCEL) CARDS=(120,CANCEL) LINES=(200,CANCEL) PAGES=(,CANCEL) タイミング実行による処理制御 プログラムを実行するときに必要なプロセッサー時間にもとづいて処理を制御する ときは、下記のいずれかの時間パラメーターを指定します。 //jobname //stepname //jobname /*JOBPARM JOB acct,progname,TIME=value EXEC PGM=x,TIME=value JOB (,,time) TIME=value JOB および EXEC TIME パラメーター JOB または EXEC ステートメントの TIME パラメーターは、ジョブまたはステッ プが処理装置を使用する最長時間を指定します。TIME パラメーターの利点は次の 通りです。 v ジョブ・ログ内のメッセージに、ジョブまたはステップが実際に使用したプロセ ッサー時間が印刷されます。 v ジョブまたはステップが TIME パラメーターに指定された時間を超えると、シス テムはそれを異常終了するか、またはシステム管理機能 (SMF) を介して設定した インストール・システム出口ルーチンに制御を渡します。このように、ループし ているプログラムによって浪費されるプロセッサー時間を、TIME 値で制限する ことができます。 TIME=1440 または TIME=NOLIMIT を指定すると、TIME パラメーターを使用して ジョブまたはステップに無制限の時間を指定することができます。特に、SMF を介 して設定した時間制限ではなく、無制限にステップを待ち状態にしておくことがで きます。ただし、JOB ステートメントに TIME=1440 と指定すると、EXEC ステー トメントの TIME 値とデフォルトの TIME 値は無視されます。ジョブのすべての ステップは TIME=1440 または TIME=NOLIMIT と指定されているため、時間が限 定されていません。 ジョブまたはステップが最大限の時間を使用できるようにするときは、 TIME=MAXIMUM を指定してください。TIME=MAXIMUM を指定すると、ジョブ またはステップを 357912 分間実行することができます。 例 1: //FIRST JOB //STEP1 EXEC //STEP2 EXEC ,’E.D. WILLIAMSON’,TIME=2 PGM=A,TIME=1 PGM=B,TIME=1 この例では、ジョブは 2 分間、各ステップは 1 分間実行することができます。ス テップの実行時間が 1 分間を超えると、そのステップでジョブは終了します。 例 2: //SECOND JOB //STEP1 EXEC //STEP2 EXEC 104 z/OS MVS JCL ユーザーズ・ガイド ,’M. CARLO’,TIME=3 PGM=C,TIME=2 PGM=D,TIME=2 ジョブの処理 - 処理制御 この例では、ジョブは 3 分間実行することができます。各ステップは 2 分間実行 することができます。ステップの実行時間が 2 分間を超えると、そのステップでジ ョブは終了します。STEP1 が 1.74 分間実行されて、STEP2 が 1.26 分間を超える と、JOB ステートメントに 3 分間の制限時間が指定されているため、そのジョブは 終了します。 例 3: //THIRD JOB ,’A. DOMENICK’,TIME=2 //STEP1 EXEC PGM=E,TIME=3 この例では、ジョブは 2 分間実行することができます。JOB ステートメントに指定 した時間が EXEC ステートメントに指定した時間より少ないので、STEP1 は 2 分 間だけ実行することができます。STEP1 の実行時間が 2 分間を超えると、そのス テップでジョブは終了します。 例 4: //AAA EXEC PROC=PROC5,TIME=20 この例では、EXEC ステートメントで、プロシージャー全体の時間制限を設定して います。これを指定すると、プロシージャー内に指定されている TIME パラメータ ーがオーバーライドされます。 例 5: //AAA EXEC PROC=PROC5,TIME.ABC=20,TIME.DEF=(3,40) この例では、EXEC ステートメントで、カタログ式プロシージャーの 2 つのステッ プ ABC と DEF の時間制限を設定しています。 JES2 の時間パラメーター JES2 では、JOB ステートメントの JES2 形式アカウンティング情報パラメーター に、または JES2 /*JOBPARM ステートメントの TIME パラメーターに、時間を指 定することができます。ジョブ実行時間がこの値を超えると、JES2 はメッセージを オペレーターに送信します。 例 : //J3 JOB (,,3) /*JOBPARM TIME=3 これらのステートメントは、ジョブが 3 分間より長くは処理装置を使用できないこ とを指定します。 OS/390 UNIX システム・サービスに関する考慮事項 OS/390 UNIX システム・サービスでは、呼び出し可能サービス BPX1SRL を使用 すれば、プログラムでジョブの時間を変更することができます。BPX1SRL 呼び出し 可能サービスについての詳細は、z/OS UNIX システム・サービス プログラミング: アセンブラー呼び出し可能サービス 解説書 を参照してください。 第 10 章 ジョブの処理 - 処理制御 105 ジョブの処理 - 処理制御 テストにおける処理制御 下記のいずれかの方法を使用すると、JCL にエラーがないかどうかをテストするこ とができます。 テストのための通常処理の変更 これらのテスト方法によって標準のジョブ処理が変更されて、システムがエラーを 検出できるようになります。 エラーについての JCL のスキャン (非 APPC) このセクションで説明している TYPRUN と CLASS パラメーターは、APPC スケ ジューリング環境では無効です。これらのパラメーターを指定すると、システムは その構文を検査し、無視します。 新しいジョブ制御ステートメントを使用する前に、ステップを実行したり装置を割 り振ったりせずに、構文エラーがないかどうかそのステートメントをスキャンする ようにシステムに指示することができます。このスキャンを行うときは、次のよう に指定してください。 v JES2 または JES3 システムにおけるジョブの場合: //jobname JOB acct,progname,TYPRUN=SCAN v JES2 システムにおけるジョブの場合、x は JES2 の初期設定時に定義された、ジ ョブ制御ステートメントのスキャンを強制的に行うクラスです。 //jobname JOB acct,progname,CLASS=x v JES3 システムにおけるステップの場合: //stepname EXEC PGM=JCLTEST //stepname EXEC PGM=JSTTEST システムは、次のものがないかどうかスキャンします。 v パラメーター・キーワードとサブパラメーター・キーワードのつづりの誤り v 無効な文字 v 括弧の抜け v ステートメントの定位置パラメーターの指定場所の誤り v パラメーター値の誤りまたは余分なパラメーター (JES3 システムのみ) v スキャンされる EXEC ステートメントが呼び出したカタログ式プロシージャー内 の JCL ステートメントの構文の誤り システムはステートメントの指定場所の間違い、JCL サブパラメーターの構文の誤 り、または不適切なパラメーターまたはサブパラメーター (あるいはその両方) の組 み合わせについては検査しません。 例: //JB16 //TG //S1 //S2 106 JOB JOB EXEC EXEC ,’M. CARLO’,TYPRUN=SCAN RK988,SMITH,CLASS=S PGM=JCLTEST PGM=JSTTEST z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 テストにおける IEFBR14 プログラムの使用方法 IEFBR14 は 2 行から成るプログラムで、レジスター 15 をクリアすることで戻り コードに 0 を渡し、レジスター 14 のアドレスに分岐することでシステムに制御を 戻します。ステップが実際に JCL がサポートするプログラムではなく、IEFBR14 を要求すると、システムは次の処置を取ります。 v 構文について、ステップ内のジョブ制御ステートメントをすべて検査します。 v 直接アクセス・スペースをデータ・セットに割り振ります。 v データ・セットの後処理を行います。 IEFBR14 を用いてテストするときは、プログラムの名前として IEFBR14 を使用し てください。 //stepname EXEC PGM=IEFBR14,... IEFBR14 を使用するときの考慮事項: システムはデータ・セットにスペースを割 り振りますが、そのデータ・セットを初期設定しません。したがって、これらのデ ータ・セットの 1 つから読み込みを行なおうとすると、予測できない結果が生じる ことがあります。なお IBM では、IEFBR14 の実行時にマルチボリューム・デー タ・セットを割り振ることはお勧めしません。 IEFBR14 を使用してテストしているときにデータ・セットを作成すると、実際のプ ログラムを実行するときに、DD DISP パラメーター内のデータ・セットの状況は OLD になります。 IEFBR14 はデータ・セットをオープンしないため、次のいずれかの状態 (真) にな っていると、CATLG の DD DISP パラメーターはデータ・セットをカタログする ようにシステムに指示しません。 v DD ステートメントが非特定テープ・ボリュームを要求しました。 v DD ステートメントは 2 種記録密度オプションでテープ・ボリュームを要求しま したが、DCB DEN サブパラメーターが密度を指定していません。 v DD ステートメントは 2 倍記録方式オプションでテープ・ボリュームに割り振ら れましたが、DCB TRTCH サブパラメーターを指定していません。 IEFBR14 の実行時に、DD DISP パラメーターが CATLG または UNCATLG を指 定すると、システムはボリュームをマウントするようにオペレーター・メッセージ を出します。ボリュームをマウントする必要がないときは、DD ステートメントの UNIT パラメーターに DEFER を指定してください。 例: For testing: //STEP1 EXEC PGM=IEFBR14,COND=(8,LE),TIME=2 For executing after testing: //STEP1 EXEC PGM=WKLYRPT,COND=(8,LE),TIME=2 標準外処理の使用方法 JES3 システムの場合には、テストするときに標準外ジョブ処理を使用することがで きます。標準ジョブ処理は、下記の標準スケジューラー機能で構成されています。 変換プログラム / 解釈プログラム・サービス メイン・サービス 出力サービス 第 10 章 ジョブの処理 - 処理制御 107 ジョブの処理 - 処理制御 除去サービス 標準外ジョブは標準機能に代って、または標準機能に加えて、1 つまたはそれ以上 の特別な処理機能を使用します。あるいは、1 つまたはそれ以上の標準機能をスキ ップします。実行する処理機能それぞれについて、JOB ステートメントの後に JES3 //*PROCESS ステートメントを置いて、標準外処理を指定してください。 //*PROCESS ステートメントは、//*ENDPROCESS ステートメントまたは JCL ステ ートメントで終了してください。 例: //TESTA //*PROCESS //STEP1 //DD28 //DD29 JOB ,’E. HARMANTAS’ CI EXEC PGM=NEWPROG DD SYSOUT=A DD * . . (データ) . /* この例では、変換プログラム / 解釈プログラム・サービス CI だけを要求します。 変換プログラム / 解釈プログラムは、ジョブの構文にエラーがないかどうかをスキ ャンします。このプログラムが実行されないと、ジョブの出力が処理されます。た だし、ジョブはシステムから除去されます。 エラー発生後のダンプ エラーが発生したプログラムが占めているストレージや、プログラムをデバッグす るときに必要なストレージをダンプするように要求するときは、次のいずれかを指 定してください。 v ダンプするステップに SYSABEND、SYSMDUMP、または SYSUDUMP DD ス テートメントを指定します。システムはそのステップが異常終了した場合、また はそのステップが異常終了し始めた場合に要求されたダンプを作成しますが、シ ステム・リカバリー手順によってそのステップを正常に終了させることができま す。 同じジョブ・ステップ内に複数のエラーが発生した場合は、最後のエラーだけが 報告されます。したがって、ダンプを調べてそれより前にエラーが発生していな いかどうかを見てください。 v JOB ステートメントの BYTES、CARDS、LINES、または PAGES パラメーター に DUMP を指定します。システムは次のような理由によりジョブを取り消した ときに、そのステップについてダンプ DD ステートメントで要求されたダンプを 作成します。 1. ジョブの出力が、JOB ステートメントの BYTES、CARDS、LINES、または PAGES パラメーターに指定された最大値を超えた。 2. ジョブの出力が、JES3 //*MAIN ステートメントまたは JES2 /*JOBPARM ス テートメントに指定された最大出力を超えた。 3. ジョブの出力が、初期設定時に指定されたご使用のシステムでのデフォルトに よって定義された最大値を超えた。 108 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - 処理制御 v ジョブ内の JES3 //*MAIN ステートメントの BYTES、CARDS、LINES、または PAGES パラメーターには DUMP を、ダンプするステップには SYSABEND、 SYSMDUMP、または SYSUDUMP DD ステートメントを指定します。ジョブの 出力が BYTES、CARDS、LINES、または PAGES の限界値 (または限界値が指 定されていないときは、そのジョブ・クラスのご使用のシステムでのデフォルト の限界値) を超えたので JES3 がジョブを取り消した場合、システムはダンプ DD ステートメントによって要求されたダンプを作成します。 ダンプを直接 3800 印刷サブシステムに印刷するときは、SYSABEND または SYSUDUMP DD ステートメントに次のとおり指定して、高密度ダンプを要求する ことができます。 v FCB=STD3: 1 インチ当たり 8 行のダンプ出力を作成する場合。 v CHARS=DUMP: 204 文字の印刷行を作成する場合。 例 1: //S1 //DS1 //SYSABEND //INDS EXEC PGM=TESTING DD SYSOUT=C DD SYSOUT=A,FCB=STD3,CHARS=DUMP DD * . . (データ) . /* この例では TESTING が異常終了すると、高密度ダンプが作成されます。 例 2: //J3JB //*MAIN //S1 JOB ,’J.T. HIGGINS’,MSGCLASS=B LINES=(50,DUMP) EXEC PGM=OLDPROG . . . //S2 EXEC PGM=NEWPROG //SYSUDUMP DD SYSOUT=D . . . 最初のステップが 50,000 行の出力を超えると JES3 はジョブを取り消しますが、 最初のステップにダンプ DD ステートメントが指定されていないので、ダンプを書 き出しません。S1 と S2 が組み合わされた出力が 50,000 行を超えると、JES3 は ジョブを取り消して、クラス D の SYSOUT データ・セットに SYSUDUMP ダン プを書き出します。 例 3: //JOB1 JOB ,’W. BAILEY’,MSGCLASS=B,BYTES=(30,DUMP) //STEP1 EXEC PGM=TESTPGM //SYSUDUMP DD SYSOUT=D . . . 第 10 章 ジョブの処理 - 処理制御 109 ジョブの処理 - 処理制御 最初のステップが 30,000 行の出力を超えると、システムはそのジョブを取り消し て、クラス D の SYSOUT データ・セットに SYSUDUMP ダンプを書き出しま す。 110 z/OS MVS JCL ユーザーズ・ガイド 第 11 章 ジョブの処理 - パフォーマンス制御 | | この章で説明するパフォーマンス制御は、APPC スケジューリング環境ではサポー トされません。 表 19. ジョブを処理するためのパフォーマンス制御タスク タスクのためのステートメントおよびパラメーター ジョブを 処理するための JCL ステートメント JES2 タスク ステートメント JOB EXEC その他の JCL JES3 ステートメント パフォーマンス制御 ジョブ・クラス CLASS 割り当てによる 選択優先順位に PRTY よる | | 入出力と処理の 比率による //*MAIN に CLASS を指定 /*PRIORITY //*MAIN に IORATE を指定 ジョブ・クラスの割り当てによるパフォーマンス制御 (非 APPC) ここで説明するパフォーマンス制御は、APPC スケジューリング環境ではサポート されません。 システムは、クラスと優先順位にもとづいてジョブを割り当て、実行されるジョブ の組み合わせを調節することができます。ご使用のシステムでは、同じリソースを 求めて競合するジョブが同時に実行されないように、クラスと優先順位を割り当て る必要があります。 JES2 システムでは、最高 36 個、JES3 システムでは、最高 255 個のジョブ・クラ スを割り当てることができます。これとは別に 2 つのクラスが、開始タスクとタイ ム・シェアリング・ユーザー用に予約されています。どのタイプのジョブをどのク ラスに割り当てるかは、ご使用のシステムで決めます。一般的には、同じ特性を持 つジョブは同じクラスに入れます。 たとえば、ご使用のシステムでは、以下のジョブ・タイプ用にそれぞれ違ったクラ スを設定することができます。 v 入出力が多いジョブ v CPU をよく使用するジョブ v デバッグ対象のジョブ v 特定のリソースを使用するジョブ これらのジョブ・クラスの例を使用して、ご使用のシステムでは次のような状態に なるように、ジョブ・クラスを割り当てることができます。 v 入出力制約のジョブを CPU 制約のジョブと同時に実行させます。このようにマ ルチプログラミングを行うと、両方のタイプのジョブの完了が早まります。 © Copyright IBM Corp. 1988, 2004 111 ジョブの処理 - パフォーマンス制御 v ご使用のシステムに磁気テープ装置が 2、3 台しかない場合に、磁気テープ装置 を使用するプログラムをすべて同じクラスに入れます。 v データベースを順次にアクセスしなければならない場合は、データベースを使用 するプログラムをすべて同じクラスに入れます。 ご使用のシステムでは、ジョブ・クラスとそれらに割り当てるジョブ・タイプのリ ストを維持、管理する必要があります。 JES2 システムでは次のように指定して、ジョブをジョブ・クラスに割り当ててくだ さい。 //jobname JOB acct,progname,CLASS=x JES2 環境では、開始タスクに対する CLASS パラメーターは無視されます。 JES3 システムでは次のいずれかを指定して、ジョブ・クラス・グループの一部であ るジョブ・クラスにジョブを割り当ててください。 //jobname JOB acct,progname,CLASS=x //*MAIN CLASS=x JES3 環境での開始タスクの場合、クラス関連の属性と機能は、デバイス隔離、 SPOOL 区画化、およびトラック・グループ割り振りを除き、すべて無視されます。 クラスの属性と機能についての詳細は、z/OS JES3 初期設定およびチューニング ガ イド を参照してください。 例 //MYJOB //*MAIN JOB ACCT24,BIRDSALL,CLASS=F CLASS=H 選択優先順位によるパフォーマンス制御 (非 APPC) ここで説明するパフォーマンス制御は、APPC スケジューリング環境ではサポート されません。 JES2 ジョブ・クラスまたは JES3 ジョブ・クラス・グループ内で、システムは優先 順位による順番で実行のためにジョブを選択します。優先順位番号が高いほど、ジ ョブの選択が早まります。同じ優先順位のジョブは、先入れ先出しに従って選択さ れます。 JES2 ジョブにおける優先順位 JES2 システムでは、多くの要因によって実行のために選択される特定のジョブの順 位が決定されます。したがって、(ジョブを割り当てる PRTY に基づく) ジョブ優先 順位や、ジョブの実行依頼のシーケンスによって、ジョブが特定のシーケンスで確 実に実行されることにはなりません。ジョブを特定のシーケンスで実行要求する必 要がある場合には、JES2 システム・プログラマーに連絡し、使用しているシステム における、そのような要求の処理方法にもとづいた指示を受けてください。(z/OS JES2 初期設定およびチューニング ガイド には、ジョブのエンキューに関する JES2 システム・プログラマーの手順とジョブ実行シーケンスの制御方法についての 説明があります。) 112 z/OS MVS JCL ユーザーズ・ガイド ジョブの処理 - パフォーマンス制御 優先順位が指定されていないと、JES2 はご使用のシステムのアルゴリズムを用い て、実行時間と概算された出力量にもとづいてジョブの優先順位を計算します。オ ペレーターは別の優先順位を割り当てるか、下記のいずれかを指定することができ ます。 //jobname JOB acct,progname,PRTY=x /*PRIORITY x JES2 は実行時間と出力量にもとづいて、ジョブの実行時間と出力を監視します。こ れらの概算値を指定しないと、JES2 はご使用のシステムでのデフォルトを使用しま す。ジョブが、指定または仮定された概算値を超えると、JES2 はオペレーターに警 告メッセージを出すか、またはそのジョブを取り消します (ダンプは作成される場 合もされない場合もあります)。 優先順位の使用方法 ご使用のシステムでは、実行時間が短く出力量の小さいジョブに高い優先順位を割 り当てるように指定することができます。プログラマーが正しい時間と出力を指定 できるように、ご使用のシステムでは概算値を超えるジョブを取り消すようにオペ レーターに指示することができます。 例 //JOB10 JOB ,’FLO JONES’,PRTY=14 /*PRIORITY 14 JES3 ジョブにおける優先順位 優先順位をジョブに割り当てるときは、次のように指定することができます。 //jobname JOB acct,progname,PRTY=x オペレーターはジョブの優先順位を変更することができます。詳しくは、z/OS JES3 コマンド を参照してください。 例 //JOB10 JOB ,’FLO JONES’,PRTY=14 優先順位繰り上げ JES2 は、ジョブがシステム内で実行待ちになっているときに、そのジョブの優先順 位を上げます。JES2 はジョブが実行されるまで、ジョブの優先順位を上げていきま す。 JES3 は、ジョブが選択されずに通過した回数にもとづいて、そのジョブの優先順位 を上げていきます。ジョブが通過するのは、十分な装置が使用できなかったり、必 要なボリュームまたはデータ・セットを別のジョブが使用していたり、または十分 なストレージを使用できなかったりする場合です。 ご使用のシステムで優先順位繰り上げを定義します。これについて、ユーザーが JCL を使用して指定することはできません。 第 11 章 ジョブの処理 - パフォーマンス制御 113 ジョブの処理 - パフォーマンス制御 | 入出力と処理の比率によるパフォーマンス制御 (非 APPC) ここで説明するパフォーマンス制御は、APPC スケジューリング環境ではサポート されません。 JES3 によるジョブのスケジュール方法を制御するときは、IORATE パラメーターを 指定してください。 //*MAIN IORATE=xxx IORATE パラメーターは処理命令の数に比べて、入出力命令の数が小さいか、中程 度か、大きいかどうかを示すものです。JES3 はこの値を使用して、処理装置に割り 当てるジョブの組み合わせを決定します。このパラメーターを使用して、JES3 は CPU 制約の処理と入出力制約の処理のバランスを取ります。バランスがよいと、ス ループットが向上します。 例 //*MAIN IORATE=HIGH //*MAIN IORATE=LOW //*MAIN IORATE=MED 114 z/OS MVS JCL ユーザーズ・ガイド 第 4 部 データ・セット・リソースを要求するためのタスク ここでは、データ・セットの作成方法と、データ・セットへのアクセス方法につい て説明します。データ・セットを要求するときに必要なタスクは、次のとおりで す。 v 識別 オプショナルで、次のタスクを実行することができます。 v 記述 v 保護 v 割り振り v 処理制御 v 終了処理 © Copyright IBM Corp. 1988, 2004 115 第 4 部 データ・セット・リソースを要求するためのタスク 116 z/OS MVS JCL ユーザーズ・ガイド 第 12 章 データ・セット・リソース - 識別 表 20. データ・セット・リソースを要求するための識別タスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 識別 データ・セットの DSNAME ストリーム内デー * または DATA タ・セットの SYSIN DD DLM //*MAIN に UPDATE を指定 /* または xx 区切 り文字 //*DATASET //*ENDDATASET 3540 ディスケッ DSID ト入出力装置にお けるデータ・セッ トの カタログを介した JOBCAT DD STEPCAT DD ラベルを介した LABEL に ラベ ル・タイプを指定 テープ上の位置に LABEL に デー よって タ・セット・シー ケンス番号を指定 QNAME TCAM メッセー ジ・データ・セッ トとしての 端末から、または TERM 端末への データ・セットの識別 データ・セットを作成するときは、DSNAME パラメーターでデータ・セットに名前 を割り当ててください。データ・セット名は、データ・セットと共に保管されま す。後のステップまたはジョブがそのデータ・セットを使用するときは、DSNAME パラメーターにそのデータ・セットを指定してください。システムは、データ・セ ット名を使用して、ボリュームにあるデータ・セットを探します。 DSNAME パラメーターのコーディング方法は、データ・セットのタイプによって異 なります。さらに永続データ・セット、一時データ・セット、あるいはこれ以前の DD ステートメントからコピーされたデータ・セットのいずれであるのかによって 異なります。 データ・セットの割り振りについては、 141 ページの『第 15 章 データ・セット・ リソース - 割り振り』を参照してください。 © Copyright IBM Corp. 1988, 2004 117 データ・セット・リソース - 識別 永続データ・セット 次のように指定して、永続データ・セットを識別してください。 DSNAME=dsname 永続データ・セットの場合 DSNAME=dsname(member) 永続 PDS または PDSE メンバーの場合 DSNAME=dsname(generation) 永続世代別データ・グループの世代の場合 DSNAME=dsname(area) 永続索引順次データ・セットの区域の場合 永続データ・セットを作成するときは、DSNAME パラメーターで名前を、DISP パ ラメーターで KEEP または CATLG の後処理を割り当ててください。DISP サブパ ラメーターによって永続データ・セットが作成されます。データ・セットを使用す るときは、後のステップまたはジョブの DSNAME パラメーターにデータ・セット の名前を指定してください。あるいは、同じジョブ内のこれより後のステップで、 データ・セットを作成した DD ステートメントへの逆方向参照を指定してくださ い。 例 //MYDS // DD DSNAME=PLANA,DISP=(NEW,KEEP,DELETE), UNIT=3380,VOLUME=SER=167833,SPACE=(CYL,(10,5)) //DSC // DD DSNAME=PLANB,DISP=(NEW,CATLG,DELETE), UNIT=3350,VOLUME=SER=275566,SPACE=(TRK,(20,5)) //SMSDS DD DSNAME=DESIGNB.PGM,DATACLAS=DCLAS1,STORCLAS=SCLAS1, // DISP=(NEW,KEEP) //OLDDS DD DSNAME=EXIST,DISP=OLD PDS または PDSE のメンバー 区分データ・セット (PDS) および拡張区分データ・セット (PDSE) は順次レコード で構成されており、メンバーと呼ばれる独立したグループに分かれています。各メ ンバーはメンバー名で識別されます。PDS または PDSE にメンバーを追加するか、 あるいはメンバーを検索するときは、データ・セット名とその後ろに括弧でメンバ ー名を指定してください。 例 (PDS) //NEWA // DD DSNAME=RPRT(WEEK1),DISP=(NEW,CATLG,DELETE), UNIT=3380,VOLUME=SER=236688,SPACE=(CYL,(20,5,20)) //ADD1 DD DSNAME=RPRT(WEEK2),DISP=OLD 例 (PDSE) //SMSDS DD DSNAME=RPRT(WEEK1),DATACLAS=DCLAS1,STORCLAS=SCLAS1, // DISP=(NEW,KEEP) //ADDSMS DD DSNAME=RPRT(WEEK2),DISP=OLD 世代別データ・グループの世代 世代別データ・グループは、同じデータ・セット名をもつ、年代的に関連性のある データ・セットの集まりです。世代別データ・グループに世代を追加するか、世代 118 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 識別 を検索するときは、世代別データ・グループ名とその後ろに世代番号を指定してく ださい。ゼロはグループの現行世代を示します。負数 (-1 など) は現行世代より古 い世代を表し、正数 (+1 など) はまだ存在していない新しい世代を表します。 例 //NEWGDS DD DSNAME=GDS(0),DISP=(NEW,CATLG,DELETE), // UNIT=3380,VOLUME=SER=334455,SPACE=(CYL,20) //OLDGDS DD DSNAME=GDS(-1),DISP=OLD //NEWER // DD DSNAME=GDS(+1),DISP=(NEW,CATLG,DELETE), UNIT=3350,VOLUME=SER=222333,SPACE=(TRK,15) //ALLG DD DSNAME=GDS,DISP=OLD //SMSGDG DD DSNAME=A.B.C(+1),DATACLAS=DGDG1,DISP=(NEW,KEEP) 索引順次データ・セットの区域 索引順次データ・セットは 3 つの区域、すなわち索引域、基本区域、およびオーバ ーフロー域で構成されています。データ・セットを作成するときは、データ・セッ ト名とその後ろに区域名を指定して、各区域を定義してください。区域名は INDEX、PRIME、または OVFLOW です。1 つの DD ステートメントにデータ・ セットを定義するときは、DSNAME=dsname または DSNAME=dsname(PRIME) を 指定してください。データ・セットを検索するときは、データ・セット名だけを指 定してください。 例 //NEWIS DD DSNAME=ISDS(INDEX),DISP=(NEW,CATLG,DELETE), // UNIT=3350,VOLUME=SER=222333,SPACE=(CYL,5) // DD DSNAME=ISDS(PRIME),DISP=(NEW,CATLG,DELETE), // UNIT=3350,VOLUME=SER=222333,SPACE=(CYL,15) // DD DSNAME=ISDS(OVFLOW),DISP=(NEW,CATLG,DELETE), // UNIT=3350,VOLUME=SER=222333,SPACE=(CYL,10) //OLDIS DD DSNAME=ISDS,DISP=OLD 一時データ・セット 一時データ・セットは、同じジョブ内で生成されて削除されるデータ・セットであ り、次のように指定して識別します。 DSNAME=&&dsname 一時データ・セットの場合 DSNAME=&&dsname(member) 一時 PDS または PDSE のメンバーの場合 DSNAME=&&dsname(area) 一時索引順次データ・セットの区域の場合 DSNAME パラメーターは不要 システムが命名する一時データ・セットの場合 さらに非 SMS 環境でのみ、システムは同じジョブ・ステップで作成し、削除する データ・セットを一時データ・セットとして取り扱います。たとえば、システムは 次のように指定されたデータ・セットを、一時データ・セットとして取り扱いま す。 第 12 章 データ・セット・リソース - 識別 119 データ・セット・リソース - 識別 DSN=A.REAL.DSN.NAME,DISP=(NEW,DELETE) 一時データ・セットを作成するジョブだけが、そのデータ・セットにアクセスして データを読み書きすることができ、そのデータ・セットを削除することができま す。 SMS は、(1) ストレージ・クラスを指定した場合 (DD STORCLAS パラメーターに よって)、または (2) インストール先作成の自動クラス選択 (ACS) ルーチンが一時 データ・セットのストレージ・クラスを選択した場合に、一時データ・セットを管 理します。 システムは、一時データ・セットに修飾名を付けます。システムが生成する名前の 形式についての詳細は、z/OS MVS JCL 解説書 の DSNAME パラメーターに関する 説明を参照してください。 1 つのジョブ内で使用されるすべての一時データ・セットにシステムがつける修飾 名には、同じ時刻が使用されます。したがって、同じ一時データ・セット名が 1 つ のジョブ内で 2 回以上現れる場合、システムは同じデータ・セット名を作成する可 能性があります。あるジョブ・ステップから別のジョブ・ステップにそのデータ・ セットが渡されないかぎり、JCL エラーになります。 一時データ・セットの DISP パラメーターに KEEP または CATLG を指定する と、システムは後処理を PASS に変更し、ジョブの終了時にデータ・セットを削除 します。ただし、システムは下記の状態がすべて当てはまると、データ・セットの 後処理を変更しません。 v データ・セットがテープにある。 v データ・セットが新規である。 v データ・セットの名前が DSNAME パラメーターに指定されていない。 v DISP パラメーターに指定された状況が OLD または SHR である。 v UNIT パラメーターに DEFER が指定されている。 このような場合には、システムはジョブの終了時にデータ・セットを削除します が、そのデータ・セット用にボリュームを保管するようにオペレーターに指示しま す。 例 //TEMPDS1 DD DSNAME=&&MYDS,DISP=NEW,UNIT=3350, // SPACE=(CYL,20) //TEMPDS2 DD DSNAME=&&DSA,DISP=(NEW,PASS),UNIT=3380, // SPACE=(TRK,15) //TEMPSMS DD DSNAME=&&ABC,DATACLAS=DCLAS2,STORCLAS=TEMP1,DISP=NEW 一時 PDS または PDSE のメンバー 一時区分データ・セット (PDS または PDSE) にメンバーを追加するか、ジョブの 実行時にメンバーを検索するときは、データ・セットの一時名とその後ろに括弧で 囲んだメンバー名を指定してください。 例 120 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 識別 //TEMPMEM DD DSNAME=&&DS1(MEM1),DISP=(NEW,PASS), // UNIT=3380,SPACE=(CYL,(20,,2)) //GETMEM DD DSNAME=&&DS1(MEM1),DISP=OLD 一時索引順次データ・セットの区域 一時索引順次データ・セットを作成し、DD ステートメントにその区域を定義する ときは、データ・セットの一時名とその後ろに区域名を指定してください。一時デ ータ・セットを 1 つの DD ステートメントに定義するときは、 DSNAME=&&dsname または DSNAME=&&dsname(PRIME) を指定してください。 同じジョブ内の一時データ・セットを検索するときは、DSNAME=&&dsname を指 定してください。 例 //TEMPIS DD DSNAME=&&ISDS(INDEX),DISP=(NEW,PASS), // UNIT=3380,SPACE=(CYL,5) // DD DSNAME=&&ISDS(PRIME),DISP=(NEW,PASS), // UNIT=3380,SPACE=(CYL,20) // DD DSNAME=&&ISDS(OVFLOW),DISP=(NEW,PASS), // UNIT=3380,SPACE=(CYL,10) //ANOTHER DD DSNAME=&&ISDS2,DISP=(NEW,PASS),UNIT=3350, // SPACE=(CYL,10) //OLDIS DD DSNAME=&&ISDS2,DISP=OLD 以前の DD ステートメントからのデータ・セット名のコピー 1 つのジョブ内でデータ・セット名を複数回使用するときは、最初にそのデータ・ セット名を使用した DD ステートメントからコピーしてください。DSNAME パラ メーターに指定されたデータ・セット名でも、システムによって割り当てられたデ ータ・セット名でも、コピーすることができます。コピーするとジョブからジョブ にデータ・セットを簡単に変更することができ、一時データ・セットに名前を割り 当てる必要がありません。データ・セット名をコピーするときは、次のように指定 してください。 //ddname DD //ddname DD //ddname DD DSNAME=*.ddname DSNAME=*.stepname.ddname DSNAME=*.stepname.procstepname.ddname 例 //COPYDS DD DSNAME=*.MYDS データ・セットの連結 ジョブ・ステップの期間、順次データ・セットまたは区分データ・セット (PDS ま たは PDSE) を論理的に接続または連結 (リンク) することができます。データ・セ ットを連結するときは、最初の DD ステートメント以外のすべての DD ステート メントから ddname を省いてください。データ・セットは、DD ステートメントに 定義された順番で処理されます。 例 //INPUT DD DSNAME=FGLIB,DISP=(OLD,PASS) // DD DSNAME=GROUP2,DISP=SHR 第 12 章 データ・セット・リソース - 識別 121 データ・セット・リソース - 識別 ストリーム内データ・セットの識別 (非 APPC) ストリーム内データ・セットは、APPC スケジューリング環境ではサポートされま せん。指定すると、システムはストリーム内データ・セットを識別する DD ステー トメントを構文検査し、無視します。後続のステートメントは JCL ステートメント として処理されますが、エラーの原因になることがあります。システムは、ストリ ーム内データ・セットの後ろの区切りステートメントを無視します。 入力ストリームを介したデータの入力 入力ストリームを介してデータを入力するときは、次のいずれかを指定してくださ い。 //ddname //ddname DD DD * DATA 1 つのステップには、2 個以上のストリーム内データ・セットを指定することがで きます。データに JCL ステートメントが入っている場合は、DD DATA ステート メントを使用してください。 データ・セットを始めるステートメントに DLM パラメーターを指定するときは、 DLM パラメーターに指定した 2 文字を含むステートメントでストリーム内デー タ・セットを終わりにしてください。そうしない場合は、次のいずれかの区切り文 字でストリーム内データ・セットを終わりにしてください。 /* Another JCL statement, if begun with a DD * statement ストリーム内データ・セットの命名 システム生成の名前の最後の修飾子をストリーム内データ・セットに割り当てると きは、DD * または DATA ステートメントに DSNAME パラメーターを指定して ください。 例 1 //DSIN DD * . . (data) . //INSET DD DATA . . (data) . /* //THIRD DD *,DLM=ED . . (data) . ED 例 2 122 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 識別 //DDIN DD DATA,DSNAME=&&PAYIN1 . . (data) . /* JES3 システムにおけるストリーム内データ・セット JES3 システムにおいては、ストリーム内データ・セットを //*DATASET ステート メントで始めて、//*ENDDATASET ステートメントで終えることもできます。 //*DATASET ステートメントを使用して、動的サポート・プログラム (DSP) への入 力として使用するストリーム内データ・セットを始めなければなりません。 例 //J1 JOB 2233,’K.A. BRAND’ //S1 EXEC PGM=MYPROG //*DATASET DDNAME=S1.MYDD4,J=YES . . data . //*ENDDATASET 3540 ディスケット入出力装置におけるデータ・セットの識別 IBM 3540 ディスケット・ボリュームには、関連データ・セットを入れることがで きます。関連データ・セットはストリーム内データ・セットのように処理されて、 SYSIN データ・セットとしてスプールされます。これらの関連データ・セットは、 DSID パラメーターを指定して識別してください。オプショナルで、入力ストリー ム内の DD * または DD DATA ステートメントにボリューム通し番号を指定して ください。 //ddname DD *,DSID=xxxx,VOLUME=SER=yyyyyy ジョブ入力ストリームに関連データ・セットをマージするときは、その関連デー タ・セットの DD ステートメントが指定されたストリームをディスケット読み取り プログラムで処理しなければなりません。JES2 と JES3 は、DSID パラメーターを サポートしません。 3540 ディスケットの詳細については、3540 Programmer’s Reference を参照してく ださい。 例 //ASSTDS DD DATA,DSID=3254,VOLUME=SER=778356 カタログを介した識別 システム・カタログまたは専用カタログには、以前にカタログされたデータ・セッ トを示すポインターが入っています。UNIT または VOLUME パラメーターが指定 されていない DD ステートメントで古いデータ・セットを要求すると、システムは これらのポインターを使用して、データ・セットを探します。たとえば、次の場合 がこれに当たります。 //ddname DD DSNAME=dsname,DISP=OLD 第 12 章 データ・セット・リソース - 識別 123 データ・セット・リソース - 識別 カタログ・ボリュームの割り振りおよび割り振り解除 DSNAME パラメーターがカタログ式データ・セットを要求すると、システムはカタ ログ・ボリュームが取り付けられていない場合にそのボリュームを取り付けます。 システムは、要求されたデータ・セットを示すポインターをそのカタログから入手 します。後でそのカタログが取り付けられている装置に別のボリュームを取り付け なければならなくなると、システムはそのカタログ・ボリュームを外します。シス テムはジョブ・ステップにカタログを割り当てて、ジョブ・ステップが終了した時 点でそのカタログ・ボリュームについての後処理を実行します。 次の場合、システムはジョブのデータ・セットの後処理を行うときにカタログ・ボ リュームを取り付けません。 v ジョブが異常終了し、異常終了の後処理として CATLG または UNCATLG が指 定されているデータ・セットがジョブ・ステップによって渡されたものの、後続 のステップで受け取られていない場合。 v システムが、ウォーム・スタート時にステップのデータ・セットの割り振りを解 除する場合。 専用カタログの使用方法 専用カタログは、ジョブ・カタログ (JOBCAT) およびステップ・カタログ (STEPCAT) DD ステートメントで指定できます。専用カタログを定義するには、 「z/OS DFSMS カタログのためのアクセス方式サービス・プログラム」で説明され ているアクセス方式サービス・プログラムを使用します。装置情報とボリューム情 報が指定されていないデータ・セットを見つける場合、システム・カタログの前に 専用カタログが検索されます。カタログは、装置情報とボリューム通し番号情報を 指定していないデータ・セットに対する DD ステートメントが存在する場合に検索 されます。ステップ・カタログが指定されている場合は、常にステップ・カタログ が検索されます。ジョブ・カタログが指定されている場合は、ステップ・カタログ のないステップについてジョブ・カタログが検索されます。 IBM では、JOBCAT および STEPCAT DD ステートメントの使用に関して、次の 制限をもうけています。 v IBM では、JOBCAT または STEPCAT DD ステートメントの使用を推奨してい ません。将来の z/OS のリリースでは、これらのステートメントのサポートは削 除される予定です。ただし、別名を使用してカタログ要求を適切なカタログに送 信することができます。 v UCB (装置制御ブロック) が 16MB 境界より上に常駐する装置にあるカタログで は、 JOBCAT および STEPCAT の使用はサポートされていません。 v SMS 管理データ・セットに JOBCAT または STEPCAT を使用しないでくださ い。STEPCAT を含むステップまたは JOBCAT を含むジョブ内で SMS 管理デー タ・セットを参照すると、JCL エラーでジョブが失敗します。 注: JES3 システムでは、専用カタログは永続常駐ボリュームに入っていなければな りません。 データ・セットを探すときは、システムは次の順番でカタログを探索します。 1. STEPCAT 連結があれば、そこでカタログが検索されます。 124 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 識別 2. ステップに STEPCAT 連結がない場合、JOBLIB 連結があればその中でカタログ が検索されます。 3. データ・セット名に 1 番目から 4 番目まで修飾子があれば、システム・マスタ ー・カタログ内のこれに一致する別名によって指し示されるカタログ。 4. マスター・カタログ。 STEPCAT を含むステップまたは JOBCAT を含むジョブでカタログされたデータ・ セットは、すべて連結の最初のカタログ内にカタログされます。これにより、将来 の使用で問題が発生する可能性があります。例えば、 S1、S2、および S3 の 3 つ のステップを持つジョブがあるとします。このジョブ用の JOBCAT DD ステートメ ントがあり、 CAT.A、CAT.B、CAT.C がこの順序で指定されています。ジョブの 実行前に、 3 つのすべてのステップで処理されるデータ・セットの項目は CAT.C に入っています。このジョブが実行されると、次のようになります。 v S1 がデータ・セットを読み取る。 v S2 がそのデータ・セットを削除する。 v S3 が、S1 で使用され、S2 で削除されたものと同じ名前の新しいデータ・セット を作成する。 ステップ S1 と S2 では、システムは CAT.C の項目を使用してデータ・セットを 見つけます。しかし、システムは、S3 によって作成されたデータ・セットの新しい カタログ項目を CAT.A に配置しようとします。これは、最初に同じ名前のデー タ・セットの項目を含んでいたカタログと同じカタログではありません。また、 CAT.A がマスター・カタログで、S3 の実行時にそのカタログに該当データ・セッ トの高位修飾子の別名項目が存在する場合には、新しい項目を追加しようとすると 失敗します。 JOBCAT と STEPCAT の例 //CATDS //ANOTH //JOBCAT // //STEPCAT DD DD DD DD DD DSNAME=DS1,DISP=OLD DSNAME=A.B.C,DISP=OLD DSNAME=PRIVCAT1,DISP=SHR DSNAME=CONCAT2,DISP=SHR DSNAME=PRIVCATS,DISP=SHR ラベルを介した識別 システムはデータ・セット・ラベルを使用して、次の処理を行います。 v ボリュームとラベルが入っているデータ・セットを識別すること。 v データ・セット属性を保管すること。 ラベルは標準または標準外のいずれかです。標準ラベルはシステムによって処理さ れます。標準外ラベルは、ご使用のシステムに追加されるインストール先作成のル ーチンによって処理しなければなりません。 テープ・ボリューム上のデータ・セットには、通常、ラベルが付いています。これ らのラベルには、標準または標準外があります。ラベルが付けられている場合は、 ボリューム上のそれぞれのデータ・セットの前に付いています。直接アクセス・ボ リューム上のデータ・セットには、必ずラベルが付いています。これらのラベル は、標準ラベルでなければなりません。直接アクセス・ラベルは、ボリュームのボ リューム目録 (VTOC) に入っています。 第 12 章 データ・セット・リソース - 識別 125 データ・セット・リソース - 識別 ラベル・タイプ・サブパラメーターは、データ・セットのラベルのタイプをシステ ムに伝えます。ラベル・タイプは、次のように指定してください。 //ddname DD LABEL=(,label)... ラベル・タイプは、次の通りです。 SL: IBM 標準ラベル SUL: IBM 標準ラベルとユーザー・ラベル 直接アクセス・ボリューム上のデータ・セットの場合には、SL または SUL だ けしか指定することができません。SL または SUL の場合、またはデータ・セ ットに IBM 標準ラベルが付けられているためにラベル・タイプ・サブパラメー ターが省略されている場合、システムは正しいテープまたは直接アクセス・ボリ ュームが取り付けられていることを確認します。 AL: ISO/ANSI 第 1 版または ISO/ANSI/FIPS 第 3 版のラベル AUL: ISO/ANSI 第 1 版または ISO/ANSI/FIPS 第 3 版のラベル、および ISO/ANSI 第 1 版または ISO/ANSI/FIPS 第 3 版のユーザー・ラベル AL または AUL の場合には、システムは正しいテープ・ボリュームが取り付け られていることを確認します。このテープには、ISO/ANSI 第 1 版または ISO/ANSI/FIPS 第 3 版のラベルが付いていなければなりません。 NSL: 標準外ラベル NSL の場合には、ご使用のシステム提供の標準外ラベル処理ルーチンで、正し いテープ・ボリュームが取り付けられていることを確認しなければなりません。 NL: ラベルなし BLP: ラベルう回処理 NL または BLP の場合には、正しいテープ・ボリュームが取り付けられている ことをオペレーターが確認しなければなりません。NL を指定するときは、デー タ・セットに標準ラベルが付いていてはなりません。 BLP の使用方法 : BLP はラベル・タイプではなく、システムのラベルう回処理 の要求です。ブランクのテープの場合にこれを指定してください。または現行の パリティーまたは密度とは異なるパリティーまたは密度の 7 トラック・テープ に上書きするときに、これを指定してください。 LTM: ラベルなしテープにおける先行テープ・マークのう回 カタログ式データ・セットまたは受け渡しデータ・セットのラベル・タイプ カタログ式データ・セットと受け渡しデータ・セットの場合には、システムはラベ ル・タイプ情報を保管しません。したがって、標準ラベル以外のラベルのついたカ タログ式データ・セットまたは受け渡しデータ・セットを参照するときは、LABEL タイプ・サブパラメーターを指定してください。 非特定ボリューム要求 ラベル・タイプ・サブパラメーターは、非特定テープ・ボリューム要求の場合に指 定することができます。つまり、ボリューム通し番号を指定しない DD ステートメ ントに指定することができます。オペレーターが違うラベル・タイプのテープ・ボ リュームをマウントすると、システムはオペレーターに別のボリュームをマウント するように要求します。しかし非特定ボリューム要求について指定したラベル・タ 126 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 識別 イプが NL または NSL で、オペレーターが標準ラベルのボリュームを取り付けた 場合、下記の両方の状態になっていると、システムはそのボリュームを使用しま す。 1. ボリューム上の既存のデータ・セットの満了日が過ぎている。 2. ボリューム上の既存のデータ・セットがパスワード保護されていない。 非特定ボリューム要求に SL を指定して、オペレーターが IBM 標準ラベル以外の ラベルのついたテープ・ボリュームを取り付けた場合、システムは IBM 標準ラベ ルを書き込む前に、ボリューム通し番号とボリュームの新しい所有者を指定するよ うにオペレーターに要求します。テープ・ボリュームに ISO/ANSI バージョン 1 ま たは ISO/ANSI/FIPS バージョン 3 のラベルが付いていると、システムはそのラベ ルを破棄してもいいかどうかをオペレーターに確認します。 特定ボリューム要求 特定ボリューム要求に SL (ボリューム通し番号を指定した DD ステートメント) を 指定したのに、ボリュームに IBM 標準ラベルが付いていない場合には、次のよう になります。 v 取り付けられたボリュームにラベルが付いていると、システムはそのボリューム をリジェクトし、指定のテープ・ボリュームをマウントするようにオペレーター に要求します。 v 取り付けられたボリュームにラベルが付いていないと、システムはそのボリュー ムをリジェクトするか、あるいはそれに標準ラベルを書き込むかをオペレーター に確認します。 例 //DSF // DD DSNAME=ALLAB,LABEL=(,AL),UNIT=3420, VOLUME=SER=223344,DISP=(NEW,CATLG) //DSJ DD DSNAME=CATDS,DISP=OLD,LABEL=(,SUL) テープにおける記憶場所の識別 すでに 1 つまたは複数のデータ・セットが入っているテープ・ボリュームにデー タ・セットを入れるときは、データ・セットを入れる場所を指定してください。つ まり、そのデータ・セットをボリューム上で 2 番目、3 番目、4 番目・・・にする のかを指定します。テープの位置を指定するときは、データ・セット・シーケンス 番号を指定してください。 //ddname //ddname DD DD LABEL=(data-set-sequence-number,label),... LABEL=data-set-sequence-number,... BLP を指定した data-set-sequence-number ラベル・タイプに BLP を指定すると、システムはテープ・マークとテープ・マー クの間にあるものをデータ・セットとして処理します。したがって、実際にテープ にラベルが付いているときは、data-set-sequence-number サブパラメーターを指定し て、テープの位置を正しく指定してください。このサブパラメーターは、必要なデ ータ・セットの前にあるすべてのラベルとデータ・セットを反映していなければな りません。z/OS DFSMS: Using Magnetic Tapes では、テープ・マークの位置につい て説明しています。 第 12 章 データ・セット・リソース - 識別 127 データ・セット・リソース - 識別 例 //DDEX1 // DD DSNAME=TAPEDS3,DISP=(NEW,KEEP),UNIT=3420, LABEL=(3,SL),VOLUME=SER=666555 //DDEX2 // DD DSNAME=TAPEDS4,DISP=(NEW,KEEP),UNIT=3420, LABEL=(8,BLP),VOLUME=SER=223344 TCAM メッセージ・データ・セットとしての識別 通信アクセス方式 (TCAM) メッセージが入っているデータ・セットを識別するとき は、次のように指定してください。 //ddname DD QNAME=procname //ddname DD QNAME=procname.tcamname QNAME パラメーターは、メッセージの宛先キューを定義する TPROCESS マクロ 命令を参照します。このパラメーターは、メッセージを処理する TCAM ジョブも 指定することができます。 例 //EX1 DD QNAME=MACRO1.TJOB 端末装置からのデータ・セットまたは端末装置へのデータ・セットの識別 (非 APPC) TERM パラメーターは、APPC スケジューリング環境では機能しません。TERM を 指定すると、システムはその構文を検査し、無視します。 TSO/E システムで実行されているジョブでは、JOB ステートメント USER パラメ ーターで、端末装置からのデータ・セットまたは端末装置へのデータ・セットを識 別してください。次のように指定します。 //ddname DD TERM=TS バックグラウンド・ジョブまたはバッチ・ジョブにおいては、システムは、他のパ ラメーターが指定されていないと、TERM=TS パラメーターを SYSOUT=* パラメ ーターとして処理します。 例 //MYTSODS 128 DD z/OS MVS JCL ユーザーズ・ガイド TERM=TS 第 13 章 データ・セット・リソース - 記述 表 21. データ・セット・リソースを要求するための記述タスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 記述 状況の DISP データ属性の モデル化による DCB AMP DATACLAS KEYLEN DSNTYPE KEYOFF LRECL RECFM RECORG LIKE REFDD マイグレーション MGMTCLAS およびバックアッ プの 状況の記述 ジョブについてのデータ・セットの制御を確実にするプロセスは、データ・セット 保全性処理と呼ばれています。データ・セット保全性処理によって、同じデータ・ セットの使用を要求するジョブが 2 つ以上ある場合、それらのジョブの間で競合が 発生しなくなります。たとえば、2 つのジョブ (READ と MODIFY) がデータ・セ ット FILE を要求するものとします。 v READ は特定のレコードを読み取って、コピーすることだけを要求します。 v MODIFY はあるレコードを削除して、他のレコードを変更することを要求しま す。 両方のジョブが FILE を同時に使用すると、MODIFY がデータ・セット内のレコー ドを変更するため、READ は FILE の保全性を確実にすることはできません。 MODIFY はデータ・セットの排他制御をする必要があります。 次のようにデータ・セットの状況を指定して、必要な制御のタイプを示します。 //ddname //ddname //ddname //ddname DD DD DD DD DISP=(NEW,... DISP=(OLD,... DISP=(MOD,... DISP=(SHR,... データ・セットを排他使用するときは、次のように指定します。 © Copyright IBM Corp. 1988, 2004 129 データ・セット・リソース - 記述 v NEW: データ・セットがこのジョブ・ステップ内で作成される場合。 v OLD: このジョブ・ステップより前にデータ・セットが存在した場合。 v MOD: データ・セットが存在していることをシステムが最初に仮定する場合。既 存の順次データ・セットの場合に MOD を指定すると、読み取り/書き込みのメカ ニズムはデータ・セットの最後のレコードの後ろに置かれます。読み取り/書き込 みのメカニズムは、データ・セットが出力用にオープンされるたびに最後のレコ ードの後ろに置かれます。 システムがデータ・セットについてのボリューム情報を DD ステートメントまた はカタログで見つけることができないか、または以前のステップからデータ・セ ットとともに渡されていないときは、システムはデータ・セットをこのジョブ・ ステップ内で作成するものと仮定します。新規データ・セットの場合、MOD を 指定すると、読み取り/書き込みのメカニズムはデータ・セットの最初に置かれま す。 注: 世代別データ・グループ (GDG) データ・セットの新しい世代 ((+n) が 0 よ り大きい) の場合には、VOLUME=REF または VOLUME=SER を指定するこ とができます。 データ・セットを共用使用するときは、次のように指定します。 v SHR: データ・セットはこのジョブ・ステップより前に存在しており、別の並行 ジョブで読み取ることができます。 データ・セットの排他制御 ジョブがデータ・セットを排他制御する場合は、そのデータ・セットを参照するジ ョブの最後のステップが完了するまで、他のジョブがそのデータ・セットを使用す ることはできません。ジョブは、レコードを変更、追加、または削除するために、 データ・セットを排他制御する必要があります。 データ・セット全体を排他制御する必要のない場合もあります。DCB、READ、 WRITE、および RELEX マクロ命令を指定すると、レコードのブロックの排他制御 を要求することができます。z/OS DFSMS: データ・セットの使用法 を参照してく ださい。 データ・セットの共用制御 複数のジョブがデータ・セットの共用制御を要求すると、直接アクセス装置上のデ ータ・セットを同時に使用することができます。どのような場合であっても、ジョ ブがデータ・セットを変更してはなりません。 2 個以上のステップが共用データ・セットを要求し、同時に実行されているジョブ がそのデータ・セットを使用することになっている場合には、そのデータ・セット を要求するすべての DD ステートメントに SHR を指定してください。 例 //DD1 //DD2 //DD3 130 DD DD DD z/OS MVS JCL ユーザーズ・ガイド DSNAME=PERMDS,DISP=OLD DSNAME=&&TEMPDS,DISP=NEW DSNAME=GENDS(+1),DISP=(NEW,CATLG) データ・セット・リソース - 記述 データ・セット保全性処理 システムは、次のタイプのデータ・セットにデータ・セット保全性処理を各ジョブ において 1 回実行します。 v 永続データ・セット v 非仮想入出力 (VIO) 一時データ・セット v 別名が指定されていて、アクセス方式サービス・プログラムの DEFINE コマンド で作成されたデータ・セット。下記の資料を参照してください。 z/OS DFSMS カタログのためのアクセス方式サービス・プログラム v 世代別データ・グループのメンバー システムはサブシステム・データ・セットについて、データ・セット保全性処理を 実行しません。 永続データ・セットについてのデータ・セット保全性処理 ジョブのすべての永続データ・セットに関する制御を保護するために、システムは そのジョブによって要求されたデータ・セットとして各データ・セットに印を付 け、要求された制御の種類 (共用または排他) を記録して、そのデータ・セットをエ ンキューします。システムは、そのデータ・セットを参照するジョブの最後のステ ップが完了するまで、データ・セットの制御を割り当てます。 排他制御を要求するステートメントによって、共用制御を要求するステートメント がオーバーライドされます。排他制御を要求するために、次の 2 つの方法のうちの 1 つを使用できます。 v JCL の DD ステートメントの DISP=NEW、DISP=MOD または DISP=OLD。 v 動的割り振り要求の DISP=NEW、DISP=MOD または DISP=OLD。ユーティリテ ィー制御ステートメントを使用した結果生じる、動的割り振り要求を含みます。 たとえば、データ・セットを削除 / スクラッチするユーティリティー制御ステート メントは、結果的にそのデータ・セットの排他使用になります。 ジョブは次の場合に、データ・セットの制御を受け取ります。 v 別のジョブがそのデータ・セットを使用していない場合 v 別のジョブはそのデータ・セットを使用しているが、データ・セットを要求して いるジョブとデータ・セットを使用しているジョブの両方が共用制御を要求して おり、保留状態の排他的要求がない場合 ジョブは、次の場合にデータ・セットの制御を受け取りません。 v 別のジョブがデータ・セットを使用しており、そのジョブが排他制御を持ってい る場合 v 排他制御または共用制御を持つ別のジョブがデータ・セットを使用しており、こ のジョブが排他制御を要求している場合 v 共用制御を持つ別のジョブがデータ・セットを使用しており、これより前の別の ジョブが排他制御を要求している場合 第 13 章 データ・セット・リソース - 記述 131 データ・セット・リソース - 記述 ジョブが使用不可能なデータ・セットを要求すると、システムはオペレーターにメ ッセージ「JOB jjj WAITING FOR DATA SETS」を出します。ジョブはオペレータ ーがそのジョブを取り消さない限り、必要なデータ・セットが使用可能になるまで 待機します。 システムがすべての永続データ・セットの制御を保護している場合は、このジョブ の各ステップについてリソースを割り振り、その割り振りを解除します。システム がジョブの最後のステップについてのすべてのリソースの割り振りを解除したあと で、ジョブは終了します。 他のデータ・セットについてのデータ・セット保全性処理 非 VIO 一時データ・セット、別名が指定されたデータ・セット、および世代別デー タ・グループのメンバーは、ジョブ内の各ステップについて予約またはエンキュー されます。ジョブは永続データ・セットと同じ方法で、そのステップにおけるデー タ・セットの制御を受け取ります。 各ステップが終了すると、システムは、そのジョブの後続のステップで使用されな いデータ・セットの制御を解放します。ただし、非 VIO 一時データ・セット、別名 のあるデータ・セット、または世代別データ・グループのメンバーは除きます。 データ・セット保全性処理のまとめ 表 22. データ・セット保全性処理 データ・セットが現在使用中で : 永続データ・セット要求で : 共用制御の場合 排他制御の場合 GDG データ・セット要求で : 共用制御の場合 132 共用制御の場合 排他制御の場合 要求はデータ・ セットが解放さ れたときに許可 される。 要求はデータ・ セットが解放さ れたときに許可 される。 共用制御の場合 排他制御の場合 要求は許可され る 要求はデータ・ セットが解放さ れたときに許可 される。 要求はデータ・ セットが解放さ れたときに許可 される。 要求は許可され る 要求は許可され る 要求は許可され る 要求はデータ・ セットが解放さ れたときに許可 される。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る 要求は許可され る 要求は許可され る ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求はデータ・ セットが解放さ れたときに許可 される。 非 VIO 一時データ・セット要求で : 共用制御の場合 要求は許可され る 排他制御の場合 データ・セットが以前に要求されて いて : データ・セット が使用中ではな い場合 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る z/OS MVS JCL ユーザーズ・ガイド ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る データ・セット・リソース - 記述 表 22. データ・セット保全性処理 (続き) データ・セットが現在使用中で : 排他制御の場合 別名のデータ・セット要求で : 共用制御の場合 排他制御の場合 共用制御の場合 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 排他制御の場合 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 データ・セット が使用中ではな い場合 要求は許可され る データ・セットが以前に要求されて いて : 共用制御の場合 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 排他制御の場合 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 要求は許可され る 要求は許可され る 要求は許可され る ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 ALLOCxx の SDSN_WAIT 指 定により失敗す るか、待機す る。 データ属性の記述 システムはデータ・セットから読み込んだり、データ・セットに書き込んだりする ときに必要な情報を、下記のものから入手します。 v データ制御ブロック (DCB) v VSAM データ・セットの場合には、アクセス方式制御ブロック (ACB) v SMS を使用している場合は、データ・セットのデータ・クラス v SMS を使用している場合は、モデル・データ・セット データ制御ブロック (DCB) の場合 システムは、下記のソースからデータ制御ブロック情報をオーバーライド順に入手 します。 v アセンブラー言語プログラムの DCB マクロ命令。または、他の言語のプログラ ムのファイル定義ステートメントまたは言語定義のデフォルト。 v DD ステートメントに指定された DCB サブパラメーター //ddname //ddname DD DD DCB=subparameter,... DCB=(subparameter,subparameter,...),... v データ・セット・ラベル したがってデータ制御ブロックに値が入っていると、システムは DD ステートメン トの DCB サブパラメーターに指定された値を無視します。データ制御ブロックに プログラムまたは DD DCB サブパラメーターからの値が入っていると、システム はデータ・セット・ラベルに指定された値を無視します。 注: 連結データ・セットが含まれている場合は、データ・セットのタイプと、処理 プログラムによるデータ・セットの使用方法にもとづいて DCB に値が入りま す。詳細については、z/OS DFSMS: データ・セットの使用法 を参照してくだ さい。 第 13 章 データ・セット・リソース - 記述 133 データ・セット・リソース - 記述 カタログ式データ・セットからの DCB 値 DD ステートメント DCB パラメーターによって、カタログ式データ・セットのデ ータ・セット・ラベルから、ある値をコピーするようにシステムに要求することが できます。次のように指定します。 //ddname //ddname DD DD DCB=dsname,... DCB=(dsname,subparameter,...)... システムは、ラベルから DSORG、RECFM、OPTCD、BLKSIZE、LRECL、 KEYLEN、および RKP の値をコピーします。これらの値のいくつかを dsname の 後ろのサブパラメーターに指定すると、システムはその値を使用します。 以前の DD ステートメントからの DCB 値 DD ステートメント DCB パラメーターによって、これより前の DD ステートメン トの DCB パラメーターのサブパラメーターをすべてコピーするようにシステムに 要求することができます。前のステートメントへの逆方向参照を指定します。 //ddname //ddname //ddname DD DD DD DCB=*.ddname DCB=*.stepname.ddname DCB=*.stepname.procstepname.ddname 例 //S1 EXEC PGM=ANYA //DD1 DD DSNAME=ABC,DCB=(RECFM=FB,LRECL=80,BLKSIZE=960), // DISP=(NEW,CATLG,DELETE),UNIT=3380,VOLUME=223344, // SPACE=(CYL,(30,10)) //S2 EXEC PGM=ANYB //DD2 DD DSNAME=COPIER1,DCB=ABC //S3 EXEC PGM=ANYC //DD3 DD DSNAME=COPIER2,DCB=*.S1.DD1 アクセス方式制御ブロック (ACB) の場合 システムは、下記のソースから VSAM データ・セットについてのアクセス方式制 御ブロック情報を入手します。これはオーバーライド順になっています。 v DD ステートメントに指定された AMP サブパラメーター //ddname //ddname DD DD AMP=(subparameter),... AMP=(’subparameter,subparameter,...’),... v SMS を使用する場合は、DD ステートメント・パラメーター KEYLEN、KEYOFF、LRECL、および RECORG v アセンブラー言語プログラムに指定された ACB、EXLST、または GENCB マク ロ命令 v データ・セットについてのカタログ項目 したがって DD AMP パラメーターに値が指定されている場合、システムはプログ ラムのマクロ命令に指定された値を無視します。DD AMP サブパラメーターまたは プログラム内のマクロ命令の値がアクセス方式制御ブロックにすでに指定されてい る場合、システムはデータ・セット・カタログ項目の値を無視します。 注: ACB 値をオーバーライドする順番は、DCB 値をオーバーライドする順番とは 異なります。 例 134 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 記述 //DD4 DD DSNAME=ANYVSAM1,AMP=(’BUFND=4,BUFNI=4,STRNO=2’), // DISP=(NEW,CATLG,DELETE),UNIT=3380,VOLUME=556677, // SPACE=(TRK,(200,50)) データ・クラスの場合 SMS を使用する場合、システムはデータ・セットのデータ・クラスからそのデー タ・セットの属性に関する情報を入手します。 多くの場合、インストール先作成の自動クラス選択 (ACS) ルーチンによって選択さ れたデータ・クラスに定義された属性は、DD ステートメントで作成したデータ・ セットには十分なものです。 ただし新規データ・セットについては、DATACLAS パラメーターにデータ・クラ スの名前を指定することができます。(ACS ルーチンは、ユーザーが指定したデー タ・クラスをオーバーライドできることに注意してください。) ご使用のシステムにおけるストレージ管理者が、データ・クラスの名前とデータ・ セット属性を定義します。データ・クラス名とその属性のリストを表示するとき は、対話式記憶管理機能 (ISMF) を使用してください。 個々のデータ・セット属性をオーバーライドすることもできます。下記のパラメー ターに指定したデータ・セット属性は、そのデータ・セットについてのデータ・ク ラス内で対応する属性をオーバーライドします。 RECORG (レコード編成) または RECFM (レコード・フォーマット) LRECL (レコード長) KEYLEN (キー長) KEYOFF (キー・オフセット) DSNTYPE (データ・セット・タイプ、PDS または PDSE) AVGREC (レコード要求およびスペース量) SPACE (平均レコード長、1 次、2 次、およびディレクトリーの量) RETPD (保存期間) または EXPDT (満了日) VOLUME (ボリューム・カウント) 例 //DD5 //DD6 //DD7 DD DD DD DSNAME=DESIGNA.PGM,DISP=(NEW,KEEP) DSNAME=DESIGNB.PGM,DATACLAS=PGM5,DISP=(NEW,KEEP) DSNAME=DESIGNC.PGM,DATACLAS=PGM5,LRECL=1024,DISP=(NEW,KEEP) モデル・データ・セットの場合 SMS を使用する場合は、LIKE または REFDD パラメーターを使用して、モデル・ データ・セットからデータ・セット属性をコピーしてください。 v LIKE パラメーターは、既存のカタログ式データ・セットの属性を、DD ステー トメントで定義中の新規データ・セットにコピーします。 v REFDD パラメーターは、前の DD ステートメントに定義されたデータ・セット の属性を、DD ステートメントで定義中の新規データ・セットにコピーします。 新規データ・セットを定義する DD ステートメントに指定したデータ・セット属性 は、モデル・データ・セットからコピーされた対応する属性をオーバーライドしま す。 例 第 13 章 データ・セット・リソース - 記述 135 データ・セット・リソース - 記述 //DDEX //DD8 //DD9 // //DD10 //DD11 // DD DD DD DSNAME=DESIGN.EXMP,DISP=OLD DSNAME=DESIGNE.PGM,LIKE=DESIGN.EXMP,DISP=(NEW,KEEP) DSNAME=DESIGNF.PGM,LIKE=DESIGN.EXMP,LRECL=1024, DISP=(NEW,KEEP) DD DSNAME=DESIGNG.PGM,DATACLAS=DCLAS10,DISP=(NEW,KEEP) DD DSNAME=DESIGNH.PGM,REFDD=*.DD10,LRECL=1024, DISP=(NEW,KEEP) マイグレーションおよびバックアップ (SMS を使用する場合) SMS 管理データ・セット (ストレージ・クラスが割り当てられている) の場合、シ ステムは、そのデータ・セットについて管理クラスに定義されている属性にもとづ いて、データ・セットのマイグレーションとバックアップを処理します。 多くの場合、インストール先作成の自動クラス選択 (ACS) ルーチンによって選択さ れた管理クラスに定義された属性は、DD ステートメントで作成したデータ・セッ トには十分なものです。 ただし新しい SMS 管理データ・セットについては、MGMTCLAS パラメーターに 管理クラスの名前を指定することができます。 (ACS ルーチンは、ユーザーが指定 した管理クラスをオーバーライドできることに注意してください。) ご使用のシステムにおけるストレージ管理者が、管理クラスの名前とその属性を定 義します。管理クラス名とその属性のリストを表示するときは、対話式記憶管理機 能 (ISMF) を使用してください。 データ・セットについて管理クラスに定義された属性は、ユーザーがオーバーライ ドできないことに注意してください。 例 //DD8 //DD9 136 DD DD DSNAME=DESIGND.PGM,DISP=(NEW,KEEP) DSNAME=DESIGNE.PGM,MGMTCLAS=MCLASA,DISP=(NEW,KEEP) z/OS MVS JCL ユーザーズ・ガイド 第 14 章 データ・セット・リソース - 保護 表 23. データ・セット・リソースを要求するための保護タスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 保護 RACF を使用した PROTECT SECMODEL ISO/ANSI/FIPS バ ACCODE ージョン 3 のテ ープについての パスワードによる LABEL に PASSWORD およ び NOPWREAD を指定 LABEL に IN お BSAM および BDAM データ・ よび OUT を指定 セットへのアクセ スの RACF を使用した保護 RACF 保護を要求する場合は、次のように指定します。 //ddname DD PROTECT=YES,... あるいは SMS を使用するときは、次のように指定します。 //ddname DD SECMODEL=profile-name,... PROTECT パラメーターを使用した保護 PROTECT パラメーターを使用して、RACF は下記のデータ・セットやボリューム を保護することができます。 v 直接アクセス・ボリューム上のデータ・セット v 次のラベル付きのテープ・ボリューム上のデータ・セット LABEL=(,SL) LABEL=(,SUL) LABEL=(,AL) LABEL=(,AUL) LABEL=(,NSL) (ご使用のシステムでサポートされる場合) v 次のラベル付きかラベルなしのテープ・ボリューム LABEL=(,SL) LABEL=(,SUL) LABEL=(,AL) © Copyright IBM Corp. 1988, 2004 137 データ・セット・リソース - 保護 LABEL=(,AUL) LABEL=(,NSL) LABEL=(,NL) LABEL=(,BLP) LABEL=(,LTM) 詳細については、z/OS Security Server RACF セキュリティー管理者のガイド を参照 してください。 例 //TAPE2 // // DD DSNAME=NEWDS1,PROTECT=YES,DISP=(NEW,KEEP), VOLUME=(,,1,2,SER=(223344,556677)), UNIT=(3400-5,2),LABEL=(,SUL) //DISKDS DD DSNAME=NEWDS2,PROTECT=YES,DISP=(NEW,CATLG,KEEP), // VOLUME=SER=223344,UNIT=3380 SECMODEL パラメーターを使用した保護 SMS を使用する場合、RACF は SMS の下で作成されたデータ・セットを SECMODEL パラメーターを介して保護することができます。 新規データ・セットを定義するときは、SECMODEL パラメーターに RACF デー タ・セット・プロファイルの名前を指定します。ユーザー / グループのデフォルト のデータ・セット・プロファイルを使用せずに、新規データ・セットに特定のデー タ・セット・プロファイルを使用するときは、SECMODEL パラメーターを使用し てください。 データ・セット・プロファイルには、プロファイルの所有者の名前、データ・セッ トへのアクセスが許可されている RACF ユーザーまたはグループのリスト、ログへ のアクセス試行、およびその他の RACF 関連情報などの情報が入っています。 詳細については、z/OS Security Server RACF セキュリティー管理者のガイド および z/OS Security Server RACF コマンド言語 解説書 を参照してください。 例 //SMSDS DD DSNAME=NEWDS5.PGM,SECMODEL=(GROUP1.PROTA),DISP=(NEW,KEEP) ISO/ANSI/FIPS バージョン 3 のテープについての保護 ISO/ANSI/FIPS バージョン 3 のテープ・データ・セットへのアクセスを制御すると きは、次のように指定します。 //ddname DD ACCODE=access-code,... システムには、インストール先作成のファイル・アクセス出口ルーチンがなければ なりません。このルーチンは、ACCODE パラメーターが既存のデータ・セットにつ いて正しく指定されていて、データ・セットを使用することができるかどうかを検 査します。 例 138 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 保護 //DD1 // DD DSNAME=NEWDS,ACCODE=F,LABEL=(,AL),UNIT=3380, VOLUME=SER=998877,DISP=(NEW,CATLG,KEEP) //DD2 // DD DSNAME=OLDDS,ACCODE=J,LABEL=(,AL),UNIT=3380, VOLUME=SER=665544,DISP=OLD パスワードによる保護 LABEL パラメーターの PASSWORD サブパラメーターを使用して、データ・セッ トの保護に使用するパスワードを指定してください。 SMS は、SMS 管理データ・セットの場合には PASSWORD サブパラメーターを無 視します。 パスワードでデータ・セットを保護するときは、次のように指定します。 //ddname DD LABEL=(data-set-sequence-number,label,PASSWORD) //ddname DD LABEL=(data-set-sequence-number,,PASSWORD) //ddname DD LABEL=(,,PASSWORD) パスワード保護のデータ・セットを使用するときは、次のように指定します。 //ddname //ddname //ddname //ddname DD DD DD DD LABEL=(data-set-sequence-number,label,PASSWORD) LABEL=(data-set-sequence-number,,PASSWORD) LABEL=(,,PASSWORD) LABEL=(data-set-sequence-number,label,NOPWREAD) これらのサブパラメーターの意味は、次のとおりです。 v PASSWORD: オペレーターが正しいパスワードをシステムに提供しない限り、別 のジョブまたはステップがデータ・セットからの読み取り、データ・セットへの 書き込み、またはデータ・セットの削除を行うことはできません。 v NOPWREAD: オペレーターが正しいパスワードをシステムに提供しない限り、別 のジョブまたはステップがデータ・セットへの書き込みまたはデータ・セットの 削除を行うことはできません。ただし、パスワードがなくてもデータ・セットを 読み取ることができます。 パスワードを使用してデータ・セットを保護するときは、そのデータ・セットの作 成時に PASSWORD を指定してください。パスワード保護のデータ・セットには、 IBM 標準ラベルまたは ISO/ANSI バージョン 1 のラベルか ISO/ANSI/FIPS バージ ョン 3 のラベルを付けなければなりません。 例 //EX1 DD DSNAME=ABC,DISP=(NEW,CATLG,DELETE), // LABEL=(,SL,PASSWORD),UNIT=3400-5,VOLUME=223344 //EX2 DD DSANME=DEF,DISP=OLD,LABEL=(,SL,NOPWREAD) BSAM または BDAM データ・セットへのアクセスの保護 アセンブラーの OPEN マクロ命令で次のようにデータ・セットの処理を指定した場 合、LABEL パラメーターは 140 ページの表 24 で示した IN および OUT サブパラ メーターを介してデータ・セットの処理を変更することができます。 第 14 章 データ・セット・リソース - 保護 139 データ・セット・リソース - 保護 v 基本順次アクセス方式 (BSAM) の使用時: INOUT、OUTIN、OUTINX、または EXTEND v 基本直接アクセス方式 (BDAM) の使用時: UPDAT LABEL サブパラメーターは、次のように指定します。 //ddname //ddname //ddname //ddname DD DD DD DD LABEL=(data-set-sequence-number,label,PASSWORD,IN) LABEL=(,label,PASSWORD,OUT) LABEL=(,,NOPWREAD,IN) LABEL=(,,,OUT) 表 24. DD LABEL サブパラメーター IN または OUT を指定した処理 OPEN マクロの パラメーター LABEL サブパラメーター INOUT (BSAM) UPDAT (BDAM) データ・セットのプログラム処理 必須パスワード IN レコードの読み取り (プログラムがデ ータ・セットに書き込もうとする と、システムはエラー分析 (SYNAD) ルーチンに制御を渡します。) データ・セットが PASSWORD で保 護されている場合は読み取りパスワ ード。データ・セットが NOPWREAD で保護されている場合 は書き込みパスワード。 OUTIN (BSAM) UPDAT (BDAM) OUT レコードの書き込み (プログラムがデ データ・セットが PASSWORD また は NOPWREAD で保護されている場 ータ・セットの読み取りを試みる と、システムはエラー分析 (SYNAD) 合は書き込みパスワード ルーチンに制御を渡します。) OUTINX (BSAM) EXTEND (BSAM) OUT データ・セットが PASSWORD また データ・セットの終わりへのレコー ドの追加 (プログラムがデータ・セッ は NOPWREAD で保護されている場 合は書き込みパスワード トの読み取りを試みると、システム はエラー分析 (SYNAD) ルーチンに 制御を渡します。) LABEL IN サブパラメーターのその他の用法 IN サブパラメーターを指定すると、満了日の過ぎていないデータ・セットを読み取 るときに、オペレーターが介入しなくてもすみます。 LABEL OUT サブパラメーターを指定したデータ・セット処理 OPEN マクロ命令に OUTINX または EXTEND が指定されていて、DD LABEL に OUT サブパラメーターが指定されていると、システムは DD ステートメントの DISP パラメーターとは関係なく、データ・セットの終わりにレコードを追加しま す。 例 //EX1 //EX2 140 DD DD DSNAME=D.E.F,DISP=OLD,LABEL=(,,NOPWREAD,IN) DSNAME=EXIST,DISP=MOD,LABEL=(,,PASSWORD,OUT) z/OS MVS JCL ユーザーズ・ガイド 第 15 章 データ・セット・リソース - 割り振り 割り振りはデータ・セットに対する要求を、利用可能な装置またはボリュームにマ ップするためにシステムが使用するプロセスです。この章では、データ・セット・ リソースの割り振りに関する手引き情報が載せてあります。表 25 は、装置やボリュ ームなどのデータ・セットに関連するリソース割り振りと、該当する JCL または JES ステートメントおよびパラメーターとの関係を示します。 表 25. データ・セット・リソースを要求するための割り振りタスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 割り振り 装置の UNIT STORCLAS JOB に CLASS を 指定 (JES3 のみ) //*MAIN に SETUP および CLASS を指定 //*MAIN に EXPDTCHK お よび RINGCHK を指定 テープまたは直接 アクセス・ボリュ VOLUME STORCLAS ームの 直接アクセス・ス SPACE ペースの AVGREC DATACLAS 仮想入出力の UNIT DSNAME= 一時データ・ セット ボリュームの取り UNIT に DEFER 付けを遅らせる場 を指定 合 ボリュームを事前 に取り付けておく 場合 /*SETUP 動的 EXEC に DYNAMNBR を指 定 この章では、データ・セット・リソースの割り振りに関する以下の主題について説 明します。 v 142 ページの『装置の割り振り』 v 158 ページの『ボリュームの割り振り』 v 168 ページの『装置とボリュームの割り振りにおける相互の影響』 v 183 ページの『データ・セットのスタッキング』 © Copyright IBM Corp. 1988, 2004 141 データ・セット・リソース - 割り振り v 190 ページの『直接アクセス・スペースの割り振り』 v 196 ページの『仮想入出力の割り振り』 v v 199 ページの『JES2 システムにおけるボリュームの事前取り付けを指定した割 り振り』 199 ページの『動的割り振り』 これらの主題の中には、リソースが SMS 管理または非 SMS 管理のいずれである かの観点から説明している項を含むものがあります。 この章では、ストレージ管理サブシステム (SMS) が管理するリソースを説明するの に、SMS 管理という用語とシステム管理という用語を同じ意味で使用しています。 SMS の場合と書いてあるときは、それが、SMS がインストールされていてアクテ ィブであるときに適用される情報であることを意味します。 システム管理テープ・ライブラリー・ボリュームのデータ・セットは、システム管 理と非システム管理の両方の特性を備えています。システム管理テープ・ボリュー ムのデータ・セットは、必要に応じてシステム管理 DASD データ・セットとは区 別されます。区別の必要がない場合には、システム管理データ・セットという用語 は、システム管理テープ・ボリュームのデータ・セットとシステム管理 DASD デー タ・セットの両方を指します。 装置の割り振り データ・セットが入っている装置は、次のとおり判別されます。 v SMS 管理データ・セットの場合。新規データ・セットのストレージ・クラスによ って判別されます。これは、DD ステートメントの STORCLAS パラメーターに 指定されたクラス、またはインストール先作成の自動クラス選択 (ACS) ルーチン によって新規データ・セット用に選択されたクラスです。 v 非 SMS 管理データ・セットの場合。新規データ・セットのための DD ステート メントに指定された UNIT パラメーター、または SMS の場合は、UNIT パラメ ーターの指定がなければ SMS デフォルト装置によって判別されます。 SMS 管理データ・セットのための装置割り振り SMS 管理データ・セットの場合、SMS はデータ・セットに割り振ったストレー ジ・クラスにもとづいて、データ・セットに使用する装置に関する情報を入手しま す。 多くの場合、ACS ルーチン選択によるストレージ・クラスが使用する装置は、DD ステートメントで作成するデータ・セットに適正な装置です。 ただし、新しい SMS 管理データ・セットについては、STORCLAS パラメーターに ストレージ・クラスの名前を指定することができます。(ACS ルーチンはユーザーが 指定したストレージ・クラスをオーバーライドできるという点に注意してくださ い。) ご使用のシステムのストレージ管理者が、ストレージ・クラスの名前とその属性を 定義します。ストレージ・クラス名とその属性のリストを表示するときは、対話式 記憶管理機能 (ISMF) を使用してください。 142 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り ACS ルーチンで新規データ・セットにストレージ・クラスを選択するときは、 STORCLAS パラメーターを省いてください。たとえば、次のように指定します。 //DD5 DD DSNAME=DESIGNA.PGM,DISP=(NEW,KEEP) 新規データ・セットに特定のストレージ・クラスを指定するときは、STORCLAS パ ラメーターを指定してください。たとえば、次のように指定します。 //DD6 DD DSNAME=DESIGNB.PGM,STORCLAS=STOR55,DISP=(NEW,KEEP) システムは、新しく永続のシステム管理 DASD データ・セットを割り振るときに、 それをカタログします。システムは、割り振り解除処理のときに DD ステートメン トの DISP パラメーターに従って、システム管理テープ・ボリュームのデータ・セ ットをカタログします。 既存のデータ・セットを検索するときは、STORCLAS パラメーターを指定する必要 はありません。たとえば、次のように指定します。 //DD7 DD DSNAME=DESIGNB.PGM,DISP=MOD SMS 管理データ・セットに UNIT パラメーターを指定すると、システムは通常、 そのパラメーターを無視します。ただし、次のとおり、UNIT パラメーターに指定 された情報をシステムが使用する場合がいくつかあります。 v システム管理のテープ・ボリュームにあるデータ・セットの場合、システムは、 UNIT パラメーターの装置タイプ、装置番号、およびグループ名などのサブパラ メーターは無視します。ただしその他のサブパラメーターはすべて認識します。 たとえば、指定した数の装置を割り振るための装置数サブパラメーターは使用し ます。 v システム管理 DASD データ・セットの場合には、システムは装置カウント・サ ブパラメーターを処理します。ただし、UNIT パラメーターのその他のすべての サブパラメーターは無視します。詳細については、z/OS MVS JCL 解説書 を参照 してください。 非 SMS 管理データ・セットのための装置の割り振り 非 SMS 管理データ・セットのための DD ステートメントには UNIT パラメータ ーを指定して、データ・セットが置かれる装置、すなわちデータ・セットを書き込 む装置を示します。 非 SMS において、ご使用のシステムで、新規データ・セットに使用するシステ ム・デフォルト装置が定義されている場合は、UNIT パラメーターを指定する必要 はありません。ストレージ管理者に確認してください。 UNIT パラメーターには、下記の装置を指定することができます。 v 特定の装置 //ddname DD UNIT=device-number,... v 装置のタイプ (3350 直接アクセス装置または 1403 プリンターなど) //ddname DD UNIT=device-type,... v 装置グループ (システム内のすべての直接アクセス装置を示す DISK など) //ddname DD UNIT=group-name,... 第 15 章 データ・セット・リソース - 割り振り 143 データ・セット・リソース - 割り振り 装置の状況は、システムがその装置を割り振ることができるかどうかに影響しま す。表 26 を参照してください。 表 26. 割り振りに及ぼす装置の状況の影響 状況 装置タイプ 直接アクセス テープ プリンター 穿孔装置 グラフィック オンライン 割り振りの対象 オフライン オペレーターが装置をオンラインにすると、割り振りの対象。 テレプロセシング 装置へのパスの少 なくとも 1 つが オンラインである 場合、割り振りの 対象。 アンロードが保留 ボリュームが特別に要求されると、割 該当せず。 状態 り振りの対象。 オフライン 保留状態 オペレーターがメッセージ IEF238D に応答して装置を選択するか、装置を オンラインにした時点で割り振りの対 象となる。 該当せず。 オペレーターがメッセージ IEF238D に応答して装置を選択するか、装置を オンラインにした時点で割り振りの対 象となる。 装置番号の指定 装置番号は、インストール時に装置に割り当てられた 3 桁または 4 桁の 16 進数 です。JCL ステートメントでは、4 桁の番号の前にはスラッシュ (/) を付けてくだ さい。3 桁の番号の場合にはスラッシュを付けても、付けなくてもかまいません。 3 桁の装置番号は、次の 2 つの形式で指定することができます。h は 16 進数を表 します。 v 3 桁形式 : hhh または /hhh v 4 桁形式 : /0hhh 4 桁の装置番号の前のスラッシュにより、装置番号が装置タイプと区別されること にご注意ください。装置タイプも同じく 4 桁ですがその中にスラッシュを含めるこ とはできず、その先頭にスラッシュを付けることもできません。 たとえば、UNIT=/3490 は所定の装置の装置番号です。 必要な場合以外は、装置をその番号で指定しないようにしてください。装置番号を 指定すると、システムは所定の装置だけを割り振ることになります。装置番号を指 定した場合、他のジョブで該当の装置が使用されていると、ジョブが遅れます。 装置タイプの指定 装置タイプを要求すると、システムはそのタイプで使用可能な装置を割り当てるこ とができます。たとえば、UNIT=3350 は使用可能な 3350 直接アクセス記憶装置を 割り当てることを示します。装置タイプの指定の詳細については、z/OS ハードウェ ア構成定義 計画 を参照してください。 グループ名の指定 144 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り システムの初期設定時に、ご使用のシステムでは装置グループに対してグループ名 を定義することができます。1 つのグループ中の装置はタイプが同じであっても、 違っていてもかまいません。グループ名を要求すると、システムはグループ内の使 用可能な装置を割り当てることができます。たとえば、グループ DISK に 3350 と 3380 直接アクセス記憶装置が入っている場合に UNIT=DISK が指定されると、シス テムは使用可能な 3350 または 3380 装置を割り当てます。グループ 3350A に 3 つの特定の 3350 装置が入っている場合に UNIT=3350A が指定されると、システム はこれらの 3350 装置のうちの 1 つを割り当てます。 複数のタイプの装置があるグループ 1 つのグループに 2 つ以上のタイプの装置が属していて、DD ステートメントで 2 つ以上の装置が要求されると、システムはそのグループから同じタイプの装置を割 り当てます。たとえば、グループ TAPE に 3400-5 と 3400-6 装置が属していて、 DD ステートメントに UNIT=(TAPE,2) が指定されていると、システムは 2 つの 3400-5 または 2 つの 3400-6 のいずれかを割り当てます。要求されたタイプの装置 がないと、システムはジョブを終了します。 1 つのグループに 2 つ以上のタイプの装置が入っている場合は、既存のデータ・セ ットまたは特定のボリュームを要求するときに、グループ名を指定しないでくださ い。データ・セットがあるタイプの装置にあっても、システムはそれとは別のタイ プの装置を割り当てることがあります。たとえば、SYSSQ にすべてのテープと直接 アクセス装置が入っている場合には、テープ上の既存のデータ・セットに対して UNIT=SYSSQ を指定しないでください。システムは、直接アクセス装置を割り当て ることがあります。 特殊機構付きの装置があるグループ この規則はデータ・セットが 3348-70F 型データ・モジュールに置かれていて、グ ループ名に固定ヘッド機構付きと固定ヘッド機構の付かない 3340 装置が含まれて いるときにも適用されます。3348-70F 型は、その機構付きの 3340 に割り当てなけ ればなりません。固定ヘッド機構の詳細については、IBM 3340 Disk/Storage - Fixed Head Feature User’s Guide を参照してください。 非特定ボリューム要求で、単一記録密度と 2 種記録密度の磁気テープ装置の両方が 属しているグループから 2 つ以上のテープ装置を要求すると、システムは単一記録 密度機構装置が最初に使用されるものとして装置を割り当てます。デフォルトの密 度は、単一記録密度機構装置の密度です。オペレーターは、システムが割り当てた 順序とは異なる順序でボリュームをマウントするように要求されることがありま す。 装置の並行割り振り 並行して実行中の別個のジョブには、直接アクセス装置だけを割り当てることがで きます。同じジョブ・ステップ内で、テレプロセシング装置を 2 回以上割り当てる ことはできません。プリンター、穿孔装置、テレプロセシング装置またはグラフィ ックス装置をコンソールとして指定しても、それをジョブに割り当てることはでき ません。 テレプロセシング装置の、グループ名を用いた割り振り 第 15 章 データ・セット・リソース - 割り振り 145 データ・セット・リソース - 割り振り グループ名を使用して、回線グループの 1 つまたはそれ以上の回線の割り振りをシ ステムに要求すると、システムは、低位のテレプロセシング (TP) 回線アドレスか ら昇順に、回線グループ内の回線を割り振ります。回線グループの最初の適格な回 線がすでに割り振られている場合には、システムはその回線グループの回線割り振 りの要求を満たしません。 注: ハードウェア構成定義 (HCD) 用語では、グループ名は非公式名と呼ばれます。 システムの初期設定時における UNIT パラメーターの定義 ご使用のシステムでは、システムの初期設定時にシステムに対して各装置を記述し ます。処理のこの段階で、ご使用のシステムでは DD UNIT パラメーターに指定す る装置タイプとグループ名を定義します。 ご使用のシステムでは、装置タイプとグループ名のリストを保存しておくようにし てください。詳細については、z/OS ハードウェア構成定義 計画 を参照してくださ い。 出力データ・セットに対する装置の指定 (非 SMS 管理データ・セッ ト) ジョブ入力サブシステム出力サービスを使用しないでデータ・セットを印刷または 穿孔するときは、そのデータ・セットの DD ステートメントの UNIT パラメータ ーにプリンターまたは穿孔装置を指定してください。システムは使用可能であれ ば、そのジョブだけに装置を割り振ります。ジョブは出力装置を共用することはで きません。データ管理ルーチンは、プログラムから指定の装置に出力を書き出しま す。 ジョブ入力サブシステムから SYSOUT データ・セットに出力を送信すると、効率 が上がります。JES は出力を混在させることなく、多数のジョブ用にプリンターや 穿孔装置を使用します。 据え置きボリューム取り付けを指定した割り振り ステップには、プログラムが使用しないデータ・セットを含めることができます。 データ・セットがオープンされるまで、そのデータ・セットについてのボリューム を取り付けないようにシステムに指示するときは、次のように指定します。 //ddname DD UNIT=(xxxx,,DEFER),... 据え置き取り付けを指定すると、オペレーターの作業時間を節約することができま す。 例 //MYDS DD DSNAME=DATA5,UNIT=(TAPE,,DEFER) 注: SMS 管理データ・セットに対しても、据え置き取り付けを使用することができ ます。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットに対する複数装置の要求 処理を迅速に行うために、マルチボリューム・データ・セット、または追加のボリ ュームを必要とするデータ・セットには複数の装置を要求してください。各ボリュ 146 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り ームがそれぞれ固有の装置にあるときは、オペレーターによるボリュームの取り付 けや取り外しがあっても、ステップの実行が停止することはありません。 データ・セットが 2 つ以上の永続常駐ボリュームまたは予約ボリュームに置かれて いるか、またはステップの実行中に拡張されて新しいボリュームに置かれる可能性 があるときには、必ず複数の装置を要求してください。新しいボリュームをマウン トするために、永続常駐ボリュームおよび予約ボリュームを取り外すことはできま せん。 複数の装置を要求するには、次のようにしてください。 v 装置カウント・サブパラメーターを指定します。 //ddname DD UNIT=(device,unit-count),... v VOLUME パラメーターのボリューム・カウント・パラメーターまたは複数の 2 つ以上の通し番号で 2 つ以上のボリュームを要求するときには、並行取り付けを 要求します。 //ddname //ddname // DD UNIT=(device,P),VOLUME=(,,,volume-count) DD UNIT=(device,P), VOLUME=SER=(serial-number,serial-number,...) 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットに割り振る装置の数 システムは次の項目を計算して、ジョブ・ステップにボリュームと装置を割り当て ます。 v DD ステートメントごとのボリュームの最大数 v DD ステートメントごとの装置の最大数 v ステップごとの装置の数 DD ステートメントごとに必要なボリューム数 167 ページの『非システム管理データ・セットおよびシステム管理テープ・ボリュ ームのデータ・セットの DD ステートメントごとに必要なボリューム』 を参照し てください。 DD ステートメントごとに必要な装置数 すべての DD ステートメントを満たすのに必要なテープ装置または直接アクセス装 置の最大数が、UNIT パラメーターの装置カウントとなります。ただし、ボリュー ム類似性がある場合は、例外となります。ボリューム類似性がある場合、装置数は UNIT パラメーターの装置カウントより大きくなる可能性があります。詳細につい ては、 148 ページの『ステップごとに割り当てられる装置数』を参照してくださ い。 ただし UNIT パラメーターに並行取り付けの P も指定されていると、システムは 次に示す値のうちの最大のものを使用して、割り振る装置とボリュームの数を決め ます。 v UNIT パラメーターの装置カウント v VOLUME パラメーターに指定されたボリューム・カウント v 暗黙または明示指定された通し番号の数 v SMS を使用する場合は、データ・クラスのボリューム・カウント 第 15 章 データ・セット・リソース - 割り振り 147 データ・セット・リソース - 割り振り 装置の数は、DD ステートメントのパラメーターにより次のように影響を受けま す。 DD ステートメントの指定 システムの処置 UNIT=AFF システムは参照された DD ステートメントから装 置要件を入手します。参照される DD ステートメ ントに使用される装置はすべて、参照元のステート メントのデータ・セットと共用されます。 世代別データ・グループ (GDG) システムは各世代別データ・セットに必要な装置を 合計して、必要な装置の数を決めます。各世代別デ ータ・セットは、単一要求として処理されます。 VSAM データ・セット システムはデータ・セットの装置 / ボリューム構成 にもとづいて、必要な装置の数を決めます。デー タ・セットが 2 つ以上のタイプの装置上にある場 合には、システムは必要な装置の総数を決め、装置 を割り当てます。システムは、装置カウントまたは 並行取り付け (指定されている場合) をオーバーラ イドすることができます。 異なる装置タイプを含む装置名 システムは同じタイプの装置を割り当てます。 ステップごとに割り当てられる装置数 ジョブ・ステップに割り当てられる装置の数は、各 DD ステートメントに指定する 装置要件の合計に相当する数になるとは限りません。 あるステップに割り当てられる装置の総数は、次のことにより小さくなる傾向があ ります。 v 1 つのボリュームをただ 1 つの装置に割り振ることができます。したがって複数 の DD ステートメントで同じボリュームを要求すると、システムは同じ装置に同 じボリュームを割り振ることになります。 v 公用ボリュームまたはストレージ・ボリューム (あるいはその両方) の直接アクセ ス・スペースに対する要求は、同じボリュームに割り振ることができます。した がって複数の DD ステートメントでそのようなスペースを要求すると、システム は同じ装置に同じボリュームを割り振ることになります。 v 同じ公用テープ・ボリュームに対する要求は、そのボリュームに割り振られま す。したがって DD ステートメントで公用テープを要求し、VOLUME=REF を指 定すると、システムは同じ装置に同じボリュームを割り振ることになります。 あるステップに割り当てられる装置の総数は、次のことにより大きくなる傾向があ ります。 v 永続常駐ボリュームまたは予約ボリュームを取り外すことはできません。したが って、システムは永続常駐ボリュームまたは予約ボリュームを、それ自体が取り 付けられている装置に割り振ります。ボリュームは DD ステートメントに装置が 他のボリュームと共用される旨の指定があっても、それぞれの固有の装置に割り 振られます。 148 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り v 直接アクセス・ボリュームは、1 つのステップ内の複数の DD ステートメントに よって要求されます。このボリュームは、複数のデータ・セットによって共用さ れます。 DD ステートメントに装置が他のボリュームに使用される旨の指定があ っても、システムはそのボリュームをその装置に割り当てますが、他のボリュー ムをその装置に割り当てることはありません。 v データ・セットが複数のタイプの装置にある場合、システムは VSAM データ・ セットに追加の装置を割り振ります。 v システムは専用カタログに直接アクセス装置を割り振ります。ただし、これが行 われるのは、専用カタログが要求されたデータ・セットに関するボリューム情報 と関連しているか、またはその情報を取り出すために使用される場合 (あるいは その両方の場合) です。 v 世代別データ・グループ (GDG) の場合、システムは、GDG 内の世代別データ・ セットごとに必要となる装置タイプに合うように追加の装置を割り当てなければ ならないことがあります。 v DD ステートメントで要求されたテープ・ボリュームに対する装置割り当てが矛 盾していると、システムは矛盾しているボリュームをそれぞれ固有の装置に割り 当てます。たとえば、次の場合がこれに当たります。 //DD1 //DD2 DD DD UNIT=2400,VOLUME=SER=(V1,V2) UNIT=2400,VOLUME=SER=(V2,V3) ボリューム通し番号 V2 に関する装置割り当てが矛盾しています。したがって、 システムは 3 つのボリュームを 3 つの装置に割り当てます。DD2 で装置の類似 性を要求していると (UNIT=AFF=DD1)、システムは 3 つのすべてのボリューム にただ 1 つの装置を割り当てることになります。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットの例 例 1 //TEST //STEP1 //D1 // //STEP2 //D2 // //D3 // //D4 // //D5 // //D6 //D7 JOB 5675,’DEPT. 25’ EXEC PGM=A1 DD DSNAME=A01DD1,DISP=(,PASS),UNIT=3330, SPACE=(TRK,1),VOLUME=SER=333001 EXEC PGM=A2 DD DSNAME=LIB1,DISP=OLD,UNIT=3340, VOLUME=(PRIVATE,SER=123456) DD DSNAME=ABC,DISP=(OLD,KEEP),UNIT=AFF=D2, VOLUME=SER=777777 DD DSNAME=TAPE,DISP=OLD,UNIT=(3420-5,P,DEFER), VOLUME=SER=(342001,342002,342003,342004,342005) DD DSNAME=DISK,DISP=(SHR,KEEP),UNIT=(,P), VOLUME=SER=(333005,333008,333010) DD UNIT=3340,VOLUME=REF=*.D2,SPACE=(TRK,(5,2)) DD UNIT=3340,VOLUME=REF=DISK,SPACE=(TRK,(10,5)) v D1 は、新規データ・セット A01DD1 を定義します。このデータ・セットは、 3330 磁気ディスク装置に取り付けられているボリューム 333001 に置かれます。 v D2 は、旧データ・セット LIB1 を定義します。このデータ・セットは、専用ボ リューム 123456 に置かれています。ボリュームは、3340 直接アクセス記憶装置 に取り付けられています。 v D3 は、旧データ・セット ABC を定義します。このデータ・セットは、このス テップの終了後に保持されます。ABC はボリューム 777777 に置かれています。 このボリュームは、D2 に使用した同じ 3340 装置に取り付けられます。 第 15 章 データ・セット・リソース - 割り振り 149 データ・セット・リソース - 割り振り v D4 は、旧データ・セット TAPE を定義します。このデータ・セットは、 VOLUME パラメーターに指定する 5 つのボリュームに置かれています。DEFER サブパラメーターは、5 つのボリュームをデータ・セットのオープン後だけにマ ウントすることを指定します。P サブパラメーターは並行取り付けを要求するも のです。5 つのボリュームはすべて、5 つの異なる 3420-5 磁気テープ装置に同 時に取り付けられます。 v D5 は旧データ DISK を定義します。このデータ・セットは、別のジョブと共用 することができます。プログラムはそれを読み取るだけです。データ・セットは このステップの終了後に保持されます。システムは、要求されたボリューム通し 番号の数から、割り振る装置の数を決めます。この場合は 3 です。 v D6 は DSNAME パラメーターが省略されているため、一時データ・セットで す。したがって、システムは後処理が NEW,DELETE であるとみなします。シス テムは、STEP2 で D2 に使用したボリューム (ボリューム 123456) にデータ・ セットを入れます。 v D7 も一時データ・セットです。ボリューム情報の逆方向参照は、STEP2 で D5 に定義した dsname DISK に対して行われます。システムは、このデータ・セッ トを 3 つのボリューム 333005、333008、および 333010 に入れます。 例 2 //STEPA EXEC PGM=TESTA //A1 DD UNIT=3400-5,VOLUME=SER=111111 //A2 DD UNIT=AFF=A1,VOLUME=SER=222222 システムは、両方のボリュームに 1 つの装置を割り当てます。ボリューム 111111 が最初に取り付けられます。222222 は、A2 のオープン時に取り付けられます。こ の処理は、テープ装置であっても直接アクセス装置であっても同じです。 例 3 //STEPB EXEC PGM=TESTB //B1 DD UNIT=(3330,2),VOLUME=SER=(A,B) //B2 DD UNIT=AFF=B1,VOLUME=SER=(C,D) システムは B1 に 2 つの装置を割り振ります。ボリューム A と B が取り付けら れます。B2 は、2 つの同じ装置に割り振られます。ボリューム C と D は、B2 用 のデータ・セットのオープン時に取り付けられます。 例 4 //STEPC EXEC //C1 DD //C2 DD //C3 DD PGM=TESTC UNIT=(3330,2),VOLUME=SER=(A,B) UNIT=AFF=C1,VOLUME=SER=(C,D) UNIT=3330,VOLUME=SER=B STEPC は、直接アクセス装置の場合のボリューム B に関するボリューム類似性の 例を示しています。システムは 1 つの装置を共用するボリューム A と C、および ボリューム B と D を、2 つの別の装置に割り振ります。 例 5 //STEPD EXEC PGM=TESTD //D1 DD UNIT=(3330,2),VOLUME=SER=(E,F) //D2 DD UNIT=AFF=D1,VOLUME=SER=(G,H) 150 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り STEPD は、直接アクセス装置の場合の例です。ボリューム E が現在取り付けられ ていて、永続常駐ボリュームまたは予約ボリュームである場合、システムはそのボ リュームを取り外すことができないため、ボリューム E には別の装置を割り振りま す。システムはボリューム G に装置を割り振り、ボリューム F および H で共用 するために別の装置を割り振ります。したがって永続常駐または予約済みの属性で あるため、2 つではなく 3 つのボリュームが使用されます。 例 6 //STEPE EXEC PGM=TESTE //E1 DD UNIT=3400-5,VOLUME=SER=(111111,222222) //E2 DD UNIT=AFF=E1,VOLUME=SER=(222222) STEPE は、テープ装置の場合の例です。システムは、2 つの装置を割り振ります。 ボリューム 111111 用とボリューム 222222 用です。1 つのテープ・ボリューム上 で同時にオープンできるデータ・セットは 1 つだけであることに注意してくださ い。E2 用のデータ・セットをオープンするときにエラーが発生しないようにするに は、E1 用のデータ・セットをクローズしてから E2 をオープンしてください。 例 7 //STEPF EXEC PGM=TESTF //F1 DD UNIT=3330,VOLUME=SER=(ABCDEF,GHIJKL) //F2 DD UNIT=AFF=F1,VOLUME=SER=(ABCDEF) STEPF は、直接アクセス装置の場合の例です。システムは、F1 と F2 との間のボ リューム類似性を無視します。両方の DD ステートメントのボリューム ABCDEF は 1 つの装置を使用しますが、別のボリューム GHIJKL は別の装置を使用しま す。 例 8 //STEPG EXEC //G1 DD //G2 DD //G3 DD PGM=TESTG UNIT=3400-5,VOLUME=SER=111111 UNIT=AFF=G1,VOLUME=SER=111111 UNIT=AFF=G1,VOLUME=SER=222222 STEPG では、G2 と G3 が G1 との装置類似性を要求します。システムは、ボリュ ーム 111111 とボリューム 222222 に使用する装置を 1 つ割り振ります。 例 9 //STEPH EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DSN=INPUT.DATASET,DISP=SHR //SYSUT2 DD DSN=OUTPUT.DATASET,DISP=(NEW,KEEP),LABEL=(1,SL), // STORCLAS=LIBRARY,DATACLAS=PITTBRGH STEPH は、入力データ・セットを Pittsburgh に出荷するシステム管理のテープ・ボ リューム上の、新しい出力データ・セットにコピーします。ストレージ・クラスが 「LIBRARY」なので、この出力データ・セットはシステム管理テープ・ライブラリ ー向けとなります。 データ・クラスの「PITTBRGH」は、Pittsburgh データ・センターのメディア・タイ プと記録フォーマットの要件を定義するものです。そのセンターのメディア・タイ 第 15 章 データ・セット・リソース - 割り振り 151 データ・セット・リソース - 割り振り プまたは記録フォーマットの要件のいずれかが変更になった場合には、ストレージ 管理者が「PITTBRGH」データ・クラス定義を変更しますが、この場合 JCL を変更 する必要はありません。 例 10 //STEPI EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD DSN=INPUT.PAYROLL,DISP=SHR //SYSUT2 DD DSN=OUTPUT.PAYROLL,DISP=(NEW,KEEP),LABEL=(1,SL), // DATACLAS=PAYROLL STEPI は、給与計算の入力データ・セットをシステム管理のテープ・ボリューム上 のデータ・セットにコピーするものです。ご使用のシステムの ACS ルーチンで は、システム管理テープ・ライブラリーへの割り振りを示す DD SYSUT2 にストレ ージ・クラスを割り当てる必要があります。データ・クラスの「PAYROLL」は、給 与計算データに必要なメディアとレコード・フォーマットを定義するものです。給 与計算データのメディア・タイプまたは記録フォーマットの要件のいずれかが変更 になった場合には、ストレージ管理者が「PAYROLL」データ・クラス定義を変更し ますが、この場合 JCL を変更する必要はありません。 例 11 //STEPJ EXEC PGM=IEBCOPY //ICOPY001 DD DISP=SHR,DSN=DASD.DS1 //OCOPY001 DD UNIT=(3490,,DEFER),DISP=(,KEEP), // DSN=USERID.TEST1.ATL,VOL=(,RETAIN) //ICOPY002 DD DISP=SHR,DSN=DASD.DS2 //OCOPY002 DD UNIT=AFF=OCOPY001,DISP=(,KEEP),LABEL=2, // DSN=USERID.TEST2.ATL,VOL=(,RETAIN,REF=*.OCOPY001) //SYSPRINT DD SYSOUT=* //SYSIN DD * COPY OUTDD=OCOPY001,INDD=ICOPY001 COPY OUTDD=OCOPY002,INDD=ICOPY002 /* この例では、VOL=REF を使用したデータ・セットのスタッキングを示します。 STEPJ は、ICOPY001 と ICOPY002 で表される DASD データ・セットのコピー を、ステートメント OCOPY001 と OCOPY002 で定義される出力システム管理テー プ・ボリュームにスタックします。これらのデータ・セットは順次にオープンされ るため、システム管理テープ・ライブラリー装置を 1 つだけ割り振れば済みます。 ご使用のシステムの ACS ルーチンでは、DD OCOPY001 の割り振りがシステム管 理テープ・ライブラリー向けとなるようなストレージ・クラスを割り当てる必要が あります (OCOPY002 は、OCOPY001 のライブラリー状況をボリューム参照によっ て引き継ぎます)。 OCOPY002 は DD OCOPY001 に対する装置類似性を指定して いるため、システムはこれらの 2 つの DD ステートメントに対して、ただ 1 つの システム管理テープ・ライブラリー装置を割り振ります。 データ・セットのスタッキングについての詳細は、 183 ページの『データ・セット のスタッキング』を参照してください。 例 12 //STEPK EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY 152 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り //SYSUT1 //SYSUT2 // DD DSN=INPUT.18TRACK.LIBRARY.DATASET,DISP=SHR,LABEL=(,,,IN) DD DSN=OUTPUT.DATASET,DISP=(NEW,PASS),LABEL=(1,SL), STORCLAS=LIBRARY,DATACLAS=PITTBRGH STEPK は既存のデータ・セット INPUT.18TRACK.LIBRARY.DATASET を、新規デ ータ・セット OUTPUT.DATASET にコピーします。既存のデータ・セットは 18 ト ラック形式の装置に記録されており、DD SYSUT1 の割り振り時に拡張されないた め、システムは割り振り時に 18 トラック形式のボリュームを読み取ることのでき る任意の装置を使用することができます。 IBM 3495 テープ・ライブラリー・データサーバーに 3480X 装置 (18 トラック読 み取り/書き込み) と 3490 装置 (18 トラックと 36 トラック読み取り、36 トラッ ク書き込み) がある場合には、SYSUT1 を割り振るために LABEL=(,,,IN) を使用す ると、いずれかの装置を割り振ることができます。 JES3 システムにおける装置割り振り JES3 システムでは、各データ・セットの装置とボリュームが JES3 またはシステム によって割り振られます。 装置管理 装置の割り振りは、割り振りの管理が MVS によるのか JES3 によるのか、それと も JES3 と MVS によるのかに応じて異ったものとなります。装置の管理について は、以下の図に示します。 管理 装置 MVS による JES3 の初期設定時に、JES3 に対して何も装置が定義されて いない JES3 と MVS による 永続常駐ボリュームまたは予約ボリュームが取り付けられ た、直接アクセス装置 : JES3 では、特定ボリューム要求または専用ボリューム MVS では、非特定ボリューム要求または公用ボリューム またはストレージ・ボリューム JES3 による 取り外し可能ボリュームが取り付けられた、直接アクセス装 置 : 磁気テープ装置、プリンター、穿孔装置、グラフィック・ デバイス JES3 の初期設定時に、ご使用のシステムでは各装置の管理の方法を定義します。 z/OS JES3 初期設定およびチューニング ガイド を参照してください。 装置割り振り JES3 は、JES3 管理装置、および共同管理の装置を割り振ります。JES3 はジョブの 実行が開始される前に、すべての割り振りを実行します。MVS は、MVS 管理の装 置と共同管理の装置を割り振ります。MVS はステップの実行が開始されるときに、 すべての割り振りを行います。 JES3 管理装置の場合には、JES3 による割り振りの方法を変更することができま す。次のように指定してください。 第 15 章 データ・セット・リソース - 割り振り 153 データ・セット・リソース - 割り振り //*MAIN SETUP=JOB //*MAIN SETUP=HWS //*MAIN SETUP=THWS //*MAIN SETUP=DHWS //*MAIN SETUP=(stepname.ddname,...) //*MAIN SETUP=(stepname.procstepname.ddname,...) //*MAIN SETUP=/(stepname.ddname,...) //*MAIN SETUP=/(stepname.procstepname.ddname,...) 割り振りにおけるジョブ・クラスの影響 CLASS パラメーターは、APPC スケジューリング環境では無効です。この環境で CLASS を指定すると、システムはその構文を検査しますが、無視します。JES3 環 境での開始タスクの場合、クラス関連の属性と機能は、装置のフェンシング、 SPOOL 区画化およびトラック・グループ割り振りを除き、すべて無視されます。ク ラス属性と機能についての詳細は、z/OS JES3 初期設定およびチューニング ガイド を参照してください。 ジョブ・クラスは、ジョブに割り振る装置に影響します。JES3 の初期設定時に、ご 使用のシステムでは装置を含む実行リソースを識別し、ジョブ・クラスを割り当て ることができます。 ジョブ・クラスは、次のいずれかを指定します。どちらも指定しないと、システム はジョブをご使用のシステム定義の標準デフォルト・クラスに割り当てます。 //jobname JOB acct,progname,CLASS=jobclass //*MAIN CLASS=class-name カタログの使用 割り振りの場合、JES3 はジョブのセットアップ時にカタログにアクセスします。 MVS は、ステップの開始時にカタログにアクセスします。ジョブのセットアップ後 でステップが開始されるまでに IBM ユーティリティー、ユーザー・ユーティリテ ィー、システム・ルーチンなどによって、カタログが変更されることがあります。 JES3 と MVS がカタログにアクセスする時点が異なるため、カタログを変更すると 予想できない結果が生じることがあります。したがって、ご使用のシステムではジ ョブのスケジューリング中に、カタログを変更しないようにしてください。 JES3 セットアップのタイプ JES3 による装置割り振りの方法には、ジョブ・セットアップ、最高水準点セットア ップ、および明示セットアップの 3 とおりがあります。使用されるセットアップの タイプは JES3 の初期設定時に指定されますが、//*MAIN ステートメントのパラメ ーターでジョブ用にそのタイプを変更することができます。 ジョブ・セットアップ ジョブ・セットアップの場合、JES3 はジョブを開始する前に、そのジョブで必要な JES3 管理装置および共同で管理する装置をすべて割り振ります。JES3 はジョブの 実行前に、すべてのステップを実行するために必要な初期ボリュームを取り付けま す。ジョブ・セットアップを要求するには、次のように指定してください。 //*MAIN SETUP=JOB ボリュームが不要になると、取り外し可能なボリュームであれば取り外されます。 割り振りを解除された装置は、別のジョブで使用できるようになります。 154 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り FREE=CLOSE DD パラメーターを指定した場合には、JES3 はデータ・セットがク ローズされるときに装置の割り振りを解除します。 マルチボリューム・データ・セットに対して取り外し時デキュー機能 (早期ボリュ ーム解放) を使用しているときは、JES3 は該当ボリュームが取り外されるときにボ リュームの割り振りを解除します。取り外し時デキュー機能の詳細については、 z/OS V1R6.0 DFSMSdfp: 拡張サービス の TYPE=J OPEN マクロ・オプションを参 照してください。 表 27. JES3 ジョブ・セットアップ (SETUP=JOB) 割り振られる装置およびボリューム テープ 直接アクセス 実行前にセットアップされる装置上のボリ 1 ューム 2 3 4 5 6 8 9 10 11 12 ジョブ・ステップ U U A A A A U U A A A A U U U A A U A A A A A N N U A A A U U U A U N N N U U U N N U U ステップ 1 テープ・ボリューム =1、2 直接アクセス・ボリューム =8、9 ステップ 2 テープ・ボリューム =2、3、4 直接アクセス・ボリューム =8 ステップ 3 テープ・ボリューム =4 直接アクセス・ボリューム =9、10、11 ステップ 4 テープ・ボリューム =1、5、6 直接アクセス・ボリューム =8、11、12 セットアップ用にジョブが使用した装置の 6 個のテープ・ボリューム 総数 5 個の直接アクセス・ボリュー ム 凡例 U 装置は割り振られて使用中です。 A 装置は割り振られていますが、使用中ではありません。 N 装置はこれ以上必要ないので、割り振りを解除することができます。 最高水準点セットアップ 最高水準点セットアップの場合、JES3 は任意の 1 つのジョブ・ステップに必要な 各タイプの装置の最大数を、ジョブ用に予約します。JES3 はジョブの実行前に、一 部のボリュームだけを事前に取り付けておきます。1 つのジョブに少数の装置しか 使用しないときは、ジョブ・セットアップより最高水準点セットアップの方が適し ています。最高水準点セットアップを要求するには、次のように指定します。 v テープ、直接アクセス、グラフィックス、プリンターおよび穿孔装置に最高水準 点セットアップを要求するには、次のように指定します。 第 15 章 データ・セット・リソース - 割り振り 155 データ・セット・リソース - 割り振り //*MAIN SETUP=HWS v テープだけに最高水準点セットアップを、直接アクセス装置にジョブ・セットア ップを要求するには、次のように指定します。 //*MAIN SETUP=THWS v 直接アクセスには最高水準点セットアップを、テープにはジョブ・セットアップ を要求するには、次のように指定します。 //*MAIN SETUP=DHWS 装置を使用した最後のステップでその装置が必要とされなくなったときに、JES3 は その割り振りを解除します。 表 28では、ステップ 1 の後に取り付けられたボリュームについて、それが割り振ら れるステップに相当する欄にボリューム番号を記して示してあります。たとえば、 ボリューム 3 はステップ 2 でマウントされます。 表 28. JES3 最高水準点セットアップ (SETUP=HWS) 割り振られる装置およびボリューム テープ 直接アクセス 実行前にセットアップされる装置上のボリューム 1 2 4 8 9 11 ジョブ・ステップ U U A U U A U U U A A A U U U ステップ 1 テープ・ボリューム =1、2 直接アクセス・ボリューム =8、9 ボリューム 1 はステップ 1 で割り振られ、ステップ 4 で必 要になるまで取り外されています。ボリューム 8 はステップ 1 とステップ 2 でマウントされて、ステップ 4 で必要にな るまで取り外されています。 ステップ 2 テープ・ボリューム =2、3、4 U 3 直接アクセス・ボリューム =8 ボリューム 3 はステップ 2 でマウントされます。 ステップ 3 テープ・ボリューム =4 A U 10 直接アクセス・ボリューム =9、10、11 ボリューム 10 はステップ 3 でマウントされます。 ステップ 4 テープ・ボリューム =1、5、6 U U 1 U 5 U 6 U 12 U 8 直接アクセス・ボリューム =8、11、12 ボリューム 1、5、6、12、および 8 は、ステップ 4 でマウ ントされます。ボリューム 1 と 8 は、使用可能な装置にマ ウントされます。 セットアップ用にジョブが使用した装置の総数 156 z/OS MVS JCL ユーザーズ・ガイド 3 個のテープ・ボリュー ム 3 個の直接アクセス・ボ リューム データ・セット・リソース - 割り振り 凡例 U 装置は割り振られて使用中です。 A 装置は割り振られていますが、使用中ではありません。 N 装置はこれ以上必要ないので、割り振りを解除することができます。 明示セットアップ 明示セットアップは、ユーザーが指示します。明示セットアップには、ジョブ・セ ットアップと同じ数の装置が必要です。JES3 は次のように指定された命令に従っ て、ボリュームを事前にマウントします。 //*MAIN //*MAIN SETUP=(stepname.ddname,...) SETUP=(stepname.procstepname.ddname,...) 特定のボリュームを明示的にセットアップしないように JES3 に要求するときは、 次のように指定します。 //*MAIN //*MAIN SETUP=/(stepname.ddname,...) SETUP=/(stepname.procstepname.ddname,...) 最高水準点セットアップに比べて、明示セットアップの利点は、不要になるまでボ リュームを装置に強制的に付けたままにしておくことができるという点です。欠点 は、JES3 が早期に装置の割り振りを解除しないことにあります。JES3 はジョブの 実行前に特定の数の装置を割り振りますが、ジョブの実行が完了するまでその割り 振りを解除しません。これに対してジョブ・セットアップと最高水準点セットアッ プの場合には、JES3 は装置が不要になると、ステップの終わりでその装置の割り振 りを解除します。 表 29で示した明示セットアップでは、最高水準点セットアップを使用して割り振ら れた 3 つの装置ではなく、テープとディスクの両方に 4 つの装置が割り振られま す。明示的にマウントされるボリューム、たとえば、ボリューム 1 と 8 は割り振 りが解除されず、最後のステップで再度マウントされます。 表 29. JES3 明示セットアップ (SETUP=ddname) 割り振られる装置およびボリューム テープ 直接アクセス 実行前にセットアップされる装置上のボリューム 1 2 3 4 8 9 10 11 ジョブ・ステップ U U A A U U A A A U U U U A A A A A A U A U U U ステップ 1 テープ・ボリューム =1、2 直接アクセス・ボリューム =8、9 ステップ 2 テープ・ボリューム =2、3、4 直接アクセス・ボリューム =8 ステップ 3 テープ・ボリューム =4 直接アクセス・ボリューム =9、10、11 第 15 章 データ・セット・リソース - 割り振り 157 データ・セット・リソース - 割り振り 表 29. JES3 明示セットアップ (SETUP=ddname) (続き) 割り振られる装置およびボリューム ステップ 4 テープ・ボリューム =1、5、6 テープ U 直接アクセス A U U 5 A U 6 U U 12 直接アクセス・ボリューム =8、11、12 ボリューム 5、6 および 12 は、ステップ 4 でマウ ントされます。 セットアップ用にジョブが使用した装置の総数 4 個のテープ・ボリューム 4 個の直接アクセス・ボリュ ーム 凡例 U 装置は割り振られて使用中です。 A 装置は割り振られていますが、使用中ではありません。 N 装置はこれ以上必要ないので、割り振りを解除することができます。 JES3 装置割り振りの変更 最初のステップの前に装置を割り振り、後のステップで必要になるまで保留にして おかないように JES3 を保持するためには、複数のステップ・ジョブを依存ジョ ブ・ネットワーク内で小さいジョブに分割してください。 ボリュームの割り振り 新規データ・セットを置くボリュームは、次のようにして決められます。 v システム管理 DASD データ・セットの場合は、以下のいずれか。 – 新規データ・セットのストレージ・クラス。DD ステートメントの STORCLAS パラメーターに指定したもの、またはインストール先作成の自動 クラス選択 (ACS) ルーチンで選択したもの。 – VOLUME パラメーター。ストレージ・クラスが GUARANTEED_SPACE=YES の場合には、DD ステートメントで新規データ・セットに指定したもの。 v システム管理テープ・ボリュームのデータ・セットの場合は、以下のいずれか – 新規データ・セットのストレージ・クラス。DD ステートメントの STORCLAS パラメーターに指定したもの、またはインストール先作成の自動 クラス選択 (ACS) ルーチンで選択したもの。 – VOLUME パラメーター。DD ステートメントで新規データ・セットに指定し たもの。 v 非システム管理データ・セットの場合には、DD ステートメントで新規データ・ セットに指定された VOLUME パラメーター。 SMS 管理データ・セットに対するボリューム割り振り SMS 管理データ・セットの場合はシステムは、ストレージ・クラスを使用してデー タ・セットのためのボリューム (1 つまたは複数) を選択します。 158 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 多くの場合、データ・セットに対するストレージ・クラスの割り当てを ACS ルー チンが行い、そのストレージ・クラスに基づいたボリュームの選択を SMS に行わ せることができます。 ただし、新しい SMS 管理データ・セットについては、STORCLAS パラメーターに ストレージ・クラスの名前を指定することができます。(ACS ルーチンはユーザーが 指定したストレージ・クラスをオーバーライドできるという点に注意してくださ い。) ご使用のシステムのストレージ管理者が、ストレージ・クラスの名前とその属性を 定義します。ストレージ・クラス名とその属性のリストを表示するときは、対話式 記憶管理機能 (ISMF) を使用してください。 ACS ルーチンで新規データ・セットにストレージ・クラスを選択するときは、 STORCLAS パラメーターを省いてください。たとえば、次のように指定します。 //DD10 DD DSNAME=DESIGNF.PGM,DATACLAS=DCLAS10,DISP=(NEW,KEEP) 新規データ・セットに特定のストレージ・クラスを指定するときは、STORCLAS パ ラメーターを指定してください。たとえば、次のように指定します。 //DD11 // DD DSNAME=DESIGNG.PGM,DATACLAS=DCLAS12,STORCLAS=STOR55, DISP=(NEW,KEEP) システムは、新しく永続のシステム管理 DASD データ・セットを割り振るときに、 それをカタログします。システムは、割り振り解除処理のときに DD ステートメン トの DISP パラメーターに従って、システム管理テープ・ボリュームのデータ・セ ットをカタログします。 既存のデータ・セットを検索するときは、STORCLAS パラメーターを指定する必要 はありません。たとえば、次のように指定します。 //DD12 DD DSNAME=DESIGNG.PGM,DISP=MOD SMS 管理データ・セットの参照 VOLUME=REF を指定して SMS 管理データ・セットを参照する場合、SMS は参照 されるデータ・セットと同じストレージ・クラスを使用して新規データ・セットを 管理します。 システム管理 DASD データ・セットのための特定ボリューム要求 ストレージ管理者がストレージ・クラスに GUARANTEED_SPACE=YES を指定し ている場合は、複数のボリューム通し番号を VOLUME パラメーターに指定するこ とができます。 この場合、SMS は明示的に指定されたボリュームを使用します。 それを使用することができないと、割り振りは失敗します。割り振りが失敗するの は、たとえば、指定されたボリュームに十分なスペースがない場合や、指定された ボリュームが JCL で指定したまたは ACS ルーチンが選択したストレージ・クラス に定義されているボリューム・リストに入っていない場合です。 たとえば、次の場合がこれに当たります。 //DD14 // DD DSNAME=DESIGNH.PGM,DATACLAS=DCLAS14,STORCLAS=STOR55, DISP=(NEW,KEEP),VOLUME=SER=(223344,334455) 第 15 章 データ・セット・リソース - 割り振り 159 データ・セット・リソース - 割り振り ストレージ管理者がストレージ・クラスに GUARANTEED_SPACE=YES を指定し ていない場合、システムは新しいシステム管理 DASD データ・セット用に指定され ているボリューム通し番号を無視します。 システム管理 DASD データ・セットは、最大 59 個のボリュームに置くことができ ます。 システム管理データ・セットに対する非特定ボリューム要求 新規のシステム管理データ・セットに対して非特定ボリューム要求を行うときは、 VOLUME パラメーターを省略してください。SMS はそのデータ・セットに使用さ れるボリュームを選択します。 システム管理 DASD データ・セットのためのマルチボリューム・デ ータ・セット システムは、ストレージ・クラスに GUARANTEED_SPACE=YES が指定されてい て、次のいずれかの場合には、システム管理の DASD 用の事前割り振りされたマル チボリューム・データ・セットを作成します。 v データ・クラスに 1 よりも大きいボリューム・カウントが入っている。 v 2 つ以上のボリューム通し番号を指定した。 v VOLUME パラメーターに 1 よりも大きいボリューム・カウントを指定した。 特定のボリューム通し番号を選択すると、システムは該当するボリュームを使用し ます。選択しなかった場合には、システムがボリュームを選択します。 注: マルチボリューム・データ・セットのすべてのテープ・ボリュームは、同じシ ステム管理テープ・ライブラリーおよび同じストレージ・グループに入ってい なければなりません。 非 SMS 管理データ・セットに対するボリューム割り振り 直接アクセス装置と磁気テープ装置のデータ・セットはボリュームに置かれるか、 またはボリュームに書き込まれます。ボリュームは装置に永続的にマウントするこ とができますが、オペレーターが取り付けなければならないこともあります。既存 のデータ・セットが入っているボリュームをシステムに伝えるには、特定ボリュー ム要求を出します。新規データ・セットを書き込むボリュームをシステムに伝える ためには、特定ボリューム要求または非特定ボリューム要求を出します。 非システム管理データ・セットおよびシステム管理テープ・ボリュームのデ ータ・セットに対するボリューム割り振り SMS では、ストレージ管理者がシステムのデフォルト装置を指定することができま す。システム・デフォルト装置があるときは、システムはそのデフォルト装置に対 応するボリュームを使用するので、VOLUME パラメーターを指定する必要はありま せん。 ボリューム属性 システムは、次の 2 つの属性をボリュームに割り当てます。 v 使用属性。ボリュームの割り振り方法を制御します。 160 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り – 専用 : ボリュームを割り振ることができるのは、ボリューム通し番号を明示指 定するか暗黙指定したときだけです。 – 公用 : 非特定ボリューム要求を指定し、VOLUME パラメーターに PRIVATE サブパラメーターを指定しないで定義された一時データ・セットにボリューム を割り振ることができます。 – ストレージ : 非特定ボリューム要求を指定し、VOLUME パラメーターに PRIVATE サブパラメーターを指定しないで定義された一時データ・セットと 永続データ・セットの両方にボリュームを割り振ることができます。通常、ス トレージ・ボリュームには永続データ・セットが入っていますが、ストレー ジ・ボリュームを一時データ・セット用に使用することもできます。 v 装着属性。割り振り解除の後でボリュームを取り外す方法、ならびにその後でボ リュームの取り外しを行えるかどうかを制御します。 – 永続常駐 : ボリュームは直接アクセスだけが可能で、取り外すことはできませ ん。永続常駐のボリュームとは、物理的に取り外すことができないすべてのボ リューム、IPL ボリューム、およびシステム・データ・セットが入っているボ リュームのことです。永続常駐ボリュームにはすべての使用属性を指定するこ とができます。 – 予約済み : ボリュームは、オペレーターが UNLOAD コマンドを出すまでマ ウントされたままになります。予約済みにしておく必要のあるボリュームは、 多数のジョブに頻繁に使用されるボリュームです。予約済みの直接アクセス・ ボリュームには、すべての使用属性を指定することができます。予約済みのテ ープ・ボリュームには、専用または公用だけしか指定することができません。 – 取り外し可能 : このボリュームは永続常駐ボリュームでも、予約ボリュームで もありません。取り外し可能ボリュームは、ジョブで最後に使用された後で取 り外すことができます。取り外し可能ボリュームは、専用または公用だけにし か指定することができません。 属性の詳細については、z/OS MVS 初期設定およびチューニング ガイド を参照し てください。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットに対する特定ボリューム要求 次のように指定して、特定ボリューム要求を出します。 //ddname DD VOLUME=SER=serial-number //ddname //ddname DD DD VOLUME=REF=dsname VOLUME=REF=*.ddname //ddname DD DSNAME=passed data set //ddname DD DSNAME=cataloged data set 受け渡しデータ・セットまたはカタログ式データ・セットの場合、システムは受け 渡しデータ・セット情報またはカタログからボリューム通し番号を得ます。この場 合には、VOLUME パラメーターに SER または REF サブパラメーターを指定しな いでください。他の VOLUME サブパラメーターを指定することはできます。 システムによる特定ボリューム要求に対する応答 第 15 章 データ・セット・リソース - 割り振り 161 データ・セット・リソース - 割り振り 次の場合、システムは特定のボリュームの要求に対して、すでにマウントされてい るボリュームを使用します。 v 要求されたボリュームが永続常駐ボリュームまたは予約ボリュームである場合。 システムは、要求された使用属性が公用であるか専用であるかとは無関係に、ボ リュームを割り当てます。ボリュームは、元の使用属性 (公用または専用) を保持 します。 v 要求されたボリュームが共用できる取り外し可能な直接アクセス・ボリュームで あり、現在実行中のステップで使用されている場合。この要求によってボリュー ムが共用できなくなる場合は、システムはそれを使用している他のすべてのステ ップを終了してからでないと、ボリュームを割り当てません。 v 要求されたボリュームがマウントされているが、割り振られていない取り外し可 能な直接アクセス・ボリュームである場合。VOLUME パラメーターに PRIVATE を指定していると、このボリュームには専用の使用属性が割り当てられます。そ れ以外の場合、ボリュームは公用使用です。 v 要求されたボリュームがマウントされているが、割り振られていないスクラッ チ・テープ・ボリュームである場合。要求が永続データ・セットに対するもので あるか、または VOLUME パラメーターに PRIVATE を指定している場合には、 このテープに専用属性が割り当てられます。それ以外の場合、ボリュームは公用 使用です。 注: システム管理テープ・ライブラリーにあり、カテゴリーがスクラッチである ボリュームに対して特定要求を出すことはできません。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットに対する非特定ボリューム要求 どのボリューム (複数も可) にも割り当てることができる新規データ・セットには、 非特定ボリューム要求を出してください。非特定ボリューム要求を出すときには、 次のいずれかに従ってください。 v VOLUME パラメーターを省略します。 v VOLUME パラメーターを指定しますが、SER または REF サブパラメーターは 省略します。 システムによる非特定ボリューム要求に対する応答 システムは、非特定ボリュームに対する要求に次のように応答します。 一時データ・セットまたは永続データ・セットの専用ボリュームの要求 取り外し可能直接アクセスまたはテープの場合、システムは常にオペレーターに 対してボリュームをマウントするように求めます。オペレーターは所有者がボリ ュームのスペースをすべて制御できるように、未使用のスペースだけが入ってい るボリュームをマウントする必要があります。マウントした後で、そのボリュー ムに専用の属性が割り当てられます。 永続常駐直接アクセス・ボリュームの場合、非特定の要求に PRIVATE を使用 しないでください。専用ボリュームにそのような要求を割り振るためには、オペ レーターの介入が必要です。 一時データ・セットの公用ボリュームの要求 直接アクセスの場合、システムはすでにマウントされている公用ボリュームまた はストレージ・ボリュームを割り当てます。あるいは使用可能なスペースがない 162 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り と、システムは取り外し可能ボリュームをマウントするようにオペレーターに指 示します。マウントされている公用ボリュームをシステムが選択すると、そのボ リュームは公用のままになります。オペレーターがボリュームをマウントする と、そのボリュームは公用ボリュームとして指定されます。 非システム管理テープ・ボリュームの場合には、システムはマウントされた、使 用可能なテープ・ボリュームを割り当てます。使用可能なテープ・ボリュームが ないと、システムは、テープ・ボリュームをマウントするようにオペレーターに 指示します。マウントした後で、そのボリュームには公用の使用属性が割り当て られます。 マウントされた使用可能なボリュームを割り当てると、ユーザー・データが失わ れることがあります。ただしテープ・ボリュームにラベルが付いていて、 LABEL パラメーターにラベル・タイプが指定されている場合には、データが失 われることはありません。これは、システムがデータ・セットのオープン時にテ ープの最初のレコードを検査することによるものです。 システム管理テープ・ボリュームの場合には、システムはテープ・ボリュームの マウントを要求します。マウントした後で、そのボリュームには公用の使用属性 が割り当てられます。 永続データ・セットの公用ボリュームの要求 直接アクセスの場合、システムはストレージ・ボリュームがマウントされている と、それを割り当てます。それ以外の場合は、システムはその要求を、専用ボリ ュームに対する非特定ボリューム要求としてみなしますが、要求が処理されるの は使用可能なオフライン装置上のマウント可能なボリュームの場合だけです。 テープ・ボリュームの場合、システムは専用ボリュームに対する非特定ボリュー ム要求として要求を処理します。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットのための専用ボリューム 次のいずれかの条件にあてはまる場合に、システムは取り外し可能ボリュームに専 用の使用属性を割り当てます。 v VOLUME パラメーターに PRIVATE サブパラメーターが指定されている。 v DD ステートメントが特定のボリュームを要求する。 v DD ステートメントが永続データ・セットを要求する。すなわち、データ・セッ トにシステム生成のデータ・セット名がついておらず、DISP パラメーターに DELETE が指定されていない。 直接アクセス・ボリュームを専用にするためには、次のように指定します。 //ddname //ddname //ddname //ddname //ddname DD DD DD DD DD VOLUME=PRIVATE VOLUME=SER=xxxxxx VOLUME=REF=*.ddname DSNAME=permanentds,DISP=(,KEEP) DSNAME=permanentds,DISP=(,CATLG) テープ・ボリュームを専用にするためには、ボリューム通し番号を指定するか、確 保してください。要求は特定ボリュームに対するものであるため、システムはテー プ・ボリュームを自動的に専用にします。 専用ボリュームの使用 第 15 章 データ・セット・リソース - 割り振り 163 データ・セット・リソース - 割り振り 専用ボリュームを使用するときは、システムに通し番号を指定しなければなりませ ん。DD ステートメントに通し番号を指定するか、カタログまたは VOLUME=REF パラメーターを介して前の DD ステートメントから通し番号を得る必要がありま す。 システムは、非特定ボリューム要求をオンライン永続常駐、あるいはすでにマウン トされている専用ボリュームに割り当てることはできません。したがって専用ボリ ュームを要求する場合には、別のジョブがそのボリュームに対して特定ボリューム 要求を出していない限り、専用ボリュームを要求する本人がそのボリュームを使用 する唯一のユーザーとなります。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットのための公用ボリューム 次のすべての条件にあてはまる場合に、システムは取り外し可能ボリュームに公用 の使用属性を割り当てます。 v VOLUME パラメーターに PRIVATE サブパラメーターが指定されていない。 v DD ステートメントが特定のボリュームを要求していない。 v DD ステートメントが一時データ・セットを要求している。すなわち、データ・ セット名として名前が指定されていないか、後処理が DISP=(NEW,DELETE) であ るか、または新規データ・セットは削除されることを示す DISP パラメーターが 省略されている。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットに対するボリューム類似性 同じボリュームにあるデータ・セットには、ボリューム類似性があります。ボリュ ーム類似性は装置の割り振りに影響します。別のデータ・セットとのボリューム類 似性を要求すると、システムは UNIT パラメーターの装置カウント・サブパラメー ターに指定された特定数の装置に対する要求を修正することができます。 同じボリュームまたは同じボリュームの組にデータをスタックすることについての 説明、および使用する必要のあるボリューム類似性 (明示指定と暗黙指定) の方式に ついての説明は、 183 ページの『データ・セットのスタッキング』にあります。 明示指定のボリューム類似性 新規データ・セットを別のデータ・セットと同じボリュームに割り当てることを要 求するときは、次のように指定します。 //ddname //ddname //ddname //ddname //ddname DD DD DD DD DD VOLUME=REF=dsname VOLUME=REF=*.ddname VOLUME=REF=*.stepname.ddname VOLUME=REF=*.stepname.procstepname.ddname VOLUME=REF=*.procstepname.ddname 最初の形式を使用して、カタログ式データ・セットまたは受け渡しデータ・セット を参照してください。他の形式を使用して、ジョブ内でこれより前に指定された DD ステートメントを参照してください。 暗黙指定のボリューム類似性 164 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り ボリューム類似性を暗黙に要求するときは、別のデータ・セットが入っているボリ ューム (複数の場合もある) の通し番号を指定してください。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットのためのマルチボリューム・データ・セット ボリュームの数 データ・セットを作成または拡張するときには、必要になると考えられるボリュー ムの最大数を要求します。非システム管理データ・セットの場合には VOLUME パ ラメーターに指定したボリューム・カウントの数、あるいは暗黙または明示的に指 定した通し番号の数でその最大数を示します。システム管理テープ・ボリューム上 のデータ・セットの場合、以下のいずれかの方法で数を指定します。 v VOLUME パラメーターに指定したボリューム・カウント v 暗黙または明示的に指定した通し番号の数 v 該当のボリューム・カウント定義が入っているデータ・クラスの指定 システム管理のテープ・ボリューム上のマルチボリューム・データ・セットの場合 は、すべてのボリュームが同じシステム管理テープ・ライブラリーに入っていなけ ればなりません。また、これらのボリュームは、同じ SMS ストレージ・グループ に属していなければなりません。 非システム管理のテープ・ボリューム上のマルチボリューム・データ・セットの場 合は、すべてのボリュームが任意のシステム管理テープ・ライブラリーに入ってい てはいけません。 装置より多いボリュームに対して特定ボリューム要求を出すと、システムは同じ装 置に割り振られたボリュームが共用できないことを自動的に示します。 JES3 システムにおいて複数の直接アクセス・ボリュームを要求するときは、そのボ リュームはすべて取り付け可能であるか、またはすべて永続的に取り付けられたボ リュームでなければなりません。混在は認められません。 並行取り付け ジョブによっては、データ・セットを使用する前に要求されたボリュームをすべて マウントしておかなければなりません。これらのジョブの場合には、ボリュームと 同じ数の装置を要求するか、UNIT パラメーターに P を指定して並行取り付けを要 求してください。 処理順序 既存のマルチボリューム・データ・セットを読み取るか、追加するときは、最初の ボリューム以外のボリュームから処理を開始するようにシステムに指示することが できます。次のように指定します。 //ddname DD VOLUME=(,,volume-sequence-number),... 複数のライブラリーにまたがるデータ・セット 割り振りでは、単一の DD ステートメントを、あたかも DD ステートメントの連 結を表しているかのように取り扱うことによって、別のテープ・ライブラリー (こ 第 15 章 データ・セット・リソース - 割り振り 165 データ・セット・リソース - 割り振り のトピックの最後の注 1 参照) に作成されるボリュームをサポートすることができ ます。システムは、DD ステートメントで明示的にコーディングされているすべて のボリュームのコーディング順の連結として、OPTCD=B を扱います。 (これはジ ョブ出力リストに現れるシステム・メッセージの意味に影響を与える可能性があり ます。) z/OS MVS JCL 解説書 の OPTCD=B の説明を参照し、かつこのトピック の終わりにある注 2 も参照してください。 この場合、ボリュームは同じ記録テクノロジーのものでなければなりませんが、メ ディアのタイプは異なっていても問題はありません。 割り振り処理にあたって、ボ リュームが磁気テープ・ライブラリーにあって、DD ステートメントに DCB=OPTCD=B の指定があり、ボリューム通し番号が明示的に指定されている、既 存のマルチボリューム・テープ・データ・セット用の DD ステートメントが見つか ると、それぞれに、元の DD ステートメントにあるボリューム通し番号の 1 つが 入っている、追加の DD ステートメントがあるかのように、割り振り処理でそのス テートメントを処理します 割り振り処理は、これらの DD ステートメントを、ボ リューム通し番号が元の DD ステートメントに指定されている順番に連結します。 この元のステートメントは、それぞれ最初の DD ステートメントと装置類似性があ ります。 たとえば、OPTCDB に 5 個のボリューム通し番号が指定され、データ・セット A および B は OPTCD=B データ・セットではないとします。A、OPTCDB のすべて のボリューム、B をこの順序で連結するには、次のようにコーディングすることが できます。 //DD4 // // // DD DSN=A,DISP=SHR DD DSN=DAYS,DISP=SHR,DCB=OPTCD=B,VOLUME=SER=(793284,227996, 382021,427635,946565),UNIT=AFF=DD4 DD DSN=B,DISP=SHR,UNIT=AFF=DD4 OPTCD=B 要求があるために、割り振りは次の JCL ステートメントがコーディング されているかのように DD4 を処理し、以下の相対位置番号を割り当てます。 //DD4 // // // // // // DD DD DD DD DD DD DD DSN=A,DISP=SHR DSN=DAYS,DISP=SHR,VOLUME=SER=(793284) DSN=DAYS,DISP=SHR,VOLUME=SER=(227996),UNIT=AFF=DD4 DSN=DAYS,DISP=SHR,VOLUME=SER=(382021),UNIT=AFF=DD4 DSN=DAYS,DISP=SHR,VOLUME=SER=(427635),UNIT=AFF=DD4 DSN=DAYS,DISP=SHR,VOLUME=SER=(946565),UNIT=AFF=DD4 DSN=B,DISP=SHR,UNIT=AFF=DD4 +000 +001 +002 +003 +004 +005 +006 生成された DD ステートメントは、UNIT=AFF がコーディングされていなくても、 自動的に、相互に装置類似性を持ちます。したがって、次のようにコーディングす ると、 //DD5 // // // DD DSN=A,DISP=SHR DD DSN=DAYS,DISP=SHR,DCB=OPTCD=B,VOLUME=SER=(793284,227996, 382021,427635,946565),UNIT=LIBRARY2 DD DSN=B,DISP=SHR システムは、次の JCL をコーディングしたかのように DD5 を処理し、以下の相対 位置番号を割り当てます。 //DD5 // // // 166 DD DSN=A,DISP=SHR DD DSN=DAYS,DISP=SHR,VOLUME=SER=(793284),UNIT=LIBRARY2 DD DSN=DAYS,DISP=SHR,VOLUME=SER=(227996),UNIT=AFF=(DD5+001) DD DSN=DAYS,DISP=SHR,VOLUME=SER=(382021),UNIT=AFF=(DD5+001) z/OS MVS JCL ユーザーズ・ガイド +000 +001 +002 +003 データ・セット・リソース - 割り振り // // // DD DD DD DSN=DAYS,DISP=SHR,VOLUME=SER=(427635),UNIT=AFF=(DD5+001) DSN=DAYS,DISP=SHR,VOLUME=SER=(946565),UNIT=AFF=(DD5+001) DSN=B,DISP=SHR +004 +005 +006 OPTCD=B データ・セットの 2 番目以降のデータ・セットは、OPTCD=B データ・ セットの最初のデータ・セットに対して装置類似性を持ちます。(エラー・メッセー ジは、明示的に指定された位置ではなく、組み込まれる各ボリューム通し番号に基 づいた相対位置が使用されます。) 相対位置 +006 が入っているものだけがデー タ・セット B に関するメッセージです。 もちろん、実際に UNIT=AFF=(DD5+001) と指定することはできませんが、システ ムはそのように指定されたとして DD ステートメントを処理します。 注: 1. ボリュームが同じ磁気テープ・ライブラリーにあるか、別の磁気テープ・ライブ ラリーにあるかに関係なく、割り振りはこの同じ処理を行います。 ただし、ボ リュームはすべて同じストレージ・グループになければならず、連結された他の ボリュームもそうしなければなりません。 2. あるデータ・セットが連結されている場合、OPTC はその連結を生成して上記の ことが発生できるようにします。マルチボリューム・データ・セットが 3 つの 別個のデータ・セットとして扱われるようにするために、アプリケーションが 「別連結ビット」をオンにしている場合、この制約があります。すなわち、可変 ブロック化スパン (VBS) データ・セットでボリュームが分かれていて、あるボ リュームの最後に 1 セグメントがあり、次のセグメントの最初に続きのセグメ ントがあり、これらのセグメントを別個のデータ・セットとして扱おうとした場 合、QSAM はデータの整合性を保証できません。 QSAM はセグメントのすべて を一緒にすることができない場合があり、異常終了します。このことは、そのデ ータおよび、そのセグメントが別個のデータ・セットに割り当てられているかに より異なります。OPTCD=B では「非連結」によりシステムが各セグメントを別 個のデータ・セットとして扱うことになります。 非システム管理データ・セットおよびシステム管理テープ・ボリュー ムのデータ・セットの DD ステートメントごとに必要なボリューム DD ステートメントを満たすテープ・ボリュームまたは直接アクセス・ボリューム の最大数は、次に示すもののうち大きい方となります。 v VOLUME パラメーターに指定したボリューム・カウント //ddname DD VOLUME=(,,,volume-count),... v 暗黙または明示的に指定した通し番号の数 暗黙または明示的に指定する通し番号の数は、次のとおりです。 v VOLUME=SER サブパラメーターに指定するボリューム通し番号の数 //ddname DD VOLUME=SER=(serial-number,serial-number,...),... v 次のように指定した場合に、VOLUME=REF を介して得られたボリューム通し番 号の数 //ddname //ddname DD DD VOLUME=REF=dsname VOLUME=REF=*.ddname v DD ステートメントが前のステップから受け渡しデータ・セットを受け取る場 合、その受け渡しデータ・セット情報から得たボリューム通し番号の数。受け取 第 15 章 データ・セット・リソース - 割り振り 167 データ・セット・リソース - 割り振り る DD ステートメントには、VOLUME=SER または VOLUME=REF を指定して はなりません。指定すると、システムは VOLUME パラメーターから数を得るこ とになります。 v DD ステートメントが既存のカタログ式データ・セットを要求する場合、カタロ グから得たボリューム通し番号の数。DD ステートメントには、VOLUME=SER または VOLUME=REF を指定してはなりません。指定すると、システムは VOLUME パラメーターから数を得ることになります。また、データ・セットは 以前のステップから渡されてはなりません。 v DD ステートメントが既存のデータ・セットを要求し、ボリューム・シーケンス 番号を指定する場合、ボリューム通し番号の数からボリューム・シーケンス番号 を引いて 1 を加えた値。たとえば、DD ステートメントに 8 個のボリューム通 し番号とボリューム・シーケンス番号 4 が指定されていると、システムは 5 個 のボリューム通し番号 (8 - 4 + 1 = 5) を使用します。最初の 3 つのボリューム 通し番号は使用されません。システムが最初に割り振るボリュームは、4 番目の ボリュームです。 v 次の場合、UNIT パラメーターの装置カウントで暗黙指定されたボリューム通し 番号の数。(1) 装置カウントが計算されたボリューム通し番号の数より大きい場 合、または (2) DD ステートメントによって、直接アクセス上の公用使用の新規 データ・セットに対して、非特定ボリューム要求を行う場合。 ボリューム・カウントまたは装置カウントが VOLUME=SER に指定された数、ある いは VOLUME=REF、受け渡しデータ・セット情報、またはカタログから得た数よ り多いボリュームを示していると、システムは要求が非特定ボリュームに対するも のと見なします。 例 ボリューム割り振りの例については、 149 ページの『非システム管理データ・セッ トおよびシステム管理テープ・ボリュームのデータ・セットの例』を参照してくだ さい。 装置とボリュームの割り振りにおける相互の影響 装置とボリュームの割り振りは、別個に行われることはありません。装置とボリュ ームを実際にデータ・セットに割り振る場合、その割り振り方は、多くの要因に左 右されます。たとえば、データ・セットが SMS 管理であるか非 SMS 管理である か、データ・セットがカタログされているかどうか、あるいは、ボリュームまたは データ・セットに類似性があるかどうか、などの事項が考慮されます。これらの関 係が複雑になることもあります。以降の項では、ユーザーが希望するリソースを使 用することができるように、これらのパラメーターを指定するための考慮事項につ いて説明します。 UNIT パラメーターと VOLUME パラメーターとの関係 (非 SMS 管理デー タ・セット) システムは、UNIT パラメーター以外の次のソースから装置情報を得ることができ ます。 v カタログ式テープ・データ・セットのカタログから v 渡されたデータ・セットから 168 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り v 以前の DD ステートメントから v 同じステップ内の、他のボリューム要求から v システム・デフォルト値から カタログ式データ・セット カタログ式データ・セットの場合、システムはカタログから装置とボリューム情報 を得ます。ただし、カタログ式データ・セットに対する DD ステートメントに VOLUME=SER=serial-number が指定されている場合には、システムはカタログを探 索しません。この場合は、UNIT パラメーターを指定しなければなりません。 カタログ式データ・セットに対するボリューム参照 データ・セットがカタログ式データ・セットと同じボリュームを使用する場合に は、カタログ式データ・セットを参照する VOLUME=REF を指定します。システム はカタログから装置とボリューム情報を得て、同じボリュームにそのデータ・セッ トを入れます。 オーバーライドされるプロシージャー DD ステートメント ステップでカタログ式プロシージャーまたはストリーム内プロシージャーを呼び出 す場合、呼び出し側のステップ・ステートメントのオーバーライドする DD ステー トメントには、DSNAME パラメーターでカタログ式データ・セットを指定すること ができます。この場合、オーバーライドする DD ステートメントでは UNIT およ び VOLUME パラメーターを無効にしなければなりません。無効にしないと、シス テムは変更される DD ステートメントの UNIT および VOLUME パラメーターを 使用し、カタログを探索しません。 受け渡しデータ・セット 前のステップから渡されるデータ・セットを受け取る場合は、UNIT および VOLUME パラメーターを省略してください。システムは、渡す側のステップから装 置とボリューム情報を受け取ります。ただし、受け取る側の DD ステートメントに VOLUME=SER=serial-number が指定されているときは、UNIT パラメーターも指定 してください。 以前の DD ステートメント データ・セットが、以前のステップのデータ・セットに使用されたボリュームを使 用する場合は、以前の DD ステートメントを参照する VOLUME=REF パラメータ ーを指定します。システムは、以前の DD ステートメントから装置とボリューム情 報を得ます。したがって、UNIT パラメーターを省略することができます。ただし それ以上の装置を割り当てたり、装置割り振りに影響を与えるには、UNIT パラメ ーターを指定します。参照される DD ステートメントの装置タイプのサブセットを 要求する場合には、システムは指定された UNIT パラメーターを使用します。それ 以外の場合、システムはその UNIT パラメーターを無視します。 同じステップ内の、他のボリューム要求 第 15 章 データ・セット・リソース - 割り振り 169 データ・セット・リソース - 割り振り ボリューム / 装置の関連付けは、指定された UNIT パラメーターや、UNIT パラメ ーターが指定されない場合のデフォルト装置とは無関係に、同じステップ内の他の ボリューム要求が同じ装置を受け取るような装置割り振りが行われるときに、設定 されることがあります。 次の例では、VOL=SER=NOTSYS は SYSDA グループ名に含まれていない、さらに SMS 制御データ・セットにはデフォルト UNIT の 3380 が含まれているとしま す。 //DD1 // // /* //DD2 // // /* DD DSN=dsname1,DISP=(CATLG,DELETE), DCB=(DSORG=PS,RECFM=FB,LRECL=80), UNIT=SYSDA,VOL=SER=NOTSYS,SPACE=(80,(1,5 ).RLSE),AVREC=K DD DSN=dsname2,DISP=(CATLG,DELETE), DCB=(DSORG=PS,RECFM=FB,LRECL=80), VOL=SER=NOTSYS,SPACE=(80,(1,5 ).RLSE),AVREC=K 割り振りは、DD1 を最初に割り当てることはできません (NOTSYS が SYSDA に ない) ので、DD1 をスキップして DD2 に行きます。DD2 では、UNIT が指定され ていないために、割り振りはデフォルト UNIT の 3380 をとりあげ、DD2 を正常 に割り振ります。次に DD1 に戻り、DD2 に設定されたボリューム類似性により、 指定された UNIT=SYSDA を無視して、同じ 3380 装置に DD1 を正常に割り当て ます。 システム・デフォルト値 SMS では、ストレージ管理者がシステムのデフォルト装置を指定することができま す。システム・デフォルト装置が決められているシステムに新規データ・セットを 作成 (DISP=NEW または DISP=MOD を指定) する場合は、UNIT パラメーターを 省略することができます。SMS はデフォルト装置を提供します。 装置の類似性処理のためのシステム・デフォルト設定もあります。このデフォルト 装置は、装置類似性が無視される装置名として識別されるもので、ALLOCxx PARMLIB メンバーの UNITAFF で指定するもので、装置類似性が無視される特定 の状態で適用されます。装置類似性が無視される装置名に関しては、z/OS MVS 初 期設定およびチューニング 解説書 の中の ALLOCxx を参照してください。183 ペ ージの例 5 は、このデフォルト設定を使用するときの例を示します。 システムが CATALOG または PASS の後処理を持つデータ・セットの UNIT パラ メーターのグループ名を使用する方法を理解するのは、重要なことです。 v カタログ化したい新規データ・セット要求の UNIT パラメーターとしてグループ 名を指定すると、システムは、そのデータ・セットの総称装置タイプ装置情報を カタログ内に保管します。システムは、最初に指定するグループ名を保存しませ ん。 v 渡される新規データ・セットの UNIT パラメーターとしてグループ名を指定する と、システムは、渡されるデータ・セットの総称装置タイプ装置情報を保持しま す。システムは、最初に指定するグループ名を保存しません。 次の例は、最初にグループ名を指定したデータ・セットへの後続の参照を処理する 場合に、検索する装置情報をシステムがどのように使用するかを示しています。こ の例では、環境を以下のように仮定しています。 170 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 32 - 3480 磁気テープ装置 : v アドレス 3C0-3CF の 16 - 3480 磁気テープ装置のグループ名は、TAPE と定義 されています。 v アドレス 4C0-4CF の 16 - 3480 磁気テープ装置は、定義されていますが、グル ープ名 TAPE には含まれません。 例 A データ・セットを作成する JCL は、UNIT パラメーターとしてグループ名 TAPE を指定します。 //DD1 //DD1 DD DSN=A.B,UNIT=TAPE,DISP=(NEW,CATLG) または DD DSN=A.B,UNIT=TAPE,DISP=(NEW,PASS) データ・セット A.B は、アドレス 3C0-3CF にある 3480 磁気テープ装置に割 り当てられます。 後続の割り振りがデータ・セット A.B を参照する場合には、UNIT=TAPE と いう最初の指定は使用できません。UNIT パラメーターを指定しない次のよう な後続の割り振りは、 //DD2 DD DSN=A.B,DISP=SHR データ・セット A.B を任意の 3480 磁気テープ装置 (ただし、アドレスは 3C0-3CF または 4C0-4CF) に割り当てます。3480 磁気テープ装置がカタログ 内にあるためです。 注: 前のステップから渡されたデータ・セットを含む磁気テープが、まだマウント されている場合、システムは優先的に同じドライブを割り当てます。 グループ名 TAPE にだけ定義された磁気テープ装置のうちのどれか 1 つに磁気テ ープをマウントしたい場合は、次のとおり装置オーバーライドを指定して、マウン トを要求しなければなりません。 //DD2 DD DSN=A.B,DISP=SHR,UNIT=TAPE こうすることによって、システムはグループ名 TAPE (3C0-3CF) として定義された 磁気テープ装置にだけ割り振りをします。TAPE は、カタログから検索された装置 情報の適正なサブセットであるということです。 しかし、指定された UNIT パラメーターが、カタログされた (または渡された) 装 置タイプの適正なサブセットでない場合、システムは装置オーバーライドを無視し て、検索した装置タイプ情報と一致する任意の装置にデータ・セットを割り当てる ので、注意してください。次の例では、以上のことを説明します。UNIT パラメー ターがカタログ内の (または渡されたデータ・セットに対する) 装置情報の適正なサ ブセットを指定していない場合の、装置オーバーライドの影響を示します。この例 では、以下の環境を仮定しています。 32 - 3480 磁気テープ装置 : v アドレス 3C0-3CF の 16 - 3480 磁気テープ装置のグループ名は、TAPE と定義 されています。 第 15 章 データ・セット・リソース - 割り振り 171 データ・セット・リソース - 割り振り v アドレス 4C0-4CF の 16 - 3480 磁気テープ装置は、定義されていますが、グル ープ名 TAPE には含まれません。 32 - 3490 磁気テープ装置 : v アドレス 3D0-3DF の 16 - 3490 磁気テープ装置のグループ名は、TAPE と定義 されています。 v アドレス 4D0-4DF の 16 - 3490 磁気テープ装置は、定義されていますが、グル ープ名 TAPE には含まれません。 例 B データ・セットを作成する JCL は、UNIT パラメーターとしてグループ名 TAPE を指定します。 //DD1 //DD1 DD DSN=C.D,UNIT=TAPE,DISP=(NEW,CATLG) または DD DSN=C.D,UNIT=TAPE,DISP=(NEW,PASS) データ・セット C.D は、アドレス 3C0-3CF または 3D0-3DF にある、3480 または 3490 磁気テープ装置に割り当てられます。 後続の割り振りがデータ・セット C.D を参照する場合には、UNIT=TAPE と いう最初の指定は使用できません。UNIT パラメーターを指定しない次のよう な後続の割り振りは、 //DD2 DD DSN=C.D,DISP=SHR データ・セットが最初に 3480 に作成された場合、データ・セット C.D を任 意の 3480 磁気テープ装置 (ただし、アドレス 3C0-3CF または 4C0-4CF) に 割り振り、データ・セットが最初に 3490 に作成された場合、任意の 3490 磁 気テープ装置 (ただし、アドレス 3C0-3CF または 4C0-4CF) に割り振りま す。 注: 前のステップから渡されたデータ・セットを含む磁気テープが、まだマウント されている場合、システムは優先的に同じドライブを割り当てます。 グループ名 TAPE にだけ定義された磁気テープ装置のいずれか 1 つに磁気テープ をマウントすることを指定するために、装置オーバーライドを使用することはでき ません。グループ名 TAPE には 2 つの装置タイプ (3480 および 3490) が定義され ているのに、検索した装置タイプ情報は、1 つの装置タイプ (3480 または 3490) だ けです。したがって TAPE は、検索される 1 つの装置タイプの適正なサブセット ではないということになります。 例 B では、TAPE の装置オーバーライドは無視され、DD2 ステートメントのデー タ・セットは、カタログされた (または渡された) 装置タイプに一致する任意の装置 に割り当てられます。カタログされた (または渡された) 装置タイプが 3480 だった 場合は、データ・セットは 3C0-3CF または 4C0-4CF に割り当てられ、カタログさ れた (または渡された) 装置タイプが 3490 だった場合は、データ・セットは 3D0-3DF または 4D0-4DF に割り当てられます。 172 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 注: 磁気テープ装置選択呼び出し (SSI 機能コード 78) によって、ご使用のシステ ムが非 SMS 管理テープ要求の装置選択に介入することができます。詳細は、 「サブシステム・インターフェースの使用」を参照してください。 UNIT パラメーターと VOLUME パラメーターとの関係 (SMS 管理デー タ・セット) システムは次のものから装置適格性情報を得ることができます。 v カタログ式テープ・データ・セットのカタログ v 渡されたデータ・セット v 前の DD ステートメント v ボリュームに対する前の要求 v テープ構成データベース カタログ式データ・セット テープ・データ・セットがカタログされているときには、システムはカタログから 装置適格性情報とボリューム情報を入手します。カタログ式テープ・データ・セッ トの DD ステートメントに SMS 構成にないボリューム通し番号が入っている場合 は、システムはそのカタログを使用せず、テープ構成データベースから装置適格性 情報を得ることになります。 ボリューム通し番号の指定されていないデータ・セットの場合、データ・セットが OLD (または OLD として扱われる MOD) ならば、システムは常にカタログを検索 します。非 SMS のボリューム通し番号を指定してあるデータ・セットの場合は、 システムはデータ・セットが非 SMS 管理で、そのボリュームに置かれているもの と見なし、カタログの検索は行いません。SMS ボリューム通し番号を指定してある データ・セットの場合は (それが実ボリュームであっても、または DUMMY ストレ ージ・グループ内の非実在のボリュームであっても)、システムは、必ずカタログを 検索します。SMS がボリューム選択を制御しますが、データ・セットは指定された ボリュームにはない場合があります。 カタログ式データ・セットに対するボリューム参照 テープの場合は、データ・セットにカタログ式データ・セットと同じボリュームを 使用しようとするのであれば、そのカタログ式データ・セットを参照するために VOLUME=REF と指定します。システムはカタログから装置およびボリューム情報 を得て、同じボリューム (複数の場合もある) にデータ・セットを入れます。DASD の場合は、ストレージ・クラスとボリューム情報がカタログから検索されます。デ ータ・セットは同じストレージ・クラスを共用しますが、ストレージ・グループ は、互換性があるタイプ (POOL または VIO のような) であれば、別のストレー ジ・グループでかまいません。 オーバーライドされるプロシージャー DD ステートメント ステップでカタログ式プロシージャーまたはストリーム内プロシージャーを呼び出 す場合、呼び出し側のステップ・ステートメントのオーバーライドする DD ステー トメントには、DSNAME パラメーターでカタログ式データ・セットを指定すること ができます。この場合、オーバーライドする DD ステートメントでは VOLUME パ 第 15 章 データ・セット・リソース - 割り振り 173 データ・セット・リソース - 割り振り ラメーターをヌルにしなければなりません。ヌルにしないと、システムはオーバー ライドされる DD ステートメントの VOLUME パラメーターを使用し、カタログを 探索しません。 受け渡しデータ・セット 前のステップから渡されるデータ・セットを受け取る場合には、VOLUME パラメー ターを省略してください。システムは渡す側のステップからボリューム情報を得ま す。 以前の DD ステートメント NEW データ・セットの場合は、VOL=REF が非 SMS 管理データ・セットを参照す ると、ACS ルーチンに制御が移ります。ACS ルーチンでは、非 SMS 割り振りを 可能にさせることも、失敗させることもできますが、ルーチンで新規データ・セッ トを SMS 管理にすることはできません。NEW データ・セットの場合、VOL=REF が SMS 管理データ・セットを参照するときは、次のようになります。 v テープの場合、ストレージ・グループとボリュームは、参照されるデータ・セッ トと同じでなければなりません。 v DASD の場合、ストレージ・クラスは参照されるデータ・セットと同じでなけれ ばなりませんが、ストレージ・グループは、POOL、VIO などのように互換性が あるものであれば、異なっていてもかまいません。 OLD データ・セットの場合、VOL=REF が非 SMS 管理データ・セットを参照する と、システムはそのデータ・セットが非 SMS 管理データ・セットであり、参照さ れるデータ・セットと同じボリュームにあるものと見なします。VOL=REF が SMS 管理データ・セットを参照する場合、参照するデータ・セットが参照されるデー タ・セットと同じボリュームになくてもよいので、システムはカタログを検索しま す。 ボリュームに対する前の要求 ボリューム / 装置の対応付けは、同じステップ内での後続のボリューム要求が同じ 装置を受け取るような装置割り振りが行われるときに、設定されることがありま す。 非システム管理データ・セットおよびシステム管理テープ・ボリュームのデ ータ・セットに対する装置およびボリューム類似性 2 つ以上のボリュームが同じ装置に割り当てられた場合、それらのボリュームに は、同じジョブ・ステップ割り振りの中で装置類似性があるといいます。装置類似 性により、1 つのボリューム以外は、すべてのボリュームに対して据え置きマウン トが暗黙に指定されます。 装置類似性には、次の定義が適用されます。 v 参照する DD は、UNIT=AFF キーワードを指定する DD である。 v 参照される DD は、参照する DD が指し示す DD である。 v 1 次 DD とは、装置類似性チェーンの中の最初の DD である。 v 装置類似性チェーンは、同じ 1 次 DD を共用する 1 組の DD である。 174 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 以下の例では、DD2 は参照する DD で、DD1 は参照される DD です。DD3 も参 照する DD で、DD2 はその参照される DD です。DD1 は、DD1、DD2、DD3 か ら構成される装置類似性チェーンの 1 次 DD です。 //ST1 //DD1 //DD2 //DD3 EXEC DD DSN=A,DISP=(,CATLG),UNIT=3480 DD DSN=B,DISP=(,CATLG),UNIT=AFF=DD1 DD DSN=C,DISP=(,CATLG),UNIT=AFF=DD2 関連する概念として、ボリューム類似性があります。2 つまたはそれ以上のデー タ・セットが 1 つまたは複数のボリュームを共用する場合は、そのデータ・セット にボリューム類似性があるといいます。1 つまたは複数のボリュームにデータ・セ ットをスタックするための補足情報は、 183 ページの『データ・セットのスタッキ ング』にあります。 装置類似性の明示指定 1 つのステップにおける装置の数を減らすためには、同じステップ内の前の DD ス テートメントで割り当てているのと同じ装置 (複数の場合もある) に、既存のデー タ・セットを割り当てるように要求するため、UNIT=AFF を指定します。次のよう に指定します。 //ddname DD UNIT=AFF=ddname,... 注: 非 SMS 管理の DASD データ・セットを参照する NEW (または NEW として 扱われる MOD) データ・セットの場合は、UNIT=AFF と指定してはなりませ ん。指定すると、割り振りは失敗します。 連結データ・セットの場合には次のように指定して、同じ装置にデータ・セットを 割り当ててください。 //DD1 // // DD DSNAME=dataset1,... DD DSNAME=dataset2,UNIT=AFF=DD1,... DD DSNAME=dataset3,UNIT=AFF=DD1,... 明示的な装置類似性を使用するときは、1 次 DD を使用するのではなく、装置類似 性チェーンの中の、前にある DD を参照するように UNIT=AFF を使用することを お勧めします。すなわち、次のように指定します。 //DD1 //DD2 //DD3 //DD4 DD DD DD DD DSNAME=dataset1,... DSNAME=dataset2,UNIT=AFF=DD1,... DSNAME=dataset3,UNIT=AFF=DD2,... DSNAME=dataset3,UNIT=AFF=DD3,... 以下のように指定するのはお勧めできません。 //DD1 //DD2 //DD3 //DD4 DD DD DD DD DSNAME=dataset1,... DSNAME=dataset2,UNIT=AFF=DD1,... DSNAME=dataset3,UNIT=AFF=DD1,... DSNAME=dataset3,UNIT=AFF=DD1,... 前にある DD を常に参照すると、何らかの条件のためにチェーン内のいずれかの DD の装置類似性が無視されても、チェーン内のそれ以降の DD が別の装置に割り 振られることはなく、1 つの装置に割り振られます。 装置類似性の暗黙指定 第 15 章 データ・セット・リソース - 割り振り 175 データ・セット・リソース - 割り振り DD ステートメントで装置より多いボリュームを要求すると、1 つのデータ・セッ トに対する複数のボリューム相互間に暗黙指定の装置類似性が存在することになり ます。 注意 : 下記の条件がすべて当てはまる場合には、装置類似性を要求する、参照する DD ステートメントに指定されたデータ・セットは、参照される DD ステートメン トによって上書きされます。 v 参照される DD ステートメントが非特定ボリュームを要求している。 v 参照する DD ステートメントのデータ・セットが、参照されるデータ・セットよ りも前にオープンされている。 v 参照されるデータ・セットがオープンされる前にテープがアンロードされておら ず、LABEL パラメーターでテープ・ラベルを検査するためのテープの位置決め が要求されていない。2 つ以上のデータ・セットに割り振られているテープ装置 は、動的に割り振りを解除されても、またはクローズされて FREE=CLOSE が指 定されても、アンロードされません。 システム管理テープ・ボリュームのデータ・セットの装置類似性の処理 表 30 では、システム管理のテープ・ボリューム上の要求されたデータ・セットに対 して、装置類似性の原理を適用した例を示します。システムは、1 次 (参照される) DD ステートメントに 2 次 (参照する) DD ステートメントの適正なサブセットで ある装置プールがあるかどうかを検査します。したがって、システムが装置類似性 の要求を認めるのは、1 次 DD ステートメントが適格となっている各装置タイプが 2 次 DD ステートメントの装置プールの中にも入っているときだけです。 下記の表は、装置類似性の例を示したものです。列見出しの意味は次の通りです。 要求側 1 次 (参照される) DD ステートメントまたは 2 次 (参照する) DD ステートメントのいずれかを示します。 ライブラリー適格性 DD ステートメントが適格となっているライブラリーを示します。 装置タイプ適格性 DD ステートメントが適格となっている装置タイプを示します。 処置 類似性の要求を認めるか、あるいは無視します。要求を認める場合 には、ライブラリー適格性または装置タイプ適格性が低下するかど うかが示されます。 最終適格性 装置の割り振りに使用される、最終のライブラリーまたは装置タイ プの適格性を示します。 表 30. テープ・ライブラリー要求の装置類似性の例 要求側 ライブラリー適格性 装置タイプ適格性 処置 最終適格性 認める LIB1、3490 認める 低下する LIB1、3490 要求側のライブラリーと装置プールは同じものである 1 次 LIB1 3490 2 次 LIB1 3490 1 次要求側のライブラリーは、2 次の適正なサブセットである 1 次 LIB1 3490 2 次 LIB1、LIB2 3490 176 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 表 30. テープ・ライブラリー要求の装置類似性の例 (続き) 要求側 ライブラリー適格性 装置タイプ適格性 処置 最終適格性 認める 低下する LIB1 および 3490 無視する LIB1、3490 1 次要求側の装置プールは、2 次の適正なサブセットである 1 次 LIB1 3490 2 次 LIB1 3490、3480X 1 次要求側のライブラリーは、2 次のものとはまったく異なる 1 次 LIB1 3490 2 次 LIB2 3490 LIB2、3490 1 次要求側の装置プールは、2 次のものとはまったく異なる 1 次 LIB1 3490 2 次 LIB1 3480X 無視する LIB1、3490 LIB1、3480X 1 次要求側のライブラリーは、2 次の適正なサブセットではない 1 次 LIB1、LIB2 3490 2 次 LIB1 3490 無視する LIB1、LIB2、3490 LIB1、3490 1 次要求側の装置プールは、2 次の適正なサブセットではない 1 次 LIB1 3490、3480X 2 次 LIB1 3480X 無視する LIB1、3490、3480X LIB1、3480X 装置プールは同じである。両方とも非ライブラリー要求側 1 次 非ライブラリー要求 3490 2 次 非ライブラリー要求 3490 認める 3490 1 次要求側の装置プールは 2 次の適正なサブセットである。両方とも非ライブラリー要求側 1 次 非ライブラリー要求 3490 2 次 非ライブラリー要求 3490、3480X 認める 低下する 3490 1 次要求側の装置プールは、2 次の適正なサブセットではない 。両方とも非ライブラリー要求側 1 次 非ライブラリー要求 3490、3480X 2 次 非ライブラリー要求 3490 無視する 3490、3480X 3490 1 次はライブラリー要求側であるが、2 次は非ライブラリー要求側である 1 次 LIB1 3490 2 次 非ライブラリー要求 3490 無視する LIB1、3490 3490 注: 3480X は 3490 モデルのテープ装置の装置タイプであり、3490 は 3490E モデ ルのテープ装置の装置タイプです。 装置の適格性 非システム管理データ・セットを、装置タイプに割り振ることができれば、その装 置に対して適格となります。システム管理テープ・ボリュームのデータ・セット が、ある装置に対して適格といえるのは、その装置タイプに割り振ることができ、 そのボリュームと装置の両方が同じシステム管理テープ・ライブラリーに入ってい る場合です。カタログには、データ・セットがカタログされている場合にだけ、そ のデータ・セットが適格になっている装置のタイプに関する情報が入れられます。 システムが装置類似性に対する要求を認める場合、参照される DD は、参照する DD ステートメントと同じ装置に対して適格となっていなければなりません。さら 第 15 章 データ・セット・リソース - 割り振り 177 データ・セット・リソース - 割り振り に、参照される DD ステートメントが適格となっている装置は、参照する DD が 適格となっている装置のサブセットであるか、またはその装置と同じ装置である必 要があります。その他の場合はすべて、システムは装置類似性を無視しますが、割 り振りは成功します。 以上の規則を例を挙げて示します。 v TAPEX は 3480X または 3480 にとり適格です。 v DS3480 は、3480 に適格であるものとしてカタログされます。装置名 3480 に は、それと関連する 2 つの総称名 (3480 と 3480X) があります。 v DS3480X は、3480X に適格であるものとしてカタログされます。 v DS3480X2 は、3480X に適格であるものとしてカタログされます。 //DD1 //DD2 //DD3 //DD4 DD DD DD DD UNIT=TAPEX DSN=DS3480,UNIT=AFF=DD1 DSN=DS3480X,UNIT=AFF=DD2 DSN=DS3480X2,UNIT=AFF=DD1 ボリューム類似性を要求しないか、またはボリューム類似性に対する要求で装置類 似性が損なわれない場合には ( 179 ページの『装置とボリュームの類似性要求の対 話』を参照)、装置類似性は次のようになります。 v DD1 と DD2 の両方が 3480 と 3480X に適格であるため、DD1 と DD2 には装 置類似性があります。 v DD3 と DD4 の両方が 3480X に適格であるため、DD4 には DD3 との装置類似 性があります。 v DD3 も DD4 も 3480 に適格ではないため、DD3 と DD4 には DD1 との装置 類似性がありません。したがって、システムは DD3 または DD4 の装置類似性 を無視します。DD3 と DD4 は、DD1 と同じ装置に対して適格ではありませ ん。 装置適格性に関する例外 下記の条件のすべてが当てはまる場合には、システムは装置類似性を認めません。 v 参照される DD が 3480X 装置に適格である。 v 参照する DD が 3480 と 3480X 装置の両方に適格である。 v システムは、3480X の前に 3480 の割り振りを試みるために初期設定された。 ここで、例外を示す例を上げます。 v システムが 3480X 装置の前に 3480 装置の割り振りを試みるために初期設定さ れた。 v DS3480 は、3480 に適格であるものとしてカタログされます。装置名 3480 に は、それと関連する 2 つの総称名 (3480 と 3480X) があります。 //DD1 DD UNIT=3480X //DD2 DD DSN=DS3480,UNIT=AFF=DD1 この例では、システムは装置類似性に対する要求を認めません。各 DD ステートメ ントは別の装置に割り振られます。 178 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 装置とボリュームの類似性要求の対話 装置類似性、ボリューム類似性、または装置とボリュームの類似性 (あるいはその すべて) は、同じステップおよび同じ DD ステートメントに指定することができま す。 装置類似性とボリューム類似性の両方を同じステップで要求した場合には、1 つし か類似性が認められないことがあります。表 31 は、テープ装置または直接アクセス 装置に対する装置とボリュームの類似性要求をシステムがどのようにして認めるか について示したものです。 表 31. 装置とボリュームの類似性 (非 SMS 管理データ・セット) 装置とボリュームの類似性要求の関係 テープ すべての装置とボリュームの類似性要求が無関 係である システムは、装置とボリュームの類似性要求をすべて認めます。 テープ装置に関する例 : //DD1 DD VOLUME=SER=A,UNIT=3490 //DD2 DD VOLUME=SER=B,UNIT=AFF=DD1 //DD3 DD VOLUME=SER=(C,D),UNIT=3490 //DD4 DD VOLUME=SER=C,UNIT=3490 直接アクセス装置に関する例 : //DD1 DD VOLUME=SER=A,UNIT=3340 //DD2 DD VOLUME=SER=B,UNIT=AFF=DD1 //DD3 DD VOLUME=SER=C,UNIT=3340 //DD4 DD VOLUME=SER=C,UNIT=3340 1. DD1 と DD2 の間の装置類似性は、明示的に 要求されます。 2. DD3 と DD4 の間のボリューム類似性は、暗 黙的に要求されます。 すべての装置とボリュームの類似性要求が関連 している テープ装置に関する例 : //DD1 DD VOLUME=SER=(A,D),UNIT=3490 //DD2 DD VOLUME=SER=(A,B), // UNIT=AFF=DD1 直接アクセス システムは、DD1 と同じ装置に DD2 を割り当てます。システム は、DD3 と DD4 の両方のボリ ューム C で同じ装置を使用し ます。システムは、この一連の 要求に対して合計 3 台の装置を 割り振ります。 システムは、DD1 と同じ装置に DD2 を割り当てます。システム は、DD3 と DD4 の両方のボリ ューム C で同じ装置を使用しま す。システムは、この一連の要 求に対して合計 2 台の装置を割 り振ります。 システムはすべての装置類似性 要求を認め、ボリューム類似性 要求をすべて無視します。結果 として、すべてのボリュームで 同じ装置が使用されることにな ります。 直接アクセス装置に関する例 : //DD1 DD VOLUME=SER=(A,D),UNIT=3340 システムは、DD1 と同じ装置に //DD2 DD VOLUME=SER=(A,B), DD2 を割り当てます。 // UNIT=AFF=DD1 1. 両方のボリュームで同じ装置を使用するた め、DD1 は装置類似性を暗黙指定します。 2. DD1 と DD2 の間の装置類似性は、明示的に 要求されます。 3. DD1 と DD2 の両方がボリューム A を要求 するため、DD1 と DD2 の間でボリューム類 似性が、暗黙的に要求されます。 システムは、装置類似性要求に 含まれているボリューム類似性 をすべて認めます。これらのボ リュームは、同じ装置を使用し ます。装置類似性要求内の他の ボリュームは、別の装置を使用 します。 システムは、DD1 用のボリュー ム A と同じ 3340 に DD2 用の ボリューム A を割り当てます。 ボリューム D と B は、別の 3340 を使用します。 第 15 章 データ・セット・リソース - 割り振り 179 データ・セット・リソース - 割り振り 表 31. 装置とボリュームの類似性 (非 SMS 管理データ・セット) (続き) 装置とボリュームの類似性要求の関係 テープ 一部の装置とボリューム類似性は関連している が、一部は関連していない システムは、装置類似性要求に含まれているボリューム類似性をす べて認めます。これらのボリュームは、同じ装置を使用します。装 置類似性要求内の他のボリュームは、別の装置を使用します。 テープ装置に関する例 : //DD1 DD VOLUME=SER=A,UNIT=3490 //DD2 DD VOLUME=SER=B,UNIT=AFF=DD1 //DD3 DD VOLUME=SER=B,UNIT=AFF=DD2 直接アクセス装置に関する例 : //DD1 DD VOLUME=SER=A,UNIT=3340 //DD2 DD VOLUME=SER=B,UNIT=AFF=DD1 //DD3 DD VOLUME=SER=B,UNIT=3340 1. DD1 と DD2 の間の装置類似性は、明示的に 要求されます。 2. DD2 と DD3 の間のボリューム類似性は、暗 黙的に要求されます。 直接アクセス システムは、DD1 と同じ装置に DD2 を割り当てます。ボリュー ム B (DD2 および DD3 の) は、3490 ボリュームです。した がって DD1、DD2、および DD3 は、1 つの 3490 を使用し ます。 システムは、DD2 と DD3 用の ボリューム B を 1 つの 3340 に割り当てます。 DD1 用のボ リューム A は、別の 3340 を使 用します。 永続常駐ボリュームまたは予約ボリューム DD ステートメントで永続常駐ボリュームまたは予約ボリュームが要求された場 合、要求された類似性とは無関係に、システムはボリュームがマウントされている 装置を割り振らなければなりません。 JES3 システムにおける拡張データ・セットの要求時の UNIT=AFF JES3 システムにおける複数ステップ・ジョブでは、データ・セットが前のジョブ・ ステップで追加のボリュームにまで拡張されると、MVS は必要な追加の装置を割り 振ります。JES3 は追加装置を認識しません。後のステップでそのデータ・セットを 要求する場合には、システムがそのデータ・セットに元の装置と追加の装置を割り 振るように、UNIT=AFF=ddname を指定してください。 マルチボリューム・データ・セットに関する類似性 マルチボリューム・データ・セットでは、装置類似性を要求する場合にボリューム 類似性を要求してください。次のように指定します。 //ddname DD UNIT=AFF=ddname,VOLUME=REF=*.ddname,... マルチボリューム・データ・セットにボリューム類似性だけを指定すると、次のこ とが起こります。 v システムは要求されたボリュームを割り当てて、装置に割り振ります。したがっ て、その装置はボリューム類似性を要求するすべての DD ステートメントで共用 されます。 v システムは参照される DD ステートメントに最初に指定されたボリュームを、割 り振られた装置にマウントするようにオペレーターに指示します。 v 最初のボリュームが終了した時点で、システムはそのボリュームを取り外して次 のボリュームをマウントするようにオペレーターに指示します。 180 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り v データ・セットが再度オープンされると、システムはボリューム類似性要求に対 して使用されていない装置に、最初のボリュームを再度マウントするようにオペ レーターに指示します。 v システムは参照する側の DD ステートメントを処理するときに、ボリューム類似 性要求に割り当てられた装置に最初のボリュームをマウントするようにオペレー ターに指示します。システムが最初のボリュームを 2 つの異なる装置にマウント するように要求したため、ジョブは待ち状態になります。 システム管理テープ・ボリュームのデータ・セットのための装置の使 用 DD ステートメントと関連した各テープ・ボリュームが同じシステム管理テープ・ ライブラリーにある場合は、装置類似性の要求が受け入れられます。それ以外の場 合、そのようなボリュームは同じ装置を共用することができず、UNIT=AFF (装置類 似性) の要求は無視されます。たとえば、次の場合がこれに当たります。 //STEP 1 EXEC PGM=... //DD1 DD DSN=SAM,VOL=SER=TAPEA //DD2 DD DSN=SAM,VOL=SER=TAPEB,UNIT=AFF=DD1 ボリューム TAPEA とボリューム TAPEB がいずれもシステム管理テープ・ライブ ラリーにないか、TAPEA と TAPEB が両方とも同じシステム管理テープ・ライブ ラリーにある場合には、DD1 と DD2 が 1 つの装置を共用します。つまり、ジョ ブ・ステップ STEP1 には装置が 1 つだけ割り振られます。上記以外の場合には、 DD1 と DD2 には別個の装置が必要です。2 つの装置がジョブ・ステップ STEP1 に割り振られます。 割り振る装置の数を制御するには、既存のボリュームをシステム管理テープ・ライ ブラリーに移す前と、UNIT=AFF ステートメントで参照されるデータ・セットを作 成するためにシステム管理テープ・ライブラリーを選択するときに、DD ステート メントとボリュームの関係を考慮してください。装置類似性を指定する DD ステー トメントは、関連付けられたボリュームがシステム管理テープ・ライブラリーへ移 された後、さらに装置が必要となる場合があります。 システムが装置類似性を無視する場合の例 次の例は、システムが装置類似性の要求を無視し、しかもデータ・セットを割り振 る場合を示します。これは、ユーザーがジョブの要求する装置数を制限するために UNIT=AFF キーワードを指定しましたが、要求されたボリュームが別の装置タイプ にあったため、別の装置が要求された例です。 たとえば、ご使用のシステムでテープ・マウント管理 (TMM) 方式を採用している 場合、ACS ルーチンは装置類似性チェーン内の DD の一部を SMS 管理 DASD に 指定変更することができますが、必ずしもすべての DD についてそれが可能なわけ ではありません。この指定変更によって、装置類似性チェーン内で異なる装置カテ ゴリー (SMS 管理テープ、SMS 管理 DASD、非 SMS 管理テープ、非 SMS 管理 DASD など) が混合する可能性があります。例 1 と例 5 を参照してください。 システムは装置類似性を無視すると、メッセージ IEF278I を出して、装置類似性を 無視したことと理由コードを示します。 例 1 第 15 章 データ・セット・リソース - 割り振り 181 データ・セット・リソース - 割り振り //DD1 DD DSNAME=P,DISP=NEW,UNIT=3480 //* (P is redirected to SMSD, an SMS-managed DASD volume) //DD2 DD DSNAME=Q,DISP=NEW,UNIT=AFF=DD1 //* (Q is redirected to SMST, an SMS-managed TAPE volume) この例では、ACS ルーチンはデータ・セット P を非 SMS 管理テープから SMSD (SMS 管理 DASD ボリューム) に指定変更しました。ACS ルーチンはまた、デー タ・セット Q を非 SMS 管理テープから SMST (SMS 管理テープ・ボリューム) に指定変更しました。DD2 は DD1 との装置類似性を要求していますが、システム は指定変更の結果、装置カテゴリーが不整合になったので、その要求を無視しま す。 システムはメッセージ IEF278I と理由コード 1 を出し、DD のいずれか一方が SMS 管理要求で、もう一方が SMS 管理要求ではないことを示します。 例 2 //DD1 DD DSNAME=PAYROLL,DISP=OLD PAYROLL は世代別データ・グループ (GDG) です。DD1 は GDG ALL 要求で す。システムは GDG ALL 要求を、カタログ内のすべての PAYROLL データ・セ ットの結合のように処理します (最新のものが最初になります)。それ以降のすべて の世代は、最初のものに対して装置類似性をもちます。 次の例は、PAYROLL データ・セットに対する GDG ALL 要求のためのシステム作 成の JCL です。カタログには 4 項目が入っており、1 つはテープ用、3 つは DASD 用です。 //DD1 // // // // // // // DD DSNAME=PAYROLL(0),DISP=OLD,UNIT=3480, VOLUME=SER=TAPE01 DD DSNAME=PAYROLL(-1),DISP=OLD VOLUME=SER=DISK03,UNIT=AFF=DD1 DD DSNAME=PAYROLL(-2),DISP=OLD, VOLUME=SER=DISK02,UNIT=AFF=DD1 DD DSNAME=PAYROLL(-3),DISP=OLD, VOLUME=SER=DISK01,UNIT=AFF=DD1 システムは装置類似性を無視します。PAYROLL(0) はテープであり、他のデータ・ セットと装置を共用することはできません。他のデータ・セットは DASD だからで す。DASD ボリュームは取り外し不能なので、システムは PAYROLL(-1)、 PAYROLL(-2)、および PAYROLL(-3) には別個のボリュームを割り振ります。 システムはメッセージ IEF278I と理由コード 2 を出し、DD が互換性のない世代を 要求していることを知らせます。 例 3 //DD1 DD DSNAME=P,DISP=OLD //* (P is cataloged on TEST1 in tape //* (Tape Library TL1 is eligible to //DD2 DD DSNAME=Q,DISP=OLD,UNIT=AFF=DD1 //* (Q is cataloged on TEST2 in tape //* (Tape Library TL2 is eligible to Library TL1) 3480 devices) Library TL2) 3490 devices) システムは、この装置類似性要求を無視します。P はボリューム TEST1 にカタロ グされており、TL1 のテープ・ライブラリーに入っています。Q はボリューム TEST2 にカタログされており、TL2 のテープ・ライブラリーに入っています。 182 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り システムはメッセージ IEF278I と理由コード 3 を出し、DD が互換性のないテー プ・ライブラリーを要求していることを知らせます。 例 4 //DD1 DD DSNAME=R,DISP=OLD //* (R is cataloged on T2, a 3480 tape) //DD2 DD DSNAME=S,DISP=OLD,UNIT=AFF=DD1 //* (S is cataloged on T3, a 3480X tape) システムは、この装置類似性要求を無視します。DD1 は 3480 テープ・ボリューム ですが、DD2 には 3480X テープ・ボリュームが必要で、これは 3480 と互換性が ありません。 システムはメッセージ IEF278I と理由コード 4 を出し、参照される DD (DD1) に 関連付けられている装置が、参照する DD (DD2) に関連付けられている装置のサブ セットではないことを知らせます。 例 5 //S1 EXEC ... //DD1 DD DSNAME=W,DISP=(,CATALG),UNIT=3480,VOL=SER=TAPE01 //* (W is redirected to SD2, an SMS-managed DASD volume) //S2 EXEC ... //DD1 DD DSNAME=W,DISP=OLD //* (W is cataloged on SD2, an SMS-managed DASD volume) //DD2 DD DSNAME=X,DISP=NEW,UNIT=AFF=DD1 //* (X is non-SMS-managed after ACS routine processing) この例では、ACS ルーチン は、データ・セット W を非 SMS 管理テープから SD2 (SMS 管理 DASD ボリューム) に指定変更しました。ACS ルーチンは、デー タ・セット X を指定変更しません。指定変更の結果、装置カテゴリーが不整合なる ので、システムはステップ 2 の DD2 に関する装置類似性要求を認めません。した がって、システムはデータ・セット X を非 SMS 管理データ・セットとしてデフォ ルトの装置類似性が無視される装置 (ALLOCxx parmlib メンバーの UNITAFF に指 名) に割り振ります。 システムはメッセージ IEF278I と理由コード 5 を出し、参照する DD2 は 非 SMS 管理データ・セットで、参照される DD1 は、SMS 管理データ・セットであること を示します。 データ・セットのスタッキング 複数のデータ・セットを同じテープ・ボリュームまたは同じ組のテープ・ボリュー ムに入れるとき、そのデータ・セットはスタックされるといいます。データ・セッ トのスタッキングはテープ・メディアの使用効率を高め、割り振りに必要になるテ ープ・ボリューム数を減らすために用いられます。また、データ・セットのスタッ キングは、データを別の場所に送る場合にも有益です。関連するデータ・セットを 少ないテープ・ボリューム数にまとめることができるからです。 データ・セット・コレクションとは、データ・セットのスタッキングによって同じ テープ・ボリュームまたは同じ組のテープ・ボリュームに割り振られることになる データ・セットの集合です。データ・セットは、単一のボリュームにスタックする (すなわち、データ・セットを 1 つのボリュームに入れ、そのボリュームを少なく とももう 1 つ別のデータ・セットと共用する) ことができます。また、データ・セ 第 15 章 データ・セット・リソース - 割り振り 183 データ・セット・リソース - 割り振り ットは複数のボリュームにスタックする (すなわち、データ・セットが複数のボリ ュームにまたがっており、そのボリュームの少なくとも 1 つを、1 つまたは複数の データ・セットまたはデータ・セット部分と共用する) こともできます。 データ・セットのスタッキングは、ボリューム参照 (VOL=REF) またはボリューム 通し番号 (VOL=SER) のいずれかを、LABEL パラメーターのデータ・セット・シ ーケンス番号と一緒に指定して、要求します。データ・セットのスタッキングは同 一ステップ内で、同一ジョブ内の複数のステップまたは複数のジョブにまたがっ て、要求することができます。 次の表を使用して、データ・セットのスタッキングを要求するのに必要な JCL パラ メーターを判別してください。この表は、データ・セットのスタッキングを要求し たいときに、使用するとよいパラメーター (VOL=SER または VOL=REF) を示して います。たとえば、ジョブ内の異なるステップにおいて、同じテープ・ボリューム に複数のデータ・セットをスタックするように要求するためには、テープに置かれ ている前のデータ・セットをデータ・セット名で参照する VOL=REF を指定する必 要があります。 VOL=REF サブパラメーターでは相対 GDG 名を使用することができないので、相 対世代別データ・セットを同じテープ・ボリュームにスタックする場合は、例 2 に 示した手法をお勧めします。 表 32. データ・セットのスタッキングにお勧めするパラメーター 異なるステップ、 同一ジョブ 異なるジョブ テープ上の前のデータ・セ ットを参照する VOL=REF 前のデータ・セットをデー タ・セット名で参照する VOL=REF 前のデータ・セットをデー タ・セット名で参照する VOL=REF リスト内の最初のボリュー ム通し番号として、前のデ ータ・セットの最後のボリ ューム通し番号を指定した VOL=SER 前のデータ・セットをデー タ・セット名で参照する VOL=REF 前のデータ・セットをデー タ・セット名で参照する VOL=REF ボリューム・セット 同一ステップ 単一ボリューム、複数デー タ・セット マルチボリューム、複数デ ータ・セット 以下の JCL は、データ・セット・スタッキングの例を示すものです。 // //S1 //D1 // //D2 // JOB ... EXEC ... DD DSN=A,DISP=(NEW,CATLG),VOL=SER=VOL1, UNIT=TAPE,LABEL=(1,SL) DD DSN=B,DISP=(NEW,CATLG),VOL=REF=*.D1 UNIT=TAPE,LABEL=(2,SL) この JCL は、同一ステップ内の単一ボリュームに 2 つのデータ・セットをスタッ クするものです。この例では VOL=REF を使用して、同じテープ・ボリューム VOL1 にデータ・セット A とデータ・セット B の両方をスタックします。デー タ・セット A と B で、データ・セット・コレクションが構成されます。 184 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り データ・セット・スタッキングの例 次に、データ・セット・スタッキングを要求する JCL の例を示します。これらの例 は、データ・セット・スタッキングを指定するための IBM 推奨パラメーターにし たがっています。 例 1 この例では、同一ジョブ・ステップ内の単一ボリュームに複数のデータ・セットを スタックします。 //ST1 //DD1 //DD2 // //DD3 // EXEC ... DD DSNAME=W,DISP=OLD (where W is on volume SMST) DD DSNAME=X,DISP=NEW,VOLUME=REF=*.DD1, LABEL=(2,SL) DD DSNAME=Y,DISP=NEW,VOLUME=REF=*.DD1, LABEL=(3,SL) この例では VOL=REF を使用して、データ・セット W、X、Y を同じテープ・ボ リューム SMST にスタックしています。データ・セット W、X、Y で、データ・ セット・コレクションが構成されます。 例 2 この例では、同一ジョブ・ステップ内の単一ボリュームに GDG の相対世代をスタ ックします。(VOL=REF サブパラメーターには、VOL=REF=MYDSA(0) のように相 対 GDG 名を指定することができないという制約事項があるため、それを回避する ためにこの方法を使うことができます。) //STACKGDG //STEP01 //DD1 //DD2 // //DD3 // JOB . . . EXEC . . . DD DSN=MYDSA(0),DISP=SHR (where MYDSA(0) is on volumeTAPE01) DD DSN=MYDSB(+1),DISP=(,CATLG), UNIT=3490,VOL=REF=*.DD1,LABEL=(2) DD DSN=MYDSC(+1),DISP=(,CATLG), UNIT=3490,VOL=REF=*.DD1,LABEL=(3) この例では、VOL=REF を使用することにより、相対世代別データ・セット MYDSA(0)、MYDSB(1)、および MYDSC(1) を同じテープ・ボリューム TAPE01 に スタックします。データ・セット MYDSA(0)、MYDSB(1)、MYDSC(1) で、デー タ・セット・コレクションが構成されます。 例 3 この例では、ジョブ内の複数のステップにまたがって単一ボリュームに複数のデー タ・セットをスタックします。 //JOB1 //ST1 //DD1 //ST2 //DD2 // JOB ... EXEC ... DD DSN=A,DISP=(NEW,CATLG),UNIT=TAPE EXEC ... DD DSN=B,DISP=NEW,LABEL=(2,SL), VOLUME=REF=A,UNIT=TAPE この例ではデータ・セット名による VOL=REF を使用して、データ・セット A と データ・セット B を同じテープ・ボリュームにスタックします。DD1 には VOL=SER の指定がないので、DD1 は非特定のテープ要求を表しています。したが って、システムは使用可能なテープを割り当てるか、またはどれも使用可能でない 第 15 章 データ・セット・リソース - 割り振り 185 データ・セット・リソース - 割り振り 場合は、オペレーターにテープ・ボリュームをマウントするように求めます。DD2 は、データ・セット B をデータ・セット A と同じボリュームに置きます。デー タ・セット A と B で、データ・セット・コレクションが構成されます。 例 4 この例では、複数のジョブにまたがって単一ボリュームに複数のデータ・セットを スタックします。 //JOB1 //ST1 //DD1 JOB ... EXEC ... DD DSN=A,DISP=(NEW,CATLG) //JOB2 //ST2 //DD2 // JOB ... EXEC ... DD DSN=B,DISP=NEW,LABEL=(2,SL), VOLUME=REF=A,UNIT=TAPE この例ではデータ・セット名による VOL=REF を使用して、データ・セット A と データ・セット B を同じテープ・ボリュームにスタックします。JOB1 の DD1 に は VOL=SER の指定がないので、DD1 は非特定のテープ要求を表しています。し たがって、システムは使用可能なテープを割り当てるか、またはどれも使用可能で ない場合は、オペレーターにテープ・ボリュームをマウントするように求めます。 DD2 は、データ・セット B をデータ・セット A と同じボリュームに置きます。 データ・セット A と B で、データ・セット・コレクションが構成されます。 例 5 この例では、同一ステップ内のマルチボリュームに複数のデータ・セットをスタッ クします。 //ST1 //DD1 // //DD2 // // //DD3 // EXEC ... DD DSNAME=W,DISP=NEW, VOLUME=SER=(ONE,TWO,THREE) DD DSNAME=X,DISP=NEW, VOLUME=SER=(THREE,FOUR), LABEL=(2,SL) DD DSNAME=Y,DISP=NEW,VOLUME=SER=(FOUR,FIVE), LABEL=(3,SL) この例では、前の DD の最後のボリュームを参照する VOL=SER を指定すること によって、データ・セット W、X、Y を同じ組のテープ・ボリュームにスタックし ます。データ・セット W、X、Y で、データ・セット・コレクションが構成されま す。 例 6 この例では、同一ステップ内のマルチボリュームに複数のデータ・セットをスタッ クします。データ・セット W は、ボリューム V1 と V2 にある既存のマルチボリ ューム・データ・セットです。 //ST1 //DD1 //DD2 // // //DD3 // // 186 EXEC ... DD DSNAME=W,DISP=OLD (W is on volumes V1 and V2) DD DSNAME=X,DISP=NEW, VOLUME=SER=(V2,V3), LABEL=(2,SL) DD DSNAME=Y,DISP=NEW, VOLUME=SER=(V3,V4), LABEL=(3,SL) z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り この例では、前の DD の最後のボリュームを参照する VOL=SER を指定すること によって、データ・セット W、X、Y を同じテープ・ボリュームにスタックしま す。データ・セット W、X、Y で、データ・セット・コレクションが構成されま す。 例 7 この例では、同一ジョブ内の複数のステップにまたがって、マルチボリュームに複 数のデータ・セットをスタックします。 //JOB1 //ST1 //DD1 // //ST2 //DD2 // JOB ... EXEC ... DD DSN=A,DISP=(NEW,CATLG),UNIT=TAPE, VOLUME=SER=(ONE,TWO,THREE) EXEC ... DD DSN=B,DISP=NEW,LABEL=(2,SL), VOLUME=REF=A,UNIT=TAPE この例では、データ・セット名による VOL=REF を指定することによって、デー タ・セット A と B を同じテープ・ボリューム THREE にスタックします。デー タ・セット A と B で、データ・セット・コレクションが構成されます。 例 8 この例では複数のジョブにまたがってマルチボリュームに複数のデータ・セットを スタックします。 //JOB1 //ST1 //DD1 // JOB ... EXEC ... DD DSN=A,DISP=(NEW,CATLG),UNIT=TAPE, VOLUME=SER=(ONE,TWO,THREE)) //JOB2 //ST2 //DD2 // JOB ... EXEC ... DD DSN=B,DISP=NEW,LABEL=(2,SL), VOLUME=REF=A,UNIT=TAPE この例では、データ・セット名による VOL=REF を指定することによって、デー タ・セット A と B を同じテープ・ボリューム (ここでは THREE) にスタックしま す。データ・セット A と B で、データ・セット・コレクションが構成されます。 データ・セットのスタッキングとテープ・マウント管理 ご使用のシステムでテープ・マウント管理 (TMM) 方式を利用しようとする場合、 システム・プログラマーおよびストレージ管理者は、いままでの方式に対する影響 を理解しておく必要があります。TMM を使用すると、特定のタイプのテープ・デ ータ・セットを DASD に指定変更することができるため、テープ装置の使用効率を 高めることができます。 システム・プログラマーまたはストレージ管理者は、ボリューム・マウント・アナ ライザーからの出力を分析し、それに基づいてテープから DASD へ指定変更するの に適していると思われるデータ・セットを指摘することができます。ただし、デー タ・セット・スタッキングを使用するジョブがある場合は、データ・セット・コレ クション内のすべてのデータ・セットを指定変更するか、またはどのデータ・セッ 第 15 章 データ・セット・リソース - 割り振り 187 データ・セット・リソース - 割り振り トも指定変更しないかのいずれかにする必要があります。そうでないと、そのコレ クション内のデータ・セットの装置カテゴリーが複数になり、割り振りまたはオー プンの失敗が生じるおそれがあります。 装置カテゴリーという用語は、装置のタイプを指します。カテゴリーには、次の種 類があります。 v SMS DASD v SMS テープ v 非 SMS 管理の DASD v 非 SMS 管理の テープ データ・セットのスタッキングは、VOL=SER または VOL=REF のいずれかによっ て要求することができます。VOL=SER を使用した場合、システムは 1 つのステッ プの中に関してだけデータ・セットのスタッキングを検出し、装置カテゴリーの整 合性がとれているかどうか検査することができます。複数のステップまたはジョブ にまたがってデータ・セットをスタックするためには、VOL=REF を使用しなけれ ばなりません。 VOL=SER を指定して同一ステップ内のデータ・セット・スタッキングを要求する と、システムは装置カテゴリーの混在がないかどうか検査します。データ・セッ ト・コレクション内に装置カテゴリーの混在を検出すると、システムは、その装置 カテゴリーの対立を解決するために ACS ルーチンを呼び出します。ACS ルーチン が整合性のある装置カテゴリーにデータ・セットを指定しない場合、割り振りは失 敗し、メッセージ IGD23101I が出されます。注 : カタログ情報には指定変更が反 映されるので、システムはすでにある SMS 管理データ・セットをデータ・セッ ト・コレクションには含めません。例 3 を参照してください。 z/OS DFSMS システム管理ストレージのインプリメンテーション では、ACS ルー チンによるデータ・セット・スタッキングの処理と検出に関する詳細を述べていま す。 VOL=REF を指定してステップまたはジョブにまたがるデータ・セット・スタッキ ングを要求すると、システムはボリューム参照についての情報を ACS ルーチンに 渡すことができます。この情報を使用して、ACS ルーチンはデータ・セット・コレ クション内のデータ・セットに関する要求を同じ装置カテゴリーに向けることがで きます。 TMM を使用しているご使用のシステムが、データ・セット・スタッキングを要求 するジョブを実行するときは、ACS がデータ・セットをテープから DASD に指定 変更することがあるため、JCL の組み合わせによっては、予期した結果が得られな いことがあることを理解しておく必要があります。したがって、 v 複数ステップまたは複数ジョブにまたがるデータ・セット・スタッキングを要求 するためには、VOL=REF を使用するようにお勧めします。 VOL=SER を指定しても、複数ステップまたは複数ジョブにまたがるデータ・セッ ト・スタッキングの要求が処理されることがときにはあるとしても、常に期待どお りの結果が得られるとはかぎりません。問題が起きるのを避けるためには、 VOL=REF を使用してください。 188 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り TMM を使用している場合、または使用する計画がある場合で、データ・セットを スタックしたいときは、次に示す例のようなデータ・セット・スタッキングの要求 を行わないようにしてください。(データ・セット・スタッキングを要求する場合の 推奨方法を示す例としては、 185 ページの『データ・セット・スタッキングの例』 を参照してください。) 例 1 //JOB1 JOB ..... //STEP1 EXEC ..... //DD1 DD DSNAME=W,DISP=(NEW,CATLG), // VOLUME=SER=MINE,UNIT=3490 //STEP2 EXEC ..... //DD2 DD DSNAME=X,DISP=NEW,VOLUME=SER=MINE, // LABEL=(2,SL),UNIT=3490 この例では、VOL=SER を使用して複数ステップにまたがるデータ・セット・スタ ッキングを要求しています。 DD2 の VOL=SER を VOL=REF=W で置き換えれば、ACS ルーチンはデータ・セ ット W が DASD に指定変更されても、データ・セット X を整合性のある装置カ テゴリーに割り振るために必要な情報を得ることになります。 例 2 //JOB1 //DD1 // JOB ..... DD DSNAME=W,DISP=(NEW,CATLG), VOLUME=SER=MINE,UNIT=3490 //JOB2 //DD2 // JOB ..... DD DSNAME=X,DISP=NEW,VOLUME=SER=MINE, LABEL=(2,SL),UNIT=3490 この例では、VOL=SER を使用して複数ジョブにまたがるデータ・セット・スタッ キングを要求しています。 DD2 の VOL=SER を VOL=REF=W で置き換えれば、ACS ルーチンはデータ・セ ット X を整合性のある装置カテゴリーに割り振るために必要な情報を得ることにな ります。 例 3 この例では、VOL=SER を使用して複数ジョブにまたがるデータ・セット・スタッ キングを要求しています。 //JOB1 JOB ..... //STEP1 EXEC ..... //DD1 DD DSNAME=W,DISP=(NEW,CATLG),UNIT=3490, // VOL=SER=TAPE01,LABEL=(1,SL) JOB1 では、ACS ルーチンはデータ・セット W を SMS 管理 DASD に指定変更 します。データ・セット W は SMS 管理になります。 //JOB2 JOB //STEP2 EXEC //DD1 DD //DD2 DD // //DD3 DD // ..... ..... DSNAME=W,DISP=OLD DSNAME=X,DISP=NEW,VOL=SER=TAPE01, LABEL=(2,SL),UNIT=3490 DSNAME=Y,DISP=NEW,VOL=SER=TAPE01, LABEL=(3,SL),UNIT=3490 第 15 章 データ・セット・リソース - 割り振り 189 データ・セット・リソース - 割り振り JOB2 では、データ・セット W は指定変更された後なので、既存の SMS 管理デー タ・セットです。システムは、データ・セット W をデータ・セット・コレクショ ンに含めません。システムは DD2 と DD3 の間で、データ・セット・スタッキン グを検出します。データ・セット X と Y でデータ・セット・コレクションが構成 されます。 DD2 の VOL=SER を VOL=REF=W に置き換え、DD3 の VOL=SER を VOL=REF=X に置き換えると、ACS ルーチンはデータ・セット X と Y を、デー タ・セット W と整合性のとれた装置カテゴリーに割り振るために必要な情報を得 ることになります 直接アクセス・スペースの割り振り すべての非 VSAM 管理データ・セットまたは非 SMS 管理データ・セットのスペ ースが、直接アクセス・ボリュームに作成されるように要求しなければなりませ ん。必要なスペースの量をシステムに伝え、トラックを割り当てるには、次のよう に指定します。 //ddname //ddname //ddname DD DD DD SPACE=(TRK,(primary-qty,second-qty,directory or index)),... SPACE=(CYL,(primary-qty,second-qty,directory or index)),... SPACE=(blklgth,(primary-qty,second-qty,directory or index)),... 特定のトラックをデータ・セットに割り当てるようにシステムに指示するときは、 次のように指定します。 //ddname DD SPACE=(ABSTR,(primary-qty,address,directory or index)),... SMS を使用する場合は、スペースを要求することも、データ・セットのデータ・ク ラスに定義されたスペース割り振りをオーバーライドすることもできます。この場 合には、次のように指定します。 //ddname DD SPACE=(reclgth,(primary-qty,second-qty,directory)), AVGREC=value,... さらに SMS を使用するときは、DATACLAS パラメーターを指定して (または ACS ルーチンでデータ・クラスを選択し)、スペース割り振りを指定することができ ます。たとえば、次のように指定します。 //ddname DD DATACLAS=dataclass-name,... システムによるスペース割り当ての要求 システムに特定のトラックを割り当てさせることは、最も簡単で、最も頻繁に用い られます。スペースを測定する方法 (トラック、シリンダー、ブロックまたはレコ ード単位)、および必要なトラック、シリンダー、ブロック、またはレコードの数を 指定するだけで済みます。 ブロックについての要求 (blklgth) SMS を使用しない場合は、平均のブロック長を指定するのが最も簡単です。システ ムは、指定の数のブロックを入れるのに最低必要な数のトラックを割り振ります。 ブロック長を指定すると、装置独立性も維持されます。スペース要求を変更せずに 190 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り UNIT パラメーターの装置タイプを変更することができます。あるいは異なった直 接アクセス装置が入っているグループ名を、UNIT パラメーターに指定することが できます。 平均のブロック長または平均のレコード長を使用してスペースを要求すると、シス テムはその要求を入れるトラックを割り振ります。ただし、SPACE パラメーターに 最後のサブパラメーターとして ROUND を指定すると、システムはその要求を入れ るのに最低必要な数のシリンダーを割り振ります。 システムは、トラック全体に DASD スペースを割り振ります。必要なトラック数 は、レコードがどのようにブロック化されるかによって異なります。システムはブ ロック長として次のいずれかを使用し、以下に示す順番で割り振るトラック数を計 算します。 1. データ・セットが PDSE の場合は、4096。 2. DCB パラメーターからのブロック・サイズ (指定されている場合)。 3. システムが決定したブロック・サイズ (使用可能の場合)。 4. デフォルト値の 4096。 トラックまたはシリンダーについての要求 (TRK または CYL) TRK または CYL を指定することができます。必要なトラックまたはシリンダーの 数を計算する必要があります。装置タイプ、トラック容量、シリンダー当たりのト ラック数、ボリューム当たりのシリンダー数、データ長 (ブロック・サイズ)、キー 長、および装置オーバーヘッドなどの変数を考慮してください。区分データ・セッ トと索引順次データ・セットについてスペースの所要量を概算するときの変数と例 については、z/OS DFSMS: データ・セットの使用法 を参照してください。 シリンダーを割り振ると (平均のブロックまたは平均のレコードを指定した ROUND を使用する)、トラックを割り振るときよりも順次データ・セットの入出力 が迅速に行われます。 レコードについての要求 (reclgth) SMS を使用するときは、平均のレコード長 (バイト単位) と 1 次、2 次、およびデ ィレクトリーの量を SPACE パラメーターに指定してスペースを要求するか、デー タ・セットのデータ・クラスのスペース割り振りをオーバーライドしてください。 また、レコード要求を指定するために、そして 1 次スペースおよび 2 次スペース の量が表すレコードの単位が 1000 と 100 万 のいずれであるかを示すために、 SPACE パラメーターと一緒に AVGREC パラメーターを指定しなければなりませ ん。 システムによる 1 次スペース要求への応答 1 つのボリューム上のスペース 1 次スペース要求を満たすための十分なスペースが、1 つのボリュームで使用可能 でなければなりません。不足していると、システムはジョブを終了させるか別のボ リュームを探索します。これは、ボリューム要求のタイプによって決まります。 特定ボリューム要求 : 指定された最初のボリュームに使用できる十分なスペー スがないと、ジョブは終了します。マルチボリューム・データ・セットを拡張す 第 15 章 データ・セット・リソース - 割り振り 191 データ・セット・リソース - 割り振り るときに、指定された 2 番目のボリュームに 2 次割り振りのために使用できる 十分なスペースがないと、ジョブは終了します。 非特定ボリューム要求 : システムが選択した最初のボリュームに、使用できる 十分なスペースがないと、システムは別のボリュームを選択し、スペースの探索 を続行し、必要に応じてボリュームをマウントするように指示します。システム は十分なスペースのあるボリュームが見つかるか、適格ボリュームをすべて使い つくすか、またはオペレーターがジョブを取り消すまで、スペースを探し続けま す。 注: 新しい索引順次データ・セットについては、次のような要求の場合には、シス テムが選択した最初のボリュームに要求のための十分なスペースがないと、シ ステムは別のボリュームのスペースを探しません。 v マルチボリュームまたは装置についての要求 v データ・セットを定義するときに使用した 2 番目、3 番目、またはそれ以降 の DD ステートメントについての要求 エクステント システムは連続したトラックまたはシリンダーに、1 次スペースと 2 次スペースの 量を割り振ろうとします。連続したスペースが使用できないと、システムは連続し ていないスペースのエクステント (ブロック) を 5 つまで要求用に使用します。 マルチボリューム・データ・セット マルチボリューム・データ・セットを作成するときは、最初のボリュームで使用可 能なスペースより多いスペースを 1 次スペース量として指定することはできませ ん。1 次スペース量として、最初のボリュームで使用できるスペースをすべて要求 するときは、2 次スペース量は次のボリュームのスペースに要求されます。 ブロック内の基本要求 平均のブロック長を使用してスペースを要求すると、システムは primary-qty に指定 したブロック数を入れるトラックの最小数 (または ROUND が指定されていればシ リンダー) を計算し、割り振ります。この計算では、blklgth がブロック長として使 用され、値としてゼロは除外されます。最初のサブパラメーターにゼロの blklgth が指定されている場合、システムはブロック長として次のいずれかを使用して、割 り振るトラック数を計算します。計算は以下の順です。 1. DCB パラメーターからのブロック・サイズ (指定されている場合)。 2. システムが決定したブロック・サイズ (使用可能の場合)。 3. デフォルト値の 4096。 ユーザー・ラベルを指定した場合のシステムによるスペース要求の割り当て ユーザー・ラベル LABEL=(,SUL) を指定すると、システムは連続していないスペー スのエクステントを 4 つまで割り振ります。システムは 1 次スペース量とは別 に、ユーザー・ラベルとしてトラックを 1 つ割り振ります。このトラックは 1 つ のエクステントと見なされます。 192 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り システムによる 2 次スペース要求への応答 多くのデータ・セットの場合、1 次スペース量はデータ・セット全体を収容できる ほど大きくなくても構いません。データ・セットが最初に割り振られたスペースを 超える場合だけに使用される 2 次スペース量を指定してください。システムは、デ ータ・セットに割り振られたスペースの最後のエクステントに隣接する 2 次スペー スを獲得しようとします。ただし、ROUND サブパラメーターにシリンダー、ブロ ック、またはレコードの 2 次スペース量を指定すると、データ・セットに割り振ら れる 2 次スペースはシリンダーの始めからになります。 注: BDAM データ・セットを、拡張することはできません。 NEW または MOD データ・セット用の 2 次スペース用ボリューム NEW または MOD の後処理が指定されたデータ・セットの場合には、システムは 次のいずれかの状態になるまで、1 次スペース量と同じボリュームにこのスペース を割り振ります。 v ボリュームに、2 次スペース量として使用できるスペースが十分ではない。 v 1 次スペース量とユーザー・ラベル・スペース用のエクステントの数より少ない 16 エクステントが、区分データ・セット (PDS) に割り振られた。 v 1 次スペース量とユーザー・ラベル・スペース用のエクステントの数より少ない 123 エクステントが、拡張区分データ・セット (PDSE) に割り振られた。 次に、DD ステートメントが VOLUME パラメーターで複数のボリュームを要求し たか、または特定ボリューム要求で装置の数より多いボリュームを要求した (装置 類似性を暗黙に示す) 場合にだけ、システムは別のボリュームに 2 次スペース量を 割り振ります。 DD ステートメントが非特定ボリューム要求を指定し、システムが永続常駐ボリュ ームを割り振る可能性があるときは、VOLUME パラメーターに PRIVATE を指定 してください。 OLD データ・セット用の 2 次スペース用ボリューム OLD の状況のデータ・セット (つまり、上書きされる既存のデータ・セットまたは 事前に割り振られているデータ・セット) 用に 2 次スペースを割り振るときに、シ ステムは次のボリュームを検査します。次のボリュームがあると、システムはすで に割り振られている 2 次スペース量がないかどうか探します。2 次スペース量が見 つかれば、システムはそのスペースを使用します。割り振られているスペースがな いときは、その次のボリュームに 2 次スペース量を割り振ります。次のボリューム がないときは、現行のボリュームに 2 次スペース量を割り振ります。 現行の実行用だけの 2 次スペース要求 データ・セットを作成するとき、または既存のデータ・セットを検索しているとき に、2 次スペース量を要求することができます。初めの要求で 2 次スペース量を指 定していなくても、要求することができます。既存のデータ・セットについての 2 次スペース要求が有効なのは、ジョブ・ステップの活動期間中だけです。これは元 の要求があれば、それをオーバーライドします。 ブロックによる 2 次スペース要求 第 15 章 データ・セット・リソース - 割り振り 193 データ・セット・リソース - 割り振り 平均のブロック長を指定してスペースを要求すると、システムはその要求を収容す るのに最低必要な数のトラックを割り振ります。 区分データ・セット用のディレクトリー・スペース 区分データ・セット (PDS) を作成するときは、ディレクトリー用のスペースを収容 するのに十分な 1 次スペース量を要求してください。ディレクトリーは、システム が区分データ・セット内でメンバーを探すときに使用する索引です。これは、256 バイトのレコードで構成されています。各レコードにはディレクトリー項目が入っ ています。各メンバーにはディレクトリー項目が 1 つあります。SPACE パラメー ターの 3 番目の量には、ディレクトリーにいくつのレコードをもたせるかを指定し なければなりません。 ディレクトリーは、1 次スペースの先頭に書き込まれます。ディレクトリーは、デ ータ・セットの最初のエクステントに収めなければなりません。データ・セットが 大きくなっても収容できるように、十分なディレクトリー・スペースを要求してく ださい。データ・セットを作成したあとで、ディレクトリーを大きくすることはで きません。ディレクトリー用のスペースがなくなると、データ・セットを作成し直 さなければなりません。 SMS 使用の場合、他のサブパラメーターを指定することなく、SPACE パラメータ ーでディレクトリーのレコード数を指定することができます。たとえば、次の場合 がこれに当たります。 //DD12 // DD DSNAME=PDS.EXMP,DATACLAS=DCLAS12,SPACE=(,(,,20)), DISP=(NEW,KEEP) ディレクトリー、および要求するレコードの数を計算できるようにするメンバー項 目の詳細については、z/OS DFSMS: データ・セットの使用法 を参照してくださ い。 拡張区分データ・セット用のディレクトリー・スペース PDSE のサイズは大幅に増大します。ディレクトリーのサイズを SPACE パラメー ターに指定する場合、PDSE を後で PDS に変換する場合だけ、SMS は指定された 値を使用します。 索引順次データ・セットについてのシステムによるスペース要求の割 り当て 索引順次 (ISAM) データ・セットの場合には、シリンダー単位でスペースを要求し なければなりません。(SMS は ISAM データ・セットを管理しないことに注意して ください。) 2 つ以上のシリンダーを占有する索引順次データ・セットを作成する場合に、別の DD ステートメントに索引を定義しないときは、SPACE パラメーターの 3 番目の 量として索引スペースを要求してください。システムは 3 番目の量がディレクトリ ー用なのか、DD ステートメントの DCB パラメーター用の索引用なのかを判別し ます。索引順次データ・セットを定義する場合は、DCB=DSORG=IS または DCB=DSORG=ISU を指定しなければなりません。システムはスペースを割り振ると きに、1 次スペース量に索引のスペース量を追加します。 194 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り 例 1 //ALLO //STEP1 //DD1 //DD2 //SYSABEND //STEP2 //DD3 //DD4 //SYSABEND JOB EXEC DD DD DD EXEC DD DD DD (3416,354),STONER,MSGLEVEL=1,MSGCLASS=C PGM=TESTSYS0 UNIT=3350,DISP=(,PASS),SPACE=(TRK,(10,5)) UNIT=3330,DISP=(,PASS),SPACE=(TRK,(10,5)) SYSOUT=L PGM=TESTSYS0 DSNAME=*.STEP1.DD1,DISP=(OLD,DELETE,DELETE) VOLUME=REF=*.STEP1.DD2,SPACE=(TRK,(3,1)),UNIT=3330 SYSOUT=L 最初のステップでは、2 つの一時データ・セット用のスペースを要求します。2 番 目のステップでは、ボリューム情報を得るためにこれらのデータ・セットを参照し ます。STEP1 の DD1 と DD2 用に要求されたスペースは、10 個の 1 次トラック と 5 個の 2 次トラックです。STEP2 の DD4 用のスペースは、3 個の 1 次トラッ クと 1 個の 2 次トラックです。 例 2 //SMSALLO JOB (3444,355),SCHOER,MSGLEVEL=1,MSGCLASS=C //STEP5 EXEC PGM=TESTSYS0 //DD6 DD DSNAME=HIJK.PGM,DATACLAS=DCLAS1,SPACE=(128,(5,2)), // AVGREC=K,DISP=(NEW,KEEP) 新規データ・セットの DD6 用に要求されたスペースは、データ・セットのデー タ・クラスに指定されたスペース割り振りをオーバーライドします。要求されたス ペースは 128 バイトの平均レコード長、5K (5,120) レコードの 1 次スペース量、 および 2K (2,048) レコードの 2 次スペース量です。 特定のトラックの要求 システムが、指定のトラックをデータ・セットに (ABSTR サブパラメーターを使用 して) 割り振る要求は、最も制約のあるスペース要求です。要求されたボリューム 上のトラックが占有されていると、ジョブはスペースを割り振ることができずに終 了します。 SMS 管理データ・セットに ABSTR を指定しないでください。 特定の装置の使用方法によっては、特別なトラックを要求しなければならないこと があります。たとえば、3348-70F 型データ・モジュールの固定ヘッド (シリンダー 1-5) の下にデータ・セットを置くときは、特定のトラックを割り振らなければなり ません。 ユーザー・ラベルを指定した特別なトラック要求 ユーザー・ラベル LABEL=(,SUL) を指定すると、そのユーザー・ラベルはユーザ ー・ラベル・トラックに置かれます。このトラックは、要求されたスペースの最初 のトラックです。 索引順次データ・セットについての特別なトラック要求 索引順次データ・セットを定義するときは、索引域、基本区域、またはオーバーフ ロー域用のトラックの数はシリンダーの整数倍に等しく、シリンダー境界上になけ ればなりません。索引順次データ・セットを定義する DD ステートメントは、すべ て特別なトラックを要求しなければなりません。 第 15 章 データ・セット・リソース - 割り振り 195 データ・セット・リソース - 割り振り 例 //DDEX DD SPACE=(ABSTR,(5,1)),... この例では、データ・セットに 5 つのトラックを割り振ります。ボリュームの 2 番目のトラックから始まります。 仮想入出力の割り振り 一時データ・セットは、仮想入出力 (VIO) と呼ばれる機能によって処理することが できます。VIO データ・セットはページング・スペース内にあります。しかし、問 題プログラムおよびアクセス方式の側から見ると、このデータ・セットは直接アク セス記憶装置上にあるように見えます。 永続データ・セット、索引順次データ・セット、VSAM データ・セット、および拡 張区分データ・セット (PDSE) では、VIO を使用できません。 VIO には 2 つの利点があります。 v VIO によって、データ・セットの読み書きが速くなります。すべての読み書き操 作は装置への入出力の速度ではなく、主記憶域へのアクセスの速度で行われま す。 v 仮想データ・セットは、ユーザーの専用区域内のスペースを占有しません。した がってプログラム内の大規模なデータ域とは異なり、仮想データ・セットはプロ グラム・スペースを使い切りません。 VIO データ・セットを作成するジョブだけが、データを読み書きするためにそのデ ータ・セットにアクセスしたり、そのデータ・セットをスクラッチしたりすること ができます。 SMS は、次の場合に VIO データ・セットを管理します。 (1) STORCLAS パラメ ーターを指定してデータ・セットのストレージ・クラスを指定する場合、または (2) インストール先作成の自動クラス選択 (ACS) ルーチンがデータ・セットのストレー ジ・クラスを選択する場合。 SMS 管理の VIO データ・セットの場合、割り当てら れたストレージ・クラスが VIO データ・セットをサポートしなければなりません。 ストレージ管理者に確認してください。 VIO の要求 VIO データ・セットを要求するときは、次のように DD ステートメントを指定して ください。 v DSNAME パラメーターをコーディングしても省略しても構いません。指定する 場合は、一時データ・セットを指定しなければなりません。 DSNAME=&&dsname DSNAME=&&dsname(member) v DISP パラメーターをコーディングしても省略しても構いません。指定する場合 は、次のように指定しなければなりません。 DISP=(NEW,DELETE) DISP=(NEW,PASS) DISP=(,PASS) 196 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り v 非 SMS 管理データ・セットには、UNIT パラメーターを指定してください。 UNIT には、VIO 装置名を指定しなければなりません。システムの初期設定時に ご使用のシステムでは、新しい装置名または既存の装置名 (あるいはその両方) を VIO として定義しなければなりません。ご使用のシステムでは、VIO 装置名のリ ストを維持管理しておかなければなりません。 装置カウント・サブパラメーターは、指定しても無視されます。 v VOLUME パラメーターをコーディングしても省略しても構いません。指定する 場合は、ボリューム通し番号を指定しないでください。 v SPACE パラメーターをコーディングしても省略しても構いません。指定する場合 は、パラメーターはシミュレートされたボリュームのサイズまで要求することが できます。システムは 1 次スペース量と 15 の 2 次スペース量として、すべて のシミュレートされたボリュームを割り振ります。 | | | | 要求された 1 次スペース量が 65,535 トラック以上の場合、ジョブは失敗しま す。 1 次要求量が満たされても、1 次要求量 + (2 次スペース要求量) x 15 が 65,535 トラックよりも大きい場合、システムは 65,535 トラックを割り振りま す。 VIO データ・セットに対して平均のブロック長を使って割り振ると、 SPACE パラメーターに指定された平均ブロック長を使用して 2 次スペース要求 が計算されます。 SPACE パラメーターを省略すると、システムは次のデフォルト値を使用します。 すなわち、平均ブロック長を 8192 にして、4 個の 1 次ブロックと 24 個の 2 次ブロックを割り当てます。VIO データ・セットが SMS に送られ、スペース値 が ACS ルーチンで選択されたデータ・クラスに指定される場合、割り振りデフ ォルトではなく、データ・クラス値が有効になります。 v DCB パラメーターをコーディングしても省略しても構いません。指定する場合 は、DSORG サブパラメーターに IS または ISU を指定しないでください。 DD ステートメントに受け入れられないパラメーターを指定すると、システムは実 際の直接アクセス記憶装置に VIO データ・セット要求を割り振ります。ただし 1 次スペース量が大きすぎると、システムはジョブを終了します。 例 1 //EX1 //EX2 //EX3 //EX4 // DD UNIT=VIO DD DSNAME=&&TEMPDS,UNIT=SYSDA DD DSNAME=&&TEMPDS(MEM1),UNIT=VIRT3 DD DSNAME=&&MYDS,UNIT=VIO,SPACE=(360,(5,30)), DISP=(,PASS),DCB=(RECFM=FB,LRECL=80,BLKSIZE=360) 上記の例では、システムはシステムの初期設定時に、VIO 処理に適格なグループ名 として VIO、SYSDA、および VIRT3 を割り当てました。 例 2 //EXSMS DD DSNAME=&&TEMP,STORCLAS=SCLASVIO この例では、ストレージ管理者が VIO をサポートするストレージ・クラス SCLASVIO を定義しておいたため、EXSMS は SMS 管理の VIO データ・セット を定義します。 第 15 章 データ・セット・リソース - 割り振り 197 データ・セット・リソース - 割り振り VIO データ・セットの逆方向参照 DD ステートメントが一時データ・セットを定義し、VOLUME=REF パラメーター で VIO データ・セットについての DD ステートメントを参照すると、システムは 外部ページ記憶装置に、VIO データ・セットとしてそのデータ・セットを割り当て ます。 DD ステートメントが VIO データ・セットとの装置類似性を要求していても、一時 データ・セットを定義していないと、システムは VIO 装置にデータ・セットを割り 振りますが、それに VIO 状況を割り当てません。 例では、ご使用のシステムの初期設定時に、VIO 処理に適格なグループ名 SYSDA と装置タイプ名 3330 を定義しているものと見なしています。特記されていない限 り、下記のすべての DD ステートメントによって、VIO データ・セットが割り振ら れます。 例 1 //DD1 DD UNIT=SYSDA DD UNIT=3330 DD DSNAME=&&A,DISP=(NEW),SPACE=(CYL,(30,10)),UNIT=SYSDA DD DD UNIT=SYSDA VOLUME=REF=*.DD1 DD DD UNIT=SYSDA VOLUME=REF=*.DDA,UNIT=3330 例 2 //DD2 例 3 //DD3 例 4 //DD1 //DD2 例 5 //DDA //DDB 例 6 //DD1 //DD2 // DD UNIT=SYSDA DD DSNAME=NONTEMP,DISP=(,KEEP), VOLUME=REF=*.DD1,SPACE=(CYL,10) この例では、DD1 で定義されたデータ・セットは、VIO 処理のために外部ページ記 憶装置に割り当てられます。DD2 が永続データ・セットを定義しているので、シス テムはそれを直接アクセス記憶装置に割り当てます。 例 7 //DD1 //DD2 // DD UNIT=SYSDA DD DSNAME=&&TEMP,VOLUME=SER=665431, SPACE=(CYL,10),UNIT=AFF=DD1 この例では、DD1 で定義されたデータ・セットは、VIO 処理のために外部ページ記 憶装置に割り当てられます。DD2 がボリューム通し番号を指定しているので、シス テムはそれを直接アクセス記憶装置に割り当てます。 例 8 198 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 割り振り //REGJOB //ASM JOB 3344,’DEPT. 28’ EXEC PGM=IFOX00 . . //ASM.SYSGO DD DSNAME=&&OBJ,UNIT=VIO,DISP=(NEW,PASS) //LKED EXEC PGM=IEWL //SYSLIN DD DSNAME=&&OBJ,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DSNAME=&&LOAD(A),DISP=(NEW,PASS),UNIT=VIO, // DCB=DSORG=PO,SPACE=(TRK,(5,5,1)) . . //GO EXEC PGM=*.LKED.SYSLMOD VIO データ・セットは、従来型データ・セットと同じ方法で渡されます。この例 は、VIO データ・セットについての DD ステートメントを示しています。このジョ ブのステップでは、プログラムをコンパイルしてリンク・エディットし、そのプロ グラムを実行します。3 つの VIO データ・セットが、ASM.SYSGO、SYSLIN、お よび SYSLMOD の各ステートメントに定義されています。 注: SPACE パラメーターは、ディレクトリー・スペースが割り振られるように、 //SYSLMOD DD ステートメントに指定しなければなりません。 JES2 システムにおけるボリュームの事前取り付けを指定した割り振り JES2 システムにおいて、ジョブの実行前にオペレーターがマウントしておかなけれ ばならないボリュームを識別するときは、次のように指定します。 /*SETUP serial-number,... ジョブがシステムに入ると、JES2 はオペレーター・コンソールにメッセージを出し て、識別されたボリュームをマウントするようにオペレーターに指示します。JES2 はオペレーターがボリュームをマウントするまでジョブを保留にし、次にジョブを 解放します。 例 /*SETUP 223344,556677,889900 注: /*SETUP 制御ステートメントを使用して IBM 3495 テープ・ライブラリー・デ ータサーバーのボリュームを指定しないようにしてください。このステートメ ントを使用すると、ジョブは、オペレーターが解放するまで必要もなく保留さ れることになります。 動的割り振り 動的割り振りによってジョブは必要になったときにリソースを得て、使用直後にそ のリソースを解放することができます。リソースは、ボリュームと装置を指定した DD 名とデータ・セットの組み合わせです。 動的割り振りを使用する理由は、実行前にジョブに必要な装置要件がすべて分かっ ているわけではないからです。別の理由は、システムがリソースをより効率よく使 用できるようになるからです。つまりシステムは使用直前にリソースを得て、使用 直後にそのリソースを解放することができます。 第 15 章 データ・セット・リソース - 割り振り 199 データ・セット・リソース - 割り振り 再使用が予想されるために保留しておくリソースの数をシステムに伝えるときは、 次のように指定してください。 //stepname EXEC PGM=x,DYNAMNBR=n システムはこの数とステップ内の DD ステートメントの数の合計を使用して、再使 用が予想されるために保留にしておくリソースの追跡用上限値を設定します。 動的割り振りの詳細については、z/OS MVS Programming: Authorized Assembler Services Guide を参照してください。 例 //PROS //STEP1 //OUT1 //OUT2 //SYSIN . . data . /* JOB EXEC DD DD DD 1585,SALLYJ,CLASS=A,PERFORM=70 PGM=TEST,DYNAMNBR=4,PARM=(P3,123,MT5) SYSOUT=C,FREE=CLOSE SYSOUT=A * v JOB ステートメントは、このジョブがクラス A とパフォーマンス・グループ 70 で処理されることを指定します。 v 上限値は、指定された DD ステートメントの数と、DYNAMNBR パラメーター に指定された値の合計です。 3 DD ステートメント + 4 = 7 この上限値に達していて別の動的割り振りが要求された場合には、上限値を超え ないようにするためリソースの割り振りの解除ができないと、その要求は認めら れません。 v OUT1 がクローズされると、すぐに印刷の準備が行なわれます。 200 z/OS MVS JCL ユーザーズ・ガイド 第 16 章 データ・セット・リソース - 処理制御 表 33. データ・セット・リソースを要求するための処理制御タスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 処理制御 処理の抑止による DUMMY DSNAME に NULLFILE を指 定 指定の延期による DDNAME チェックポイント CHKPT 機能を使用した SYSCKEOV DD サブシステムによ SUBSYS る CNTL CNTL ENDCNTL TCAM ジョブま QNAME たはタスクによる 処理の抑止による処理制御 データ・セットの処理を抑止するときは、次のいずれかを指定して、それにダミー の状況を割り当ててください。 //ddname //ddname DD DD DUMMY,... DSNAME=NULLFILE,... システムは、DUMMY または DSNAME=NULLFILE および DCB 以外のパラメー ターをすべて無視します。通常の入出力操作の場合には、DCB パラメーターを指定 しなければなりません。たとえば、バッファーを入手するためには OPEN ルーチン に BLKSIZE を指定する必要があり、DCB マクロ命令に BLKSIZE を指定しないと きは、この情報を DD DCB パラメーターに指定してください。 ダミー・データ・セットの効果 ダミー・データ・セットの場合、システムはすべての入出力操作をう回し、デー タ・セットに装置またはストレージを割り振らず、後処理を実行しません。 ダミー・データ・セットの読み書きの要求 プログラムがダミー・データ・セットの読み取りを要求すると、データ・セットの 終わり出口がすぐに呼ばれます。プログラムがダミー・データ・セットに書き込む 場合、この要求は認識されますが、データは伝送されません。VSAM は、読み書き 処理用にダミー・データ・セットをサポートします。BSAM と QSAM は、ダミ ー・データ・セットへの書き込み要求をサポートします。他のアクセス方式を使用 すると、ジョブは終了します。 ダミー・データ・セットの使用方法 © Copyright IBM Corp. 1988, 2004 201 データ・セット・リソース - 処理制御 プログラムをテストするときにダミー・データ・セットとして出力データ・セット を定義すると、出力データ・セットへの書き込みを抑止することができます。出力 用に意味のあるデータ・セットができるまで、印刷を抑止します。 処理時間を節約するため、ジョブを実行するたびにデータ・セットを処理しないよ うにすることができます。たとえば、1 週間に一度しか使用しないデータ・セット の読み取りをスキップすることができます。 ダミー・データ・セットの無効化 データ・セットを処理するときには、ダミー・データ・セットを指定した DD ステ ートメントを、データ・セットを定義するために必要なパラメーターを指定した DD ステートメントに置き換えてください。プロシージャー DD ステートメントに ダミー・データ・セットが指定されているときは、オーバーライドする DD ステー トメントに DSNAME パラメーターを指定して、NULLFILE 以外のデータ・セット 名を割り当てて、そのダミー・データ・セットを無効にします。 例 //EXA // //EXB // //EXC DD DUMMY,DCB=(RECFM=FB,LRECL=80,BLKSIZE=800), UNIT=3211 DD DSNAME=NULLFILE,UNIT=DISK,VOLUME=SER=165789, DISP=OLD DD DUMMY,DISP=OLD 指定の延期による処理制御 データ・セットの指定を延期するときは、次のように指定して、後の DD ステート メントを参照します。 //ddname DD DDNAME=ddname システムによるデータ・セット定義の延期 システムは、DDNAME パラメーターが指定された DD ステートメントを検出する と、その ddname を保管し、DDNAME パラメーターにその名前を一時的に保管し ます。システムは DDNAME 名を使用して、そのステートメントとあとの DD ス テートメントを関連づけます。システムは一時的に ddname が保管されたステート メントを見つけると、次の処置を取ります。 v 一致する ddname が指定されたステートメントのパラメーターを使用して、デー タ・セットを定義します。 v DDNAME パラメーターが指定されたステートメントの名前と、これらのパラメ ーターを関連づけます。 v DDNAME パラメーターの名前の保管を停止します。 データ・セットの参照 システムは、DDNAME パラメーターが指定されたステートメントの ddname と、 データ・セット定義とを関連づけます。システムは、実際にデータ・セットを定義 している DD ステートメントの ddname を使用しません。したがって、データ・セ ットの定義の前か後でデータ・セットを参照するときは、DDNAME パラメーター が指定された DD ステートメントを参照しなければなりません。データ・セットを 定義する、参照される DD ステートメントは参照しません。 202 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 処理制御 DDNAME が指定されたときの DD ステートメントの連結 DDNAME パラメーターで定義したデータ・セットと、データ・セットを連結する ときは、命名されていない DD ステートメントの前には、データ・セットを定義し ている参照される DD ステートメントではなく、DDNAME パラメーターを指定し た DD ステートメントを指定しなければなりません。 指定の延期の使用方法 ジョブ・ステップがプロシージャーを呼び出すまでストリーム内データ・セットの 定義を延期するときは、カタログ式プロシージャーに DDNAME パラメーターを使 用してください。プロシージャーには、ストリーム内データ・セットを定義する DD ステートメントやストリーム内データを指定することはできません。 プロシージャー・ステップでオーバーライドする最後の DD ステートメントまでス トリーム内データの定義を延期するときは、プロシージャーを呼び出すジョブ・ス テップに DDNAME パラメーターを使用してください。オーバーライドする DD ステートメントは、プロシージャーに DD ステートメントを指定した順番で指定し なければなりません。ストリーム内データ・セットは、呼び出し側のステップの最 後に指定しなければなりません。 例 1 //XYZ DD . . . //PHOB DD DDNAME=PHOB DSNAME=NIN,DISP=(NEW,KEEP),UNIT=3400-5 システムは、DD ステートメント XYZ から XYZ を保管し、一時的に PHOB を保 管します。システムが DD 名 PHOB を検出するまで、XYZ のデータ・セットをダ ミー・データ・セットとして処理します。 DD ステートメント PHOB を読み取ると、DSNAME、DISP、および UNIT の値を 使用して、NIN という名前のデータ・セットを定義します。さらに、この情報と DD ステートメント XYZ を関連づけます。システムは DD 名 PHOB の保管を停 止します。これで、指定したとおりにデータ・セットが定義されます。 //XYZ DD DSNAME=NIN,DISP=(NEW,KEEP),UNIT=3400-5 例 2 //DD1 DD DDNAME=LATER . . . //LATER DD DSN=SET12,DISP=(NEW,KEEP),UNIT=3350, // VOLUME=SER=46231,SPACE=(TRK,(20,5)) . . . //DD12 DD DSN=SET13,DISP=(NEW,KEEP),VOLUME=REF=*.DD1, // SPACE=(TRK,(40,5)) 第 16 章 データ・セット・リソース - 処理制御 203 データ・セット・リソース - 処理制御 DD1 は、システムが DD ステートメント LATER を検出するまで、データ・セッ トの定義を延期します。DD12 は DD1 を逆方向参照しなければなりません。それ は、システムが DDNAME パラメーターが指定された DD ステートメントとデー タ・セット情報を関連させるからです。 例 3 //DDA DD DDNAME=DEF // DD DSN=A.B.C,DISP=OLD // DD DSN=SEVC,DISP=OLD,UNIT=3350,VOL=SER=52226 . . . //DEF DD * data /* この例では、DDNAME パラメーターが指定されたときの正しい連結を示していま す。 チェックポイント機能を使用した処理制御 マルチボリューム入力データ・セットまたは出力データ・セットを処理していると きに、システムがボリュームの終わりに達した時点でチェックポイントを書き込む ときは、次のように指定します。 //ddname DD CHKPT=EOV,... システムは、最後のボリュームを除くすべてのボリュームについて、チェックポイ ントを書き込みます。データ・セットは、マルチボリューム QSAM または BSAM データ・セットでなければなりません。単一ボリューム QSAM または BSAM デー タ・セット、または ISAM、BDAM、BPAM、または VSAM データ・セットの場 合、チェックポイントは書き込まれません。 システムは、SYSCKEOV データ・セットにチェックポイントを書き込みます。 SYSCKEOV DD ステートメントは、CHKPT が指定された DD ステートメントと 一緒にステップに指定しなければなりません。そして、ステップがデータ・セット に書き込まれたチェックポイントから再始動されるときにも、SYSCKEOV DD ステ ートメントを指定しなければなりません。 例 //S1 //D1 // //SYSCKEOV // EXEC PGM=A,RD=R DD DSNAME=OUT1,UNIT=(DISK,3),DISP=(NEW,CATLG), SPACE=(400,(50,10),VOLUME=(PRIVATE,,,3),CHKPT=EOV DD DSNAME=CK1,UNIT=3350,DISP=(MOD,KEEP), SPACE=(CYL,30,,CONTIG) サブシステムによる処理制御 サブシステムの要求 データ・セットの処理をサブシステムに要求し、そのサブシステムにパラメーター を指定するときは、次のように指定します。 //ddname //ddname 204 DD DD z/OS MVS JCL ユーザーズ・ガイド SUBSYS=subsystem-name,... SUBSYS=(subsystem-name,subparameter,...),... データ・セット・リソース - 処理制御 サブシステムは、規則に従ってサブパラメーターを処理します。 SUBSYS パラメーターを指定すると、サブシステムは、特定の DD ステートメン ト・パラメーターの重要度を変更することができます。詳細については、サブシス テムに関する資料を参照してください。 DUMMY パラメーターを指定すると、MVS はサブシステムを呼び出して、サブシ ステム・サブパラメーターの構文を検査します。構文が受け入れられると、MVS は ダミーの状況をデータ・セットに割り当てて、ダミーの要求としてその要求を処理 します。 サブシステム・データ・セットとの装置類似性を要求すると、MVS は UNIT パラ メーターの指定として SYSALLDA を置き換えます。 例 //EXSUB DD DSNAME=MYSET,DISP=OLD,SUBSYS=(PRO3,34,92) サブシステムに指定するプログラム制御ステートメント サブシステムに制御情報を指定するときは、次のように指定します。 //stepname EXEC PGM=x //label CNTL . . (program control statements) . // ENDCNTL //ddname DD SUBSYS=subsystem-name,CNTL=*.label プログラム制御ステートメントは、サブシステムに制御情報を提供します。 例 //S1 //ABC //PGC // //DD1 EXEC PGM=REPT CNTL PRINTDEV BUFNO=2-,PIMSG=YES ENDCNTL DD SUBSYS=XYZ,CNTL=*.ABC (PSF PRINTDEV JCL ステートメントについては、PSF for z/OS: Customization 参 照してください。) TCAM ジョブまたはタスクによる処理制御 通信アクセス方式 (TCAM) メッセージのデータ・セットを定義して、データ・セッ トの処理を TCAM ジョブまたは開始タスクに要求するときは、次のように指定し ます。 //ddname //ddname DD DD QNAME=procname,... QNAME=procname.tcamname,... 詳細については、ACF/TCAM Installation Reference を参照してください。 例 //DSA //DSB DD DD QNAME=MES34.TJOB,DCB=(RECFM=FB,LRECL=80,BLKSIZE=320) QNAME=MES78.TJOB 第 16 章 データ・セット・リソース - 処理制御 205 データ・セット・リソース - 処理制御 206 z/OS MVS JCL ユーザーズ・ガイド 第 17 章 データ・セット・リソース - 終了処理 表 34. データ・セット・リソースを要求するための終了処理タスク データ・セット・ タスクのためのステートメントおよびパラメーター リソースを JCL ステートメント 要求するための DD OUTPUT JCL その他の JCL タスク JES2 ステートメント JES3 ステートメント 終了処理 割り振り解除 FREE データ・セットの DISP RETPD 後処理 EXPDT 未使用の直接アク SPACE に RLSE セス・スペースの を指定 解放 ボリュームの後処 VOLUME に 理 RETAIN および PRIVATE を指定 システム管理テープ・ライブラリー・ボリュームのデータ・セットは、システム管 理と非システム管理の両方の特性を備えています。システム管理テープ・ボリュー ムのデータ・セットは、必要に応じてシステム管理 DASD データ・セットとは区 別されます。区別の必要がない場合には、システム管理データ・セットという用語 は、システム管理テープ・ボリュームのデータ・セットとシステム管理 DASD デー タ・セットの両方を指します。 割り振り解除の終了処理 システムはジョブ・ステップかジョブの終わりに、データ・セットおよびそれと関 連のあるボリュームと装置の割り振りを解除します。 動的割り振り解除 ステップの実行時にデータ・セットの割り振りを解除するときは、次のように指定 します。 //ddname DD FREE=CLOSE,... システム内で頻繁に使用されるボリュームまたは装置を再割り振りするときは、 FREE=CLOSE を使用してください。 例 //DD1 DD DSNAME=DS6,DISP=OLD,UNIT=TAPE,VOLUME=SER=111111,FREE=CLOSE データ・セットの後処理の終了処理 データ・セットの後処理の終了処理は、DISP パラメーターまたは時間 (保存期間 (RETPD) または満了日 (EXPDT) で示される) によって制御されます。 © Copyright IBM Corp. 1988, 2004 207 データ・セット・リソース - 終了処理 DISP パラメーターによって制御する後処理 システムはステップの終了の方法に応じて、使用後にデータ・セットを処理しま す。 v 正常終了の後処理 : ステップが正常に終了したときに、データ・セットの削除、 保持、受け渡し、カタログ登録、またはカタログを解除するときは、次のように 指定します。 //ddname //ddname //ddname //ddname //ddname DD DD DD DD DD DISP=(,DELETE),... DISP=(,KEEP),... DISP=(,CATLG),... DISP=(,UNCATLG),... DISP=(,PASS),... v 異常終了または条件付き後処理 : ステップが異常終了したときに、データ・セッ トの削除、保持、カタログ登録、またはカタログを解除するときは、次のように 指定します。 //ddname //ddname //ddname //ddname DD DD DD DD DISP=(,,DELETE),... DISP=(,,KEEP),... DISP=(,,CATLG),... DISP=(,,UNCATLG),... データ・セットを作成または使用するたびに、異常終了の後処理を指定してくださ い。プログラムの失敗の原因を判別するときにデータ・セットが必要になることも あるので、この後処理の指定により、プログラムの失敗後にそのデータ・セットを 保管することができます。プログラムが失敗したときに、そのエラーが発生する前 のシステム環境に復元する目的で、データ・セットを削除するときにも使用するこ とができます。これで、失敗したジョブの終結処理をしなくても再実行することが できます。 実行時の異常終了の影響 ステップが異常終了し、自動的に再始動されないと、そのデータ・セットは異常終 了の後処理で指定された通りに処理されます。異常終了の後処理が指定されていな いと、正常終了の後処理が行われます。 割り振り時の異常終了の影響 ジョブ・ステップがステップの割り振り時に失敗すると、システムはデータ・セッ トを次のとおり後処理します。 v そのステップで作成されるデータ・セットを削除します。 v そのステップより前に存在していたデータ・セットを保持します。 異常終了の後処理が指定されていない場合の影響 異常終了したステップに指定されている DD ステートメントが、前のステップでカ タログまたは保持されたデータ・セットを要求した場合やステートメントに異常終 了の後処理が指定されていない場合、システムは前のステップに指定された後処理 を使用します。 後処理における装置タイプの影響 直接アクセス上のデータ・セットとテープ上のデータ・セットとでは、システムの 後処理の方法が異なります。直接アクセス・ボリュームには、ボリューム目録 208 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 (VTOC) が入っています。VTOC には非 VSAM データ・セットと、ボリューム上 の使用可能なスペースが記述されています。 データ・セットの削除 DELETE を指定して、ステップの終了時にボリューム上のデータ・セットのスペー スを解放することを要求します。 v データ・セットが公用テープ・ボリュームにあるときは、そのテープは巻き戻さ れます。そのボリュームは、他のジョブ・ステップで使用できるようになりま す。 v データ・セットが専用テープ・ボリュームにあるときは、そのテープは巻き戻さ れて、アンロードされます。システムは KEEP メッセージを出します。 v データ・セットが専用直接アクセス・ボリュームにあるときは、そのデータ・セ ットの記述が VTOC から削除されます。ボリューム上のスペースは、他のデー タ・セットで使用できるようになります。 注: システム管理のテープ・ボリュームに残っている唯一のデータ・セットを削除 すると、システムはジョブまたはジョブ・ステップの終了時にそのボリューム にスクラッチのマークを付けます。ストレージ管理者が、ボリュームがスクラ ッチ状況に戻されたかどうかを管理します。 期限前の満了日: ある状況では、直接アクセス・ボリューム上のデータ・セットは 削除されません。すでに存在しているデータ・セットで満了日が過ぎていない場合 は、ステップが異常終了したときに DELETE の異常終了の後処理が指定されていて も、データ・セットは削除されません。 カタログ式データ・セット: カタログ式非 VSAM データ・セットを削除するとき は、システムがシステム・カタログからボリューム通し番号を入手した時点で、シ ステム・カタログ内のそのデータ・セットに関する項目が削除されます。ボリュー ム通し番号が指定されているか、DD ステートメントで参照されているときはデー タは削除されますが、その項目はカタログに残されます。 システムがカタログ式データ・セットを削除しているときにエラーが発生した場合 は、その項目がカタログに残されます。データ・セットそのものが削除されるか否 かは、エラーがいつ発生したかによって決まります。 統合カタログ機能カタログから項目を削除するときは、z/OS DFSMS: データ・セ ットの使用法 で説明している DELETE コマンドを使用してください。DELETE コ マンドを使用すると、そのデータ・セットが占有していたスペースを再割り振りで きるようになります。統合カタログ機能カタログにカタログされていないデータ・ セットについてのカタログ項目を削除するときは、z/OS DFSMSdfp ユーティリティ ー で説明している IEHPROGM の UNCATLG ステートメントを使用してくださ い。 一時データ・セット: 一時データ・セットの場合に有効な異常終了の後処理は、 DELETE だけです。DELETE 以外の後処理を指定しても、システムは DELETE を 想定します。 第 17 章 データ・セット・リソース - 終了処理 209 データ・セット・リソース - 終了処理 TSO/E バックグラウンド・データ・セット: TSO/E を実行しているステップで は、システムは DD ステートメントの後処理 DELETE を後処理 KEEP に置き換え ます。これで、TSO/E FREE コマンドで割り振り解除されたデータ・セットが削除 されないようになります。 データ・セットの保持 KEEP は、データ・セットを削除またはカタログするように要求するあとのステッ プまたはジョブまで、あるいは満了日または保存期間 (指定されていれば) が過ぎる まで、データ・セットをそのまま保持しておくようにシステムに指示します。 直接アクセス上のデータ・セットの場合には、そのデータ・セットについての VTOC 内の項目と、そのデータ・セットそのものが保持されます。テープ上のデー タ・セットの場合には、ボリュームが巻き戻されてアンロードされます。KEEP メ ッセージがオペレーターに出されます。 注: 一時データ・セットに KEEP を指定すると、システムは、後処理を PASS に変 更します。システムによる受け渡しデータ・セットの取扱方法の詳細について は、 212 ページの『データ・セットの受け渡し』を参照してください。 データ・セットのカタログ 後処理として CATLG を指定して、非 VSAM または非システム管理のデータ・セ ット、あるいはシステム管理テープ・ボリュームのデータ・セットをカタログしま す。(VSAM とシステム管理 DASD データ・セットの場合、それらが割り振られた ときにシステムが自動的にカタログします。) 新規データ・セットの場合には、システムはそのデータ・セットを保持して、それ を示す項目を次のいずれかに作成します。 v システムが決定したカタログ (ステップまたはジョブが専用カタログを指定しな い場合)。 v ステップの STEPCAT DD ステートメントに指定された専用カタログ。 SMS を使用しているときは、SMS 管理データ・セットを参照するジョブ・ステ ップに STEPCAT DD ステートメントを使用しないでください。 v ジョブの JOBCAT DD ステートメントに指定された専用カタログ (そのステップ に STEPCAT DD ステートメントが指定されていない場合)。 SMS を使用しているときは、SMS 管理データ・セットを参照するジョブに JOBCAT DD ステートメントを使用しないでください。 旧データ・セットの場合には、システムはデータ・セットを保持して、DD ステー トメントに指定されたパラメーターによって次の処置をとります。 v UNIT と VOLUME=SER を指定しないと、システムは、データ・セットを探すと きに使用するカタログを更新します。 v UNIT と VOLUME=SER を指定すると、システムはデータ・セットがカタログさ れていても、適切なシステム・マスター・カタログまたは専用カタログに新しい カタログ項目を作成します。 専用カタログには、VSAM ユーザー・カタログまたは統合カタログ機能カタログが あります。 210 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 カタログの使用方法: カタログすると、データ・セットの保管場所を記録すること ができます。さらに、データ・セットが簡単に検索できるようになります。 DSNAME パラメーターを指定し、DISP パラメーターに OLD、SHR、または MOD を指定するだけで済みます。ボリュームと装置情報は省略してください。 カタログ式データ・セットについての CATLG: すでにカタログされているデー タ・セットの場合、別のボリュームが必要になることがあれば、そのデータ・セッ トに追加するときに CATLG の後処理を指定してください。データ・セットが次の ように指定されていると、システムはカタログ項目を更新して、追加のボリューム のボリューム通し番号を入れます。 v DISP=(MOD,CATLG) v DD ステートメントにボリューム通し番号が指定されていないか、参照されてい ない。 世代別データ・セット: 発生順に保持されたカタログ式データ・セットの集まり は、世代別データ・グループ (GDG) といいます。GDG 全体が、1 つのデータ・セ ット名で保管されます。そのグループ内の各データ・セット (世代別データ・セッ トと呼ばれる) は、元の世代からどのくらい離れているのかを示す世代番号と関連 づけられています。新しい世代別データ・セットを作成するときは、CATLG の後 処理を指定してください。 システムがデータ・セットをカタログしない場合: データ・セットが問題プログラ ムによってオープンされず、次のいずれかの状態になっていると、システムはデー タ・セットをカタログしません。 v DD ステートメントによる要求が、テープ・ボリュームについての非特定要求で ある。 v DD ステートメントが 2 種記録密度オプションを指定してテープ装置にテープ・ ボリュームを要求したが、DCB パラメーターの DEN サブパラメーターに密度を 指定していない。 データ・セットのカタログ不可能によるジョブの終了: 割り振り解除されたバッ チ・データ・セットのデータ・セット後処理時にシステムが下記の処置を取ること ができない場合、ご使用のシステム・オプションにジョブの終了が指定されている と、システムはジョブを終了します。 v CATLG の後処理が指定されている新規データ・セットをカタログすること。 v CATLG の後処理が指定された、カタログされていない旧データ・セットをカタ ログすること。 v ボリューム・リストが拡張されて、後処理 CATLG、KEEP、または PASS が指 定された旧カタログ式データ・セットを再カタログすること。 v SMS 管理の世代別データ・セットを GDG 基底に入れること。 FREE=CLOSE を指定して、データ・セットがクローズされるときに割り振り解除さ れると、ご使用のシステム・オプションは適用されません。 データ・セットのカタログ解除 非 VSAM または非システム管理のデータ・セット、またはシステム管理のボリュ ーム上のデータ・セットを記述している項目をカタログから削除するには、後処理 として UNCATLG を指定してください。UNCATLG を指定しても、データ・セッ 第 17 章 データ・セット・リソース - 終了処理 211 データ・セット・リソース - 終了処理 トは削除されません。カタログ内の参照だけが除去されます。後のジョブまたはス テップでそのデータ・セットを要求するときは、DD ステートメントにボリューム 情報を指定しなければなりません。JCL を使用してシステム管理 DASD データ・ セットをカタログ解除することはできないので、注意してください。 データ・セットの受け渡し ジョブ内の複数のステップに同じデータ・セットが必要なときは、そのデータ・セ ットの各 DD ステートメントでそのデータ・セットを後のステップに渡すことがで きます。データ・セットは、1 つのジョブ内でしか渡すことはできません。デー タ・セットを同じステップ内で受け渡しすることはできません。 渡すために: データ・セットを渡すときは、正常終了の後処理として PASS を指定 してください。異常終了の後処理として PASS を指定することはできません。ジョ ブ内で最後に使用されるまで、データ・セットが必要になるたびに PASS を指定し ます。データ・セットについての最後の DD ステートメントを使用して、最終の後 処理をデータ・セットに割り当てます。 受け取るために: 受け渡しデータ・セットを受け取るときは、ボリューム通し番号 またはボリューム参照を指定しないで、DD ステートメントにデータ・セット名を 指定してください。 同じデータ・セットの参照の有無にかかわらず、同じ名前のデータ・セットを同じ ジョブ内で受け渡しすることができます。後処理に DELETE が指定されたデータ・ セットを受け取る場合、同じ名前のデータ・セットを渡された順序で受け取りま す。後処理に PASS が指定されたデータ・セットを受け取る場合、後続のステップ で同じ名前のデータ・セットを受け取ろうとすると、データの消失の可能性などの ような予想できない結果が生じます。 受け渡しデータ・セットを受け取る回数が渡される回数を超えてはなりません。 受け渡しデータ・セットを受け取ると、その受け渡しデータ・セットの情報は受け 取る側のステップ、またはそれ以降のステップの DD ステートメントでは使用する ことができなくなります。したがって、受け渡しデータ・セットを参照する VOLUME=REF パラメーターは、受け取る側の DD ステートメントの前の DD ス テートメントに指定しなければなりません。たとえば、次の場合がこれに当たりま す。 //JEX //S1 //DA // //S2 //DB // //DC /* JOB ACCT27,’GALE RUCINSKI’ EXEC PGM=A DD DSNAME=MYDATA,DISP=(NEW,PASS), SPACE=(800,15),UNIT=DISK EXEC PGM=B DD DSNAME=REPT,DISP=(NEW,PASS), SPACE=(800,15),UNIT=DISK,VOLUME=REF=MYDATA DD DSNAME=*.S1.DA,DISP=SHR SMS 永続データ・セットの場合、受け渡しデータ・セットの受け取りについての制 約事項は適用されません。すべての SMS 管理永続データ・セットはカタログされ るので、通常のカタログ探索で探すことができます。 212 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 JES3 システムにおいて、データ・セットが追加のボリュームに拡張された場合、 そのデータ・セットを受け取る DD ステートメントには UNIT=AFF=ddname を指 定してください。こうしておくと、JES3 は拡張されたデータ・セットに追加の装置 が必要であることを認識します。 渡す側のステップが異常終了した場合: 実行時にデータ・セットを渡す側のステッ プが異常終了しても、受け渡しデータ・セットは渡されます。したがって、 COND=EVEN または COND=ONLY を指定したために実行される後続のステップ が、受け渡しデータ・セットを受け取って処理することができます。受け渡しデー タ・セットをジョブの終わりまで受け取れないと、システムはその受け渡しデー タ・セットに異常終了の後処理 (指定されている場合) を実行します。 受け取られなかった受け渡しデータ・セットの後処理: 後のステップが受け渡しデ ータ・セットを受け取らないと、ジョブの終わりでシステムはそのデータ・セット を、受け取られなかった受け渡しデータ・セットとして処理します。その結果、ジ ョブの実行中にそのデータ・セットがカタログされていても、そのデータ・セット は、意図に反して削除されてしまいます。次に例示します。 例 : データ・セット「dsname」は、ジョブ開始時には存在せず、ジョブ実行中に作 成されカタログされるものですが、渡されても受け取らないとカタログを解除 されて削除されます。 //Step1 EXEC PGM=pgmname1 //DD1 DD DSN=dsname,DISP=(NEW,CATLG,DELETE) //* //Step2 EXEC PGM=pgmname2 //DD2 DD DSN=dsname,DISP=(OLD,PASS,DELETE) //* //Step3 EXEC PGM=pgmname3 //Step4 EXEC PGM=pgmname4 //DD4 DD DSN=dsname,DISP=(OLD,PASS,DELETE) Step1 が終了すると、データ・セット「dsname」はカタログされます。Step2 が終了しても「dsname」はまだカタログされています。Step3 が異常終了する と、「dsname」はジョブ処理の終了過程で削除されます。というのは、Step2 がこれを渡したけれども、後続ステップが受け取らないため、および Step2 の 異常終了時後処理が DELETE になっているためです。 これを避けるためには、前のジョブか、またはこのジョブの前のステップでカ タログ式データ・セットが作成されているかどうかにかかわらず、カタログ式 データ・セットに PASS を指定しないでください。正しい JCL は次のように なります。 //Step1 EXEC PGM=pgmname1 //DD1 DD DSN=dsname,DISP=(NEW,CATLG,DELETE) //* //Step2 EXEC PGM=pgmname2 //DD2 DD DSN=dsname,DISP=(OLD,KEEP,DELETE) //* //Step3 EXEC PGM=pgmname3 //Step4 EXEC PGM=pgmname4 //DD4 DD DSN=dsname,DISP=(OLD,KEEP,DELETE) 第 17 章 データ・セット・リソース - 終了処理 213 データ・セット・リソース - 終了処理 異常終了の後処理が指定された場合の異常終了時: ジョブ・ステップが異常終了す ると、渡されたときに異常終了の後処理が指定されている、受け取られなかったデ ータ・セットは、その異常終了の後処理に指定された通りに処理されます。 たとえば、新規データ・セットに DISP=(,PASS,CATLG) を指定しているものとしま す。このステップ、またはこれ以降の、受け取る側のステップより前のステップが 実行時に異常終了すると、システムは CATLG の異常終了時の後処理に指定されて いるようにデータ・セットをカタログしようとします。 非システム管理のデータ・セットおよびシステム管理テープ・ボリュームのデー タ・セットは、異常終了の後処理で指定した通りには処理されません。異常終了の 後処理に専用カタログの更新が必要な場合には、システムは次のように場合に応じ た処理を行います。 1. 最初のレベルの修飾子がカタログ名または別名であるデータ・セットに CATLG が指定されている場合、システムはデータ・セットをカタログしません。 2. 最初のレベルの修飾子がカタログ名または別名であるデータ・セットにカタログ 式データ・セットの UNCATLG または DELETE が指定されている場合、シス テムはそのデータ・セットをカタログから外しません。 3. 修飾子をもたないデータ・セット、またはカタログ名ではない修飾子をもつデー タ・セットに CATLG が指定されている場合、システムはそのデータ・セット をマスター・カタログにカタログします。 4. 修飾子をもたないデータ・セット、またはカタログ名ではない修飾子をもつデー タ・セットに UNCATLG または DELETE が指定されている場合、システムは そのデータ・セットをマスター・カタログから外します。 異常終了の後処理が指定されていない場合の異常終了時: ジョブ・ステップの実行 前にそれまでのジョブ・ステップがどれも異常終了していなければ、システムは、 (NEW,PASS) が指定されていて異常終了の後処理が指定されていない、受け取られ なかった受け渡しデータ・セットをすべて削除します。システムは他のデータ・セ ットをすべて保持します。満了日または保存期間を超えていなくても、システムは これらのデータ・セットを削除します。 実行前に異常終了した場合: たとえば、装置とボリュームまたは直接アクセス・ス ペースを割り振るときなど、実際にステップが実行される前に異常終了すると、シ ステムは DD ステートメントに指定された後処理を無視します。システムは既存の データ・セットを保持して、新規データ・セットを削除します。 ジョブの終了時における削除: 受け取られなかった受け渡しデータ・セットがジョ ブの終了時に削除されると、システムは動的割り振りを実行して、削除のために装 置とボリュームを割り振ります。JOB ステートメントの MSGLEVEL パラメーター またはご使用のシステムでのデフォルトによって、システムはこれらのデータ・セ ットについての割り振りメッセージを出します。 複数回呼び出されるプロシージャーの場合: 1 つのジョブ内で 2 回以上呼び出さ れるプロシージャーで、同じデータ・セットを受け取るよりも渡される回数の方が 多いと、問題が発生することがあります。これは、次の例で示します。 カタログ・プロシージャー MYPROC: //STEP1 EXEC PGM=IEFBR14 //DD1 DD DSNAME=&A,DISP=(NEW,PASS), 214 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 // //DD2 DD // //STEP2 EXEC //DD3 DD SPACE=(TRK,(1,1)),UNIT=SYSDA DSNAME=*.DD1,DISP=(OLD,PASS), VOL=REF=*.DD1 PGM=IEFBR14 DSNAME=&A,DISP=(OLD,DELETE) 入力ストリーム: //JOBEX JOB //S1 EXEC PROC=MYPROC //S2 EXEC PROC=MYPROC DD1 と DD2 はデータ・セット &A を渡します。DD3 はデータ・セット &A を 受け取ります。このプロシージャーの実行後、データ・セット &A についての項目 の 1 つは、受け取られないまま残ります。 このプロシージャーが次に呼び出されるときに、DD3 はプロシージャーの最初の実 行からデータ・セット &A を受け取ります。これによって間違ったデータが渡され るか、異常終了する可能性があります。データ・セット &A をこのジョブ内で 2 回受け取らない場合には、&A はジョブの終了時点で、受け取られなかった受け渡 しデータ・セットとして処理されます。 デフォルトの後処理 DISP パラメーターまたはそのサブパラメーターのどれか 1 つを省略すると、シス テムはデフォルト値を提供します。 データ・セットの状況を省略すると、システムは NEW を仮定します。2 番目また は 3 番目のサブパラメーターを省略すると、システムはデータ・セットの状況に従 ってデータ・セットの処理方法を決めます。 v ジョブの前から存在していたデータ・セットは、自動的に保持されます。システ ムはこのデータ・セットの状況が OLD、SHR、またはボリューム情報が指定され た MOD であると、既存のデータ・セットとして処理します。 v ジョブ内で作成されたデータ・セットは自動的に削除されます。システムはこの データ・セットの状況が NEW、省略、またはボリューム情報なしの MOD であ ると、新しく作成されたデータ・セットとして処理します。 後処理のう回 ダミー・データ・セットとしてデータ・セットを定義すると、システムは DISP パ ラメーターが指定されていてもそれを無視し、後処理を実行しません。 存在しないデータ・セットの後処理 存在しないデータ・セットについて、OLD、SHR、または MOD の状況サブパラメ ーターを DD ステートメントに指定すると、DD ステートメントに VOLUME およ び UNIT 情報を指定したかどうかによって、処理は続行します。 VOLUME と UNIT を指定した場合: VOLUME と UNIT を DD ステートメント に指定すると、問題プログラムがデータ・セットをオープンしようとするときに JCL エラーが発生します。それ以外の場合、データ・セットの後処理は DISP 正常 終了の後処理によって異なります。 v 正常終了の後処理が KEEP の場合、ジョブ・ログにはデータ・セットが保持さ れたことが示されます。 第 17 章 データ・セット・リソース - 終了処理 215 データ・セット・リソース - 終了処理 v 正常終了の後処理が CATLG でそのデータ・セット名のカタログ項目が存在する 場合、データ・セットが再カタログされないことを示すエラー・メッセージが出 されます。 そのデータ・セット名についてのカタログ項目がないときに、装置情報、ボリュ ーム通し番号、および記録方式または密度 (テープ・データ・セットの場合) を指 定すると、システムはデータ・セットをカタログします。テープ・データ・セッ トの場合、適切な密度または記録方式の情報を指定しないと (密度と記録方式が 必要な場合) 、データ・セットがカタログされていないことを示すエラー・メッ セージが出されます。 v 正常終了の後処理に UNCATLG を指定し、そのデータ・セット名についてのカ タログ項目があると、システムはデータ・セットをカタログから外します。 そのデータ・セット名についてのカタログ項目がないと、データ・セットがカタ ログから外されていないことを示すエラー・メッセージが出されます。 v 正常終了の後処理に PASS が指定されていると、システムはデータ・セットを 渡します。 v 正常終了の後処理に DELETE が指定されていると、ジョブ・ログにはシステム がそのデータ・セットを削除していないことが示されます。ただしジョブ・ステ ップの条件コードには影響せず、JCL エラーにもなりません。 VOLUME および UNIT を指定しなかった場合: DD ステートメントに VOLUME と UNIT を指定せず、データ・セットがカタログされていないと、JCL エラーにな ります。データ・セットがカタログされていて、問題プログラムがそのデータ・セ ットをオープンしようとすると、JCL エラーになります。データ・セットがカタロ グされていて、問題プログラムがそのデータ・セットをオープンしない場合は、 DISP 正常終了の後処理によって後処理が行われます。 v 正常終了の後処理に KEEP、CATLG、UNCATLG、または PASS を指定する と、 215 ページの『VOLUME と UNIT を指定した場合』で説明した 3 つのサブ パラメーターそれぞれと同じデータ・セット後処理が行われます。 v 正常終了の後処理に DELETE を指定すると、システムはデータ・セットをカタ ログから外します。ジョブ・ログには、データ・セットが削除されなかったこと が示されます。 例 1 //DISPJ //S1 //D1 //D2 //D3 // //D4 // //S2 //D5 // JOB EXEC DD DD DD 158765,’SECT. 27’ PGM=IEFBR14 DSN=ABC,DISP=(SHR,KEEP) DSN=SYSA,DISP=(OLD,DELETE,UNCATLG) DSN=SYSB,UNIT=3350,VOL=SER=335001, SPACE=(CYL,(4,2,1)),DISP=(NEW,CATLG,KEEP) DD DSN=&&SYS1,DISP=(MOD,PASS),UNIT=3350, VOL=SER=335004,SPACE=(TRK,(15,5,1)) EXEC PGM=IEFBR14 DD DSN=&&SYS1,DISP=(MOD,DELETE),UNIT=3350, VOL=SER=335004,SPACE=(TRK,(15,5,1)) 1. D1 は、すでに存在していて他のジョブと共用できるデータ・セットを要求しま す。これは、ステップ S1 の終了時にボリュームに保持されます。 216 z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 2. D2 はすでに存在していて、他のジョブと共用できないデータ・セットを要求し ます。これは S1 の終了時に削除されますが、S1 が異常終了すると保持されて カタログから外されます。 3. D3 は、3350 直接アクセス記憶装置のボリューム 335001 に割り当てる新規デー タ・セットを定義します。このデータ・セットは S1 が正常終了するとボリュー ムに保持されてカタログされますが、S1 が異常終了すると保持されてもカタロ グされません。 4. D4 は、このジョブ・ステップ内で作成される一時データ・セットを定義しま す。このデータ・セットは 3350 のボリューム 335004 に割り当てられて、15 の主トラック、5 つの 2 次トラック、および 1 つのディレクトリー・レコード が割り振られます。このデータ・セットは、このジョブ内の後のステップで使用 されるために渡されます。 5. D5 は、S1 の D4 によって渡される一時データ・セットを要求します。S2 が完 了すると、データ・セットは削除されます。 例 2 //PASS //S1 //DD1 // //DD2 //DD3 //DD4 //S2 //DD5 //DD6 //DD7 //DD8 //S3 //DD9 JOB ,’BILL H.’ EXEC PGM=IEFBR14 DD DSN=A,DISP=(NEW,PASS),VOL=SER=335000, UNIT=3350,SPACE=(TRK,1) DD DSN=A,DISP=(OLD,PASS),VOL=REF=*.DD1 DD DSN=B,DISP=(OLD,PASS),VOL=SER=335000,UNIT=3350 DD DSN=B,DISP=(OLD,PASS),VOL=SER=335001,UNIT=3350 EXEC PGM=IEFBR14 DD DSN=A,DISP=OLD DD DSN=A,DISP=OLD DD DSN=B,DISP=OLD DD DSN=B,DISP=(OLD,PASS) EXEC PGM=IEFBR14 DD DSN=B,DISP=OLD 1. DD1 と DD2 は同じデータ・セットを渡します。DD5 と DD6 はその同じデー タ・セットを受け取ります。 2. DD3 と DD4 は、同じ名前の違うデータ・セットを渡します。DD7 は、DD3 か ら渡されたデータ・セットを受け取ります。DD8 は、DD4 から渡されたデー タ・セットを受け取ります。DD8 は、もともと DD4 から渡されたデータ・セ ットを引き続き渡します。 3. DD9 は、DD8 から渡されたデータ・セットを受け取ります。 時間による後処理の制御 データ・セットを作成するときは、保存期間または満了日を指定して、そのデー タ・セットを保持する期間をシステムに指示してください。 RETPD または EXPDT DD パラメーターを使用します。 //ddname //ddname or //ddname DD DD RETPD=nnnn,... EXPDT=yyddd,... DD EXPDT=yyyy/ddd,... 期間が満了するまで、システムは直接アクセス・スペース上のデータ・セットを削 除したり、上書きしたりしません。データ・セットについての DD ステートメント に (DISP=(NEW,DELETE) 以外の) DELETE の後処理が指定されていても同じで す。満了日または保存期間に達すると、データ・セットは削除の対象になります。 第 17 章 データ・セット・リソース - 終了処理 217 データ・セット・リソース - 終了処理 データ・セットの満了日が今日であると、そのデータ・セットは満了しているもの と見なされます。システムは DD ステートメントで要求があると、そのデータ・セ ットを削除するか、上書きします。 満了日または保存期間前の削除 満了日または保存期間が満了する前にデータ・セットを削除する必要があるとき は、次のいずれかの処置を取ってください。 v VSAM カタログ内にカタログされたデータ・セットの場合には、DELETE コマン ドを使用してください。こうすると、データ・セットが占有していたスペース を、再割り振りに使用できるようになります。z/OS DFSMS カタログのためのア クセス方式サービス・プログラム を参照してください。 v 非 VSAM カタログ内にカタログされたデータ・セットの場合には、z/OS DFSMSdfp ユーティリティー で説明されている IEHPROGM ユーティリティーを 使用してカタログ項目を削除してください。 v データ・セット制御ブロックの場合には、OVRD パラメーターを指定した SCRATCH マクロを使用してください。こうすると、データ・セットが占有して いたスペースを、再割り振りに使用できるようになります。z/OS V1R6.0 DFSMSdfp: 拡張サービス を参照してください。 例 //D3 // //D4 // DD DSNAME=DSDEF,DISP=(NEW,KEEP),UNIT=3350, VOLUME=SER=668888,SPACE=(TRK,(1,1)),EXPDT=2006/032 DD DSNAME=DSFS.PGM,DATACLAS=DCLAS2,DISP=(NEW,KEEP), EXPDT=2006/032 終了処理における未使用の直接アクセス・スペースの解放 出力データ・セットに割り振られたが使用されなかった直接アクセス・スペースを 解放するように要求するときは、次のように指定します。 //ddname //ddname //ddname DD DD DD SPACE=(TRK,(quantity),RLSE),... SPACE=(CYL,(quantity),RLSE),... SPACE=(blklgth,(quantity),RLSE),... システムはデータ・セットが出力用にオープンされて、最後の操作が書き込みであ った場合にのみ、スペースを解放します。ステップが異常終了すると、スペースを 解放しません。次の場合は、未使用のスペースの解放要求を無視します。 v 別のジョブがそのデータ・セットを共用している場合 v 同じジョブ内の別のタスクが、そのデータ・セットの OPEN、CLOSE、EOV、ま たは FEOV 要求を処理している場合。 v そのデータ・セットに対して別のデータ制御ブロックがオープンされている場合 v CLOSE マクロ命令に TYPE=T が指定されている場合 例 //DD3 // 218 DD DSNAME=DEPTDS,DISP=(NEW,KEEP),UNIT=DISK, SPACE=(CYL,20,RLSE) z/OS MVS JCL ユーザーズ・ガイド データ・セット・リソース - 終了処理 ボリュームの後処理の終了処理 データ・セットが入っているテープまたは直接アクセス・ボリュームの後処理は、 次のように指定して制御します。 //ddname //ddname //ddname DD DD DD VOLUME=(PRIVATE,RETAIN,...),... VOLUME=(PRIVATE,...),... VOLUME=(,RETAIN,...),... RETAIN サポート RETAIN は、テープの場合のみに指定することができます。 JES3 システムにおいては、RETAIN をサポートするのは MVS だけです。MVS 管 理のテープ装置のデータ・セットについての DD ステートメントにこれを指定する と、システムは保存されるものとしてボリュームを指定します。JES3 管理のテープ 装置のデータ・セットについての DD ステートメントにこれを指定すると、JES3 は KEEP/RETAIN メッセージを出して、ジョブの終了時に割り振り解除するときに RETAIN パラメーターを無視します。ただし、JES3 管理のテープ装置のデータ・セ ットに RETAIN を指定し、そのテープ・ボリュームを後のステップで共用する場合 は、JES3 はそのボリュームを保存として指定します。 取り外し可能ボリュームの後処理 取り外し可能直接アクセス・ボリュームまたはテープ・ボリュームを専用として指 定すると、システムはステップの終わりにそのボリュームを取り外して、ご使用の システム・ライブラリーに入れるようにオペレーターに指示します。 取り外し可能直接アクセス・ボリュームまたはテープ・ボリュームを公用として指 定すると、システムは装置を他に割り振る必要がない限り、他のジョブが使用でき るようにマウントしたままにしておきます。 JES2 におけるテープ・ボリューム テープ・ボリュームを処理するときに、JES2 システムは次のマークを付けます。 v 保持 (K): ボリュームは、ご使用のシステム・テープ・ライブラリーに入れられ ます。K は専用テープ・ボリュームを示します。 v スクラッチ (D): DD ステートメントにテープ・ボリュームについての非特定要求 が指定されているときは、いつでもボリュームを使用することができます。D は 公用テープ・ボリュームを示します。 例 ボリュームを専用として扱い、取り外して保持する場合: //EX1 //EX2 //EX3 DD DD DD DSNAME=A,DISP=(NEW,KEEP),VOLUME=PRIVATE,UNIT=TAPE DSNAME=B,DISP=OLD,VOLUME=SER=223344,UNIT=DISK DSNAME=H,DISP=OLD ボリュームを公用として扱い、他からも使えるようにマウントしたままにする場合: //EX4 //EX5 DD DD DSNAME=D,UNIT=TAPE DSNAME=&&TEMP,UNIT=DISK 第 17 章 データ・セット・リソース - 終了処理 219 データ・セット・リソース - 終了処理 ボリュームの保存 ボリュームに下記のいずれかが入っていると、システムはテープ・ボリュームを保 存 (R) として指定します。 v 受け渡しデータ・セット v VOLUME パラメーターに RETAIN を指定した DD ステートメントによって要 求されたデータ・セット 保存された専用テープ・ボリューム RETAIN を指定するかデータ・セットが渡されると、システムはボリュームを R として扱い、取り付けられたボリュームを外しません。そしてデータ・セットがク ローズされるとき、またはステップが終了するときに、テープを巻き戻しません。 保存された公用テープ・ボリューム RETAIN を指定するかデータ・セットが渡されると、システムはボリュームを R として扱いますが、そのボリュームを取り外して後で使用できるように手元に置く ようにオペレーターに指示します。 保存されたボリュームの使用方法 複数ステップからなるジョブでは、ボリュームが使用されない期間があるときは、 RETAIN を指定してボリュームをマウントしたままにしておくことができます。ボ リュームをマウントしたままにしておけば、オペレーターはそのボリュームを取り 外す必要もマウントし直す必要もありません。そして、ジョブはボリュームが再マ ウントされるまで待機する必要もありません。 渡されるか保存されるボリュームの取り外し RETAIN または後処理 PASS を指定しても、オペレーターはボリュームをアンロー ドすることができます。あるいは同じジョブか別のジョブ内の別のステップで装置 が必要になると、システムはその装置の割り振りおよびボリュームの取り外しを行 うことができます。ボリュームを取り付けている装置が RETAIN の指定されたジョ ブ・ステップに割り振られないとき、またはラベルなしテープの場合でボリューム を検査する必要があるときに、上記のいずれかの状態になります。 例 //EXDD // DD DSNAME=TAPEDS,DISP=(NEW,CATLG,DELETE),UNIT=3420, VOLUME=(PRIVATE,RETAIN) 注: CLOSE オプションにより RETAIN を上書きすることができます。z/OS DFSMS Macro Instructions for Data Sets の CLOSE マクロの説明を参照してください。 220 z/OS MVS JCL ユーザーズ・ガイド 第 5 部 SYSOUT データ・セット・リソースを要求するためのタ スク ここでは、システム出力 (SYSOUT) データ・セットを作成する方法について説明し ます。システム出力データ・セットは、JES2 または JES3 によって処理される出力 データ・セットです。SYSOUT データ・セットを要求するときに必要なタスクは、 次のとおりです。 v 識別 オプショナルで、次のタスクを実行することができます。 v 記述 v 保護 v パフォーマンス制御 v 処理制御 v 終了処理 v 出力宛先 v 出力のフォーマット設定 v 出力の制限 出力の処理 : 出力データ・セットを処理する方法は次の 2 通りがあります。 v SYSOUT データ・セットとその処理方法を定義して、ジョブ入力サブシステムが そのデータ・セットを処理できるようにします。JES は、データ・セットをスプ ール装置に書き出します。次に JES または外部書き出しプログラムは、ローカル またはリモート・プリンターまたは穿孔装置でそれを印刷または穿孔します。あ るいは JES はリモート出力装置またはノードにそれを伝送します。 v 出力データ・セットを定義して、出力を書き出す装置を DD ステートメント UNIT パラメーターに指定します。システムは、その装置をそのジョブが専有す るように割り振ります。データ管理ルーチンは、プログラムから指定の装置に出 力を書き出します。 ここでは、SYSOUT データ・セットの定義と処理方法について説明します。 © Copyright IBM Corp. 1988, 2004 221 第 5 部 SYSOUT データ・セット・リソースを要求するためのタスク 222 z/OS MVS JCL ユーザーズ・ガイド 第 18 章 SYSOUT リソース - 識別 表 35. SYSOUT データ・セット・リソースを要求するための識別タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL CLASS JOB に MSGCLASS を指定し、さらに SYSOUT=* または CLASS=* および SYSOUT=(,) を指定 JES2 ステートメント JES3 ステートメント 識別 SYSOUT デー SYSOUT タ・セットとして 名前 (最後の修飾 子) DSNAME 出力クラスの SYSOUT にクラ スを指定 3540 ディスケッ DSID ト入出力装置にお けるデータ・セッ トの SYSOUT データ・セットとしての識別 出力データ・セットを SYSOUT データ・セットとして定義するときは、次のよう に指定します。 //ddname //ddname //ddname //ddname //ddname DD DD DD DD DD SYSOUT=class SYSOUT=(class,writer-name,form-name) SYSOUT=(class,writer-name,code-name) SYSOUT=* SYSOUT=(,) SMS は、SYSOUT データ・セットを管理しないことに注意してください。 SYSOUT データ・セットの命名 システム生成名の最後の修飾子を SYSOUT データ・セットに割り当てるときは、 SYSOUT パラメーターと共に DSNAME パラメーターを指定します。 例 //EX1 //EX2 //EX3 //EX4 DD DD DD DD //EX5 //EX6 OUTPUT CLASS=E DD SYSOUT=(,),OUTPUT=*.EX5 © Copyright IBM Corp. 1988, 2004 SYSOUT=B,DSNAME=&&PRTREC SYSOUT=(A,,FM23) SYSOUT=(F,,CD3),DSNAME=&&PAYOUT SYSOUT=* 223 SYSOUT リソース - 識別 出力クラスの識別 ご使用のシステムでは、JES2 または JES3 の初期設定時に出力クラスをセットアッ プします。各クラスは処理特性を割り当てられて、特定の装置で印刷または穿孔さ れます。SYSOUT データ・セットの出力クラスは、次のいずれかを指定して識別し ます。 //ddname DD //jobname //stepname //ddname //name //ddname SYSOUT=class JOB acct,progname,MSGCLASS=class EXEC PGM=x DD SYSOUT=* OUTPUT CLASS=class DD SYSOUT=(,),OUTPUT=*.name たとえば、ご使用のシステムでは、出力クラス W を定義して、低い優先順位の出 力を入れることができます。クラス Y には JCL で用紙を要求する必要がないよう に、特別な用紙で印刷する出力を入れます。クラス J は、量の多い出力用に予約さ れます。 SYSOUT データ・セットとジョブからのメッセージを同じ出力リストに印刷すると きは、 68 ページの『ジョブ・ログおよび SYSOUT データ・セットの連続印刷』を 参照してください。 例 //X1 DD SYSOUT=A //JOBA JOB ,’I. BUTLER’,MSGCLASS=B //ST1 EXEC PGM=ANY //X2 DD SYSOUT=* //OUTA OUTPUT CLASS=C //X3 DD SYSOUT=(,),OUTPUT=*.OUTA 3540 ディスケット入出力装置におけるデータ・セットの識別 次のように指定すると、データ・セットは 3540 ディスケット・ボリュームに書き 出されます。 //ddname //ddname DD DD SYSOUT=(class,diskette-writer),DSID=id SYSOUT=(class,diskette-writer),DSID=(id,V) オペレーターまたは入力ストリームから出されるシステム・コマンドは、DD ステ ートメントが処理される前に、ディスケット書き出しプログラムを開始しなければ なりません。 3540 ディスケットの詳細については、3540 Programmer’s Reference を参照してく ださい。外部書き出しプログラムについては、z/OS JES2 初期設定およびチューニ ング ガイド または z/OS JES3 初期設定およびチューニング ガイド を参照してく ださい。 例 //EX7 224 DD SYSOUT=(W,WRT3540),DSID=MYDS5 z/OS MVS JCL ユーザーズ・ガイド 第 19 章 SYSOUT リソース - 記述 表 36. SYSOUT データ・セット・リソースを要求するための記述タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 記述 データ属性の DCB データ属性の記述 アプリケーション・プログラムの場合、DD ステートメントに DCB パラメーター を指定しなければならない場合もあります。また、DCB パラメーターを指定する と、アプリケーション・プログラムの動作が異なる場合があります。 SYSOUT パラメーターに外部書き出しプログラムを指定する場合、その外部書き出 しプログラムには、データ・セットを作成するときに使用した DD ステートメント に DCB パラメーターを指定しなければならない場合があります。 必須または推奨される DCB サブパラメーターについては、アプリケーション・プ ログラムまたは外部書き出しプログラムについての資料を参照してください。 例 //OUT3 © Copyright IBM Corp. 1988, 2004 DD SYSOUT=(H,WRTPGM),DCB=(RECFM=FB,LRECL=133,BLKSIZE=532) 225 SYSOUT リソース - 記述 226 z/OS MVS JCL ユーザーズ・ガイド 第 20 章 SYSOUT リソース - 保護 表 37. SYSOUT データ・セット・リソースを要求するための保護タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 保護 印刷出力の DPAGELBL SYSAREA 印刷出力の保護 SYSOUT データ・セットの印刷出力にセキュリティーを追加するときは、OUTPUT JCL ステートメントに下記のパラメーターを指定します。 //name OUTPUT DPAGELBL=YES,SYSAREA=YES 印刷出力の各ページにセキュリティー・ラベルを印刷するようシステムに指示する には、DPAGELBL=YES を使用してください。印刷出力の各ページにセキュリティ ー・ラベルのための領域を予約するようシステムに指示するには、SYSAREA=YES を使用してください。 セキュリティー・ラベルは、ご使用のシステムのセキュリティー管理者によって資 源アクセス管理機能 (RACF) に定義されたセキュリティー・レベルとカテゴリーを 示します。セキュリティー管理者の指示に従って、OUTPUT JCL ステートメントに DPAGELBL および SYSAREA パラメーターを使用してください。 例 //JOBB JOB //PSRPT OUTPUT © Copyright IBM Corp. 1988, 2004 1,’JIM WOOSTER’,SECLABEL=CONF DPAGELBL=YES,SYSAREA=YES,FORMS=TSEC 227 SYSOUT リソース - 保護 228 z/OS MVS JCL ユーザーズ・ガイド 第 21 章 SYSOUT リソース - パフォーマンス制御 表 38. SYSOUT データ・セット・リソースを要求するためのパフォーマンス制御タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント パフォーマンス制御 キュー選択による PRTY キュー選択によるパフォーマンス制御 (非 APPC) PRTY パラメーターは、APPC スケジューリング環境では無効です。PRTY を指定 すると、システムはその構文を検査しますが、無視します。 次のように指定すると、SYSOUT データ・セットが出力キューに入るときの優先順 位を指定することができます。 //name OUTPUT PRTY=nnn その優先順位を使用して、他の SYSOUT データ・セットよりも早く印刷されるよ うに、SYSOUT データ・セットの優先順位を上げてください。 優先順位の無視 ご使用のシステムでは、OUTPUT JCL ステートメントに指定された優先順位を無視 するようにシステムに指示することができます。 例 //OUTA //MYDS OUTPUT PRTY=255 DD SYSOUT=F,OUTPUT=*.OUTA この例では、最高の優先順位を要求しています。 © Copyright IBM Corp. 1988, 2004 229 SYSOUT リソース - パフォーマンス制御 230 z/OS MVS JCL ユーザーズ・ガイド 第 22 章 SYSOUT リソース - 処理制御 表 39. SYSOUT データ・セット・リソースを要求するための処理制御タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 処理制御 その他のパラメー OUTPUT ターを指定した SYSOUT にコー ド名を指定 DEFAULT セグメント化によ SEGMENT る その他のデータ・ SYSOUT にクラ セットを使用した スを指定 THRESHLD (JES3 のみ) GROUPID (JES2 のみ) WRITER 外部書き出しプロ SYSOUT に書き グラムによる 出しプログラム名 を指定 モードによる 保留による PRMODE HOLD SYSOUT にクラスを指定 CLASS OUTDISP 出力の抑止による DUMMY SYSOUT にクラ スを指定 OUTPUT に OUTDISP=PURGE を指定 チェックポイント 機能を使用した CKPTLINE CKPTPAGE CKPTSEC 印刷サービス機能 (PSF) による AFPSTATS COLORMAP COMSETUP DUPLEX FORMDEF FORMLEN INTRAY OFFSETXB OFFSETXF OFFSETYB OFFSETYF PAGEDEF PRTERROR RESFMT USERLIB USERPATH | © Copyright IBM Corp. 1988, 2004 231 SYSOUT リソース - 処理制御 表 39. SYSOUT データ・セット・リソースを要求するための処理制御タスク (続き) SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL Infoprint Server に よる その他の JCL JES2 ステートメント JES3 ステートメント MAILBCC MAILCC MAILFILE MAILFROM MAILTO PORTNO REPLYTO 追加のパラメーターを指定した処理制御 SYSOUT データ・セットの処理方法を制御するときは、DD ステートメントに SYSOUT パラメーターと共にパラメーターをいくつか指定します。追加のパラメー ターを指定するときは、次のステートメントを指定します。 それまでの OUTPUT JCL ステートメントを明示的に参照する場合 //name OUTPUT parameters //ddname DD SYSOUT=class,OUTPUT=*.name,parameters それまでのデフォルト OUTPUT JCL ステートメントを暗黙的に参照する場合 //name OUTPUT DEFAULT=YES,parameters //ddname DD SYSOUT=class,parameters OUTPUT JCL ステートメントからのパラメーターの追加 JES は、SYSOUT DD ステートメントのパラメーターと、SYSOUT データ・セット を書き出す OUTPUT JCL のパラメーターとを組み合わせます。パラメーターが両 方のステートメントに指定されていると、JES は DD ステートメントの方のパラメ ーターを使用します。 OUTPUT JCL ステートメントに、JESDS パラメーターと CLASS パラメーターの 両方があると、この CLASS は、指定された JES データ・セットについての JOB ステートメントの MSGCLASS パラメーターを上書きするので注意してください。 複数参照 SYSOUT DD ステートメントは、2 つ以上の OUTPUT JCL ステートメントを参照 することができます。OUTPUT JCL ステートメントを参照するたびに、JES は OUTPUT JCL ステートメントのうちの 1 つのパラメーターと組み合わされた DD ステートメントのパラメーターを使用して、SYSOUT データ・セットを処理しま す。 例 1 //JOB1 //OUT1 //OUT2 //STEP1 232 JOB OUTPUT OUTPUT EXEC z/OS MVS JCL ユーザーズ・ガイド ,’DEPT. 25’ COPIES=8,DEST=FRANCE COPIES=2,FORMS=A,DEFAULT=YES PGM=DEMENT SYSOUT リソース - 処理制御 //OUT3 //INPUT //MFK1 //MFK2 OUTPUT DD DD DD DEFAULT=YES,COPIES=5,DEST=REMULAC DSN=RHINO SYSOUT=A SYSOUT=B,OUTPUT=*.OUT1 この例は、OUTPUT JCL ステートメントの明示参照を示しています。明示参照を使 用するときは、デフォルトの OUTPUT JCL ステートメントがすべて無視されるこ とに注意してください。 v システムは次のような理由により、OUTPUT DD ステートメント OUT3 のオプ ションを使用して、DD ステートメント MFK1 からの出力を処理します。(1) MFK1 に OUTPUT パラメーターが指定されていないため、および (2) OUT3 に DEFAULT=YES が指定されていて、OUT3 が MFK1 と同じステップにあるため です。MFK1 はステップ・レベルのデフォルトのステートメント OUT3 が指定 されているため、ジョブ・レベルのデフォルトのステートメント OUT2 を暗黙に 参照することはできません。STEP1 に OUT3 が指定されていないときは、MFK1 はステートメント OUT2 を参照することになります。 v システムはジョブ・レベルの OUTPUT JCL ステートメント OUT1 に指定された 処理オプションに従って、DD ステートメント MFK2 からの出力を処理します。 それは、DD ステートメント MFK2 が OUTPUT パラメーターを使用して OUT1 を明示的に参照するからです。システムは、デフォルトの OUTPUT JCL ステー トメント (OUT2 および OUT3) すべてに指定された処理オプションを無視する ことに注意してください。 例 2 //EXAMP //OUT1 // //OUT2 //STEP1 //R1 //R2 //STEP2 //OUT3 //B1 //B2 //STEP3 //OUT4 //RP1 //RP2 // JOB MSGCLASS=A OUTPUT DEFAULT=YES,DEST=COMPLEX7,FORMS=BILLING, CHARS=(AOA,AOB),COPIES=2 OUTPUT DEFAULT=YES,DEST=COMPLEX1 EXEC PGM=ORDERS DD SYSOUT=A DD SYSOUT=A EXEC PGM=BILLING OUTPUT DEFAULT=YES,DEST=COMPLEX3 DD SYSOUT=A DD SYSOUT=A,OUTPUT=(*.OUT3,*.OUT2) EXEC PGM=REPORTS OUTPUT FORMS=SHORT,DEST=COMPLEX1 DD SYSOUT=A DD SYSOUT=A,OUTPUT=(*.STEP2.OUT3,*.OUT1) この例は、OUTPUT JCL ステートメントの位置が SYSOUT データ・セットの処理 にどのように影響するのかを示しています。 STEP1 では次の理由により、システムはジョブ・レベルの OUTPUT JCL ステート メント OUT1 と OUT2 に指定された処理オプションを使用して、DD ステートメ ント R1 と R2 を処理します。 v DEFAULT=YES が OUTPUT JCL ステートメント OUT1 と OUT2 に指定され ている。 v STEP1 内には、DEFAULT=YES を指定した OUTPUT JCL ステートメントがな い。 v OUTPUT パラメーターが、DD ステートメント R1 と R2 に指定されていな い。 第 22 章 SYSOUT リソース - 処理制御 233 SYSOUT リソース - 処理制御 STEP2 では次の理由により、システムは OUTPUT JCL ステートメント OUT3 に 指定された処理オプションを使用して、DD ステートメント B1 を処理します。 v DEFAULT=YES が OUTPUT JCL ステートメントに指定されていて、OUTPUT JCL ステートメント OUT3 がジョブ・ステップ STEP2 内にある。 v OUTPUT パラメーターが DD ステートメント B1 に指定されていない。 v OUTPUT JCL ステートメント OUT3 が STEP2 内にある。したがって、システ ムは DD ステートメント B1 を処理するときに、ジョブ・レベルの OUTPUT JCL ステートメント OUT1 と OUT2 に指定された DEFAULT=YES を無視しま す。 STEP2 では次の理由により、システムは OUTPUT JCL ステートメント OUT3 と OUT2 に指定された処理オプションを使用して、DD ステートメント B2 を処理し ます。 v 両方の OUTPUT JCL ステートメントは、SYSOUT ステートメントから明示的に 参照されている。明示参照される OUTPUT JCL ステートメントは、前のプロシ ージャーまたはステップ、現行のステップの DD ステートメントの前、またはジ ョブ・レベルに指定することができます。 v B2 が明示的に OUTPUT JCL ステートメント OUT3 と OUT2 を参照するの で、DD ステートメント B2 によって定義されたデータ・セットを処理するとき に、デフォルトの OUTPUT JCL ステートメント OUT1 は無視されることに注意 してください。 STEP3 では次の理由により、システムはジョブ・レベルの OUTPUT JCL ステート メント OUT1 と OUT2 に指定された出力処理オプションを使用して、DD ステー トメント RP1 を処理します。 v DEFAULT=YES が OUTPUT JCL ステートメント OUT1 と OUT2 に指定され ている。 v DEFAULT=YES を指定した OUTPUT JCL ステートメントが、STEP3 に指定さ れていない。 v OUTPUT パラメーターが DD ステートメント RP1 に指定されていない。 注: STEP3 では、OUTPUT JCL ステートメント OUT4 はまったく使用されませ ん。それは、DEFAULT=YES が指定されておらず、どの DD ステートメント も明示的に OUT4 を参照していないためです。 STEP3 では、OUTPUT ステートメント OUT3 と OUT1 を使用して、DD ステー トメント RP2 を処理します。DD ステートメント RP2 に使用した OUTPUT ステ ートメント OUT3 の参照など、完全修飾された参照を使用すると、別のステップに 指定された OUTPUT JCL ステートメントを明示的に参照することができます。 DD ステートメント RP2 からの OUT1 の参照など、DEFAULT=YES を指定した OUTPUT JCL ステートメントを明示的に参照することができます。システムは、明 示参照を指定するときに適用される通常の規則に従って、DEFAULT パラメーター を無視し残りの処理オプションを使用します。 例 3 234 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 処理制御 //STEP1 //OUT1 //OUT2 //REF1 EXEC OUTPUT OUTPUT DD PGM=MFK COPIES=6,DEST=NY,FORMS=BILLS COPIES=2,DEST=KY,FORMS=LOG SYSOUT=A,OUTPUT=(*.OUT1,*.OUT2) この例では、2 つの出力が DD ステートメント REF1 から作成されます。1 つは NY に送信されて、BILLS として定義された形式で 6 つのコピーが印刷されます。 もう 1 つは KY に送信されて、LOG として定義された形式で 2 つのコピーが印 刷されます。 JES2 /*OUTPUT ステートメントからのパラメーターの追加 JES2 は参照される /*OUTPUT ステートメントと SYSOUT DD ステートメントの パラメーターとを組み合わせて、SYSOUT データ・セットを書き出すことができま す。 OUTPUT JCL ステートメントによって出力処理能力を高めることができるので、ご 使用のシステムでは /*OUTPUT ステートメントを OUTPUT JCL ステートメント に変更することを考慮してください。 変更を行うときは、注意して行ってください。変更する前は、DD SYSOUT パラメ ーターに指定した 3 番目のサブパラメーターは、JES2 /*OUTPUT ステートメント を参照しています。しかし、DD ステートメントが OUTPUT JCL ステートメント を参照する場合、システムは 3 番目のサブパラメーターを、SYSOUT データ・セ ットを処理するときに使用される形式の名前として解釈します。 JES3 //*FORMAT ステートメントからのパラメーターの追加 JES3 //*FORMAT ステートメントは SYSOUT DD ステートメントを明示的に参照 して、SYSOUT DD ステートメントと //*FORMAT ステートメントのパラメーター を JES3 が組み合わせて、SYSOUT データ・セットを書き出すことができるように します。 OUTPUT JCL ステートメントによって出力処理能力が大きくなるので、ご使用のシ ステムでは //*FORMAT ステートメントを OUTPUT JCL ステートメントに変更す ることを考慮してください。 セグメント化による処理制御 SYSOUT データ・セットのセグメントのサイズを制御するときは、SYSOUT DD ス テートメントに SEGMENT パラメーターを指定してください。SEGMENT がサポ ートされるのは、JES2 システムだけです。 SEGMENT を指定するときは、SYSOUT データ・セットに書き出す論理行モード・ ページの数を決定してください。こうしておくと、ジョブの実行中に出力の一部を 印刷することができるようになります。また、複数のプリンターを使用して複数の セグメントを印刷することができるようになります。 //DD1 DD SYSOUT=A,SEGMENT=200 この例では、システムが SYSOUT データ・セットに 200 ページを書き出すときに セグメントがスピンされて、新しいセグメントが割り振られます。 第 22 章 SYSOUT リソース - 処理制御 235 SYSOUT リソース - 処理制御 その他のデータ・セットを使用した処理制御 出力クラスの使用方法 クラス、用紙、FCB、UCS、および DEST パラメーターが同じであり、外部書き出 しプログラムが指定されていないと、JES はジョブについてのすべての SYSOUT データ・セットからの出力を同じ出力リストに印刷します。用紙、FCB、UCS、お よび DEST パラメーターが異なっていても、ご使用のシステムでは、JOB ステート メントの MSGCLASS パラメーターと同じ出力クラスが指定された SYSOUT デー タ・セットを、すべて同じリストに印刷するようにすることができます。 例 1 //DD1 //DD2 DD DD SYSOUT=(C,,FM34) SYSOUT=(C,,FM34) DD1 と DD2 のデータ・セットは、同じ出力リストに書き出されます。 例 2 //JEX //ST1 //DDA //DDB JOB EXEC DD DD ,’M. BIRDSALL’,MSGCLASS=D PGM=WKRPT SYSOUT=* SYSOUT=D DDA と DDB の SYSOUT データ・セットは、ジョブ・ログと同じ出力リストに書 き出されます。 JES3 システムにおける SYSOUT データ・セットのサイズの使用方法 1 つのジョブから 1 つのクラスのすべての SYSOUT データ・セットを一緒に印刷 するのか、別の作業単位として印刷するのかを制御するときは、次のいずれかのグ ループを指定してください。 //name OUTPUT THRESHLD=limit //ddname1 DD SYSOUT=class,OUTPUT=*.name //ddname2 DD SYSOUT=class,OUTPUT=*.name //name OUTPUT DEFAULT=YES,CLASS=class,THRESHLD=limit //ddname1 DD SYSOUT=(,) //ddname2 DD SYSOUT=(,) JES3 は要求されたコピーの数とレコード数を掛けて、SYSOUT データ・セットの サイズを計算します。このサイズが THRESHLD 値を超えると、JES3 はデータ・セ ット境界に新しい作業単位を作成して、それを印刷のためにエンキューします。 THRESHLD の使用方法 1 つのジョブから出される同じクラス内の SYSOUT データ・セットまたはすべて の SYSOUT データ・セットが大きいか、多数のコピーが要求されると、 THRESHLD 限界値を使用して別々のプリンターで同時にコピーを印刷することがで きます。 例 //OUTA OUTPUT THRESHLD=10000 //MYDS1 DD SYSOUT=C,OUTPUT=*.OUTA,COPIES=5 //GRDS DD SYSOUT=C,OUTPUT=*.OUTA,COPIES=3 236 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 処理制御 //OUTB OUTPUT DEFAULT=YES,CLASS=C,THRESHLD=10000 //MYDS1 DD SYSOUT=(,),COPIES=5 //GRDS DD SYSOUT=(,),COPIES=3 JES2 システムにおけるグループの使用方法 JES2 システムでは次のように指定すると、SYSOUT データ・セットをまとめるこ とができます。 //name OUTPUT GROUPID=output-group 同じグループ内の SYSOUT データ・セットは、同じロケーションで同じ時間に一 緒に処理されます。 サブグループ 常に似たような処理特性をもつ SYSOUT データ・セットをまとめることができま す。しかし、出力クラス、宛先、処理モード (PRMODE)、書き出しプログラム名、 またはグループ ID が異なる SYSOUT データ・セットをまとめることはできませ ん。GROUPID を使用して、異なるデータ・セットをまとめようとすると、システ ムは同じクラス、宛先、処理モード、書き出しプログラム名、およびグループ ID を持つ SYSOUT データ・セットのサブグループにそのグループを分類します。 要求セットアップ・グループ ご使用のシステムでは、異なるプリンター・セットアップ要件 (用紙など) が指定さ れた SYSOUT データ・セットを、1 つのグループに入れることができるかどうか を制御します。そのようなグループを、要求セットアップ・グループといいます。 要求セットアップのグループ化が許可されていないと、セットアップ要件の異なる データ・セットは別のサブグループに入れられます。 例 //TEST1 JOB //OUT1 OUTPUT //STEP1 EXEC //RP1 DD //RP2 DD //RP3 DD MSGCLASS=B GROUPID=GRP10,UCS=PN,DEST=RT6,DEFAULT=YES PGM=REPORT SYSOUT=A SYSOUT=B SYSOUT=A この例では、出力クラスが異なるため 3 つの SYSOUT データ・セット用に、2 つ のサブグループが作成されます。1 つのサブグループには、データ・セット RP1 と RP3 が入っています。もう 1 つのサブグループには RP2 が入っています。 外部書き出しプログラムによる処理制御 ご使用のシステムの JES ではなく、IBM 提供の外部書き出しプログラムまたはユ ーザー作成の外部書き出しプログラムで SYSOUT データ・セットを処理するよう に要求するときは、次のいずれかを指定してください。 //ddname DD SYSOUT=(class,writer-name) //name OUTPUT WRITER=writer-name //ddname DD SYSOUT=class,OUTPUT=*.name 第 22 章 SYSOUT リソース - 処理制御 237 SYSOUT リソース - 処理制御 //name OUTPUT DEFAULT=YES,WRITER=writer-name //ddname DD SYSOUT=class 外部書き出しプログラムの場合、オペレーターがどの SYSOUT データ・セットを 選択するか決定します。こうすると用紙、FCB、UCS、および DEST パラメーター がすべて同じではなくても、特定のデータ・セットを同じリストに印刷することが できます。オペレーターは、印刷または穿孔する SYSOUT データ・セット用に、 外部書き出しプログラムを始動しなければなりません。 外部書き出しプログラムについては、z/OS JES2 初期設定およびチューニング ガイ ド または z/OS JES3 初期設定およびチューニング ガイド を参照してください。 例 //DS1 DD //OTA //DS1 OUTPUT WRITER=MYWRIT DD SYSOUT=H,OUTPUT=*.OTA //OTB //DS1 SYSOUT=(H,MYWRIT) OUTPUT DEFAULT=YES,WRITER=MYWRIT DD SYSOUT=H モードによる処理制御 SYSOUT データ・セットに正しい処理モードを要求するときは、次のいずれかを指 定してください。 //name //name //name OUTPUT PRMODE=LINE OUTPUT PRMODE=PAGE OUTPUT PRMODE=process-mode JES は、指定のモードで操作できるプリンターに SYSOUT データ・セットをスケ ジュールします。 例 //OTS //ABC OUTPUT PRMODE=PAGE DD SYSOUT=F,OUTPUT=*.OTS JES は、ページ・モードで印刷できる 3800-3 型印刷サブシステムに、データ・セ ット ABC をスケジュールします。出力クラス F は、3800-3 型における処理を行 うことができなければなりません。 保留による処理制御 データ・セットを保留にする理由には、次のようなものがあります。 v タイム・シェアリング端末装置から検査できるようにするため。 v データ・セットが非常に大規模である場合に、より小さいデータ・セットが出力 されるまで出力装置を占有しないようにするため。 v 特別な用紙が必要な場合に、オペレーターがその用紙を補給するまで印刷または 穿孔を遅らせるため。 238 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 処理制御 DD ステートメントによる保留 JES スプールにある SYSOUT データ・セットを保留にしてその印刷または穿孔を 遅らせるときは、次のいずれかを指定します。 //ddname DD SYSOUT=class,HOLD=YES または、指定したクラスが JES 初期設定で 保留クラスと指定されている場合は、 //ddname DD SYSOUT=class //name OUTPUT CLASS=class //ddname DD SYSOUT=(,),OUTPUT=*.name //name OUTPUT DEFAULT=YES,CLASS=class //ddname DD SYSOUT=(,) HOLD パラメーターは、OUTDISP パラメーターに指定された後処理をオーバーラ イドします。 OUTPUT JCL ステートメントによる保留 OUTDISP パラメーターは、JES2 の場合だけに使用してください。 ジョブの正常終了にもとづいた SYSOUT データ・セットの後処理を指定すること ができます。OUTPUT JCL ステートメントの OUTDISP パラメーターを指定する と、正常終了 SYSOUT 後処理と異常終了 SYSOUT 後処理を指定することができま す。OUTDISP 異常終了 SYSOUT 後処理は、APPC スケジューリング環境ではサポ ートされないことに注意してください。システムは、ジョブが正常に完了したとき に正常終了の後処理を使用します。JCL エラー、異常終了、または条件コードによ るジョブの終了によりジョブが正常に終了しない場合、システムは異常終了の後処 理を使用します。 たとえば、下記のステートメントを指定すると、システムはジョブが正常終了また は異常終了したときに、SYSOUT データ・セットを保留にします。 //HELDDS OUTPUT OUTDISP=(HOLD,HOLD) OUTDISP=(HOLD,HOLD) を指定することと、DD ステートメントに HOLD=YES を指定することは同等です。 OUTDISP パラメーターを指定すると、SYSOUT データ・セットに下記の後処理を 指定することができます。 v HOLD によって、システムは SYSOUT データ・セットを保留にすることができ ます。ユーザーまたはオペレーターがデータ・セットを解放すると、システムは そのデータ・セットを印刷してから除去します。 v WRITE によって SYSOUT データ・セットを印刷し、印刷後にそのデータ・セッ トを除去することができます。 v KEEP によって SYSOUT データ・セットを印刷し、保持することができます。 印刷後に、後処理は LEAVE に変更されます。 v LEAVE によって、システムはユーザーまたはオペレーターが SYSOUT データ・ セットを解放するまで、そのデータ・セットを保留にすることができます。 SYSOUT データ・セットが解放されると、後処理は KEEP に変更されます。 第 22 章 SYSOUT リソース - 処理制御 239 SYSOUT リソース - 処理制御 v PURGE によって、SYSOUT データ・セットを印刷せずに削除することができま す。 保留されたデータ・セットの解放 データ・セットが保留にされると、JES はオペレーターが解放するまで、保留キュ ーにその SYSOUT データ・セットを入れます。システムは、データ・セットを保 留にすることを示すメッセージをオペレーターに出しません。したがって、デー タ・セットを処理できるときは、そのデータ・セットを解放するようにオペレータ ーに指示するか、TSO/E OUTPUT コマンドを使用して TSO/E ユーザー ID からそ れを解放してください。TSO/E コマンドの詳細については、z/OS TSO/E コマンド 解説書 を参照してください。 例 //DD1 DD SYSOUT=C,HOLD=YES //DD2 DD SYSOUT=J //OT1 //DD3 OUTPUT CLASS=J DD SYSOUT=(,),OUTPUT=*.OT1 //OT2 //DD4 OUTPUT DEFAULT=YES,CLASS=J DD SYSOUT=(,) 以上の例では、ご使用のシステムで JES の初期設定時にクラス J を保留クラスと して定義しています。 出力の抑止による処理制御 出力を抑止するためのダミーの状況の使用方法 SYSOUT データ・セットの処理を抑止するときは、次のように指定して、そのデー タ・セットにダミーの状況を割り当てます。 //ddname DD DUMMY,SYSOUT=class,... ダミーの SYSOUT データ・セットの効果 DUMMY を指定すると、システムは SYSOUT パラメーターを無視し、スプールへ のすべての出力操作をう回します。SYSOUT データ・セットは、印刷も穿孔もされ ません。 ダミーの SYSOUT データ・セットの使用方法 SYSOUT データ・セットをダミー・データ・セットとして定義すると、プログラム をテストするときに役立ちます。希望通りの出力が出されるまで、データ・セット の印刷を行いたくないときなどです。 ダミーの SYSOUT データ・セットの無効化 SYSOUT データ・セットを処理するときは、SYSOUT DD ステートメントから DUMMY パラメーターを除去します。 例 240 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 処理制御 //EXA //EXB DD DD DUMMY,SYSOUT=A DUMMY,SYSOUT=(B,WRT),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) JES2 システムにおける出力を抑止するためのクラスの使用方法 JES2 システムにおいて SYSOUT データ・セットの印刷または穿孔を抑止するとき は、次のいずれかを指定します。 //ddname DD SYSOUT=class //name OUTPUT CLASS=class //ddname DD SYSOUT=(,),OUTPUT=*.name //name OUTPUT DEFAULT=YES,CLASS=class //ddname DD SYSOUT=(,) JES2 の初期設定時に、ご使用のシステムでは要求されたクラスに、印刷または穿孔 する前に削除されるデータ・セットを入れることを指定しなければなりません。 出力抑止の使用方法 開始タスクの出力を抑止するときは、この手法を使用します。 例 //DD2 DD SYSOUT=S //OT1 //DD3 OUTPUT CLASS=S DD SYSOUT=(,),OUTPUT=*.OT1 //OT2 //DD4 OUTPUT DEFAULT=YES,CLASS=S DD SYSOUT=(,) 以上の例では、ご使用のシステムでクラス S を出力抑止クラスとして定義していま す。 JES2 システムにおいて出力を抑止するための OUTPUT JCL ステートメ ントの使用方法 OUTDISP パラメーターの PURGE サブパラメーターを指定すると、SYSOUT デー タ・セットが印刷されないようにすることができます。 例 //NOPRT OUTPUT OUTDISP=(PURGE,PURGE) チェックポイント機能を使用した処理制御 JES が SYSOUT データ・セットを処理しているときにチェックポイントを書き込 むときは、次のいずれかを指定します。 //name //ddname //name //ddname OUTPUT DD . OUTPUT DD CKPTLINE=number,CKPTPAGE=number SYSOUT=class . CKPTSEC=number SYSOUT=class 例 1 第 22 章 SYSOUT リソース - 処理制御 241 SYSOUT リソース - 処理制御 //J2 //S1 //OT2 //DDB JOB EXEC OUTPUT DD ,MHB PGM=ABC CKPTLINE=60,CKPTPAGE=40 SYSOUT=C JES は、論理ページ 40 ページごとにチェックポイントを書き込みます。論理ペー ジには、60 行が記載されます。 例 2 //J2 //S1 //OT2 //DDB JOB ,MHB EXEC PGM=DEF OUTPUT CKPTSEC=60 DD SYSOUT=D JES は、60 秒ごとにチェックポイントを書き込みます。 印刷サービス機能による処理制御 印刷サービス機能 (PSF) によるページ・モード・プリンター (3800-3 型印刷サブシ ステムなど) への SYSOUT データ・セットの印刷方法を制御するときは、次のよう に指定します。 //name OUTPUT FORMDEF=membername,PAGEDEF=membername //ddname DD SYSOUT=class,OUTPUT=*.name FORMDEF と PAGEDEF パラメーターでは、PSF の初期化に使用するカタログ・ プロシージャーに指定したライブラリーのメンバーか、あるいは OUTPUT JCL ス テートメントの USERLIB パラメーターに指定したライブラリーのメンバーを識別 します。これらのメンバーには、PSF が SYSOUT データ・セットを処理する方法 を示すステートメントが入っています。 例 //OTPSF OUTPUT FORMDEF=FSBILL,PAGEDEF=PSLONG //MYPNT DD SYSOUT=N,OUTPUT=*.OTPSF マイクロフィルム装置に SYSOUT データ・セットを印刷する PSF を制御するに は、次のように指定します。 //name OUTPUT COMSETUP=H1SETUP COMSETUP パラメーターには、機能サブシステム (FSS) マイクロフィルム装置用 のセットアップ情報が入っているマイクロファイル・セットアップ・リソースの名 前を指定します。 PSF へのライブラリーの識別 OUTPUT JCL ステートメントの USERLIB パラメーターでは、AFP 用リソースが 入っているライブラリーを PSF に対して指示します。USERLIB に指定されたライ ブラリーは、システム・ライブラリーと連結されます。PSF は、システム・ライブ ラリーの前にそれらのライブラリーを検査して、要求されたリソースを探します。 ユーザー・ライブラリーの使用方法 USERLIB を指定すると、すべてのユーザーがアクセスできない AFP リソースのコ ピーを保持することができます。これで、下記の処置をとることができるようにな ります。 242 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 処理制御 v シグニチャーなどの保護リソースのコピーを専用データ・セットに保持します。 v テスト期間中に、テストするリソースを専用データ・セットに保持しておきま す。 v 自分のライブラリーを個人使用にして、保持します。 USERLIB パラメーターは、据え置き印刷モードでサポートされます。直接印刷モー ドではサポートされません。 ライブラリー・データ・セットに関する考慮事項 PSF は、USERLIB パラメーターに指定されたライブラリーを動的に割り振りま す。このライブラリーは、共用データ・セット後処理が指定されて、PSF アドレ ス・スペースに割り振られます。SYSOUT データ・セットが処理されてから、PSF はライブラリーを動的に割り振り解除します。USERLIB パラメーターの使用を計画 するときは、動的割り振りシステムによるパフォーマンスへの制約を考慮に入れて ください。 要件 ライブラリーについての要件は、次のとおりです。 v RACF がシステムにインストールされているときは、ジョブを実行依頼するユー ザーには、USERLIB に指定されたライブラリーへの RACF 読み取りアクセス権 がなければなりません。 v ライブラリーは、PSF/MVS が使用できるカタログにカタログされていなければな りません。 v このライブラリーは、SYSOUT データ・セットの処理時に PSF にアクセスでき なければなりません。ジョブが実行依頼された数日後に処理されることも、その ジョブを実行依頼したノード以外のノードで処理されることもあることに注意し てください。 USERLIB の詳細については、PSF/MVS Application Programming Guide を参照して ください。 第 22 章 SYSOUT リソース - 処理制御 243 SYSOUT リソース - 処理制御 244 z/OS MVS JCL ユーザーズ・ガイド 第 23 章 SYSOUT リソース - 終了処理 表 40. SYSOUT データ・セット・リソースを要求するための終了処理タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 終了処理 割り振り解除 FREE SPIN 割り振り解除の終了処理 通常は、システム管理データ・セットがすべてジョブの終了時に処理されると、 JES2 または JES3 は、1 つのジョブからのすべての SYSOUT データ・セットを印 刷または穿孔のためにスケジュールします。 データ・セットのスピン ジョブの実行が完了する前に SYSOUT データ・セットがクローズされるとき、そ のデータ・セットを印刷または穿孔のためにスケジューリングすることができま す。次のように指定します。 //ddname DD SYSOUT=class,FREE=CLOSE これらのデータ・セットは、スピン・データ・セットといいます。 クローズ後もステップの処理が続行される場合は、SYSOUT データ・セットの印刷 をそのステップの最後の実行と同時に行うことができます。 スピンの使用方法 長いジョブ・ステップが終了する前に、JES による SYSOUT データ・セットの印 刷または穿孔を開始するときは、FREE=CLOSE を使用します。 例 //STEP1 EXEC PGM=VERYLONG //SHORT DD SYSOUT=C,FREE=CLOSE SYSOUT データ・セットをすぐに印刷できるようにするには、SYSOUT DD ステー トメントに SPIN=UNALLOC を指定して、動的にデータ・セットの割り振りを解除 してください。動的割り振り解除は明示指定することも、FREE=CLOSE を通して指 定することもできます。 © Copyright IBM Corp. 1988, 2004 245 SYSOUT リソース - 終了処理 246 z/OS MVS JCL ユーザーズ・ガイド 第 24 章 SYSOUT リソース - 宛先制御 表 41. SYSOUT データ・セット・リソースを要求するための宛先制御タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 宛先制御 ローカル装置、リ モート装置、また DEST は別のノードへ SYSOUT に クラスを指定 /*ROUTE PRINT //*MAIN に ORG を指定 /*ROUTE PUNCH DEST COMPACT 別の処理装置へ //*MAIN に ACMAIN を指定 内部読み取りプロ SYSOUT の書き グラムへ 出しプログラム名 に INTRDR を指 定 端末装置へ /*EOF /*DEL /*PURGE /*SCAN TERM /*OUTPUT に DEST を指定 SYSOUT 配布を 支援するための ADDRESS BUILDING DEPT NAME ROOM TITLE ローカル装置、リモート装置、または別のノードへの宛先制御 ローカル装置、リモート装置、または別のノードに SYSOUT データ・セットを送 信するには、次のいずれかを指定します。 //ddname DD SYSOUT=class,DEST=destination //name //ddname OUTPUT DD DEST=destination,COMPACT=compaction-table-name SYSOUT=class,OUTPUT=*.name JES2 システムの場合 /*ROUTE PRINT //ddname DD /*ROUTE //ddname PUNCH DD destination SYSOUT=class destination SYSOUT=class JES3 システムでグループ、ノード、あるいはリモート・ワークステーションに送る場合 © Copyright IBM Corp. 1988, 2004 247 SYSOUT リソース - 宛先制御 //jobname //*MAIN //stepname //ddname JOB acct,progname ORG=group-or-node.remote EXEC PGM=x DD SYSOUT=class 複数の宛先 たとえば、Chicago、New York、Paris、および Los Angeles で報告書を印刷すると きは、4 つの OUTPUT JCL ステートメントを指定して参照してください。それぞ れに別の宛先を指定してください。つまり、1 つの OUTPUT JCL ステートメント には、1 つしか宛先を指定することができません。 OUTPUT JCL ステートメントを参照することにより、1 つの SYSOUT データ・セ ットに異なる宛先を 128 個指定することができます。さらに各 OUTPUT JCL ステ ートメントを使用して、それぞれの宛先についての処理オプションを指定すること ができます。 JCL 構文エラーが発生すると、システムは OUTPUT JCL ステートメントを無視 し、出力がその宛先に届かないことを覚えておいてください。 JES2 ネットワークにおける出力宛先の制御 ネットワークにおいて、任意のノードやワークステーションから任意のノードやワ ークステーションに SYSOUT データ・セットをルーティングすることができま す。 オペレーターがオーバーライドするか、宛先パラメーターを指示しないと、 SYSOUT データ・セットは実行依頼側のロケーションで印刷または穿孔されます。 SYSOUT データ・セットを別のロケーションにルーティングするときは、下記のス テートメントを使用してください。 OUTPUT JCL ステートメントの WRITER パラメーター 定義する SYSOUT データ・セットに外部書き出しプログラムを指定します。 DD SYSOUT ステートメントの WRITER-NAME サブパラメーター 定義する SYSOUT データ・セットに外部書き出しプログラムを指定します。 注: DD ステートメントの WRITER-NAME サブパラメーターにより、OUTPUT JCL WRITER パラメーターがオーバーライドされます。 電子メールおよび外部書き出しプログラムの処理 SYSOUT データ・セットの WRITER ID パラメーターおよび USERID パラメ ーターの処理は、バージョン 4 の JES2 とは異なります。宛先ユーザー ID は、外部書き出しプログラム ID ではありません。WRITER ID (外部書き出し プログラムなどの) にもとづいて出力を選択する処理では、SYSOUT の選択時 に WRITER ID パラメーターに指定した値を使用します。DESTINATION USERID (TSO/E RECEIVE など) にもとづいて出力を選択する処理では、 SYSOUT の選択時に DEST パラメーターに指定した値を使用します。 v TSO/E ユーザーは、次の場合に TSO/E コマンド RECEIVE を出して、電子 メールを入手することができます。 – SYSOUT ユーザー ID が TSO/E ユーザー ID と一致し、SYSOUT WRITER ID が指定されていない場合。 248 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 宛先制御 – SYSOUT ユーザー ID と SYSOUT WRITER ID が TSO/E ユーザー ID と一致する場合。 – SYSOUT ユーザー ID が TSO/E ユーザー ID と一致し、SYSOUT WRITER ID がその人の TSO/E ユーザー ID と一致しない場合。 v TSO/E ユーザーは、次の場合に TSO/E コマンド RECEIVE を出しても、電 子メールを入手することはできません。 – SYSOUT WRITER ID が TSO/E ユーザー ID と一致し、SYSOUT ユーザ ー ID がその人の TSO/E ユーザー ID と一致しない場合。 – SYSOUT WRITER ID が TSO/E ユーザー ID と一致し、SYSOUT ユーザ ー ID が指定されていない場合。 v 外部書き出しプログラムは、次の場合に SYSOUT を処理することができま す。 – SYSOUT WRITER ID が外部書き出しプログラム名と一致し、SYSOUT ユ ーザー ID が指定されていない場合。 – SYSOUT WRITER ID と SYSOUT ユーザー ID が外部書き出しプログラ ム名と一致する場合。 – SYSOUT WRITER ID が外部書き出しプログラム名と一致するが、TSO/E ユーザー ID が一致しない場合。 v 外部書き出しプログラムは、次の場合に SYSOUT を処理することはできませ ん。 – SYSOUT WRITER ID が指定されておらず、外部書き出しプログラム名が SYSOUT ユーザー ID と一致する場合。 – SYSOUT WRITER ID が指定されていて、外部書き出しプログラム名と一 致せず、SYSOUT ユーザー ID が外部書き出しプログラム名と一致する場 合。 ネットワーキングに関する考慮事項 NJE で受け取る出力の宛先ノードの場合 (スプール・オフロードを含む)。 v 外部書き出しプログラムと宛先ユーザー ID が指定されていて同一である場 合、ネットワーク処理時に JES2 は WRITER ID フィールドをブランクにし ます。この場合、TSO/E ユーザーは RECEIVE コマンドを出し、電子メール として SYSOUT を処理します。外部書き出しプログラムは、SYSOUT を処 理することはできません。 v 外部書き出しプログラムと宛先ユーザー ID が指定されていて、両者が異な る場合、宛先ユーザー ID と WRITER ID は、JCL に指定されているとおり に処理されます。TSO/E 宛先ユーザー ID または外部書き出しプログラム は、SYSOUT を処理することができます。 v 宛先ユーザー ID だけが指定されている場合、外部 WRITER ID は指定され ていません。TSO/E ユーザーは、そのユーザー ID が宛先 ID と一致する場 合に RECEIVE コマンドを実行することができます。外部書き出しプログラ ムは、SYSOUT を処理することはできません。 – TSO/E ユーザー「CARNEY」は受信できる - ユーザー ID が WRITER ID と一致している //CHRISBX JOB............... //CLW OUTPUT DEST=DB2.CARNEY //STEP1 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=(A,CARNEY),OUTPUT=(*.CLW) 第 24 章 SYSOUT リソース - 宛先制御 249 SYSOUT リソース - 宛先制御 $LJ,ALL コマンドは次のことを示します。 DEST=CARNEY W=CARNEY – TSO/E ユーザー「MWAI」は受信できない - TSO/E ユーザー ID と SYSOUT ユーザー ID が一致していない (WRITER ID が一致していても) //EGGBERTX //TJW //STEP1 //SYSPRINT JOB............. OUTPUT DEST=PLPSC.EGGBERT EXEC PGM=....... DD SYSOUT=(A,MWAI),OUTPUT=(*.TJW) $LJ,ALL コマンドは次のことを示します。 DEST=EGGBERT W=MWAI – TSO/E ユーザー「BERNER」は受信できる - TSO/E ユーザー ID が NJE SYSOUT の場合と一致している - ジョブは非ローカル・ノードで実行さ れる //BERNERX //ROUTE //DXP //STEP1 //SYSPRINT JOB............. XEQ SNJMAS3 OUTPUT DEST=PLPSC.BERNER EXEC PGM=....... DD SYSOUT=(A,BERNER),OUTPUT=(*.DXP) $LJ,ALL コマンドは次のことを示します。 DEST=BERNER W=(none) 注: 外部 WRITER ID は、NJE SYSOUT 処理で破棄されます。 DD SYSOUT ステートメントの DEST パラメーター 定義する SYSOUT データ・セットに宛先を指定します。 DD ステートメントの SYSOUT パラメーターの class サブパラメーター 定義する SYSOUT データ・セットに宛先を指定します。JES2 の初期設定時に は、要求されたクラスに宛先を定義しておかなければなりません。 OUTPUT JCL ステートメントの DEST パラメーター すべての参照する SYSOUT データ・セットに宛先を指定します。 /*ROUTE PRINT または PUNCH ステートメントの DEST パラメーター 任意のノードまたはリモート・ワークステーションに、ジョブの SYSOUT デー タ・セットの宛先を指定します。特定の宛先が指定されていない SYSOUT デー タ・セットはすべて、/*ROUTE ステートメントに指定された宛先に行きます。 注: 実行のためにジョブを送信するときに、そのジョブに ROUTE PRINT RMTnnn ステートメントまたは ROUTE PRINT Unnnn ステートメントが指 定されていると、JES2 は発信したノードの RMTnnn または Unnnn にその 出力を戻します。JES2 が実行側のノードの RMTnnn に出力を印刷するに は、OUTPUT JCL ステートメントまたは SYSOUT DD ステートメントに DEST=NnnnRmmm を指定してください。 250 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 宛先制御 デフォルトの出力宛先 データ・セットの宛先を特に /*OUTPUT 制御ステートメント、または JCL OUTPUT または DD ステートメントに指定すると、指定された宛先が使用され ます。ただし、リモート端末装置にルーティングされたデータ・セットは、リモ ート・オペレーターが制御することはできません。そのようなデータ・セット は、ジョブのデフォルトとして指定されたロケーションで所有されます。 宛先が指定されていないデータ・セットの場合、デフォルトの宛先は、ジョブを システムに入れた装置によって決められます。 内部読み取りプログラムの場合には、内部読み取りプログラムの割り振り用の DEST パラメーターによってデフォルトの宛先が決まります。DEST パラメータ ーを指定しないと、出力のデフォルトの宛先は、ジョブが最初に実行依頼された ロケーションになります。たとえば、NODEA で実行依頼されたジョブは、実行 のために NODEB にルーティングすることができます。ただし、DEST パラメ ーターに NODEB またはそれ以外のロケーションが指定されていないと、出力 は NODEA に戻されます。 例 //DDFAR1 DD SYSOUT=E,DEST=NYC //DDFAR2 DD SYSOUT=F //OTFAR OUTPUT DEST=NYC,COMPACT=TABCM //DD1 DD SYSOUT=E,OUTPUT=*.OTFAR /*ROUTE PRINT NYC //DD3 DD SYSOUT=E /*ROUTE PUNCH NYC //DD4 DD SYSOUT=P 2 番目の例では、JES2 の初期設定時に、Los Angeles にあるノードなどの宛先を出 力クラス F に定義しなければなりません。 JES3 ネットワークにおける出力宛先の制御 ネットワークにおいて、任意のノードやワークステーションから任意のノードやワ ークステーションに SYSOUT データ・セットをルーティングすることができま す。 下記の状態ではない限り、SYSOUT データ・セットは実行依頼側のロケーションで 印刷または穿孔されます。 v ジョブは TSO から実行依頼されて、実行のために NJE ネットワークにルーティ ングされました。//*MAIN ORG パラメーターでオーバーライドしたり、または 宛先パラメーターで指示していない限り、SYSOUT データ・セットはジョブが実 行依頼されたノードと宛先 ANYLOCAL にルーティングされます。 v SYSOUT データ・セットの宛先が、MAIN ステートメントの ORG パラメーター または宛先パラメーターによって変更されました。 SYSOUT データ・セットを別のロケーションにルーティングするときは、下記のス テートメントを使用してください。 第 24 章 SYSOUT リソース - 宛先制御 251 SYSOUT リソース - 宛先制御 DD SYSOUT ステートメントの DEST パラメーター 定義する SYSOUT データ・セットに宛先を指定します。 OUTPUT JCL ステートメントの DEST パラメーター すべての参照する SYSOUT データ・セットに宛先を指定します。 //*MAIN ステートメントの ORG パラメーター 起点グループ、ネットワーク・ノード、またはリモート・ワークステーション を、ジョブの SYSOUT データ・セットに指定します。 JES3 においてリモート・ジョブ処理を行うときの出力宛先 リモート・ワークステーションからリモート・ジョブ処理 (RJP) を介して実行依頼 されるジョブの場合、//*MAIN ステートメントの ORG パラメーター、OUTPUT JCL ステートメント、または DD ステートメントで別の宛先が要求されない限り、 SYSOUT データ・セットは元のワークステーションに戻されます。 例 //DDFAR DD SYSOUT=E,DEST=NYC //OTFAR //DD1 OUTPUT DEST=NYC,COMPACT=TABCM DD SYSOUT=E,OUTPUT=*.OTFAR //JEX3 //*MAIN //S3 //DD4 JOB ,’MAIL A60’ ORG=NYC EXEC PGM=GHI DD SYSOUT=E JES3 システムにおける別の処理装置への宛先制御 ジョブの SYSOUT データ・セットをすべて別の処理装置の TSO/E ユーザー ID に 送信するには、次のように指定します。 //*MAIN ACMAIN=processor-id,USER=userid 例 //J1 JOB ,MHB //*MAIN ACMAIN=2,USER=D17MHB //S1 EXEC PGM=PROG67 //DDA DD SYSOUT=G 内部読み取りプログラムへの宛先制御 ジョブ・ステップから出される SYSOUT データ・セットを新しいジョブにすると きは、そのデータ・セットを内部読み取りプログラムに送信してください。内部読 み取りプログラムへの入力データは、後のジョブを実行するための JCL ステートメ ントでなければなりません。次のように指定します。 //ddname DD SYSOUT=(class,INTRDR) INTRDR は、内部読み取りプログラムを識別する IBM 予約名です。システムは、 内部読み取りプログラムのための出力レコードをユーザーのアドレス・スペース内 252 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 宛先制御 のバッファーに入れます。このバッファーがいっぱいになると、JES はスプールに その内容を入れます。その後、JES は、そのスプールから新しいジョブを検索しま す。 内部読み取りプログラム・ジョブのメッセージ・クラス JOB ステートメントに MSGCLASS パラメーターを指定しない場合、SYSOUT パ ラメーターの出力クラスは、内部読み取りプログラムに送られるジョブのデフォル トのメッセージ・クラスになります。 内部読み取りプログラムへのレコードの制限 DD ステートメントに OUTLIM パラメーターを使用して、内部読み取りプログラ ムに書き込まれる論理レコードの数を制限してください。 JES への内部読み取りプログラム・バッファーの直接送信 アドレス・スペース内のバッファーがいっぱいになるのを待つのではなく、ジョブ 内の最後のレコードとして次のように指定して、内部読み取りプログラム・バッフ ァーの内容を直接 JES に送信してください。 /*EOF この制御ステートメントは、データ・セット内でジョブの範囲を区切り、即時処 理に適するようにします。 /*DEL この制御ステートメントは、データ・セット内のジョブを取り消し、即時出力処 理用にスケジュールします。出力として、実行依頼された JCL と、実行前にジ ョブが削除されたことを示すメッセージがそのあとに出されます。 /*PURGE JES2 の場合のみ、この制御ステートメントはデータ・セット内のジョブを取り 消し、除去処理用にスケジュールします。このジョブについての出力は出されま せん。 /*SCAN JES2 の場合のみ、この制御ステートメントは、データ・セット内のジョブに JCL エラーがないかどうかをスキャンするだけでよいことを JES2 に要求しま す。このジョブは実行されません。 参考資料 内部読み取りプログラムについての詳細は、z/OS MVS プログラミング: アセンブラ ー・サービス ガイド を参照してください。 例 //JOBA //GENER //SYSIN //SYSPRINT //SYSUT2 //SYSUT1 //JOBB //REPORTA //OUTDD1 JOB EXEC DD DD DD DD JOB EXEC DD D58JTH,HIGGIE PGM=IEBGENER DUMMY SYSOUT=A,DEST=NODE1 SYSOUT=(M,INTRDR) DATA D58JTH,HIGGIE,MSGLEVEL=(1,1) PGM=SUMMARY SYSOUT=* 第 24 章 SYSOUT リソース - 宛先制御 253 SYSOUT リソース - 宛先制御 //INPUT //JOBC //REPORTB //OUTDD2 //INPUT /*EOF DD JOB EXEC DD DD DSN=REPRTSUM,DISP=OLD D58JTH,HIGGIE,MSGLEVEL=(1,1) PGM=SUMMARY SYSOUT=A,DEST=NODE2 DSN=REPRTDAT,DISP=OLD v JOBA はプログラム IEBGENER を実行します。 v プログラム IEBGENER は、JOBB と JOBC をストリーム内データ・セット SYSUT1 から読み取り、内部読み取りプログラムに実行依頼される SYSOUT デ ータ・セット SYSUT2 にそれを書き出します。 v JOBB と JOBC のメッセージ・クラスは M (DD ステートメント SYSUT2 に指 定された SYSOUT クラス) です。 v SYSOUT=* が指定されているため、SYSOUT データ・セット OUTDD1 のメッ セージ・クラスは M です。 v /*EOF ステートメントは、先行ジョブを入力処理のために即座に JES に送信す ることを指定します。 端末装置への宛先制御 SYSOUT データ・セットを TSO/E ユーザーの端末装置に送信することを示すに は、次のように指定します。 //ddname DD TERM=TS バッチ・ジョブの場合、TERM=TS は SYSOUT=* が指定されているときと同様に 処理されます。フォアグラウンド・ジョブの出力データ・セットの場合、TERM=TS は、データ・セットを TSO/E ユーザー ID に送信することを指定します。 例 //DD1 DD TERM=TS SYSOUT の配布を支援する宛先制御 下記の OUTPUT JCL パラメーターは、SYSOUT データ・セットについての出力の 分離ページに指定の値を印刷します。ご使用のシステムではこの情報を用いて、 SYSOUT の配布を支援することができます。 //OUTDS // OUTPUT ADDRESS=delivery-address,BUILDING=building-id, DEPT=department,NAME=preferred-name,ROOM=room,TITLE=report-title システムは、各パラメーターに予約された分離ページのセクションに、各パラメー ターの値を印刷します。 254 z/OS MVS JCL ユーザーズ・ガイド 第 25 章 SYSOUT リソース - 出力のフォーマット設定 表 42. SYSOUT データ・セット・リソースを要求するための出力のフォーマット設定タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL COPIES FCB FORMS LINECT (JES2 のみ) UCS CONTROL JOB JES2 アカウン ティング情報にフォ ーム、コピー、およ び行カウントを指定 JES2 ステートメント JES3 ステートメント 出力のフォーマット設定 任意のプリンター COPIES への FCB SYSOUT に 用紙名を指定 UCS ほとんどのプリン ター・パラメータ ーのほかに 3800 印刷サブシステム への BURST CHARS FLASH MODIFY DCB=OPTCD=J 指標付け機能付き の 3211 プリンタ ーへの 穿孔装置への /*JOBPARM に COPIES、 FORMS、および LINECT を指定 /*JOBPARM に BURST を指定 BURST CHARS FLASH MODIFY TRC INDEX (JES2 LINDEX のみ) COPIES FCB SYSOUT に 用紙名を指定 DCB=FUNC=I 3800 印刷サブシ ステムにおけるダ CHARS=DUMP FCB=STD3 ンプの COPIES FCB FORMS CHARS=DUMP FCB=STD3 任意のプリンターへの出力のフォーマット設定 印刷する SYSOUT データ・セットのフォーマット設定を制御するときは、次の組 み合わせを指定します。 JES2 または JES3 システムの場合 //ddname DD SYSOUT=(class,writer-name,form-name),COPIES=number, // FCB=fcb-name,UCS=character-set-code //name // OUTPUT CONTROL=spacing,COPIES=number,FCB=fcb-name, FORMS=form-name,UCS=character-set-code JES2 システムの場合 //name OUTPUT LINECT=number //jobname JOB (,,,,,forms,copies,,linect) /*JOBPARM COPIES=number,FORMS=form-name,LINECT=number © Copyright IBM Corp. 1988, 2004 255 SYSOUT リソース - 出力のフォーマット設定 ほとんどのフォーマット設定パラメーターは、複数のステートメントにわたって指 定することができます。 1 つの SYSOUT データ・セットに 2 回以上指定する と、JES はオーバーライド規則に従ってパラメーターを 1 つ選択し、それを使用し ます。 JOB ステートメントまたは /*JOBPARM ステートメントに指定されたパラメーター は、ジョブ内のすべての SYSOUT データ・セットに適用されます。 JES2 システムにおける 3203-5 型プリンター JES2 は、3211 プリンターと同じように 3203-5 型を処理します。ただし、次の例 外を除きます。 v 3203-5 型用に UCS パラメーターに指定された汎用文字セットは、1403 プリン ターに指定されたものと同じです。 v 3203-5 型は索引付けをサポートしません。したがって、 INDEX と LINDEX パ ラメーターは無視されます。 v ご使用のシステムでは、JES2 の初期設定時に JES2 に 3203-5 型プリンターを明 示的に識別させることはできません。MVS は装置制御ブロック (UCB) を介し て、3203-5 型の識別を JES2 に渡します。 UCS と UCB の詳細については、 z/OS V1R6.0 DFSMSdfp: 拡張サービス を参照し てください。 例 1 //DD1 // DD SYSOUT=(A,FMS3),COPIES=5, FCB=IMG7,UCS=AN //OTA // OUTPUT CONTROL=DOUBLE,COPIES=5,FCB=IMG7, FORMS=FMS3,UCS=AN これらのパラメーターは、あらゆるシステムに適用されます。 例 2 //OTB OUTPUT LINECT=60 //J1 JOB (,,,,,FMS3,5,,60) /*JOBPARM COPIES=5,FORMS=FMS3,LINECT=60 これらのパラメーターは、JES2 システムだけに適用されます。 3800 印刷サブシステムへの出力のフォーマット設定 3800 印刷サブシステムで印刷される SYSOUT データ・セットのフォーマット設定 を制御するには、任意のプリンターで印刷するために使用するパラメーターのほか に、下記のパラメーターとステートメントの組み合わせを指定します。 任意のシステムの場合 //ddname DD SYSOUT=class,BURST=value,CHARS=table-name, // COPIES=(,(group-value)),FLASH=overlay-name, // MODIFY=(module-name,trc),DCB=OPTCD=J 256 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 出力のフォーマット設定 //name // // OUTPUT BURST=value,CHARS=table-name, COPIES=(,(group-value)),FLASH=overlay-name, MODIFY=(module-name,trc),TRC=value JES2 システムの場合 /*JOBPARM BURST=value ほとんどのフォーマット設定パラメーターは、複数のステートメントにわたって指 定することができます。 1 つの SYSOUT データ・セットに 2 回以上指定する と、JES はオーバーライド規則に従ってパラメーターを 1 つ選択し、それを使用し ます。 /*JOBPARM ステートメントに指定された BURST パラメーターは、ジョブ内の 3800 プリンターで印刷される SYSOUT データ・セットすべてに適用されます。 コピー変更機能 3800 で印刷する SYSOUT データ・セットの場合は、MODIFY パラメーターにコ ピー変更機能モジュール名を指定すると、選択した出力のコピーを変更することが できます。コピー変更機能を用いると、データ・セットのコピー (複数も可) のすべ てのページに、あらかじめ定義しておいたデータを印刷することができます。 たとえば同じ印刷ページの別のコピーに、欄見出しまたは解説の注釈を変更して記 載することができます。あるいは配布先の名前、住所、およびその他の情報を記載 して、そのコピーを個別設定することができます。あるいは、特定のページのコピ ーに変数データを印刷する代わりに、ブランク、またはアスタリスクなどの文字を 印刷することができます。 定義済みデータはコピー変更機能モジュールとして作成され、 IEBIMAGE ユーテ ィリティー・プログラムを使用して SYS1.IMAGELIB に保管されます。IEBIMAGE の使用方法の詳細については、 z/OS DFSMSdfp ユーティリティー を参照してくだ さい。 他のプリンターでは、コピー変更機能は設定された用紙で短いカーボンか少量のカ ーボンを使用して実行されます。 文字の配列 CHARS パラメーターに、3800 で印刷するときに使用する文字配列テーブルを指定 してください。 3800 のテーブルの名前については、3800 Programmer’s Guide を参照してくださ い。ご使用のシステムでは、使用可能なテーブルの名前のリストを維持管理しなけ ればなりません。 文字配列テーブルの変更 IEBIMAGE ユーティリティー・プログラムを使用して、ご使用のシステムで文字配 列テーブルを変更または構成することができ、図形文字変更モジュールを使って文 字を代入したり、ご使用のシステム設計の文字を使用したりすることができます。 文字配列テーブルの動的選択 第 25 章 SYSOUT リソース - 出力のフォーマット設定 257 SYSOUT リソース - 出力のフォーマット設定 SYSOUT データ・セット内の各論理レコードに文字配列テーブルを選択するとき は、各論理レコードの 2 番目の文字には trc 文字を指定しなければならず、下記の いずれかを指定しなければなりません。 v OUTPUT JCL ステートメントの TRC v DD ステートメント DCB パラメーターの OPTCD=J OPTCD サブパラメーターの使用方法の詳細については、3800 Programmer’s Guide を参照してください。 3800 またはその他のプリンターにデータ・セットを印刷する場合 CHARS パラメーターが指定されていても、UCS パラメーターを指定することがで きます。3800 またはその他のプリンターに出力を印刷するときは、このようにして ください。3800 以外のプリンターを使用すると、システムは UCS パラメーターを 使用して、CHARS パラメーターを無視します。 UCS を指定して CHARS を指定せずに、 SYSOUT データ・セットを 3800 で印刷 するときは、システムは省略された CHARS パラメーターのデフォルト値として UCS 値を使用します。 例 1 //DD8 // DD SYSOUT=B,BURST=YES,CHARS=(GS10,GU12), COPIES=(,(5)),FLASH=BILL,MODIFY=(IMG9,1) //OT4 // OUTPUT BURST=YES,CHARS=(GS10,GU12),COPIES=(,(5)), FLASH=BILL,MODIFY=(IMG9,1) これらのパラメーターは、あらゆるシステムに適用されます。 例 2 /*JOBPARM BURST=Y このステートメントは、JES2 システムだけに適用されます。 JES2 システムにおける索引付け機能付きの 3211 プリンターへの出力のフ ォーマット設定 JES2 によって索引付け機能付きの 3211 プリンターに印刷された出力を、通常のペ ージ・マージンからシフトするように要求するときは、次のように指定します。 左マージンを字下げするには //name OUTPUT INDEX=number 右マージンを移動するには //name OUTPUT LINDEX=number 出力が 3211 以外の装置で印刷される場合、JES2 はこれらのパラメーターを無視し ます。SYSOUT データ・セットを 3211 に送信するときは、ご使用のシステムが 3211 で印刷するために取っておいた出力クラスを指定してください。 例 1 258 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 出力のフォーマット設定 //OT10 //DD3 OUTPUT INDEX=6 DD CLASS=W,OUTPUT=*.OT10 この例では、左マージンを 5 スペース分字下げします。 例 2 //OT11 //DD3 OUTPUT LINDEX=9 DD CLASS=W,OUTPUT=*.OT11 この例では、通常の位置から右マージンを 8 スペース分移動します。 穿孔装置への出力のフォーマット設定 SYSOUT データ・セットからの穿孔出力をフォーマット設定するときは、次のよう に指定します。 //ddname DD SYSOUT=(class,form-name),COPIES=number, // FCB=fcb-name,DCB=FUNC=I //name OUTPUT COPIES=number,FCB=fcb-name,FORMS=form-name 穿孔カードの解釈 3525 カード穿孔装置によって穿孔されたカードは、JES が SYSOUT データ・セッ トを処理する場合と、下記のステートメントが指定された場合に解釈されます。 //ddname DD SYSOUT=class,DCB=FUNC=I データ・セットが別のカード穿孔装置で穿孔されると、JES は FUNC=I サブパラメ ーターを無視します。 ご使用のシステムでは、3525 出力に特別な出力クラスを定義することができます。 外部書き出しプログラムによるカード解釈は、オペレーターが指定する機能です。 JES3 システムにおける解釈 穿孔済みの出力は、ご使用のシステムで出力クラスに定義された標準規則によっ て、解釈される場合とされない場合があります。 例 //DD17 // DD SYSOUT=(Q,PUN6),COPIES=5, FCB=IMG4,DCB=FUNC=I //OT3 //DD18 OUTPUT COPIES=5,FCB=IMG4,FORMS=PUN6 DD SYSOUT=Q,OUTPUT=*.OT3,DCB=FUNC=I 第 25 章 SYSOUT リソース - 出力のフォーマット設定 259 SYSOUT リソース - 出力のフォーマット設定 3800 印刷サブシステムにおけるダンプ出力のフォーマット設定 ダンプ・データ・セットについての DD ステートメント、またはダンプ DD ステ ートメントによって参照される OUTPUT JCL ステートメントに 2 つのパラメータ ーを指定すると、3800 で高密度のダンプを要求することができます。 v FCB=STD3 このパラメーターは、8 行 / インチでダンプ出力を作成します。 v CHARS=DUMP このパラメーターは、204 文字の印刷行を作成します。 これらのパラメーターのうちの 1 つ、またはその両方を指定することができます。 同じステートメントに両方のパラメーターを入れることも、各ステートメントに 1 つずつパラメーターを入れることもできます。 例 //SYSABEND DD SYSOUT=J,FCB=STD3,CHARS=DUMP //DUMPOT OUTPUT FCB=STD3,CHARS=DUMP //SYSABEND DD SYSOUT=J,OUTPUT=*.DUMPOT 260 z/OS MVS JCL ユーザーズ・ガイド 第 26 章 SYSOUT リソース - 出力の制限 表 43. SYSOUT データ・セット・リソースを要求するための出力の制限タスク SYSOUT リソースを 要求するための タスク タスクのためのステートメントおよびパラメーター JCL ステートメント DD OUTPUT JCL その他の JCL JES2 ステートメント JES3 ステートメント 出力の制限 //*MAIN に /*JOBPARM に BYTES、CARDS、BYTES、CARDS、 JOB JES2 アカウン LINES、および LINES、および ティング情報に PAGES を指定 PAGES を指定 行とカードを指定 OUTLIM JOB に BYTES、 CARDS、LINES、 および PAGES を指定 出力の制限 SYSOUT データ・セット内の論理レコードの数を制限するには、1 つの SYSOUT データ・セット、または 1 つのジョブ内にあるすべての SYSOUT データ・セット に書き込むことができるレコードの最大数を指定してください。 制限値を設定しておくと、プログラムが SYSOUT データ・セットへの書き込み命 令が入っている永久ループになったときに、無駄で膨大なリストの印刷を回避する ことができます。 制限値に達すると、システムはステップを異常終了するか、警告 メッセージをオペレーターに送信します。 APPC スケジューリング環境における出力の制限 APPC スケジューリング環境においてジョブの出力を制限するには、DD ステート メントの OUTLIM パラメーターまたは JOB ステートメントの BYTES、CARDS、 LINES、および PAGES パラメーターを使用します。 DD OUTLIM パラメーターは、1 つの SYSOUT データ・セット内、または内部読 み取りプログラム・データ・セット内の論理レコードの数を制限します。DD ステ ートメントを次のように指定します。 //ddname DD SYSOUT=class,OUTLIM=number JOB ステートメントの BYTES、CARDS、LINES、および PAGES パラメーターを 使用して、1 つのジョブ内のすべての SYSOUT データ・セットに書き込まれる論 理レコードの数を制限します。JOB ステートメントは、次のように指定します。 © Copyright IBM Corp. 1988, 2004 261 SYSOUT リソース - 出力の制限 //JOB1 JOB accounting-info,programmer,BYTES=(number) //JOB2 JOB accounting-info,programmer,CARDS=(number) //JOB3 JOB accounting-info,programmer,LINES=(number) //JOB4 JOB accounting-info,programmer,PAGES=(number) APPC スケジューリング環境では、JES 制御ステートメントを使用して出力を制限 することはできません。APPC スケジューリング環境で JES2 制御ステートメント を指定すると、JCL エラーになります。JES3 制御ステートメントを指定すると、シ ステムはそれを無視します。そのステートメントは、ジョブ・リストにコメントと して記載されます。 非 APPC スケジューリング環境における出力の制限 非 APPC スケジューリング環境において有効なパラメーターには、DD OUTLIM パラメーター、および 261 ページの『APPC スケジューリング環境における出力の 制限』 で説明した JOB ステートメントの BYTES、CARDS、LINES、および PAGES パラメーターがあります。さらに JES 制御ステートメントを指定しても、 ジョブについての出力を制限することができます。 JES2 システムでのジョブのすべての SYSOUT データ・セットの場合 //jobname JOB (,,,lines,cards),... /*JOBPARM BYTES=number /*JOBPARM CARDS=number /*JOBPARM LINES=number /*JOBPARM PAGES=number JES3 システムでのジョブのすべての SYSOUT データ・セットの場合 //*MAIN BYTES=number //*MAIN CARDS=number //*MAIN LINES=number //*MAIN PAGES=number システムは JOB ステートメントに指定された制限値に基づいて、出力を制限しま す。JOB ステートメントに制限値を指定しないと、システムは //*MAIN または /*JOBPARM ステートメントに指定された制限値を使用します。 JOB、/*JOBPARM、または //*MAIN ステートメントに制限値を指定しないと、シ ステムは JES の初期設定時に指定されたご使用のシステムでのデフォルトの制限値 を使用します。 制限値を超えた場合の処置 JOB ステートメントのパラメーターと JES3 //*MAIN ステートメントには、出力の 制限値を超えたときにシステムがとる処置を指定することができます。 WARNING: システムはオペレーターに警告メッセージを出します。 CANCEL: システムはジョブを終了します。 DUMP: システムはジョブを終了し、制限値を超えたときに実行されていたステ ップのダンプをとります。 例 1 //DD1 262 DD SYSOUT=T,OUTLIM=3000 z/OS MVS JCL ユーザーズ・ガイド SYSOUT リソース - 出力の制限 この例は、あらゆるシステムに適用されます。 例 2 //JOBA JOB (,,,4,2000),’T. KATZ’ /*JOBPARM BYTES=40 /*JOBPARM CARDS=2000 /*JOBPARM LINES=4 /*JOBPARM PAGE=400 この例は、JES2 システムに適用されます。 例 3 //*MAIN BYTES=(40,WARNING) //*MAIN CARDS=(20,CANCEL) //*MAIN LINES=(4,DUMP) //*MAIN PAGES=(400,WARNING) この例は、JES3 システムに適用されます。 例 4 //JOB1 JOB BYTES=(40,WARNING) //JOB2 JOB CARDS=(20,CANCEL) //JOB3 JOB LINES=(4,DUMP) //JOB4 JOB PAGES=(400,WARNING) この例は、あらゆるシステムに適用されます。 第 26 章 SYSOUT リソース - 出力の制限 263 SYSOUT リソース - 出力の制限 264 z/OS MVS JCL ユーザーズ・ガイド 第 27 章 SYSOUT リソース - USERDATA OUTPUT JCL キー ワード ユーザー指向のキーワード USERDATA に提供される情報は、ご使用のシステムで 定義され、使用されます。ご使用のシステムでは特定の JES または PSF インスト ール・システム出口を使用して、キーワードの指定にアクセスすることができま す。 参考資料 USERDATA キーワードの考えられる使用法の追加情報については、次の資料を参 照してください。 v z/OS JES2 Installation Exits および z/OS JES2 マクロ の「Choosing Which Exits to Implement」のセクションでは、SYSOUT 分離ページ処理に関連する JES2 イ ンストール・システム出口 1、15、および 23 を記載しています。 v z/OS JES3 Customization の「Installation Exits Listed by JES3 Function」のセク ションでは、SYSOUT 分離ページ処理に関連する JES3 インストール・システム 出口 20、21、23、および 45 を記載しています。 v PSF/MVS: System Programming Guide では、SYSOUT 分離ページ処理に関連す る PSF インストール・システム出口 1、2、および 3 を記載しています。 例 例 1 //OUTUSER1 OUTPUT USERDATA=’My Own Installation Sub-Title’, // TITLE=’My Own SYSOUT Title’ //DD1 DD SYSOUT=A,OUTPUT=*.OUTUSER1 この例では、SYSOUT データ・セット DD1 は、OUTUSER1 と命名された OUTPUT JCL ステートメントを参照します。ご使用のシステムで SYSOUT デー タ・セット分離ページに USERDATA 値が印刷される場合、およびご使用のシステ ムで JES および PSF SYSOUT データ・セット分離ページ出口で必要な変更が指定 される場合、アポストロフィで囲まれている TITLE 値 (My Own SYSOUT Title) が SYSOUT データ・セット分離ページに印刷されます。さらに、アポストロフィ で囲まれている USERDATA 値 (My Own Installation Sub-Title) が、SYSOUT デー タ・セット分離ページに印刷されます。 例 2 //OUTUSER2 OUTPUT USERDATA=’LOCALDEV=Option1’ //DD2 DD SYSOUT=A,OUTPUT=*.OUTUSER2 この例では、SYSOUT データ・セット DD2 は、OUTUSER2 と命名された OUTPUT JCL ステートメントを参照します。ご使用のシステムで、独自のキーワー ド (LOCALDEV) とそのキーワードに有効な値を定義し、しかも、適切な JES およ び PSF 出口に必要な変更を行っている場合は、ご使用のシステムで USERDATA値 を解析して、ご使用のシステムのキーワードと値が指定されたかどうかを判別しな © Copyright IBM Corp. 1988, 2004 265 ければなりません。そのあとで、ご使用のシステムで、LOCALDEV キーワード値 である Option1 を使用することができます。 266 z/OS MVS JCL ユーザーズ・ガイド 第 6 部 例 ここでは、一連のジョブ制御ステートメントの例について説明します。処理に役立 つステートメントや、特定の技法を示すステートメントがあります。ユーティリテ ィーを使用するために必要なジョブ制御ステートメントの例については、 z/OS DFSMSdfp ユーティリティー を参照してください。 © Copyright IBM Corp. 1988, 2004 267 第 6 部 例 268 z/OS MVS JCL ユーザーズ・ガイド 第 28 章 例 - アセンブル、リンク・エディット、および実行 例 1 下記の例では COND パラメーターを使用して、条件付きでジョブ・ステップを実 行します。 //USUAL //ASM // //SYSPRINT //SYSPUNCH //SYSLIB //SYSUT1 // //SYSLIN // //SYSIN /* //LKED // //SYSPRINT //SYSLIN //SYSUT1 // //SYSLMOD // //GO // //SYSUDUMP //SYSPRINT // //OUTPUT // //INPUT JOB A2317P,’MAE BIRDSALL’ EXEC PGM=IEV90,REGION=256K, EXECUTES ASSEMBLER PARM=(OBJECT,NODECK,’LINECOUNT=50’) DD SYSOUT=*,DCB=BLKSIZE=3509 PRINT THE ASSEMBLY LISTING DD SYSOUT=B PUNCH THE ASSEMBLY LISTING DD DSNAME=SYS1.MACLIB,DISP=SHR THE MACRO LIBRARY DD DSNAME=&&SYSUT1,UNIT=SYSDA, A WORK DATA SET SPACE=(CYL,(10,1)) DD DSNAME=&&OBJECT,UNIT=SYSDA, THE OUTPUT OBJECT MODULE SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120,DISP=(,PASS) DD * IN-STREAM SOURCE CODE . . コード . EXEC PGM=HEWL, EXECUTES LINKAGE EDITOR PARM=’XREF,LIST,LET’,COND=(8,LE,ASM) DD SYSOUT=* LINKEDIT MAP PRINTOUT DD DSNAME=&&OBJECT,DISP=(OLD,DELETE) INPUT OBJECT MODULE DD DSNAME=&&SYSUT1,UNIT=SYSDA, A WORK DATA SET SPACE=(CYL,(10,1)) DD DSNAME=&&LOADMOD,UNIT=SYSDA, THE OUTPUT LOAD MODULE DISP=(MOD,PASS),SPACE=(1024,(50,20,1)) EXEC PGM=*.LKED.SYSLMOD,TIME=(,30), EXECUTES THE PROGRAM COND=((8,LE,ASM),(8,LE,LKED)) DD SYSOUT=* IF FAILS, DUMP LISTING DD SYSOUT=*, OUTPUT LISTING DCB=(RECFM=FBA,LRECL=121) DD SYSOUT=A, PROGRAM DATA OUTPUT DCB=(LRECL=100,BLKSIZE=3000,RECFM=FBA) DD * PROGRAM DATA INPUT . . データ . /* // この例は、次の処理を行うために使用できる JCL を示します。 v 入力ストリームに入力されるオブジェクト・コードをアセンブルします (ステッ プ ASM)。 v アセンブリーで 8 以上の戻りコードが出されなかった場合は、オブジェクト・モ ジュールをリンク・エディットします (ステップ LKED)。 v アセンブリーでもリンク・エディットでも、8 以上の戻りコードが出されなかっ た場合には、リンク・エディットされたモジュールを実行します (ステップ GO)。 例 2 © Copyright IBM Corp. 1988, 2004 269 例 - アセンブル、リンク・エディット、および実行 アセンブル、リンク・エディット、および実行の次の例では、IF/THEN/ELSE/ENDIF ステートメント構成を使用して、条件付きでジョブ・ステップを実行します。 //USUAL //ASM // //SYSPRINT //SYSPUNCH //SYSLIB //SYSUT1 // //SYSLIN // //SYSIN /* //RC1OK //LKED // //SYSPRINT //SYSLIN //SYSUT1 // //SYSLMOD // //RC2OK //GO //SYSUDUMP //SYSPRINT // //OUTPUT // //INPUT /* //ENDRC2 //ENDRC1 // JOB A2317P,’MAE BIRDSALL’ EXEC PGM=IEV90,REGION=256K, EXECUTES ASSEMBLER PARM=(OBJECT,NODECK,’LINECOUNT=50’) DD SYSOUT=*,DCB=BLKSIZE=3509 PRINT THE ASSEMBLY LISTING DD SYSOUT=B PUNCH THE ASSEMBLY LISTING DD DSNAME=SYS1.MACLIB,DISP=SHR THE MACRO LIBRARY DD DSNAME=&&SYSUT1,UNIT=SYSDA, A WORK DATA SET SPACE=(CYL,(10,1)) DD DSNAME=&&OBJECT,UNIT=SYSDA, THE OUTPUT OBJECT MODULE SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120,DISP=(,PASS) DD * IN-STREAM SOURCE CODE . . コード . IF (ASM.RC LT 8) THEN EVALUATES RC FROM STEP ASM EXEC PGM=HEWL, EXECUTES LINKAGE EDITOR PARM=’XREF,LIST,LET’ DD SYSOUT=* LINKEDIT MAP PRINTOUT DD DSNAME=&&OBJECT,DISP=(OLD,DELETE) INPUT OBJECT MODULE DD DSNAME=&&SYSUT1,UNIT=SYSDA, A WORK DATA SET SPACE=(CYL,(10,1)) DD DSNAME=&&LOADMOD,UNIT=SYSDA, THE OUTPUT LOAD MODULE DISP=(MOD,PASS),SPACE=(1024,(50,20,1)) IF (LKED.RC LT 8) THEN EXEC PGM=*.LKED.SYSLMOD,TIME=(,30), EXECUTES PROGRAM DD SYSOUT=* IF FAILS, DUMP LISTING DD SYSOUT=*, OUTPUT LISTING DCB=(RECFM=FBA,LRECL=121) DD SYSOUT=A, PROGRAM DATA OUTPUT DCB=(LRECL=100,BLKSIZE=3000,RECFM=FBA) DD * PROGRAM DATA INPUT . . データ . ENDIF ENDIF この例は、次の処理を行うために使用できる JCL を示します。 v 入力ストリームに入力されるオブジェクト・コードをアセンブルします (ステッ プ ASM)。 v アセンブリーで 8 よりも小さい戻りコードが出された場合は、オブジェクト・モ ジュールをリンク・エディットします (ステップ LKED)。 v IF/THEN/ELSE/ENDIF ステートメント構成をネストします。 v アセンブリーでもリンク・エディットでも、8 より小さい戻りコードが出された 場合には、リンク・エディットされたモジュールを実行します (ステップ GO)。 270 z/OS MVS JCL ユーザーズ・ガイド 第 29 章 例 - 複数の出力 //EXAMP //OUT1 // //OUT2 //OUT3 //STEP1 //OUT4 //R1 //R2 //STEP2 //B1 //B2 JOB MSGCLASS=A OUTPUT DEFAULT=YES,DEST=COMPLEX7,FORMS=BILLING, CHARS=(AOA,AOB),COPIES=2 OUTPUT DEFAULT=YES,DEST=COMPLEX3 OUTPUT DEST=COMPLEX1 EXEC PGM=ORDERS OUTPUT DEFAULT=YES,DEST=COMPLEX9 DD SYSOUT=A,OUTPUT=*.OUT3 DD SYSOUT=A EXEC PGM=BILLING DD SYSOUT=A DD SYSOUT=A このジョブは、出力を 9 つ作成するように、システムに要求します。つまり、8 つ のジョブ出力と、1 つのシステム管理の出力データ・セットです。 セット 1 STEP1 では、DD ステートメント R1 が OUTPUT JCL ステートメント OUT3 を明示的に参照します。したがって、システムは OUTPUT JCL ステートメン ト OUT3 と組み合わせられた DD ステートメント R1 について、COMPLEX1 で出力を 1 つ作成します。 セット 2 STEP1 では、DD ステートメント R2 が下記の両方の理由により、OUTPUT JCL ステートメント OUT4 を暗黙的に参照します。 v DD ステートメント R2 には、OUTPUT パラメーターが指定されていませ ん。 v STEP1 には、DEFAULT=YES を指定した OUTPUT JCL ステートメントが 指定されています。 したがって、システムは OUTPUT JCL ステートメント OUT4 と組み合わせら れた DD ステートメント R2 について、COMPLEX9 で出力を 1 つ作成しま す。 セット 3 から 8 まで STEP2 では、DD ステートメント B1 と B2 が下記のすべての理由により、 OUTPUT JCL ステートメント OUT1 と OUT2 を暗黙的に参照します。 v DD ステートメント B1 と B2 には、OUTPUT パラメーターが指定されてい ません。 v STEP2 には、DEFAULT=YES を指定した OUTPUT JCL ステートメントが 指定されていません。 v DEFAULT=YES が、OUTPUT JCL ステートメント OUT1 と OUT2 に指定 されています。 したがって、システムは DD ステートメント B1 と B2 それぞれについて、3 つずつ出力を作成します。 OUTPUT JCL ステートメント OUT1 と組み合わせられた DD ステートメ ント B1 から COMPLEX7 においては、セット 3 と 4。 OUTPUT JCL ステートメント OUT2 と組み合わせられた DD ステートメ ント B1 から COMPLEX3 においては、セット 5。 OUTPUT JCL ステートメント OUT1 と組み合わせられた DD ステートメ ント B2 から COMPLEX7 においては、セット 6 と 7。 © Copyright IBM Corp. 1988, 2004 271 例 - 複数の出力 OUTPUT JCL ステートメント OUT2 と組み合わせられた DD ステートメ ント B2 から COMPLEX3 においては、セット 8。 セット 9 システム管理の出力データ・セットは JOB ステートメントに MSGCLASS パ ラメーターが指定されているため、ローカルで処理されます。 272 z/OS MVS JCL ユーザーズ・ガイド 第 30 章 例 - JES2 システムにおける出力の作成 /*PRIORITY 5 //OUTJOB JOB BAKER,PERFORM=100,MSGCLASS=J /*SETUP SCHLIB /*JOBPARM COPIES=2,LINECT=20,ROOM=223,FORMS=GRN1 //OUT1 OUTPUT JESDS=ALL //OUT2 OUTPUT DEST=PRINTER8,FCB=STD3,FORMS=2PRT,UCS=TN //STEP1 EXEC PGM=TESTSYSO //DD1 DD DSN=DATA,DISP=OLD,UNIT=3350,VOL=SER=SCHLIB //DD2 DD DSN=&&TEMP,UNIT=3350,DISP=(NEW,DELETE), SPACE=(TRK,(10,5)) //DD3 DD SYSOUT=A,OUTPUT=*.OUT2 //DD4 DD SYSOUT=(A,,GRPH) //DD5 DD SYSOUT=L,OUTPUT=*.OUT1,DEST=HDQ この例は、出力を作成するための JES2 と JCL ステートメントの使用方法を示しま す。 1. ジョブは、優先順位レベル 5 で選択されます。 2. ジョブは、パフォーマンス・グループ 100 で実行されます。100 の意味はご使 用のシステムで定義してください。システム・メッセージはすべて、出力クラス J に書き込まれます。 3. JOBPARM ステートメントは、次のことを示します。 a. ジョブに関連した出力全体のコピーを 2 部印刷します。 b. 印刷されるページ当たり行数は、最大 20 行です (LINECT=20)。OUTPUT JCL ステートメントに LINECT パラメーターを指定すると、この LINECT パラメーターをオーバーライドすることができます。 c. プログラマーの部屋番号は 233 です。この数字は分離ページに印刷され、出 力を配布するために使用されます。 d. DD、JES2 /*OUTPUT、または JCL OUTPUT ステートメントに特別な用紙 を定義しない場合は、用紙名 GRN1 がすべてのデータ・セットが使用する用 紙の名前になります。 4. OUTPUT JCL ステートメント OUT2 は、次のことを示します。 a. 出力の宛先は PRINTER8 です。PRINTER8 は、必ずしもプリンターとして定 義されている必要はありません。任意の出力装置として定義されてもかまい ません。 b. プリンターに用紙制御バッファー機能が備わっている場合は、STD3 が SYS1.IMAGELIB のメンバーの名前でなければなりません。STD3 は、 SYSOUT パラメーターに *.OUT2 とコーディングされたデータ・セットを処 理するときに使用する、特別な用紙制御バッファー・イメージを定義しま す。 c. 用紙名 2PRT は、SYSOUT パラメーターに *.OUT2 とコーディングされた データ・セットを印刷するときに、JES2 が使用する用紙の名前です (DD3 な ど)。 d. TN は出力処理で使用するトレーンまたは UCS です。 5. SETUP ステートメントはこのジョブの処理の開始前に、ボリューム SCHLIB を マウントしなければならないことを示します。 © Copyright IBM Corp. 1988, 2004 273 例 - JES2 システムにおける出力の作成 6. SYSOUT データ・セット (DD3 と DD4 以外) は、用紙 GRN1 に印刷されま す。DD4 SYSOUT データ・セットは、用紙 GRPH に印刷されます。DD3 のコ ード名サブパラメーターには (OUTPUT JCL ステートメントを参照する) 値 *.OUT2 が指定されているので、DD3 SYSOUT データ・セットは用紙 2PRT に 印刷されます。 7. DD5 および関連データ・セットからの出力データ・セットは、HDQ に送信され ます。 274 z/OS MVS JCL ユーザーズ・ガイド 第 31 章 例 - JES3 システムにおける出力の作成 //OUTJOB JOB BAKER,PERFORM=100,MSGCLASS=J //*FORMAT PR,DDNAME=,COPIES=2,FORMS=GRN1 //*FORMAT PR,DDNAME=DD3,DEST=PRINTER8,CARRIAGE=STD3, //*FORMS=2PRT,TRAIN=TN //STEP1 EXEC PGM=TESTSYSO //DD1 DD DSN=DATA,UNIT=3350,VOL=SER=SCHLIB, // DISP=(OLD,KEEP),SPACE=(TRK,(5,2)) //DD2 DD DSN=&TEMP,UNIT=3350,DISP=(NEW,DELETE), // SPACE=(TRK,(10,5)) //DD3 DD SYSOUT=(A) //DD4 DD SYSOUT=(A,,GRPH) //DD5 DD SYSOUT=L この例は、出力を作成するときに使用できる JES3 と JCL ステートメントの一部を 示します。 1. システム・メッセージはすべて、出力クラス J に書き込まれます。 2. 最初の //*FORMAT ステートメントは、次のことを示します。 a. 出力クラスに特定の処理特性が定義されていない場合は、//*FORMAT ステー トメントが指定されていないすべての印刷データ・セット (クラスに従う) が、このステートメントのパラメーターに従って印刷されます。これは DDNAME に名前が指定されておらず (DDNAME=,)、このジョブについての すべての出力データ・セットに適用されるためです。 b. ご使用のシステムが特定の用紙またはコピーの部数を DD ステートメントま たはクラスに定義していない場合、JES3 は用紙名 GRN1 を使用して、すべ てのデータ・セットのコピーを 2 部ずつ印刷します。 3. 2 番目の //*FORMAT ステートメントは、次のこと示します。 a. 出力の宛先は、ご使用のシステムで定義した名前 (PRINTER8) のプリンター です。 b. PRINTER8 に用紙制御バッファー機能が付いているときは、STD3 は SYS1.IMAGELIB のメンバーの名前でなければなりません。STD3 は、ジョ ブの処理に使用する特別な用紙制御バッファー・イメージ、または紙送り機 構テープを定義します。 c. 用紙名 2PRT は、DD3 に使用する用紙の名前です。 d. TN は、1403、3211、または 3203-5 プリンターにテスト印刷することを示し ます。 © Copyright IBM Corp. 1988, 2004 275 例 - JES3 システムにおける出力の作成 276 z/OS MVS JCL ユーザーズ・ガイド 第 32 章 例 - システムへのデータ・セットの識別 /*PRIORITY //DATASETS //STEP1 //D1 // //D2 //D3 //D4 8 JOB FREEMAN,MSGLEVEL=1 EXEC PGM=IEFBR14 DD DSN=ABC,DISP=(NEW,CATLG),UNIT=3350, VOL=SER=333001,SPACE=(CYL,(12,1,1),CONTIG) DD DSN=&&NAME,UNIT=3330,SPACE=(TRK,(10,1)) DD DSN=SYSLIB,DISP=(OLD,KEEP) DD * . . . data . . . /* 1. このジョブは優先順位レベル 8 で実行されます。その意味は、ご使用のシステ ムで定義します。 2. JOB ステートメントは、システム・メッセージと JCL ステートメントを印刷す ることを指定します (MSGLEVEL=1)。 3. D1 は、新しく作成されたデータ・セットをカタログします。スペース要求は 1 次シリンダー 12、2 次シリンダー 1、ディレクトリー 1 であり、連続スペース となります。 4. D2 は、3330 で一時データ・セットを作成します。スペース要求は 1 次トラッ ク 10 と 2 次トラック 1 です。 5. D3 は、旧カタログ式データ・セットを定義します。 6. D4 は、SYSIN データ・セットを定義します。このデータ・セットの次に、入力 ストリーム内のデータが続きます。 © Copyright IBM Corp. 1988, 2004 277 例 - システムへのデータ・セットの識別 278 z/OS MVS JCL ユーザーズ・ガイド 第 7 部 付録 © Copyright IBM Corp. 1988, 2004 279 280 z/OS MVS JCL ユーザーズ・ガイド 付録 A. 索引順次データ・セット SMS は ISAM データ・セットを管理しないことに注意してください。 索引順次 (ISAM) データ・セットは、DD ステートメントのパラメーターとサブパ ラメーターの特定のサブセットを使用して作成し、検索します。各データ・セット は、異なる区域を 3 つまで占めることができます。 v 索引域 : この区域には、データ・セットに関連したマスター索引とシリンダー索 引が入っています。これは、索引順次データ・セットの基本区域が複数のシリン ダーを占有している場合に存在します。 v 基本区域 : この区域には、データと関連したトラック索引が入っています。これ は、すべての索引順次データ・セットについて存在します。 v オーバーフロー域 : この区域には、新しいデータが追加されたときに、基本区域 からのオーバーフローが入ります。これはオプショナルです。 ISAM データ・セット用のボリューム 索引順次データ・セットは、直接アクセス・ボリューム上になければなりません。 データ・セットは 2 つ以上のボリュームに入れることができ、ある場合にはそれら のボリュームを異なるタイプの装置に置くこともできます。ボリュームに索引ボリ ューム目録 (VTOC) が入っている場合、ISAM 索引域は最初のボリュームに入れて おかなければなりません。 索引順次データ・セットの作成 1 つから 3 つまでの DD ステートメントを使用して、新しい索引順次データ・セ ットを定義します。各ステートメントには、違う区域を定義します。 3 つの DD ステートメント 次の順序で区域を定義してください。 1. 索引域 2. 基本区域 3. オーバーフロー域 2 つの DD ステートメント 次の順序で区域を定義してください。 1. 索引域 2. 基本区域 または 1. 基本区域と、オプショナルで索引域 2. オーバーフロー域 1 つの DD ステートメント 基本区域とオプショナルで索引域を定義します。 2 つ以上の DD ステートメントを使用してデータ・セットを定義するときは、最初 の DD ステートメントだけに DD 名を割り当ててください。他のステートメント の名前フィールドは、ブランクにしておかなければなりません。 © Copyright IBM Corp. 1988, 2004 281 付録 A. ISAM 新しい索引順次データ・セットを定義するときに指定できる DD ステートメント・ パラメーターは、下記のパラメーターだけです。 AVGREC DCB DISP DSNAME EXPDT LABEL LIKE LRECL RECFM REFDD RETPD SECMODEL SPACE UNIT VOLUME DSNAME パラメーター DSNAME パラメーターは、新しい一時索引順次データ・セットまたは永続索引順次 データ・セットを定義する DD ステートメントに指定しなければなりません。次の ように指定します。 //ddname DD DSNAME=name(INDEX) // DD DSNAME=name(PRIME) // DD DSNAME=name(OVFLOW) 1 つしか DD ステートメントを使用しないときは、次のいずれかを指定します。 //ddname DD DSNAME=name(PRIME) //ddname DD DSNAME=name 以前に割り振ったスペースを再使用して索引順次データ・セットを作成するとき は、DSNAME パラメーターには上書きする旧データ・セットの名前を指定しなけれ ばなりません。 UNIT パラメーター UNIT パラメーターは、VOLUME=REF=reference が指定されていない限り、新しい 索引順次データ・セットを定義する DD ステートメントに指定する必要がありま す。UNIT パラメーターで直接アクセス装置を要求しなければなりません。DEFER は指定しないでください。 基本区域と索引域を別の DD ステートメントで定義するときは、VOLUME パラメ ーターに指定したボリュームと同じ数の直接アクセス装置を基本区域に要求してく ださい。直接アクセス・ボリュームを索引域には 1 つだけ、オーバーフロー域には 1 つ要求してください。 索引域またはオーバーフロー域についての DD ステートメントは、別のステートメ ントで要求したタイプとは違う装置タイプを要求することができます。 VOLUME パラメーター 特定のボリュームにデータ・セットの 1 区域を書き込むか、基本区域に 2 つ以上 のボリュームを使用する必要がある場合は、VOLUME パラメーターが必要です。基 本区域と索引域を同じステートメントに定義するときは、DD ステートメントで 2 つ以上のボリュームを要求することはできません。VOLUME パラメーターにボリュ ーム通し番号を指定するか、VOLUME=REF=reference を指定してください。どのよ うな場合であっても、VOLUME パラメーターに PRIVATE を指定することができ ます。 282 z/OS MVS JCL ユーザーズ・ガイド 付録 A. ISAM 注: v 新しい索引順次データ・セットを作成するときに非特定ボリューム要求を使用 し、その DSNAME が割り振りに適格なボリュームにすでにあるときは、システ ムが新規データ・セットをそのボリュームに入れるとジョブは失敗します。ただ し、新規データ・セット用に選択したボリューム以外のボリュームに重複した名 前の旧データ・セットがあるときは、その新規データ・セットは影響されずに、 ボリュームに追加されます。名前が重複していたためにジョブが失敗したとき は、古いデータ・セットをスクラッチするか、新規データ・セットの名前を変更 してからジョブを再度実行依頼すれば、訂正できます。 v 割り振りに適格なボリュームに十分なスペースがないと、非特定ボリューム要求 によって新しい索引順次データ・セット用のスペースを割り振ることはできませ ん。 v 新しい索引順次データ・セットに対する要求を満たすために割り振りによって最 初に選択されたボリュームに要求を満たすに足るスペースがない場合には、下記 の条件のいずれかが満たされると、システムはスペースに余裕のある他のボリュ ームを探すことをしません。 – 要求がマルチボリュームまたは装置に対するものである。 – データ・セットを定義するために 2 つ以上の DD ステートメントが使用され ている。 LABEL パラメーター LABEL パラメーターは、保存期間 (EXPDT か RETPD) またはパスワード保護 (PASSWORD) を指定するときだけに必要です。 DCB パラメーター 索引順次データ・セットを定義する各 DD ステートメントには、DCB パラメータ ーを指定しなければなりません。DCB パラメーターには、少なくとも DSORG=IS または DSORG=ISU を指定しなければなりません。処理プログラムがデータ制御ブ ロックを完成していない場合に、他の DCB サブパラメーターを指定すると、その データ制御ブロックを完成することができます。 2 つ以上の DD ステートメントを使用してデータ・セットを定義するときは、最初 の DD ステートメントに DCB サブパラメーターをすべて指定してください。次の ように指定して、最初の DD ステートメントに指定した DCB パラメーターを別の DD ステートメントで参照してください。 DCB=*.ddname 以前に割り振ったスペースを再使用して索引順次データ・セットを再作成するとき は、DD ステートメントに指定する DCB パラメーターを相応に変更しなければな りません。新規データ・セットを作成する場合であっても、旧データ・セットに使 用していたスペースを使用するのであれば、変更できない DCB サブパラメーター がいくつかあります。変更できる DCB サブパラメーターは、次のとおりです。 BFALN BLKSIZE CYLOFL DSORG KEYLEN LRECL NCP NTM OPTCD RECFM RKP 付録 A. 索引順次データ・セット 283 付録 A. ISAM DISP パラメーター 新規データ・セットを作成し、事前に割り振られたスペースを再使用しない場合 は、下記の処理をするときだけに DISP パラメーターが必要になります。 データ・セットの保持 DISP=(,KEEP) データ・セットのカタログ DISP=(,CATLG) データ・セットの受け渡し DISP=(,PASS) 以前に割り振ったスペースを再使用して索引順次データ・セットを再作成するとき は、DISP=OLD を指定してください。新しく作成されたデータ・セットによって旧 データ・セットが上書きされます。 DISP=(,CATLG) を指定してデータ・セットをカタログするか、DISP=(,PASS) を指 定してデータ・セットを渡すためには、DD ステートメント 1 つだけにデータ・セ ットを定義しなければなりません。2 つ以上の DD ステートメントにデータ・セッ トを定義し、データ・セットが入っているボリュームが同じタイプの装置にある場 合は、アクセス方式サービス・プログラム DEFINE コマンドを使用して、データ・ セットをカタログしてください。詳細については、下記の資料を参照してくださ い。 z/OS DFSMS カタログのためのアクセス方式サービス・プログラム, SPACE パラメーター SPACE パラメーターは、新しい索引順次データ・セットを定義するすべての DD ステートメントに指定しなければなりません。スペースの割り当てをシステムに要 求するか、特定のトラックを要求してください。2 つ以上の DD ステートメントを 使用してデータ・セットを定義するときは、各 DD ステートメントは同じ方法でス ペースを要求しなければなりません。 システムによるスペースの割り当て シリンダー数 (CYL) で 1 次スペース量を要求しなければなりません。基本区域を 定義する DD ステートメントが 2 つ以上のボリュームを要求すると、各ボリュー ムには SPACE パラメーターで要求されたシリンダー数が割り当てられます。 索引に必要なシリンダー数を示すときは、索引 サブパラメーターを使用します。 DD ステートメントを 1 つ使用して基本区域と索引域を定義して、索引のサイズを 明示的に指定するときは、索引サブパラメーターを指定してください。 SPACE パラメーターに CONTIG サブパラメーターを指定することができます。た だしステートメントの 1 つに CONTIG を指定するときは、すべてのステートメン トに CONTIG を指定しなければなりません。 索引順次データ・セットについての 2 次スペース量を要求することはできません。 さらに、サブパラメーター RLSE、MXIG、ALX、および ROUND を指定すること はできません。 特定のトラック要求 284 z/OS MVS JCL ユーザーズ・ガイド 付録 A. ISAM 要求するトラックの数は、1 つまたはそれ以上の全シリンダーのトラック数と等し くなければなりません。最初のトラックのアドレスは、ボリュームの最初のシリン ダー以外ならば、シリンダーの最初のトラックでなければなりません。基本区域を 定義する DD ステートメントが 2 つ以上のボリュームを要求すると、その要求が 満たされるまで指定のアドレスから次のボリュームまで継続する、基本区域用のス ペースが割り振られます。これは、2 番目のボリュームとそれ以降のすべてのボリ ュームのボリューム目録が、各ボリュームの最初のシリンダーに入っている場合だ けに可能です。 索引に必要なトラックの数を示すときは、索引サブパラメーターを使用してくださ い。指定したトラックの数は、1 つまたはそれ以上のシリンダーのトラックの数と 等しくなければなりません。DD ステートメントを 1 つ使用して基本区域と索引域 を定義し、索引のサイズを指定するときは、索引サブパラメーターを指定してくだ さい。 割り振りエラーが発生した場合のプロシージャー 新しい索引順次データ・セットを 2 つ以上のボリュームに入れる場合に、ボリュー ムの割り振り時にエラーが発生したときは、下記の処置を取ってからジョブを再度 実行依頼してください。IEHPROGM ユーティリティー・プログラムを使用して、デ ータ・セットが正しく割り振られているボリューム上にあるデータ・セット・ラベ ルを破棄してください。このユーティリティー・プログラムについては、z/OS DFSMSdfp ユーティリティー を参照してください。 索引順次データ・セットの区域配置 索引順次データ・セットを作成するときは、下記の事項にもとづいて区域が配置さ れます。 v データ・セットを定義するときに使用される DD ステートメントの数 v 各 DD ステートメントが定義する区域 索引域が別の DD ステートメントに定義されていないと、システムは別の基準を用 います。基本区域を定義する DD ステートメントの SPACE パラメーターに索引サ イズが指定されていますか ? 表 44 は、以上の基準にもとづいて行われるさまざまな配置を示します。さらに、要 求できる装置の数とタイプに適用される制約事項を示します。 表 44. ISAM データ・セットの区域配置 基準 DD ステートメントの数 DD ステートメントに 定義される区域 制約事項 索引サイズが指定 されているか? 結果 要求される 装置のタイプと数 区域の配置 3 INDEX PRIME OVFLOW - なし 索引域、基本区域、およ びオーバーフロー域は別 々に配置されます。 2 INDEX PRIME - なし 索引域と基本区域は別々 に配置されます。1 付録 A. 索引順次データ・セット 285 付録 A. ISAM 表 44. ISAM データ・セットの区域配置 (続き) 基準 DD ステートメントの数 DD ステートメントに 定義される区域 制約事項 索引サイズが指定 されているか? 2 PRIME OVFLOW いいえ 2 PRIME OVFLOW はい 1 PRIME いいえ 1 PRIME はい 結果 要求される 装置のタイプと数 区域の配置 なし 基本区域とオーバーフロ ー域は別々に配置されま す。索引域はオーバーフ ロー域の最後にありま す。 基本区域について のステートメント は 2 つ以上の装置 を要求することは できません。 基本区域とオーバーフロ ー域は別々に配置されま す。索引域は基本区域に 組み込まれています。 なし 基本区域は索引域の最後 にあります。2 ステートメントは 2 つ以上の装置を 要求することはで きません。 索引域が基本区域に組み 込まれています。2 1 両方の区域が同じ装置タイプのボリュームにあって、索引域に割り振られたシリンダーの 1 つが部分的にい っぱいになると、システムはそのシリンダーの未使用の部分にオーバーフロー域を設定します。 2 索引域が少なくとも 1 シリンダーを占め、索引域の未使用部分が 1 シリンダーより少ないときは、その未 使用部分はオーバーフロー域として設定されます。1 シリンダー・データ・セットの場合には、オーバーフ ロー域は設定されません。 索引順次データ・セットの検索 既存の索引順次データ・セットのすべての区域が同じ装置タイプのボリュームにあ るときは、1 つの DD ステートメントでデータ・セット全体を検索することができ ます。索引域またはオーバーフロー域が別の装置タイプのボリュームにあるとき は、DD ステートメントを 2 つ使用してください。索引域とオーバーフロー域が別 の装置タイプのボリュームにあるときは、DD ステートメントを 3 つ使用してデー タ・セットを検索してください。下記の順序で DD ステートメントを指定してくだ さい。 1. 索引域 2. 基本区域 3. オーバーフロー域 索引順次データ・セットを検索するときは、次の DD ステートメント・パラメータ ーしか指定できません。 DSNAME UNIT VOLUME DCB DISP 286 z/OS MVS JCL ユーザーズ・ガイド 付録 A. ISAM DSNAME パラメーター DSNAME パラメーターは必須です。データ・セット名でデータ・セットを識別して ください。INDEX、PRIME、または OVFLOW は指定しないでください。データ・ セットが前のステップから渡されたときは、逆方向参照でそのデータ・セットを識 別してください。 UNIT パラメーター データ・セットが 1 つのボリュームになく、渡されていないときは、UNIT パラメ ーターを指定しなければなりません。2 つ以上の装置が必要なときは、UNIT パラ メーターに装置タイプと装置カウントを指定してください。 データ・セットが 2 つ以上のボリュームにあっても、そのボリュームが同じ装置タ イプにあるときは、DD ステートメントを 1 つ指定するだけでデータ・セットを検 索することができます。UNIT パラメーターでは、各ボリュームに装置を 1 つずつ 要求してください。 区域が別のタイプの装置にあるときは、それぞれの装置タイプについて DD ステー トメントを指定してください。 これとは別に装置を要求する方法に、UNIT=AFF=ddname を指定する方法がありま す。これで、参照される DD ステートメントが直接アクセスを要求します。 VOLUME パラメーター データ・セットが 1 つのボリュームにあって、前のステップから渡されたとき以外 は、VOLUME パラメーターを指定しなければなりません。データ・セットが入って いるボリュームの通し番号を VOLUME パラメーターで識別してください。デー タ・セットを作成するときに使用した DD ステートメントに指定した順番で、通し 番号を指定してください。 DCB パラメーター DCB パラメーターには、必ず DSORG=IS または DSORG=ISU を指定しなければ なりません。データ・セットが前のステップから渡されるか、カタログされている ときは、他の DCB サブパラメーターを指定しないでください。ただし処理プログ ラム内でデータ制御ブロックが完了していないときは、他の DCB サブパラメータ ーを指定して、データ制御ブロックを完成することができます。 DISP パラメーター DISP パラメーターは、必ず指定しなければなりません。DISP パラメーターの最初 のサブパラメーターは、SHR または OLD でなければなりません。 既存の索引順次データ・セットを更新するときは、DISP=OLD を指定してくださ い。DISP=SHR を指定すると、データ・セットは正しくオープンされません。 オプショナルで、2 番目のサブパラメーターに後処理を指定することができます。 付録 A. 索引順次データ・セット 287 付録 A. ISAM 表 45. ISAM データ・セットの検索または拡張のための DD パラメーター 区域 パラメーター INDEX (索引域が基本区域と同じ タイプの装置にないときに 指定します) 最初の DD ステートメント PRIME、または DSNAME 必須。2 番目の DD ステートメントに指定した 名前と同じ名前を指定します。 DISP 必須。2 番目の DD ステートメントに指定した 名前と同じ名前を指定します。 UNIT 必須。 VOLUME 必須。 DCB 必須。 DSNAME 必須。 DISP 必須。データ・セットを検索または更新するかど うかを指定します。 UNIT 渡されたデータ・セットを検索し、3 つの区域が すべて 1 つのボリューム上にあるとき以外は、 必須。 VOLUME UNIT と同じ要件。指定すると、定義された順番 でボリュームがリストされます。 DCB 必須。 DSNAME 必須。2 番目の DD ステートメントに指定した 名前と同じ名前を指定します。 DISP 必須。2 番目の DD ステートメントに指定した 名前と同じ名前を指定します。 UNIT 必須。 VOLUME 必須。 DCB 必須。 オーバーフロー域が入っている PRIME、または オーバーフロー域と索引域が入っている PRIME 2 番目、または 単一 DD ステートメント OVFLOW (オーバーフロー域が基本区域と 同じ装置タイプにないときだけに 指定します) 3 番目の DD ステートメント 注釈 例 1 //ISAMJOB //STEP1 //DD1 // // // // // // JOB ,,MSGLEVEL=(1,1),PERFORM=25 EXEC PGM=INCLUDE DD DSNAME=DATASET1(INDEX),DISP=(NEW,KEEP),UNIT=3330, VOLUME=SER=777777,SPACE=(CYL,(10),,CONTIG), DCB=(DSORG=IS,RECFM=F,LRECL=80,RKP=1,KEYLEN=8) DD DSNAME=DATASET1(PRIME),DISP=(NEW,KEEP),UNIT=3330, VOLUME=REF=*.DD1,SPACE=(CYL,(25),,CONTIG),DCB=*.DD1 DD DSNAME=DATASET1(OVFLOW),DISP=(NEW,KEEP),UNIT=3330, VOLUME=REF=*.DD1,SPACE=(CYL,(25),,CONTIG),DCB=*.DD1 この例では、1 つの 3330 ボリュームに索引順次データ・セットが作成されます。 例 2 //RETRISAM //STEP1 //DDISAM // JOB ,,MSGLEVEL=(1,1),PERFORM=25 EXEC PGM=RETRIEVE DD DSNAME=DATASET1,DCB=DSORG=IS,UNIT=3330,DISP=OLD, VOLUME=SER=777777 この例のジョブは、最初の例で作成された索引順次データ・セットを検索するとき に必要な DD ステートメントを示します。 例 3 288 z/OS MVS JCL ユーザーズ・ガイド 付録 A. ISAM //ISAMJOB //STEP1 //DDISAM // // // // // // JOB ,,MSGLEVEL=(1,1),PERFORM=25 EXEC PGM=IEFISAM DD DSNAME=DATASET2(INDEX),DISP=(NEW,KEEP),UNIT=3330, VOLUME=SER=888888,SPACE=(CYL,10,,CONTIG),DCB=(DSORG=IS, RECFM=F,LRECL=80,RKP=1,KEYLEN=8) DD DSNAME=DATASET2(PRIME),DISP=(,KEEP),UNIT=3350, VOLUME=SER=999999,SPACE=(CYL,10,,CONTIG),DCB=*.DDISAM DD DSNAME=DATASET2(OVFLOW),DISP=(,KEEP),UNIT=3350, VOLUME=SER=AAAAAA,SPACE=(CYL,10,,CONTIG),DCB=*.DDISAM このジョブは、1 つの 3330 ボリュームと 2 つの 3350 ボリュームに索引順次デー タ・セットを 1 つ作成します。 例 4 //RERISAM //STEP1 //DDISAM // // // JOB ,,MSGLEVEL=(1,1),PERFORM=25 EXEC PGM=IEFISAM DD DSNAME=DATASET2,DCB=DSORG=IS,DISP=OLD,UNIT=3330, VOLUME=SER=888888 DD DSNAME=DATASET2,DCB=DSORG=IS,DISP=OLD,UNIT=(3350,2), VOLUME=SER=(999999,AAAAAA) このジョブは、前の例で作成された索引順次データ・セットを検索するときに必要 な DD ステートメントを示します。 例 5 //CATISAM JOB ,,MSGLEVEL=(1,1),PERFORM=25 //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE NONVSAM (NAME(DATASET2) DEVT(3330 3350 3350) VOL(888888 999999 AAAAAA) ) /* このジョブは、以前に 3330 ボリュームと 3350 ボリュームに作成されたデータ・ セットをカタログします。(3 番目の例、ジョブ名 ISAMJOB を参照してくださ い。) 付録 A. 索引順次データ・セット 289 付録 A. ISAM 290 z/OS MVS JCL ユーザーズ・ガイド 付録 B. 世代別データ・セット 世代別データ・セットは、世代別データ・グループ (GDG) として知られる、発生 順に関連のある連続したカタログ式データ・セットの集合体の 1 つです。システム は各データ・セットが作成されるときに世代別データ・グループにそれを記録しま す。それにより、新規データ・セットを発生順に配列して、古いデータ・セットを 簡単に取り出せるようになります。 ここでは、SMS 管理の世代別データ・セットと非 SMS 管理の世代別データ・セッ トについて説明します。 注: VSAM データ・セットは、世代別データ・セットにはなり得ません。 世代別データ・セットを作成または検索するときは、DD ステートメント DSNAME パラメーターの世代別データ・グループ名に続けて、相対世代番号を指定します。 世代別データ・セットをカタログすると、オペレーティング・システムは、その番 号を使用して、4 文字の絶対世代番号と 2 文字のバージョン番号を構成します。こ れは、その世代を示す G0000V00 という形式の番号になります。G0000V00 という 番号は、システムがデータ・セットを正しい年代順に、明瞭にソートできるよう に、GDG 内で固有なものでなければなりません。 警告: IBM は、新規世代を相対世代番号によって指定すること (そしてシステムが G0000V00 番号を計算できるようにすること) を強くお勧めします。こうすることに よって、GDG のデータ・セットの世代番号が 9000 を超えないようにすることがで きます。9000 を超えると、正しい発生順があいまいになる可能性があります。たと えば、完全修飾子を指定し、年を表すのにその番号の最初の 2 つの数字を使用した 場合に、上記の問題が発生する可能性があります。しかし、完全修飾の G0000V00 名を指定しなければならない場合には、そのベースにデータ・セットの整合性を備 えるために、GDG ベース名に対して DD ステートメントを組み込んでください。 世代番号の詳細については、z/OS DFSMS: データ・セットの使用法 を参照してく ださい。 相対世代番号 世代別データ・セットを作成するときに、相対世代番号によってデータ・セットが ジョブの実行時に最初に追加されたデータ・セットであるのか、2 番目に追加され たデータ・セットであるのか、3 番目に追加されたデータ・セットであるのか (以 下同様) をシステムに伝えます。世代別データ・セットを検索するときは、相対世 代番号によって、このデータ・セットが追加されてからグループに追加されたデー タ・セットの数をシステムに伝えます。 世代別データ・グループの相対世代番号をジョブ内で最初に使用するときに、シス テムは相対世代番号と絶対世代番号の間の関係を確立します。システムは、ジョブ を通じてこの関係を維持します。 たとえば、相対世代番号 (+1) の世代別データ・セットを作成すると、システムはこ のジョブでの (+1) への今後の参照を、同じ絶対世代番号を持つものと認めます。 © Copyright IBM Corp. 1988, 2004 291 付録 B. GDG 相対世代番号は、下記の場合にカタログが存在していれば、そこから得ることがで きます。 v JES2 の場合には、相対世代番号によって世代別データ・セットを指定する最初 のステップの始まりで入手されます。 注: 共用 DASD 環境では、異なるシステムで同時に実行されている 2 つ以上の ジョブが、同じデータ・セットの新しい世代を作成すると、JCL エラーが発 生してどちらかのジョブが失敗します。 v JES3 の場合には、ジョブがセットアップされた時点で入手され、相対世代番号 によって世代別データ・セットを指定する最初のステップの始まりでシステムが 再度入手します。両方の時点で最新のデータ・セットが違うと、予測できない結 果が生じることがあります。 GDG における SMS 管理データ・セットのタイプ SMS 管理の世代別データ・グループ (GDG) は、直接アクセス・ボリュームに入っ ているカタログ式順次データ・セットと直接データ・セットで構成することができ ます。GDG 内の世代別データ・セットのデータ・セット属性とデータ・セット編成 は、類似していてもしていなくても構いません。GDG が SMS 管理のボリュームに 作成されると、新しい世代別データ・セットを割り振るために、モデル・データ・ セット・ラベルにおける依存性を除去しなければなりません。GDG には、SMS 管 理の世代別データ・セットと非 SMS 管理の世代別データ・セットの両方を入れる ことができます。 GDG における非 SMS 管理データ・セットのタイプ 非 SMS 管理の世代別データ・グループ (GDG) は、テープ・ボリュームまたは直 接アクセス・ボリューム (あるいはその両方) に入っているカタログ式順次データ・ セットと直接データ・セットで構成することができます。GDG 内の世代別データ・ セットの DCB 属性とデータ・セット編成は、類似していてもいなくても構いませ ん。 GDG データ・セットの検索 世代別データ・グループのすべての世代は、単一のデータ・セットとして一緒に検 索することができます。検索順序は後入れ先出し法です。 GDG 基本項目の作成 最初の世代別データ・セットを作成する前に、VSAM または統合カタログ機能カタ ログ内に、世代別データ・グループ基本項目を作成してください。この基本項目 は、GDG に入れたい世代別データ・セットの数だけ (最大 255 個) 作成しなけれ ばなりません。システムはこの基本項目を使用して、世代別データ・セットの発生 順を記録します。 アクセス方式サービス・プログラム DEFINE コマンドを使用して、統合カタログ機 能カタログ内に世代別データ・グループ基本項目を作成してください。このコマン ドについては z/OS DFSMS カタログのためのアクセス方式サービス・プログラム を参照してください。 292 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG SMS 管理の世代別データ・セットの属性の定義 データ・クラスおよびストレージ・クラス SMS 管理の GDG についての別の要件 (GDG 基本項目以外) は、新しい世代別デ ータ・セットについてのストレージ・クラスです。システムは新しい世代別デー タ・セットを作成するときに、データ・クラスとストレージ・クラスに定義された 属性を使用します。 注 : データ・クラスを使用してデータ・セット割り振り属性を指定するのではな く、LIKE または REFDD パラメーターを指定することができます。 インストール先作成の自動クラス選択 (ACS) ルーチンを使用して、新しい世代別デ ータ・セットにデータ・クラスとストレージ・クラスを選択するか、DD ステート メントに DATACLAS パラメーターと STORCLAS パラメーターを指定することが できます。さらに、データ・クラスとストレージ・クラスに指定された属性をオー バーライドする DD パラメーター (RECORG、LRECL、SPACE など) を指定する ことができます。z/OS MVS JCL 解説書 の DATACLAS および STORCLAS DD パラメーターを参照してください。 SMS 管理の世代別データ・セットの作成 新しい SMS 管理の世代別データ・セットを作成するときは、必ず DSNAME パラ メーターと DISP パラメーターを指定してください。オプショナルで、DATACLAS パラメーターと STORCLAS パラメーターを指定してください。 DSNAME パラメーター DSNAME パラメーターには、GDG の名前とその後ろに番号 (+1 から +255 まで) を括弧で囲み指定してください。これがジョブ内で最初に GDG に追加されるデー タ・セットであるときは、+1 を括弧で囲み指定してください。ジョブ内の同じ GDG にデータ・セットを追加するたびに、番号を 1 ずつ上げてください。 このデータ・セットを後続のジョブ・ステップで参照するときは、そのデータ・セ ットを作成するときに使用した相対世代番号を DSNAME パラメーターに指定して ください。このデータ・セットは、作成されたステップ内では参照することはでき ません。ジョブの終わりに、システムは追加を反映するために、グループ内のすべ ての世代の相対世代番号を更新します。 注: 相対世代番号によって絶対世代番号が G9999Vyy を超えると、循環が起こりま す。統合カタログ機能カタログでは、(+1) などの相対世代番号を指定して新し い世代別データ・セットを作成し、G9999Vyy の絶対世代番号が GDG 基本項 目に入っていると、循環によって番号 G0001Vyy が生成されます。(絶対世代番 号とバージョン番号 (形式 GxxxxVyy) の詳細については、z/OS DFSMS: デー タ・セットの使用法 を参照してください。) DATACLAS パラメーターおよび STORCLAS パラメーター 付録 B. 世代別データ・セット 293 付録 B. GDG ACS ルーチンが必要なデータ・クラスまたはストレージ・クラスを選択しないとき は、DATACLAS パラメーターまたは STORCLAS パラメーター (およびデータ・ク ラスまたはストレージ・クラスの属性をオーバーライドするときに必要な DD パラ メーター) を指定してください。 SMS 管理の世代別データ・セットの後処理 新しい SMS 管理の世代別データ・セットは、作成されたときに、据え置きロール イン状態でカタログされます。つまり GxxxxVyy 番号で一時的にカタログされます が、この時点で項目は GDG 内に作成されません。次にステップの終了時に、下記 の段落で説明している正常終了の後処理によって世代が処理されます。(絶対世代番 号とバージョン番号 (形式 GxxxxVyy) の詳細については、z/OS DFSMS: データ・ セットの使用法 を参照してください。) DISP パラメーター 新しい世代別データ・セットに NEW の状況と CATLG、KEEP、DELETE、または PASS の正常終了の後処理を割り当ててください。 DISP=(NEW,CATLG) ステップの終了時に、据え置き世代別データ・セットが GDG 基本項目にロールイ ンされます。つまり一時カタログ項目が除去されて、GDG 基本項目に項目が作成さ れます。 DISP=(NEW,KEEP) ステップとジョブの終了時に、据え置き世代別データ・セットは据え置きロールイ ン状態のままです。つまり一時カタログ項目は除去されず、GDG 基本項目に項目が 作成されません。 DISP=(NEW,DELETE) ステップの終了時に据え置き世代別データ・セットは捨てられて、カタログから除 去されます。 DISP=(NEW,PASS) ジョブの終了時に据え置き世代別データ・セットは捨てられて、カタログから除去 されます。 注: 新しい世代別データ・セットを作成するときに、同じ GxxxxVyy 番号の据え置 き世代別データ・セットがあると、その番号とそれに関連したスペースが再使 用されます。 非 SMS 管理の世代別データ・セットの属性の定義 (GDG 基本項目以外の) GDG についての要件は、データ・セット・ラベルです。シ ステムは新しい世代別データ・セットを作成するときに、このラベルを使用して DCB 属性と EXPDT 値を参照します。 DCB 属性は、次のいずれかによって指定することができます。 294 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG 1. 索引が入っているボリューム (GDG 基本項目が入っているボリューム) にモデ ル・データ・セット・ラベルを作成する。 2. その属性を使用するためにカタログ式データ・セットを参照する。 3. DD ステートメントから属性を使用するために LIKE= または REFDD= を指定 するか、データ・クラスに指定された属性を使用するために DATACLAS を指 定する。 世代をカタログする前か、世代をカタログするとき (あるいはその両方) に、次のよ うに属性を指定することができます。 1. 索引が入っているボリュームにモデル・データ・セット・ラベルを作成します。 モデルを作成するときに、最初の DCB 属性を指定することができます。ただ し、この時点で属性を指定する必要はありません。データ・セット・ラベル内の 属性だけが使用されるので、直接アクセス・スペースを節約するために SPACE=(TRK,0) を指定してモデル・データ・セットを割り振ることができま す。(索引順次データ・セットの場合には、0 より大きいスペース要求が必要に なります。) 世代を作成してカタログするときに、最初の属性またはオーバーラ イドする属性を指定することができます。 モデル・データ・セット・ラベルを作成するときは、索引を作成するジョブ・ス テップ、または世代を作成してカタログするステップより前にある別のジョブ・ ステップに、下記の DD ステートメントを入れてください。 //name // // DD DSNAME=datagrpname,DISP=(,KEEP),SPACE=(TRK,0), UNIT=yyyy,VOLUME=SER=xxxxxx, DCB=(applicable subparameters) DSNAME は、各世代を識別するときに使用する共通の名前です。したがって、 モデル・データ・セット・ラベルをカタログすることはできません。GDG 基本 項目は、カタログに入っているエンティティーです。xxxxxx は、GDG 基本項目 のあるカタログが入っているボリュームの通し番号です。モデル・データ・セッ ト・ラベルに適用できる DCB サブパラメーターは DSORG、OPTCD、 BLKSIZE、LRECL、KEYLEN、および RKP です。最初に DCB サブパラメータ ーが必要でないときは、DCB パラメーターを指定する必要がありません。 2. 以下の場合、モデル・データ・セットを作成する必要はありません。 a. 必要な属性と同じ属性を持つカタログ式データ・セット、またはオーバーラ イドする属性を指定できる既存のモデル・データ・セット・ラベルを参照で きる場合。 b. 指定されたデータ・クラスまたは選択されたデータ・クラスによって、DCB 属性が提供される場合。 その属性を使用するためにカタログ式データ・セットを参照するときは、世代を 作成してカタログする DD ステートメントに DCB=dsname を指定してくださ い。 既存のモデルを参照するときは、世代を作成してカタログする DD ステートメ ントに DCB=(modeldscbname,attributes) を指定してください。SMS では、モデ ル・データ・セット名を識別する以前の DD ステートメントを参照するため に、LIKE=modeldsname または REFDD=*.ddname、*.stepname.ddname、あるいは *.stepname.procstepname.ddname を指定してください。詳細については、 321 ペー ジの『データ・セットの属性のモデル化』を参照してください。 付録 B. 世代別データ・セット 295 付録 B. GDG データ・クラスを指定するときは、(システム ACS ルーチンが、指定された値を オーバーライドする場合がありますが) DD ステートメントに DATACLAS=dataclass と指定するか、システム・デフォルト値を使用してくださ い。データ・クラスの詳細については、 319 ページの『構成の指定』を参照して ください。 非 SMS 管理の世代別データ・セットの作成 新しい非 SMS 管理の世代別データ・セットを作成するときは、必ず DSNAME、 DISP、および UNIT パラメーターを指定してください。オプショナルで VOLUME、SPACE、LABEL、および DCB パラメーターを指定してください。 DSNAME パラメーター DSNAME パラメーターには、GDG の名前とその後ろに番号 (+1 から +255 まで) を括弧で囲み指定してください。これがジョブ内で最初に GDG に追加されるデー タ・セットであるときは、+1 を括弧で囲み指定してください。ジョブ内の同じ GDG にデータ・セットを追加するたびに、番号を 1 ずつ上げてください。 このデータ・セットを後続のジョブ・ステップで参照するときは、そのデータ・セ ットを作成するときに使用した相対世代番号を DSNAME パラメーターに指定して ください。このデータ・セットは、作成されたステップ内では参照することはでき ません。ジョブの終わりに、システムは追加を反映するために、グループ内のすべ ての世代の相対世代番号を更新します。 注: 相対世代番号によって絶対世代番号が G9999Vyy を超えると、循環が起こりま す。統合カタログ機能カタログでは、(+1) などの相対世代番号を指定して新し い世代別データ・セットを作成し、G9999Vyy の絶対世代番号が GDG 基本項 目に入っていると、循環によって番号 G0001Vyy が生成されます。 (絶対世代番号とバージョン番号 (形式 GxxxxVyy) の詳細については、z/OS DFSMS: データ・セットの使用法 を参照してください。) DISP パラメーター 新しい世代別データ・セットには、NEW の状況とカタログの後処理 DISP=(NEW,CATLG) を割り当ててください。 UNIT パラメーター VOLUME=REF=reference を指定しないときは、新しい世代別データ・セットに UNIT パラメーターを指定しなければなりません。UNIT パラメーターには、必要な 装置のタイプを指定してください。 VOLUME パラメーター VOLUME パラメーターにボリュームを割り当てるか、VOLUME パラメーターを省 略してシステムにボリュームを割り当てさせてください。VOLUME パラメーターは PRIVATE で専用ボリュームを要求でき、ボリューム・カウントで 2 つ以上のボリ ュームを要求することができます。 SPACE パラメーター 296 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG 世代別データ・セットを直接アクセス・ボリュームに入れるときは、SPACE パラメ ーターを指定してください。 LABEL パラメーター LABEL パラメーターには、ラベル・タイプ、パスワード保護 (PASSWORD)、およ び保存期間 (EXPDT または RETPD) を指定することができます。データ・セット をテープ・ボリュームに入れるときに、そのデータ・セットがそのボリュームの最 初のデータ・セットではない場合、データ・セットのシーケンス番号を指定してく ださい。 DCB パラメーター 同じ GDG のモデル・データ・セット・ラベルを使用する場合に、そのラベルにこ の世代別データ・セットについての属性がすべて入っているときは、DCB パラメー ターを省略してください。すべての属性がラベルに入っていないか、特定の属性を オーバーライドするときは、DCB=(list of attributes) を指定してください。 別の GDG のモデル・データ・セット・ラベルを使用する場合、そのラベルにこの 世代別データ・セットについての属性がすべて入っているときは、DCB=dsname を 指定してください。そのラベルから一部の属性が抜けているか、一部の属性をオー バーライドするときは、DCB=(dsname,list of attributes) を指定してください。 モデル・データ・セット・ラベルがないときは、カタログ式データ・セットについ てのラベルを使用しなければなりません。DCB=dsname を指定してください。その ラベルから一部の属性が抜けているか、一部の属性をオーバーライドするときは、 DCB=(dsname,list of attributes) を指定してください。 世代別データ・セットの検索 SMS 管理の世代別データ・セットを検索するときは、必ず、DSNAME パラメータ ーと DISP パラメーターを指定してください。 非 SMS 管理の世代別データ・セットを検索するときは、必ず、DSNAME パラメー ターと DISP パラメーターを指定してください。オプション・パラメーターは UNIT、VOLUME、LABEL、および DCB です。 DSNAME パラメーター SMS 管理データ・セットと非 SMS 管理データ・セットの両方の場合、DSNAME パラメーターを使用して、世代別データ・セットを 1 つ、または GDG 内のすべて の世代別データ・セットを検索してください。 1 つの世代別データ・セットの検索 1 つの世代別データ・セットを検索するときは、DSNAME パラメーターに世代別デ ータ・グループの名前と、その後ろに相対世代番号を括弧で囲み指定してくださ い。この番号は、検索する世代別データ・セットを示しています。最新のデータ・ セットを検索するときは、0 を指定してください。 最新のデータ・セットの前に作成されたデータ・セットを検索するときは、負数 (-1 から -255 まで) を指定してください。nnn の値は、必要なデータ・セットと最新の 付録 B. 世代別データ・セット 297 付録 B. GDG データ・セットとの関係を示しています。(-1) は、最新のデータ・セットの直前に 作成されたデータ・セットを表します。(-2) は、(-1) で識別したデータ・セットの 前に作成されたデータ・セットを表します。 たとえば、次の場合がこれに当たります。 PAYROLL DSNAME=PAYROLL(0) DSNAME=PAYROLL(-1) DSNAME=PAYROLL(-2) GDG の名前 今週の世代別データ・セット 先週の世代別データ・セット 2 週間前の世代別データ・セット 相対世代番号がシステムによって維持されるのは、相対世代番号を使用して世代別 データ・セットを指定するときだけです。 注: 据え置きロールイン状態の世代別データ・セットが作成されたジョブ内でその データ・セットを参照するときは、(+1) などの相対番号を使用します。後続の ジョブで据え置きロールイン状態の世代別データ・セットを参照するときは、 絶対世代番号 (GxxxxVyy) を使用します。据え置きロールイン状態の GDG デ ータ・セットの参照方法の詳細については、z/OS DFSMS: データ・セットの 使用法 を参照してください。 注: 開始タスク内で世代別データ・セットを検索し、世代別データ・セットを専用 カタログにカタログしてある場合は、相対世代番号を指定すると、予測できな い結果が生じることがあります。 すべての世代別データ・セットの検索 GDG のすべての世代を 1 つのデータ・セットとして検索するときは、DSNAME パラメーターに世代番号を指定しないで GDG 名を指定してください。これは、 GDG ALL 要求と呼ばれます。たとえば、次の場合がこれに当たります。 DSNAME=PAYROLL すべての世代の場合 GDG ALL 要求を使用するときは、すべての世代の DCB 属性とデータ・セット編 成は同じでなければなりません。 システムは GDG ALL 要求を、最新のデータ・セットから最も古いデータ・セット までの GDG 内のすべての既存のデータ・セットの結合として処理します。これ は、ジョブ出力リストのシステム・メッセージの意味に影響を与えることがありま す。 たとえば、データ・セット GDGDS に 2 つの世代があって、データ・セット A と B は世代別データ・セットではないとします。A、すべての GDGDS の世代、およ び B を連結するには、次の JCL を指定します。 //DD1 // // DD DSN=A,DISP=SHR DD DSN=GDGDS,DISP=SHR,UNIT=AFF=DD1 DD DSN=B,DISP=SHR,UNIT=AFF=DD1 GDG ALL 要求を出すと、システムは次のステートメントが指定されたかのように DD1 を処理し、以下の相対位置番号を割り当てます。 298 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG //DD1 // // // DD DSN=A,DISP=SHR DD DSN=GDGDS(0),DISP=SHR,UNIT=AFF=DD1 DD DSN=GDGDS(-1),DISP=SHR,UNIT=AFF=DD1 DD DSN=B,DISP=SHR,UNIT=AFF=DD1 +000 +001 +002 +003 生成された DD ステートメントは、UNIT=AFF が指定されていなくても、自動的 に、相互に装置類似性を持ちます。 //DD2 // // DD DSN=A,DISP=SHR DD DSN=GDGDS,DISP=SHR DD DSN=B,DISP=SHR システムは、次の JCL ステートメントが指定されたかのように DD2 を処理し、以 下の相対位置番号を割り当てます。 //DD2 // // // DD DSN=A,DISP=SHR DD DSN=GDGDS(0),DISP=SHR DD DSN=GDGDS(-1),DISP=SHR,UNIT=AFF=(DD2+001) DD DSN=B,DISP=SHR +000 +001 +002 +003 もちろん、実際に UNIT=AFF=(DD2+001) と指定することはできませんが、システ ムは内部的にそのように指定されたものとして DD ステートメントを処理すること ができます。 エラー・メッセージでは明示的に指定された位置ではなく、含まれている各世代に 基づいた相対位置が使用されます。たとえば、相対位置 +002 を含んでいるエラ ー・メッセージは、データ・セット B ではなく、GDGDS(-1) を参照しています。 古い方のすべての世代には、最新のデータ・セットとの装置類似性があります。 GDG がテープにある場合に GDG ALL 要求を使用し、UNIT パラメーターに並行 取り付けを指定すると、システムは最初の世代だけのすべてのボリュームを取り付 けます。 GDG が直接アクセスにある場合は GDG ALL 要求を使用し、UNIT パラメーター に並行取り付けを指定すると、システムは、すべての世代のすべてのボリュームを 取り付けます。 DISP パラメーター SMS 管理データ・セットと非 SMS 管理データ・セットのいずれの場合でも、DISP パラメーターを必ず指定してください。DISP パラメーターの最初のサブパラメータ ーは、OLD、SHR、または MOD でなければなりません。世代別データ・セットに MOD を指定しても、指定の相対世代がカタログ内に入っていないと、システムは その状況を NEW に変更します。 正常終了の後処理は、世代別データ・セットを検索するときはオプショナルです が、GDG ALL 要求では必須です。GDG ALL 要求には、PASS を指定してはなり ません。 UNIT パラメーター 非 SMS 管理データ・セットの場合に、2 つ以上の装置をデータ・セットに割り当 てるときは、UNIT パラメーターに unit-count サブパラメーターを指定してくださ い。またはデータ・セットが 2 つ以上のボリュームにあって、ボリュームと同じ数 の装置が必要なときは、UNIT パラメーターに P を指定してください。 付録 B. 世代別データ・セット 299 付録 B. GDG VOLUME パラメーター 非 SMS 管理データ・セットの場合には、VOLUME パラメーターを使用して専用ボ リューム PRIVATE を要求し、ボリューム・カウントにそれ以上のボリュームが必 要であることを示してください。古い世代別データ・セットの場合には、別のデー タ・セットあるいは以前の DD ステートメントにボリューム通し番号またはボリュ ーム参照のどちらも指定しないでください。 LABEL パラメーター 非 SMS 管理データ・セットの場合に、データ・セットがテープ上にあって標準ラ ベル以外のラベルが付いているときは、LABEL パラメーターを指定してください。 データ・セットがボリュームの最初のデータ・セットではないときは、データ・セ ット・シーケンス番号を指定してください。データ・セット・シーケンス番号を GDG ALL 要求に指定すると、そのシーケンス番号は無視されます。データ・セッ ト・シーケンス番号は、カタログから入手されます。 DCB パラメーター 非 SMS 管理データ・セットの場合、データ・セットに標準ラベル以外のラベルが 付いていて、データ制御ブロックを完成するために DCB 情報が必要であるとき は、DCB=(list of attributes) を指定してください。DCB=dsname を指定しないでくだ さい。 世代別データ・セットの削除およびカタログからの除去 SMS 管理データ・セットの場合、カタログからの除去はサポートされないことに注 意してください。 複数ステップのジョブでは、DD DISP パラメーターを使用して、世代別データ・セ ットをカタログしたり、カタログから除去してください。IEHPROGM ユーティリテ ィー・プログラムまたはユーザー・プログラムは使用しないでください。システ ム・ルーチンがジョブの実行時にカタログにアクセスするため、そのルーチンは IEHPROGM またはユーザー・プログラムによって実行される機能を認識しません。 そのため、予測できない結果が生じる可能性があります。 複数ステップのジョブ内の DD ステートメントが、GDG 内で最も古いデータ・セ ット以外の世代別データ・セットを削除またはカタログから除去しようとすると、 カタログ管理でそのデータ・グループについて混乱が生じる場合があります。これ によって特定の世代をあとで参照するときに、間違ったデータ・セットを削除した り、カタログから除去したり、検索したりすることがあります。したがって、複数 ステップ・ジョブ内で世代別データ・セットを削除したときは、後のジョブ・ステ ップでそれより古い世代を参照してはなりません。 複数ステップのジョブ内の世代別データ・グループを削除する場合、ジョブ内の世 代別データ・グループの相対世代番号を最初に使用する際に、システムは、相対世 代番号と絶対世代番号の間の関係を確立することを忘れないでください。システム は、ジョブを通じてこの関係を維持します。 次の例は、世代別データ・グループの削除時に、この関係をシステムが維持する方 法を示します。 300 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG 次の世代別データ・セットには、すでに絶対世代番号 G0006V00、G0007V00、およ び G0008V00 があるものとします。 次の JCL を出します。 //STEP1 EXEC //DD1 DD DISP=OLD,DSN=A.B.C(-1) //STEP2 EXEC //DD2 DD DISP=(OLD,DELETE),DSN=A.B.C //STEP3 EXEC //DD3 DD DISP=(NEW,CATLG),DSN=A.B.C(+1) 上記の例では、STEP1(DD1) の相対世代番号によって参照される絶対世代番号は G0007V00 です。システムは、ジョブを通じて維持する相対 / 絶対の関係を確立し ます。STEP2 ではすべての世代別データ・セットが削除され、STEP2 は終了しま す。STEP3 では、システムは作成された新しい世代別データ・セット (DD3) に、 絶対世代番号 G0009V00 を割り当てます。 次の例では、ジョブの始めにすべての世代別データ・セットを削除するように、JCL がセットアップされます。 //STEP1 EXEC //DD1 DD DISP=(OLD,DELETE),DSN=A.B.C //STEP2 EXEC //DD2 DD DISP=(NEW,CATLG),DSN=A.B.C(+1) //STEP3 EXEC //DD3 DD DISP=(NEW,CATLG),DSN=A.B.C(+2) この 2 番目の例では、相対世代番号がジョブで最初に使用されるさいに、システム は STEP2 での相対 / 絶対の関係を確立します。さらにシステムは、DD2 で参照さ れるデータ・セットに絶対世代番号 G0001V00 を割り当て、DD3 で参照されるデ ータ・セットに絶対世代番号 G0002V00 を割り当てます。 再始動のためのジョブの実行依頼 JOB ステートメントの RESTART パラメーターを使用して、再始動するために実行 依頼されたジョブ内で、世代別データ・セットを参照するときに適用される規則が あります。 ステップ再始動の場合 再始動のステップより前のステップで作成され、カタログされた世代別データ・セ ットを参照するときは、現行の相対世代番号を使用してください。たとえば、最後 に作成されてカタログされた世代別データ・セットに世代番号 +2 が割り当てられ た場合、そのデータ・セットは再始動のステップと、その後のステップで 0 として 参照されます。この場合、作成されたときに +1 の番号が割り当てられた世代別デ ータ・セットは、-1 として参照されます。 チェックポイント再始動の場合 再始動のステップで作成された世代別データ・セットをカタログするのではなく、 保持する (つまり DISP=(NEW,CATLG,KEEP)) ときは、チェックポイント再始動時 に、再始動のステップより前のステップで作成されてカタログされたデータ・セッ トと世代別データ・セットは、作成時に使用された相対世代番号と同じ番号で参照 することができます。 付録 B. 世代別データ・セット 301 付録 B. GDG 据え置きチェックポイント再始動の場合 システムは GDG のボリューム通し番号を入手するときは、カタログを使用しませ ん。したがって、最初のジョブの実行から再始動までの間にカタログ内のボリュー ム通し番号を変更したときは、ボリューム通し番号を指定しなければなりません。 例 1 SMS 管理データ・セットの場合 //STEPA EXEC //DD1 DD //DD2 DD //DD3 DD PGM=PROCESS DSNAME=A.B.C(+1),DISP=(NEW,CATLG) DSNAME=A.B.C(+2),DISP=(NEW,CATLG) DSNAME=A.B.C(+3),DISP=(NEW,CATLG) このステップは、3 つの SMS 管理データ・セットを GDG に追加するときに使用 する DD ステートメントを示します。 データ・セットにデータ・クラスとストレージ・クラスを選択するときは、インス トール先作成の自動クラス選択 (ACS) ルーチンが使用されます。 例 2 SMS 管理データ・セットの場合 //JWC //STEP1 //DDA //DDB //DDC JOB EXEC DD DD DD ,’J. GRIFFIN-KEENE’ PGM=REPORT9 DSNAME=A.B.C(-2),DISP=OLD DSNAME=A.B.C(-1),DISP=OLD DSNAME=A.B.C(0),DISP=OLD このジョブは、GDG に他の世代別データ・セットが入っていないときに、最初の例 で作成された SMS 管理の世代別データ・セットを検索するときに必要な DD ステ ートメントを示します。 例 3 非 SMS 管理データ・セットの場合 //STEPA EXEC //DD1 DD // //DD2 DD // //DD3 DD // // PGM=PROCESS DSNAME=A.B.C(+1),DISP=(NEW,CATLG),UNIT=3400-6, VOL=SER=13846,LABEL=(,SUL) DSNAME=A.B.C(+2),DISP=(NEW,CATLG),UNIT=3330, VOL=SER=10311,SPACE=(480,(150,20)) DSNAME=A.B.C(+3),DISP=(NEW,CATLG),UNIT=3350, VOL=SER=28929,SPACE=(480,(150,20)), DCB=(LRECL=120,BLKSIZE=480) このステップは、3 つの非 SMS 管理データ・セットを GDG に追加するときに使 用する DD ステートメントを示します。 モデル・データ・セット・ラベルが GDG 索引と同じボリュームに入っていて、 GDG と同じ名前 (A.B.C) であるため、DD1 と DD2 には DCB パラメーターが指 定されていません。DCB パラメーターが 3 番目の DD ステートメントに指定され ているため、属性 LRECL と BLKSIZE はモデル・データ・セット・ラベルに指定 されている属性をオーバーライドします。 例 4 302 z/OS MVS JCL ユーザーズ・ガイド 付録 B. GDG 非 SMS 管理データ・セットの場合 //JWC //STEP1 //DDA //DDB //DDC JOB EXEC DD DD DD ,’J. GRIFFIN-KEENE’ PGM=REPORT9 DSNAME=A.B.C(-2),DISP=OLD,LABEL=(,SUL) DSNAME=A.B.C(-1),DISP=OLD DSNAME=A.B.C(0),DISP=OLD このジョブは GDG に他の世代別データ・セットが入っていないときに、3 番目の 例で作成された非 SMS 管理の世代別データ・セットを検索するときに必要な DD ステートメントを示します。 例 5 SMS 管理データ・セットの場合 //J1 JOB //S11 EXEC //A DD //S12 EXEC //B DD //S13 EXEC //C DD . . //J2 JOB //S21 EXEC //D DD //S22 EXEC //E DD //S23 EXEC //F DD //S24 EXEC //G DD //S25 EXEC //H DD //S26 EXEC //J DD //S27 EXEC //K DD //S28 EXEC //L DD //S29 EXEC //M DD . . ACCT34,’DEPT.17’ PGM=P1 DSNAME=GDGDS(+1),DISP=(NEW,CATLG),STORCLAS=... PGM=P2 DSNAME=GDGDS(+2),DISP=(NEW,CATLG),STORCLAS=... PGM=P3 DSNAME=GDGDS(+1),DISP=OLD ACCT34,’DEPT.17’ PGM=P4 DSNAME=GDGDS,DISP=OLD PGM=P5 DSNAME=GDGDS(0),DISP=OLD PGM=P6 DSNAME=GDGDS(+1),DISP=(NEW,CATLG),STORCLAS=... PGM=P7 DSNAME=GDGDS(+2),DISP=(NEW,CATLG),STORCLAS=... PGM=P8 DSNAME=GDGDS(+1),DISP=OLD PGM=P9 DSNAME=GDGDS(+2),DISP=OLD PGM=P10 DSNAME=GDGDS(0),DISP=OLD PGM=P11 DSNAME=GDGDS(-1),DISP=OLD PGM=P12 DSNAME=GDGDS,DISP=OLD 以上の 2 つのジョブは、世代別データ・セットの作成および検索を示しています。 DD ステートメント A - 1 番目の世代を作成します (割り振り時にカタログさ れ、ステップの終わりにロールインされます)。 DD ステートメント B - 2 番目の世代を作成します (割り振り時にカタログさ れ、ステップの終わりにロールインされます)。 DD ステートメント C - 1 番目の世代を参照します。 ジョブ J1 の終わりに、世代 1 と 2 がカタログされています。 DD ステートメント D - すべての世代 (1 番目と 2 番目) を参照します。 DD ステートメント E - 2 番目の世代を参照します。 DD ステートメント F - 3 番目の世代を作成します (割り振り時にカタログさ れ、ステップの終わりにロールインされます)。 付録 B. 世代別データ・セット 303 付録 B. GDG DD ステートメント G - 4 番目の世代を作成します (割り振り時にカタログさ れ、ステップの終わりにロールインされます)。 DD ステートメント H - 3 番目の世代を参照します。 DD ステートメント J - 4 番目の世代を参照します。 DD ステートメント K - 2 番目の世代を参照します。 DD ステートメント L - 1 番目の世代を参照します。 DD ステートメント M - すべての世代 (1 番目から 4 番目) を参照します。 ジョブ J2 の終わりに、世代 3 と 4 がカタログされています。 例 6 非 SMS 管理データ・セットの場合 //J1 JOB //S11 EXEC //A DD //S12 EXEC //B DD //S13 EXEC //C DD . . //J2 JOB //S21 EXEC //D DD //S22 EXEC //E DD //S23 EXEC //F DD //S24 EXEC //G DD //S25 EXEC //H DD //S26 EXEC //J DD //S27 EXEC //K DD //S28 EXEC //L DD //S29 EXEC //M DD . . ACCT34,’DEPT.17’ PGM=P1 DSNAME=GDGDS(+1),DISP=(,CATLG),UNIT=... PGM=P2 DSNAME=GDGDS(+2),DISP=(,CATLG),UNIT=... PGM=P3 DSNAME=GDGDS(+1),DISP=OLD ACCT34,’DEPT.17’ PGM=P4 DSNAME=GDGDS,DISP=OLD PGM=P5 DSNAME=GDGDS(0),DISP=OLD PGM=P6 DSNAME=GDGDS(+1),DISP=(,CATLG),UNIT=... PGM=P7 DSNAME=GDGDS(+2),DISP=(,CATLG),UNIT=... PGM=P8 DSNAME=GDGDS(+1),DISP=OLD PGM=P9 DSNAME=GDGDS(+2),DISP=OLD PGM=P10 DSNAME=GDGDS(0),DISP=OLD PGM=P11 DSNAME=GDGDS(-1),DISP=OLD PGM=P12 DSNAME=GDGDS,DISP=OLD 以上の 2 つのジョブは、世代別データ・セットの作成および検索を示しています。 DD ステートメント A - 1 番目の世代を作成します (ステップの終わりにカタ ログします)。 DD ステートメント B - 2 番目の世代を作成します (ステップの終わりにカタロ グします)。 DD ステートメント C - 1 番目の世代を参照します。 ジョブ J1 の終わりに、世代 1 と 2 がカタログされています。 DD ステートメント DD ステートメント DD ステートメント グします)。 DD ステートメント ログします)。 304 z/OS MVS JCL ユーザーズ・ガイド D - すべての世代 (1 番目と 2 番目) を参照します。 E - 2 番目の世代を参照します。 F - 3 番目の世代を作成します (ステップの終わりにカタロ G - 4 番目の世代を作成します (ステップの終わりにカタ 付録 B. GDG DD ステートメント H - 3 番目の世代を参照します。 DD ステートメント J - 4 番目の世代を参照します。 DD ステートメント K - 2 番目の世代を参照します。 DD ステートメント L - 1 番目の世代を参照します。 DD ステートメント M - すべての世代 (1 番目から 4 番目) を参照します。 ジョブ J2 の終わりに、世代 3 と 4 がカタログされています。 付録 B. 世代別データ・セット 305 付録 B. GDG 306 z/OS MVS JCL ユーザーズ・ガイド 付録 C. VSAM データ・セット 直接アクセス記憶装置上のデータ・セットには、仮想記憶アクセス方式 (VSAM) を 使用することができます。VSAM は他のアクセス方式とは違うので、VSAM デー タ・セットに使用する DD パラメーターとサブパラメーターは一部異なります。 ここでは、下記の主な 2 つの項目について説明しています。 v VSAM データ・セット - SMS を使用する場合。SMS がインストールされてい て、アクティブなときには、307 ページを参照してください。 v VSAM データ・セット - SMS を使用しない場合。SMS がインストールされて いないか、非アクティブのときには、311 ページを参照してください。 VSAM データ・セット - SMS を使用する場合 VSAM データ・セットの作成 - SMS を使用する場合 永続 VSAM データ・セットを作成するには、(1) アクセス方式サービス・プログラ ム・コマンドを使用するか、(2) RECORG パラメーターを指定した DD ステートメ ントか RECORG が指定されているデータ・クラスを指定した DD ステートメント を使用してください。一時 VSAM データ・セットを作成することもできます。 SMS の詳細については、『付録 D. SMS を使用したデータ・セット』を参照して ください。 VSAM データ・セットを作成するときは、次の形式で DD ステートメントを指定 します。 //ddname DD DSNAME=dsname,RECORG=record-organization, // DISP=(NEW,...)... データ・クラスに RECORG が指定されているときは、次のような DD ステートメ ントを指定します。 //ddname DD DSNAME=dsname,DATACLAS=data-class-name, // DISP=(NEW,...)... システムは永続 VSAM データ・セットを割り振るときに、カタログします。 既存の VSAM データ・セットの検索 - SMS を使用する場合 既存の VSAM データ・セットを検索するときは、次のような形式で DD ステート メントを指定します。 //ddname DD //ddname DD DSNAME=dsname,DISP=OLD DSNAME=dsname,DISP=SHR 1 つのジョブ内で VSAM データ・セットを渡すことができます。(システムは、古 い永続 VSAM データ・セットについての PASS を KEEP に置き換えることに注意 してください。そのジョブ内でそれ以降にそのデータ・セットを参照すると、シス テムはカタログからデータ・セット情報を入手します。) © Copyright IBM Corp. 1988, 2004 307 付録 C. VSAM SMS に関するマイグレーションの考慮事項 DISP=(OLD,DELETE) を指定して VSAM データ・セットを割り振る JCL がある場 合、SMS を使用しないと、システムは DELETE を無視しそのデータ・セットを保 持します。ただし SMS を使用する場合は DELETE は有効であり、システムはその データ・セットを削除します。 DD ステートメント・パラメーター - SMS を使用する場合 VSAM データ・セットに使用しなければならない DD ステートメント・パラメー ターを表 46 に示します。また必要であれば、他の DD パラメーターを使用して、 データ・クラス内の属性 (KEYLEN や KEYOFF など) をオーバーライドすること ができます。使用してはならないパラメーター、または使用の際に注意を必要とす るパラメーターは、 310 ページの表 47 に示します。 表 46. VSAM データ・セットを処理するときに使用する DD パラメーター (SMS を使用する場合) パラメーター サブパラメーター 説明 次の処理のために、このパラメーターにサブパラメーターを指定し ます。 AMP 1. ACB、EXLST、または GENCB マクロ命令を指定したオペラン ドをオーバーライドする。 2. ACB または GENCB マクロ命令から抜けているオペランドを指 定する。 3. チェックポイント / 再始動オプションを示す。 4. ISAM マクロ命令を使用して、キー順データ・セットを処理する ときのオプションを示す。 5. DD ステートメントが装置とボリューム情報または DUMMY を 指定しているときに、データ・セットが VSAM データ・セット であることを示す。 6. VSAM が、DD ステートメントを識別する ACB のストレー ジ・ダンプを提供することを示す。 DATACLAS data-class-name VSAM データ・セットの場合、特別な考慮事項はありません。ただ し、レコード編成 (RECORG) には VSAM データ・セットを指定し なければなりません。 DDNAME ddname VSAM データ・セットの場合、特別な考慮事項はありません。 DISP すべてのサブパラメー VSAM データ・セットには、UNCATLG 以外のすべての DISP サブ ター パラメーターを使用することができます。UNCATLG は無視されま す (UNCATLG を指定すると、KEEP が暗黙指定されます)。 DSNAME dsname VSAM は dsname を使用します。区域名 (area-name)、世代番号 (generation)、または、メンバー名 (member) に dsname を指定する と、無視されます。 すべての一時 dsnames VSAM データ・セットには一時 dsname を指定することができま す。 *.ddname 形式のすべ ての逆方向 DD 参照 REFDD パラメーターには、VSAM データ・セットへの逆方向参照 を指定することができます。 DUMMY 308 z/OS MVS JCL ユーザーズ・ガイド VSAM の場合、特別な考慮事項はありません。ただし、読み取ろう とするとデータの終わり状態になり、書き込むと書き込みの正常完 了を示す戻りコードが出されます。これを指定するときは、 AMP=AMORG も指定しなければなりません。 付録 C. VSAM 表 46. VSAM データ・セットを処理するときに使用する DD パラメーター (SMS を使用する場合) (続き) パラメーター サブパラメーター 説明 DYNAM VSAM データ・セットの場合、特別な考慮事項はありません。 FREE VSAM データ・セットの場合、特別な考慮事項はありません。 MGMTCLAS mgmt-class-name VSAM データ・セットの場合、特別な考慮事項はありません。 RECORG KS キー順データ・セットを指定します。 ES 入力順データ・セットを指定します。 RR 相対レコード・データ・セットを指定します。 LS 線形スペース・データ・セットを指定します。 RECORG は、データ・クラスに指定されたレコード編成をオーバー ライドします。 SECMODEL VSAM データ・セットの場合、特別な考慮事項はありません。 SPACE VSAM データ・セットの場合、特別な考慮事項はありません。 STORCLAS storage-class-name VSAM データ・セットの場合、特別な考慮事項はありません。スト レージ・クラスが割り当てられている場合、VSAM データ・セット は SMS が管理します。 UNIT device number VSAM に有効な装置の装置番号でなければなりません (2305、3330、3340、3344、3350、3375、3380、3390、または 9345)。これ以外のタイプを指定すると、OPEN は失敗します。 type VSAM によってサポートされるタイプでなければなりません (2305、3330、3340、3350、3375、3380、3390、または 9345)。これ 以外のタイプを指定すると、OPEN は失敗します。 group VSAM によってサポートされるグループでなければなりません。こ れ以外のタイプを指定すると、OPEN は失敗します。 p システムには、指定したすべてのボリュームをマウントできるだけ の装置が必要です。使用できる装置が十分に用意されていれば、 UNIT=P を指定してボリュームのマウントと取り外しを回避するこ とによって、パフォーマンスを向上させることができます。統合カ タログ機能カタログに定義されたマルチボリューム・データ・セッ トの場合には、すべての基本ボリュームを同時に取り付けなければ ならないので、UNIT=(,P) を指定しなければなりません。 unit count 要求された装置の数がデータ・セットの置かれているボリュームの 数より多い場合、臨時の装置が割り振られます。キー順データ・セ ットとその索引が非類似装置上にあるときは、非類似装置タイプの 間で均等に臨時の装置が割り振られます。要求された装置の数がデ ータ・セットの置かれているボリュームの数より少ないが、デー タ・セットにアクセスするときに最低限必要な数より多いときは、 その最小数より多い装置が非類似装置タイプの間で均等に割り振ら れます。指定のカウントより多い装置が別のタスクによって使用中 でも、装置が共用可能であり、処理するデータ・セットの一部が入 っているボリュームが取り付けられている場合は、その装置がこの データ・セットにも割り振られます。 DEFER VSAM の場合、特別な考慮事項はありません。 注: MVS/ESA SP 5.2 は、2305、3350P、および 3351P などの多重アクセス機構付き装置をサポートしません。 付録 C. VSAM データ・セット 309 付録 C. VSAM 表 46. VSAM データ・セットを処理するときに使用する DD パラメーター (SMS を使用する場合) (続き) パラメーター サブパラメーター 説明 VOLUME PRIVATE VSAM の場合、特別な考慮事項はありません。 SER アクセス方式サービス・プログラム DEFINE コマンドに使用したボ リューム通し番号は、データ・セットを定義するときに指定した VOLUME=SER のボリューム通し番号と一致していなければなりま せん。VSAM データ・セットを定義したあとは、データ・セットを 検索するときに、ボリューム通し番号を DD ステートメントに指定 する必要がありません。ただし VOLUME=SER と UNIT=type を指 定するときは、特に指定したボリュームだけが最初に取り付けられ ます。データ・セットに割り振られた装置の 1 つ (少なくとも) が 共用できないか、データ・セットに割り振られたボリュームの総数 と装置カウントが等しいと、必要なときに他のボリュームが取り付 けられます。装置カウントが指定のボリューム通し番号の数より少 ないか、DEFER を指定した場合は、装置を共用することができませ ん。 VOLUME=SER を指定し、ユーザー・カタログにデータ・セットを カタログするときは、現行のステップに JOBCAT または STEPCAT としてユーザー・カタログを定義しなければなりません。 表 47. VSAM データ・セットの処理時に使用してはいけない DD パラメーター (SMS を使用する場合) パラメーター サブパラメーター 説明 BURST 適用不可。 CHARS 適用不可。 CHKPT VSAM は CHKPT を無視します。 COPIES 適用不可。 DATA 適用不可。 すべて DCB 適用不可。 DEST SYSOUT パラメーターだけを指定した DEST を指定します。 DLM 適用不可。 FCB 適用不可。 FLASH 適用不可。 LABEL BLP、NL、NSL 該当せず。 IN 該当せず。 OUT 該当せず。 NOPWREAD LABEL パラメーターの PASSWORD/NOPWREAD の指定とは無関 係に、すべての VSAM データ・セットにパスワード保護ビットが 設定されます。 PASSWORD LABEL パラメーターの PASSWORD/NOPWREAD の指定とは無関 係に、すべての VSAM データ・セットにパスワード保護ビットが 設定されます。 SL、SUL これらのパラメーターは直接アクセス記憶装置に適用されますが、 SL または SUL を指定した場合であっても、どちらも指定しない場 合であっても、VSAM には必ず SL が使用されます。 MODIFY 310 z/OS MVS JCL ユーザーズ・ガイド 適用不可。 付録 C. VSAM 表 47. VSAM データ・セットの処理時に使用してはいけない DD パラメーター (SMS を使用する場合) (続き) パラメーター サブパラメーター 説明 SYSOUT に一緒に指定できないパラメーターを指定すると (たとえ ば DISP)、ジョブ・ステップは終了して、エラー・メッセージが出 されます。 SYSOUT UCS すべて 適用不可。 UNIT AFF このサブパラメーターは、注意して使用してください。クラスタ ー・コンポーネント (データと索引) が非類似装置にある場合は、 UNIT=AFF を指定すると、予測できない結果が生じることがありま す。 VOLUME REF このサブパラメーターは、注意して使用してください。参照される ボリュームが、データ・セットについてのカタログ・レコードに入 っているボリュームのサブセットではないと、予測できない結果が 生じることがあります。 vol-seq-number 予想できない結果が生じることがあります。 volume-count このサブパラメーターは、非特定ボリュームの数を指定するため、 適用できません。すべての VSAM ボリュームは、特別に定義しな ければなりません。 * 適用不可。 VSAM データ・セット - SMS を使用しない場合 VSAM データ・セットの作成 - SMS を使用しない場合 アクセス方式サービス・プログラム・コマンドを使用して、VSAM データ・セット を作成してください。DD ステートメントを使用することはできません。 既存の VSAM データ・セットの検索 - SMS を使用しない場合 カタログ式 VSAM データ・セットを要求するときは、次の形式で DD ステートメ ントを指定します。 //ddname DD //ddname DD DSNAME=dsname,DISP=OLD DSNAME=dsname,DISP=SHR 注: VSAM データ・セットは、1 つのジョブ内で渡すことはできません。 DD ステートメント・パラメーター - SMS を使用しない場合 修正なしで使用できる DD ステートメント・パラメーターを、 312 ページの表 48 に示します。使用してはならないパラメーター、または使用の際に注意を必要とす るパラメーターは、 314 ページの表 49 に示します。 VSAM には、固有の DD ステートメント・パラメーターが 1 つあります (AMP)。 AMP パラメーターは、DD ステートメントで定義されたデータ・セットをオープン するときに有効です。 付録 C. VSAM データ・セット 311 付録 C. VSAM 表 48. VSAM データ・セットの処理時に使用する DD パラメーター (SMS を使用しない場合) パラメーター サブパラメーター 説明 次の処理のために、このパラメーターにサブパラメーターを指定し ます。 AMP 1. ACB、EXLST、または GENCB マクロ命令を指定したオペラン ドをオーバーライドする。 2. ACB または GENCB マクロ命令から抜けているオペランドを指 定する。 3. チェックポイント / 再始動オプションを示す。 4. ISAM マクロ命令を使用して、キー順データ・セットを処理する ときのオプションを示す。 5. DD ステートメントが装置とボリューム情報または DUMMY を 指定しているときに、データ・セットが VSAM データ・セット であることを示す。 6. VSAM が、DD ステートメントを識別する ACB のストレー ジ・ダンプを提供することを示す。 DDNAME ddname VSAM の場合、特別な考慮事項はありません。 DISP SHR 他のジョブとデータ・セットを共用することを示します。ただしこ のサブパラメーターだけでは、共用が起きることは保証されませ ん。データ・セットの共用の詳細については、z/OS DFSMS: デー タ・セットの使用法 を参照してください。 OLD VSAM の場合、特別な考慮事項はありません。 dsname データ・セットが属している VSAM クラスターを指定します。 DSNAME DUMMY VSAM の場合、特別な考慮事項はありません。ただし、読み取ろう とするとデータの終わり状態になり、書き込むと書き込みの正常完 了を示す戻りコードが出されます。これを指定するときは、 AMP=AMORG も指定しなければなりません。 DYNAM VSAM の場合、特別な考慮事項はありません。 FREE VSAM の場合、特別な考慮事項はありません。 PROTECT VSAM の場合、特別な考慮事項はありません。 312 z/OS MVS JCL ユーザーズ・ガイド 付録 C. VSAM 表 48. VSAM データ・セットの処理時に使用する DD パラメーター (SMS を使用しない場合) (続き) パラメーター サブパラメーター 説明 UNIT device number VSAM に有効な装置の装置番号でなければなりません (2305、3330、3340、3344、3350、3375、3380、3390、または 9345)。これ以外のタイプを指定すると、OPEN は失敗します。 type VSAM によってサポートされるタイプでなければなりません (2305、3330、3340、3350、3375、3380、3390、または 9345)。これ 以外のタイプを指定すると、OPEN は失敗します。 group VSAM によってサポートされるグループでなければなりません。こ れ以外のタイプを指定すると、OPEN は失敗します。 p システムには、指定したすべてのボリュームをマウントできるだけ の装置が必要です。使用できる装置が十分に用意されていれば、 UNIT=P を指定してボリュームのマウントと取り外しを回避するこ とによって、パフォーマンスを向上させることができます。統合カ タログ機能カタログに定義されたマルチボリューム・データ・セッ トの場合には、すべての基本ボリュームを同時に取り付けなければ ならないので、UNIT=(,P) を指定しなければなりません。 unit count 要求された装置の数がデータ・セットの置かれているボリュームの 数より多い場合、臨時の装置が割り振られます。キー順データ・セ ットとその索引が非類似装置上にあるときは、非類似装置タイプの 間で均等に臨時の装置が割り振られます。要求された装置の数がデ ータ・セットの置かれているボリュームの数より少ないが、デー タ・セットにアクセスするときに最低限必要な数より多いときは、 その最小数より多い装置が非類似装置タイプの間で均等に割り振ら れます。指定のカウントより多い装置が別のタスクによって使用中 でも、装置が共用可能であり、処理するデータ・セットの一部が入 っているボリュームが取り付けられている場合は、その装置がこの データ・セットにも割り振られます。 DEFER VSAM の場合、特別な考慮事項はありません。 注: MVS/ESA SP 5.2 は、2305、3350P、および 3351P などの多重アクセス機構付き装置をサポートしません。 VOLUME PRIVATE VSAM の場合、特別な考慮事項はありません。 SER アクセス方式サービス・プログラム DEFINE コマンドに使用したボ リューム通し番号は、データ・セットを定義するときに指定した VOLUME=SER のボリューム通し番号と一致していなければなりま せん。VSAM データ・セットを定義したあとは、データ・セットを 検索するときに、ボリューム通し番号を DD ステートメントに指定 する必要がありません。ただし VOLUME=SER と UNIT=type を指 定するときは、特に指定したボリュームだけが最初に取り付けられ ます。データ・セットに割り振られた装置の 1 つ (少なくとも) が 共用できないか、データ・セットに割り振られたボリュームの総数 と装置カウントが等しいと、必要なときに他のボリュームが取り付 けられます。装置カウントが指定のボリューム通し番号の数より少 ないか、DEFER を指定した場合は、装置を共用することができませ ん。 VOLUME=SER を指定し、ユーザー・カタログにデータ・セットを カタログするときは、現行のステップに JOBCAT または STEPCAT としてユーザー・カタログを定義しなければなりません。 付録 C. VSAM データ・セット 313 付録 C. VSAM 表 49. VSAM データ・セットの処理時に使用しない DD パラメーター (SMS を使用しない場合) パラメーター サブパラメーター 説明 BURST 適用不可。 CHARS 適用不可。 CHKPT VSAM は CHKPT を無視します。 COPIES 適用不可。 DATA 適用不可。 すべて DCB 適用不可。 SYSOUT パラメーターだけを指定した DEST を指定します。 DEST DISP CATLG VSAM データ・セットは、アクセス方式サービス・プログラム・コ マンドを出した結果、カタログされたり、カタログから除去された りします。CATLG を指定するとメッセージは出されますが、デー タ・セットはカタログされません。 DELETE VSAM データ・セットは、アクセス方式サービス・プログラム・コ マンドを出した結果、除去されます。DELETE を指定するとメッセ ージは出されますが、データ・セットは除去されません。 MOD VSAM データ・セットの場合、MOD は OLD として処理されま す。ただし、ISAM を使用して処理する場合を除きます。その場合 は、MOD はロードの再開を示します。 KEEP VSAM データ・セットの場合、KEEP は暗黙指定されるので、指定 する必要はありません。 NEW アクセス方式サービス・プログラム DEFINE コマンドを出した結 果、VSAM データ・スペースは最初は割り振られます。NEW を指 定するとシステムはスペースを割り振りますが、VSAM はそのスペ ースを使用しません。さらに、DISP=NEW によってスペースを入手 しようとしたが、そのスペースが小さすぎて使用可能にしておくこ とができないと、アクセス方式サービス・プログラムのスペース要 求は失敗することがあります。 UNCATLG VSAM データ・セットは、アクセス方式サービス・プログラム・コ マンドを出した結果、カタログされたり、カタログから除去された りします。UNCATLG を指定するとメッセージは出されますが、デ ータ・セットはカタログから除去されません。 PASS 適用不可。ただしエラー検査は行われないので、類似装置上に索引 をもつキー順データ・セットに PASS を指定しても、エラーにはな りません。VSAM データ・セットと索引が非類似装置にあると、予 測できない結果が生じることがあります。いずれの場合であって も、データ・セットは渡されません。 適用不可。 DLM DSNAME dsname(area-name) dsname(generation) dsname(member) VSAM は dsname を使用します。dsname とともに区域名、世代番 号、またはメンバー名を指定しても、無視されます。 すべての一時 dsnames VSAM データ・セットには、一時 dsname を指定しないでくださ い。 *ddname 形式のすべて VSAM データ・セットの逆方向参照を指定しないでください。参照 の逆方向 DD 参照 する対象がクラスターであり、データ・セットと索引が非類似装置 にあるときは、逆方向 DD 参照の結果は予測できません。 適用不可。 FCB 314 z/OS MVS JCL ユーザーズ・ガイド 付録 C. VSAM 表 49. VSAM データ・セットの処理時に使用しない DD パラメーター (SMS を使用しない場合) (続き) パラメーター サブパラメーター 適用不可。 FLASH LABEL 説明 BLP、NL、NSL 適用不可。 IN 適用不可。 OUT 適用不可。 NOPWREAD LABEL パラメーターの PASSWORD/NOPWREAD の指定とは無関 係に、すべての VSAM データ・セットにパスワード保護ビットが 設定されます。 PASSWORD LABEL パラメーターの PASSWORD/NOPWREAD の指定とは無関 係に、すべての VSAM データ・セットにパスワード保護ビットが 設定されます。 SL、SUL これらのパラメーターは直接アクセス記憶装置に適用されますが、 SL または SUL を指定した場合であっても、どちらも指定しない場 合であっても、VSAM には必ず SL が使用されます。 MODIFY 適用不可。 SPACE アクセス方式サービス・プログラム DEFINE コマンドを出した結 果、VSAM データ・スペースは最初は割り振られます。SPACE を 指定するとシステムはスペースを割り振りますが、VSAM はそのス ペースを使用しません。さらに、スペースについてのアクセス方式 サービス・プログラムの要求は、SPACE によるスペースの入手状態 によっては失敗することもあります。 SYSOUT SYSOUT に一緒に指定できないパラメーターを指定すると (たとえ ば DISP)、ジョブ・ステップは終了して、エラー・メッセージが出 されます。 UCS すべて 適用不可。 UNIT AFF このサブパラメーターは、注意して使用してください。クラスタ ー・コンポーネント (データと索引) が非類似装置にある場合は、 UNIT=AFF を指定すると、予測できない結果が生じることがありま す。 VOLUME REF このサブパラメーターは、注意して使用してください。参照される ボリュームが、データ・セットについてのカタログ・レコードに入 っているボリュームのサブセットではないと、予測できない結果が 生じることがあります。 vol-seq-number 予想できない結果が生じることがあります。 volume-count このサブパラメーターは、非特定ボリュームの数を指定するため、 適用できません。すべての VSAM ボリュームは、特別に定義しな ければなりません。 * 適用不可。 付録 C. VSAM データ・セット 315 付録 C. VSAM 316 z/OS MVS JCL ユーザーズ・ガイド 付録 D. SMS を使用したデータ・セット ここでは、本書と z/OS MVS JCL 解説書 中の、SMS を使用したデータ・セットの 定義に関する説明を要約します。 SMS は、インストールされてアクティブになるとデータ・セットを管理するので、 新規データ・セットを DD ステートメントを用いてより簡単に定義することができ るようになります。ご使用のシステムのストレージ管理者が、SMS によって管理す る必要のあるデータ・セットを決めます。 SMS は、下記のタイプのデータ・セットを管理することができます。 v 物理順次データ・セット v 区分データ・セット (PDS および PDSE) v VSAM データ・セット v GDG データ・セット v 一時データ・セット v VIO データ・セット SMS は、下記のタイプのデータ・セットを管理しません。 v テープ・データ・セット v ISAM データ・セット v SYSOUT データ・セット (SYSOUT パラメーター) v サブシステム・データ・セット (SUBSYS パラメーター) v 端末装置からあるいは端末装置に、送受信される TSO/E データ・セット v TCAM メッセージ・データ・セット v 大容量記憶 (MSS) ボリューム上のデータ・セット v ストリーム内データ・セット SMS を介してデータ・セットを管理する場合には、DD ステートメントの DSNAME パラメーターにアポストロフィでデータ・セット名を囲んで指定すること はできません。ただし、次の場合は例外です。データ・セットが SMS 管理の取り 付け可能テープ・ボリュームに割り当てられるか、あるいはすでにそのボリューム に入っている場合には、DSNAME パラメーターにデータ・セット名をアポストロフ ィで囲み指定することができます。この例外が適用されるのは、DFSMS/MVS 1.1 またはそれ以降がインストールされている場合だけです。 注: 本書では、「SMS を使用する場合」という言葉は、SMS がインストールされ ていて、アクティブである場合に適用される情報を示します。「SMS を使用し ない」という言葉は、SMS がインストールされていないか、アクティブではな いことを示します。 SMS 構成 SMS を使用する場合、新規データ・セットには下記の 3 つの構成の 1 つ以上のも のを含めることができます。 v データ・クラス - データ・セットの割り振りに関連したデータ・セットの属性が 入ります。 © Copyright IBM Corp. 1988, 2004 317 付録 D. SMS を使用したデータ・セット v 管理クラス - データ・セットのマイグレーションとバックアップに関連したデー タ・セットの属性が入ります。管理クラスは、ストレージ・クラスも割り当てら れているデータ・セットだけに割り当てることができます。 v ストレージ・クラス - データ・セットが占めているストレージに関連したデー タ・セットの属性が入ります。 ストレージ・クラスが割り当てられたデータ・セットは、「SMS 管理データ・セ ット」として定義されます。 ご使用のシステムのストレージ管理者は、SMS が新規データ・セットに構成を割り 当てるときに使用する自動クラス選択 (ACS) ルーチンを作成します。 SMS を使用する場合の例 新規データ・セットを定義するときに、DDNAME、DSNAME、および DISP パラメ ーターを指定することができます。 //SMSDS0 DD DSNAME=MYDS0.PGM,DISP=(NEW,KEEP) 下記の指定により、データ・セットを検索することができます。 //SMSDSR DD DSNAME=MYDS0.PGM,DISP=MOD この例では、インストール先作成の ACS ルーチンは、(JOB、EXEC、および DD ステートメントからのデータ・セット名と情報にもとづいて) データ・セットに適 切なデータ・クラス、管理クラス、およびストレージ・クラスを選択することがで きます。データ・セットの ddname、dsname、および後処理だけを指定してくださ い。ACS ルーチンが選択した構成には、データ・セットを管理するときに必要なそ の他の属性すべてが入っています。 SMS を使用しない場合 DCB、SPACE、UNIT、および VOLUME パラメーターには、データ・セットの属 性を指定する必要があります。たとえば、次のように指定します。 //SMSDS0 // // DD DSNAME=MYDS0.PGM,VOLUME=SER=SYS084, UNIT=SYSDA,SPACE=(TRK,(10,5)),DISP=(NEW,CATLG), DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120) 既存の JCL 通常、既存の JCL はそのまま正しく実行されます。SMS を使用すると、ご使用の システムでは既存の JCL を変更しなくてもデータ・クラス、管理クラス、およびス トレージ・クラスの構成を利用することができます。インストール先作成の ACS ルーチンは、DD ステートメントに指定された既存のパラメーターをフィルターに かけたり、データ・セットに適切な構成を選択したりできるように設計することが できます。 318 z/OS MVS JCL ユーザーズ・ガイド 付録 D. SMS を使用したデータ・セット デフォルトの装置 さらに SMS を使用する非 SMS 管理データ・セットの場合には、ストレージ管理 者がシステム・デフォルト装置を SMS の下で設定してあると、UNIT を指定する 必要はありません。 ストレージ管理者に確認してください。 構成の指定 多くの場合、データ・セットにはご使用のシステムで作成した ACS ルーチンで選 択した構成が適します。 ただし新規データ・セットを定義するときに、下記の 1 つまたはそれ以上の DD パラメーターを指定すると、データ・クラス、管理クラス、またはストレージ・ク ラスを選択することができます。 v DATACLAS - データ・クラスを指定します。 v MGMTCLAS - 管理クラスを指定します。 v STORCLAS - ストレージ・クラスを指定します。 ストレージ管理者が、指定できるクラスの名前を定義しています。ISMF を使用し て、指定のクラスそれぞれに定義された名前と属性を表示することができます。 ISMF 使用法の詳細については、z/OS DFSMS 対話式記憶管理機能(ISMF)の使用法 を参照してください。 たとえば下記の指定をして、新規データ・セットにデータ・クラス DCLAS01 を選 択することができます。 //SMSDS1 DD DSNAME=MYDS1.PGM,DATACLAS=DCLAS01,DISP=(NEW,KEEP) この例では、SMS はデータ・クラス DCLAS01 の属性を使用して、データ・セット を管理します。インストール先作成の ACS ルーチンは、管理クラスとストレー ジ・クラスを選択することができます。 ACS ルーチンは指定したデータ・クラス、管理クラス、またはストレージ・クラス をオーバーライドすることができます。 データ・クラスに定義された属性のオーバーライド 新規データ・セットについては、必要があれば下記の 1 つまたは複数の DD パラ メーターを指定して、そのデータ・セットについてデータ・クラスに定義したデー タ・クラス属性をオーバーライドすることができます。 RECORG (レコード編成) または RECFM (レコード・フォーマット) LRECL (レコード長) KEYLEN (キー長) KEYOFF (キー・オフセット) DSNTYPE (タイプ、PDS または PDSE) AVGREC (レコード要求およびスペース量) SPACE (平均レコード長、1 次、2 次、およびディレクトリーの量) RETPD (保存期間) または EXPDT (満了日) VOLUME (ボリューム・カウント) たとえば、次の場合がこれに当たります。 付録 D. SMS を使用したデータ・セット 319 付録 D. SMS を使用したデータ・セット //SMSDS2 // DD DSNAME=MYDS2.PGM,DATACLAS=DCLAS02,DISP=(NEW,KEEP), LRECL=256,EXPDT=1996/033 この例では、256 の論理レコード長と 1996 年 2 月 2 日の満了日は、データ・セ ットのデータ・クラスに定義された、これに相当する属性をオーバーライドしま す。 SMS の場合は (システム管理であってもなくても)、新規データ・セットにはデー タ・クラスを関連付けることができます。上に挙げた DD パラメーターの 1 つま たはいくつか (RECORG、RECFM、LRECL、KEYLEN など) を指定しないと、シス テムは定義済みのデータ・クラス属性を使用します。 すでにあるシステム管理 DASD データ・セットについては、現行のボリューム・カ ウントをオーバーライドするためにボリューム・カウント・サブパラメーターを使 用することはできません。(サブパラメーターを使用しても、システムはその指定を 無視し、現行のボリューム・カウントを使用します。) 管理クラスに定義された属性のオーバーライド JCL で指定できる管理クラスの属性はありません。ご使用のシステムのストレージ 管理者が、SMS 管理データ・セットのマイグレーションとバックアップを制御しま す。 ストレージ・クラスに定義された属性のオーバーライド ストレージ管理者がデータ・セットのストレージ・クラスに GUARANTEED_SPACE=YES を指定している場合は、ボリューム通し番号を VOLUME パラメーターに指定することができます。 たとえば、次の場合がこれに当たります。 //SMSDS4 // DD DSNAME=MYDS4.PGM,STORCLAS=SCLAS04,DISP=(NEW,KEEP), VOLUME=SER=(222333,333444) この例では、データ・セットはボリューム通し番号 222333 と 333444 にありま す。 RACF によるデータ・セットの保護 大半の場合、ユーザーが作成するデータ・セットには、RACF ユーザー / グループ のデフォルト・データ・セット・プロファイルが適します。 ただし SECMODEL パラメーターを指定すると、デフォルトのプロファイルをオー バーライドすることができます。 SECMODEL パラメーターには、既存の RACF データ・セット・プロファイルの名前を指定してください。 たとえば、次の場合がこれに当たります。 //SMSDS5 320 DD z/OS MVS JCL ユーザーズ・ガイド DSNAME=MYDS5.PGM,SECMODEL=(GROUP1.PGM),DISP=(NEW,KEEP) 付録 D. SMS を使用したデータ・セット データ・セットの属性のモデル化 新規データ・セットの場合は LIKE または REFDD パラメーターを使用して、既存 のカタログ式データ・セットまたは定義済みのデータ・セットの属性を新規デー タ・セットにコピーしてください。 たとえば、次の場合がこれに当たります。 //SMSDS6 or //SMSDS7 //SMSDS8 // DD DSNAME=MYDS6.PGM,LIKE=MYDSCAT.PGM,DISP=(NEW,KEEP) DD DSNAME=MYDS7.PGM,DATACLAS=DCLAS02,DISP=(NEW,KEEP) DD DSNAME=MYDS8.PGM,REFDD=*.SMSDS7,DISP=(NEW,KEEP), LRECL=1024 LIKE の場合も REFDD の場合も、これらのクラスの属性をオーバーライドすると きに使用できる DD パラメーターを指定すると、参照されるデータ・セットから得 られたデータ・クラス属性をオーバーライドすることができます。 付録 D. SMS を使用したデータ・セット 321 付録 D. SMS を使用したデータ・セット 322 z/OS MVS JCL ユーザーズ・ガイド 付録 E. 特記事項 本書は米国 IBM が提供する製品およびサービスについて作成したものです。 本書に記載の製品、サービス、または機能が日本においては提供されていない場合 があります。日本で利用可能な製品、サービス、および機能については、日本 IBM の営業担当員にお尋ねください。本書で IBM 製品、プログラム、またはサービス に言及していても、その IBM 製品、プログラム、またはサービスのみが使用可能 であることを意味するものではありません。これらに代えて、IBM の知的所有権を 侵害することのない、機能的に同等の製品、プログラム、またはサービスを使用す ることができます。ただし、IBM 以外の製品とプログラムの操作またはサービスの 評価および検証は、お客様の責任で行っていただきます。 IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む。) を保有している場合があります。本書の提供は、お客様にこれらの特許権について 実施権を許諾することを意味するものではありません。実施権の許諾については、 下記の宛先に書面にてご照会ください。 〒106-0032 東京都港区六本木 3-2-31 IBM World Trade Asia Corporation Licensing 以下の保証は、国または地域の法律に沿わない場合は、適用されません。 IBM お よびその直接または間接の子会社は、本書を特定物として現存するままの状態で提 供し、商品性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含むす べての明示もしくは黙示の保証責任を負わないものとします。国または地域によっ ては、法律の強行規定により、保証責任の制限が禁じられる場合、強行規定の制限 を受けるものとします。 この情報には、技術的に不適切な記述や誤植を含む場合があります。本書は定期的 に見直され、必要な変更は本書の次版に組み込まれます。 IBM は予告なしに、随 時、この文書に記載されている製品またはプログラムに対して、改良または変更を 行うことがあります。 本書において IBM 以外の Web サイトに言及している場合がありますが、便宜のた め記載しただけであり、決してそれらの Web サイトを推奨するものではありませ ん。それらの Web サイトにある資料は、この IBM 製品の資料の一部ではありませ ん。それらの Web サイトは、お客様の責任でご使用ください。 IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うこと のない、自ら適切と信ずる方法で、使用もしくは配布することができるものとしま す。 本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプロ グラム(本プログラムを含む)との間での情報交換、および (ii) 交換された情報の 相互利用を可能にすることを目的として、本プログラムに関する情報を必要とする 方は、下記に連絡してください。 IBM Corporation © Copyright IBM Corp. 1988, 2004 323 特記事項 Mail Station P300 2455 South Road Poughkeepsie, NY 12601-5400 本プログラムに関する上記の情報は、適切な使用条件の下で使用することができま すが、有償の場合もあります。 本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、 IBM 所定のプログラム契約の契約条項、IBM プログラムのご使用条件、またはそれ と同等の条項に基づいて、 IBM より提供されます。 この情報をソフトコピーでご覧になっている場合は、写真やカラーの図表は表示さ れない場合があります。 商標 以下は、IBM Corporation の商標です。 v AFP v DB2 v DFSMSdfp v DFSMS/MVS v DFSORT v IBM v IBMLink v IP PrintWay v MVS/ESA v MVS/SP v OpenEdition v OS/390 v Print Services Facility v RACF v Resource Link v RETAIN v SecureWay v System/370 v System/390 v VTAM v zSeries v z/OS UNIX は、The Open Group の米国およびその他の国における登録商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。 324 z/OS MVS JCL ユーザーズ・ガイド 索引 日本語, 数字, 英字, 特殊文字の順に配列されてい ます。なお, 濁音と半濁音は清音と同等に扱われて います。 [ア行] アカウンティング情報 アカウントを識別するための 42 アクセス方式制御ブロック 参照: ACB 宛先 デフォルト 251 複数 248 宛先制御タスク、SYSOUT リソースを要求するための 図表 247 説明 247, 254 端末装置へ 254 例 254 内部読み取りプログラムへ 252 例 253 別の処理装置へ 252 例 252 ローカル装置、リモート装置、または別のノードへ 247 例 251, 252 JES2 ネットワークにおける 248 JES3 ネットワークにおける 251 SYSOUT 配布を支援するための 254 異常終了 参照: 終了 依存関係 ステップの実行前 外部 49 依存ジョブ制御 参照: DJC 依存ジョブ・ネット 使用 49 テスト 49 位置 テープにおけるデータ・セットの 127 一時データ・セット 119 イベント 外部 ジョブの保留 55 印刷 印刷出力の保護 227 フォーマット設定の制御 255 SYSOUT データ・セット 同じリストにおける 236 © Copyright IBM Corp. 1988, 2004 印刷 (続き) SYSOUT データ・セット (続き) スケジューリング 245 別々のプリンターで同時に 236 印刷サービス機能 参照: PSF 印刷出力 保護 227 受け取られなかったデータ・セット 後処理 213 異常終了における 214 ジョブの終了時 214 受け取る 受け渡しデータ・セット 要求 212 エクステント 直接アクセス・スペースの割り振りにおける エラー JCL のスキャン 106 延期 データ・セットの指定 202 オーバーフロー域 識別 119, 121 説明 281 オペレーティング・システム 内容 27 192 [カ行] 外部書き出しプログラム 参照: WRITER 解放 保留状態の SYSOUT データ・セット 要求 240 仮想記憶アクセス方式 参照: VSAM 仮想入出力 参照: VIO カタログ システム データ・セットの 123 専用 データ・セットの 123 ボリュームの 割り振りおよび割り振り解除 124 JES3 割り振りにおける 154 カタログ解除 データ・セット 世代別データ・セット 300 325 カタログ解除 (続き) データ・セット (続き) 要求 211 カタログ式プロシージャー 参照: プロシージャー カタログ登録 データ・セット カタログ式データ・セットを更新する場合 211 使用 211 正しく実行されない 211 要求 210 要求した通りに実行されない 211 管理クラス 説明 318 属性のオーバーライド 320 参照: MGMTCLAS パラメーター キーのオフセット 参照: KEYOFF パラメーター キーの長さ 参照: KEYLEN パラメーター 記憶 仮想 79 領域サイズ 80 管理者 318 クラス 属性のオーバーライド 320 まとめ 318 中央 79 領域サイズ 81 実 79 領域サイズ 81 要求 80 論理 81 記述タスク、データ・セット・リソースを要求するため の 状況の 129 例 130 図表 129 説明 129, 137 データ属性の 133 例 134, 135, 136 記述タスク、SYSOUT リソースを要求するための 図表 225 説明 225 データ属性の 225 例 225 基本区域 識別 119, 121 説明 281 基本制御プログラム 参照: BCP 326 z/OS MVS JCL ユーザーズ・ガイド 区画 参照: スプール区画 区切りステートメント 使用 122 区分データ・セット 参照: PDS クラス 出力 印刷 236 使用 236 データ・セットの割り当て ジョブ ジョブの保留における 55 ジョブをコピーするための 説明 111 パフォーマンスを制御する 経時 参照: 優先順位 限界値 SYSOUT 出力 超えた場合 262 使用 261 要求 261 コード 参照: 戻りコード 構成 SMS を使用する 説明 317 構文 スキャン エラーがあるかどうか 57, 高密度ダンプ 要求 260 コピー データ・セット名の 121 入力ストリーム 57 コマンド・ステートメント 使用 61 コメント 使用 62 224 57 111 106 [サ行] 再始動 異常終了後 46 自動ステップ 46 自動チェックポイント 46 使用 47 ジョブに世代別データ・セットを入れる場合 据え置きステップ 46 据え置きチェックポイント 46 JES2 システム障害後 47 301 再始動 (続き) JES3 システム障害後 48 索引域 識別 119, 121 説明 281 索引順次データ・セット 区域配置 285 検索 286 検索または拡張のためのパラメーター 287 作成 281 識別 119, 121 システムによるスペース要求の割り当て 194 説明 281, 289 特別なトラック要求 195 例 288 割り振りエラーが発生した場合の 285 索引付け SYSOUT データ・セット・マージンの 258 削除 一時データ・セットの 209 カタログ式データ・セットの 209 世代別データ・セットの 300 データ・セットがカタログされないときに実行されな い 211 満了日が過ぎていないデータ・セットの 209 要求 209 サブシステム プログラム制御ステートメント 205 メッセージの印刷 67 要求 204 参照 DD ステートメント 参照: REFDD パラメーター 時間パラメーター 使用 105 識別タスク、ジョブ入力のための アカウントの 42 リモート実行の場合 42 リモート実行の場合の例 42 ローカル実行の場合 42 ローカル実行の場合の例 42 ジョブの 39 例 39 ステップの 40 例 40 図表 39 説明 39, 45 プログラマーの 43 例 43 プロシージャーの 40, 41 例 40 識別タスク、データ・セット・リソースを要求するため の カタログを介した 123 例 125 ストリーム内データ・セットの 122 例 122, 123 図表 117 説明 117, 129 端末から、または端末への 128 例 128 データ・セットの 117 一時データ・セットの例 120 永続データ・セットの例 118 区分データ・セットの例 118, 121 索引順次データ・セットの例 119, 121 世代別データ・セットの例 119 データ・セット名をコピーする場合の例 121 テープ上の位置によって 127 例 128 ラベルを介した 125 例 127 3450 ディスケット入出力装置におけるデータ・セッ トの 123 例 123 TCAM メッセージ・データ・セットとしての 128 例 128 識別タスク、SYSOUT リソースを要求するための 出力クラスの 224 例 224 図表 223 説明 223, 225 3450 ディスケット入出力装置におけるデータ・セッ トの 224 例 224 SYSOUT データ・セットとして 223 例 223 資源アクセス管理機能 参照: RACF システム管理機能 参照: SMF システム生成の修飾名 一時データ・セットの場合 119 システム・ネットワーク体系 参照: SNA/SDLC 実行 再始動およびチェックポイント機能を使用して再始動 した場合 46 例 47 締切期限または定期的 (周期的) 48 使用 48 例 48 図表 45 索引 327 実行 (続き) 説明 45, 55 他のジョブに依存している場合の 49 例 50 プログラムの 45 例 46 プロシージャーの 46 例 46 リモート・ノードにおける 51 考慮事項 52 例 52 自動クラス選択ルーチン 参照: ACS ルーチン 自動優先順位グループ 参照: APG 締切期限 実行 48 終了 異常 後処理における影響 208 受け取られなかった受け渡しデータ・セットの後 処理 214 後のステップの強制実行 92, 95 実行時間を超えた 104 出力限界値を超えた 102 データ・セット後処理 208 データ・セットの受け渡しに対する影響 213 再始動 46 システムがデータ・セットをカタログできない場合 211 正常 データ・セット後処理 208 終了処理タスク、データ・セット・リソースを要求する ための 図表 207 説明 207, 220 データ・セットの後処理 207 異常終了の後処理が指定されていない場合 208 う回 215 受け渡し 212 カタログ解除 211 カタログ登録 210 削除 209 装置タイプの影響 208 デフォルト 215 保持 210 例 216, 218 ボリュームの後処理 219 取り外し可能ボリュームの 219 例 219, 220 未使用の直接アクセス・スペースの解放 218 例 218 328 z/OS MVS JCL ユーザーズ・ガイド 終了処理タスク、データ・セット・リソースを要求する ための (続き) 割り振り解除 207 例 207 終了処理タスク、SYSOUT リソースを要求するための 図表 245 説明 245 割り振り解除 245 例 245 出力の制限 限界値を超えたジョブの終了 102 限界値を超えた場合に出されるメッセージ 64 超えた場合 262 使用 261 図表 261 説明 261, 263 非 APPC スケジューリング環境における 262 要求 261 例 262 APPC スケジューリング環境における 261 出力のフォーマット設定 索引付け機能付きの 3211 プリンターへの 258 指標付け機能付きの 3211 プリンターへの 例 258 図表 255 説明 255, 261 穿孔装置への 259 例 259 任意のプリンターへの 255 例 256 3800 印刷サブシステムにおけるダンプの 260 例 260 3800 印刷サブシステムへの 256 例 258 状況 装置の 割り振りに対する影響 144 データ・セットの 指定 129 ジョブ 後続ジョブ 49 終了 データ・セットをカタログできない場合 211 ジョブ・ステップの例 11 処理 28 制御 7 説明 27 先行ジョブ 49 入力 11, 27 バックグラウンド 定義 65 ジョブ (続き) バッチ 定義 65 リソースの要求 9 例 11 ジョブ入力制御 参照: 入力制御タスク、ジョブを入力するための ジョブの入力 ジョブ制御内のタスク 11 ジョブ名 ジョブの識別のための 39 ジョブ・ログ 印刷 67 SYSOUT データ・セットを使用した 68 出力クラス 67 説明 67 ログ内の実行時メッセージ 104 JCL からプログラマーへの通信のための 62 処理 標準外 定義 107 テストの際の使用方法 107 処理制御タスク、ジョブを処理するための 条件付き実行による 89, 102 非 APPC スケジューリング環境における 103 戻りコードをテストする場合の例 96 APPC スケジューリング環境における 103 図表 89 説明 89, 110 タイミング実行による 104 例 104, 105 テスト用 106 エラー発生後のダンプによる 108 ダンプする場合の例 109 通常の処理の変更による 106 標準外処理を使用した場合の例 108 IEFBR14 を使用した場合の例 107 JCL をスキャンする場合の例 106 処理制御タスク、データ・セット・リソースを要求する ための サブシステムによる 204 例 205 指定の延期による 202 例 203 処理の抑止による 201 例 202 図表 201 説明 201, 207 チェックポイント機能を使用した 204 例 204 TCAM ジョブまたはタスクによる 205 例 205 処理制御タスク、SYSOUT リソースを要求するための 外部書き出しプログラムによる 237 例 238 出力の抑止による 240 例 240, 241 図表 231 セグメント化による 235 説明 231, 243 その他のデータ・セットを使用した 236 例 236, 237 その他のパラメーターを指定した 例 232 チェックポイント機能による 241 チェックポイント機能を使用した 例 241 追加のパラメーターを指定した 232 保留による 238 例 240 モードによる 238 例 238 PSF による 242 例 242 処理装置 出力宛先として 252 スケジューリング環境使用の選択 82 JES2 における選択 82 JES3 における選択 83 据え置きボリューム取り付け 指定 146 スキャン 構文にエラーがあるかどうか 57, 106 スクラッチ後処置 テープ・ボリュームの場合 219 図形文字変更モジュール 変更 257 スケジューリング環境 82 スタッキング、データ・セットの 183 ステーション 参照: リモート・ワークステーション ステップ 最大数 28 説明 27 ステップ名 ステップを識別するための 40 ストリーム内 参照: 入力ストリーム ストリーム内プロシージャー 参照: プロシージャー ストレージ管理サブシステム (SMS) 参照: SMS ストレージ・クラス 参照: STORCLAS パラメーター 索引 329 スピンオフ SYSOUT データ・セット 使用 245 要求 245 スプール区画 割り振りの制御 84 制御 データ・セット 129 セキュリティー・モデル 参照: SECMODEL パラメーター 世代別データ・グループ 参照: GDG 世代別データ・セット 検索 292, 297 再始動のためにジョブを実行依頼するときの規則 301 削除およびカタログからの除去 300 作成 293, 296 説明 291, 307 例 302 セットアップ 装置の 最高水準点 155 ジョブ 154 変更 158 明示 157 JES3 システムにおける 154 穿孔 SYSOUT データ・セット スケジューリング 245 フォーマット設定 259 変換処理 259 相対世代番号 定義 291 装置 割り振られた数 147 割り振り 142 JES3 システムにおける管理 153 SYSOUT データ・セットの宛先としての指定 247 参照: 装置 [タ行] タイム・シェアリング・オプション 参照: TSO 対話式記憶管理機能 (ISMF) 参照: ISMF タスク ジョブを処理するための 図表 31 ジョブを入力するための 図表 29 330 z/OS MVS JCL ユーザーズ・ガイド タスク (続き) 図表 29 説明 27 SYSOUT データ・セット・リソースを要求するため の 図表 33 ダンプ エラー発生後 108 形式 260 高密度 109 端末 出力宛先として 254 データ・セットの識別 128 参照: リモート端末装置 チェックポイント機能 再始動のためのジョブの実行依頼 301 ジョブの実行 46 マルチボリューム・データ・セット 204 SYSOUT データ・セット 241 通信 機能サブシステムからプログラマーへの 67 例 67 システムから TSO/E ユーザー ID への 65 例 66 システムからオペレーターへの 63 例 64, 65 ジョブ・ログを介して 67 例 68, 69 図表 61 説明 61, 69 JCL からオペレーターへの 62 例 62 JCL からシステムへの 61 例 62 JCL からプログラマーへの 62 例 62 JCL からプログラムへの 63 例 63 TSO/E ユーザー ID からシステムへの 66 例 66 通信アクセス方式 参照: TCAM 通知 TSO/E ユーザー ID の 65 データ制御ブロック 参照: DCB データ・クラス 説明 317 属性のオーバーライド 319 参照: DATACLAS パラメーター データ・セット 一時 119 データ・セット (続き) 削除 209 VIO の使用 196 永続 118 延期された定義 202 参照 202 使用 203 連結 203 カタログされた カタログからの除去 211 カタログ登録 210 削除 209 世代別データ・セット 211 装置およびボリューム情報 169, 173 ボリューム参照 169, 173 CATLG 後処理の指定 211 共用使用 130 システム管理の 説明 67 スタッキング 183 制御の保護 129 ダミー 効果 201 使用 201 無効化 202 SYSOUT 出力を抑止するための 240 排他使用 130 保留 解放 240 要求 238 マルチボリューム 160, 165 スペースの要求 192 チェックポイント機能 204 割り振りに関する考慮事項 160, 165 リソースの要求 28 連結 121 渡された 装置およびボリューム情報 169, 174 ボリュームの取り外し 220 ボリュームの保存についての影響 220 SMS を使用する 317 SYSOUT サイズ 236 分類 237 データ・セット・シーケンス番号 使用 127 定期的 (周期的) 実行 48 ディレクトリー PDS の 73 デフォルトの装置 319 同期データ・リンク制御 参照: SNA/SDLC 動的 割り振り 199 割り振り解除 207 独立モード 処理装置 要求 83 特記事項 323 取り付け ボリューム 事前取り付け 199 据え置き 146 メッセージの制御 63 [ナ行] 入出力と処理の比率 使用 114 入力ストリーム 説明 27 装置 19 データ・セットの識別 122 定義 19 例 19 入力制御タスク、ジョブを入力するための ジョブの入力を保留にすることによる 55 使用 56 例 56 図表 55 説明 55, 59 入力ストリームをコピーすることによる 57 例 57 リモート・ワークステーションから 57 ローカル入力読み取りプログラムを保留にすることに よる 56 例 57 ヌル・ステートメント ジョブの終わりを識別するための 39 例 39 ネット 参照: 依存ジョブ・ネット ノード 参照: リモート・ノード [ハ行] ハードコピー・ログ 説明 67 パスワード データ・セットの保護の 139 索引 331 パフォーマンス制御タスク、ジョブを処理するための ジョブ・クラス割り当てによる ジョブ・クラス割り当てによる 111 例 112 図表 111 説明 111, 115 選択優先順位による 112 例 113 入出力と処理の比率による 114 例 114 パフォーマンス制御タスク、SYSOUT リソースを要求 するための キュー選択による 229 例 229 図表 229 説明 229 プログラマーの名前 識別するための 43 プロシージャー カタログ式およびストリーム内 オーバーライドする DD ステートメント 169, 173 実行 46 説明 27 テスト 27 専用ライブラリー内 77 文書、ライセンス交付を受けた xvi 文書化 ジョブとそのリソース要件 62 分類 SYSOUT データ・セット サブグループ 237 要求 237 要求セットアップ 237 平均レコード 参照: AVGREC パラメーター 並行取り付け ボリュームの 複数の装置を要求するための 147 変換処理 穿孔済み SYSOUT データ・セット 要求 259 変更 SYSOUT データ・セットの 257 保護タスク、ジョブを入力するための 図表 71 説明 71, 73 RACF を使用した 71 例 72 保護タスク、データ・セット・リソースを要求するため の 図表 137 332 z/OS MVS JCL ユーザーズ・ガイド 保護タスク、データ・セット・リソースを要求するため の (続き) 説明 137, 141 パスワードによる 139 例 139 BSAM および BDAM データ・セットへのアクセス の 139 図表 140 例 140 ISO/ANSI/FIPS バージョン 3 のテープについて 138 例 139 RACF を使用した 137 例 138 SMS 管理データ・セット用 説明 138 まとめ 320 保護タスク、SYSOUT データ・セット・リソースを要 求するための 図表 227 説明 227 例 227 RACF を使用した 227 保持 後処理 テープ・ボリュームの場合 219 データ・セット データ・セットがカタログされない場合 211 要求 210 保証されたスペース 320 システム管理の DASD データ・セットの場合 159 保全処理 永続データ・セット以外のデータ・セットについての 132 永続データ・セットについての 131 図表 132 データ・セットの 131 定義 129 保存 テープ・ボリュームの 使用 220 ボリュームの取り外し 220 要求 220 ボリューム 属性 永続常駐 161 記憶 161 公用 161 専用 161 装置割り振りにおける影響 180 定義 160 取り外し可能 161 保存 220 ボリューム (続き) 属性 (続き) 予約済み 161 割り当て 163, 164 ボリュームの要求 特定 161 ラベル・タイプ 127 割り振り 161 非特定 160, 162 ラベル・タイプ 126 割り振り 162 DD ステートメントごとの数 167 保留 解放 240 使用 238 ジョブの入り口 55 SYSOUT データ・セットの 238 [マ行] マイグレーションおよびバックアップ 320 説明 136 SMS を使用する 136 満了日 データ・セットの 後処理における影響 217 日の前の削除 218 満了していない場合 209 要求 217 無効化 ダミー・データ・セットの 202 SYSOUT データ・セットについてのダミーの状況の 240 無効な構文 スキャン 106 命名 一時データ・セット 119 データ・セット 117 メッセージ ジョブが出力限界値を超えた場合 64 ジョブについてシステムから 67 ボリュームの取り付け時 63 メッセージ検索ツール、LookAt xvii メンバー PDS 内 73 モード 処理 SYSOUT データ・セットについての要求 238 文字配列テーブル 指定 257 動的選択 257 変更 257 モデル データ・セット属性 SMS 管理データ・セットの要約 321 SMS を使用する 135 戻りコード 互換性のあるテスト 91, 96 COND パラメーターを使用した 96 IF/THEN/ELSE/ENDIF ステートメント構成を使用 した 91 テスト 90, 94 COND パラメーターを使用した 94 IF/THEN/ELSE/ENDIF ステートメント構成を使用 した 90 例 96 [ヤ行] 優先順位 経時 113 実行順位の制御においては意味のない 56 選択 112 使用 113 無視 229 SYSOUT データ・セットの 229 抑止 SYSOUT 出力の 開始タスクを使用した 241 要求 240 OUTPUT JCL ステートメントの使用方法 読取装置 内部 出力宛先として 252 説明 27 メッセージ・クラス 253 レコードの制限 253 JES への直接送信 253 入力 保留 56 241 [ラ行] ライセンス文書 xvi ライブラリー 一時 45, 73 作成 76 使用 76 システム 45, 73 使用 74 SYS1.LINKLIB 45, 73 実行可能プログラムの存在 専用 45, 73 検索 75 45 索引 333 ライブラリー (続き) 専用 (続き) 作成 74 使用 74 追加 75 連結 76 JOBLIB ステートメント 45, 73 STEPLIB ステートメント 45, 73 定義 73 プロシージャー 77 更新 78 プロシージャーに使用 27 SYS1.IMAGELIB コピー変更機能での使用方法 257 使用 242 リソース制御タスク、ジョブを入力するための アドレス・スペースの 79 例 81, 82 処理装置の 82 例 83, 84 図表 73 スプール区画の 84 例 85 説明 73, 86 プログラム・ライブラリーの 73 一時の例 77 検索の例 76 作成および追加の例 75 連結の例 76 プロシージャー・ライブラリーの 77 例 78 INCLUDE グループの 79 リソースの要求 31 ジョブ制御内のタスク 9 タスク 31 タスク図表 31 データ・セットの 9 リモート端末装置 使用 58 リモート・ジョブ処理 参照: RJP リモート・ジョブ入力 参照: RJE リモート・ノード 実行 51 SYSOUT データ・セットの宛先としての指定 リモート・ワークステーション 使用 58 ループ プログラム 実行の停止 104 334 z/OS MVS JCL ユーザーズ・ガイド 類似性 装置 174 暗黙指定 175 拡張データ・セットの要求時 180 サブシステム・データ・セットとの 205 明示 175 装置とボリュームの図表 179 装置とボリュームの対話 179 ボリューム 164, 174 暗黙指定 164 明示 164 マルチボリューム・データ・セットに関する レコード編成 参照: RECORG パラメーター 連結 データ・セット 121 ログ 参照: ジョブ・ログ 参照: ハードコピー・ログ ログ・サブパラメーター 使用 67 180 [ワ行] 247 ワークステーション 参照: リモート・ワークステーション 渡す データ・セット 実行時にステップが異常終了した場合 213 データ・セットが受け取られなかった場合の後処 理 213 ボリュームの取り外し 220 ボリュームの保存についての影響 220 要求 212 渡されたデータ・セットの受取 212 割り振り 仮想入出力の 196 例 197, 198 図表 141 説明 141, 201 相互の影響 168 装置の 142 装置の状況によって影響される 144 複数の装置の要求 146 並行 145 例 149 割り振られた数 147 JES3 システムにおける 153 直接アクセス・スペースの 190 例 195, 196 テープまたは直接アクセス・ボリュームの 158 割り振り (続き) エラーが発生した場合の索引順次データ・セット についての 285 例 149 動的 199 例 200 ボリュームの取り付けを遅らせる場合 146 例 146 ボリュームを事前に取り付けておく場合 199 例 199 割り振り解除 データ・セット、ボリューム、および装置の 207 SYSOUT データ・セット 245 参照: 割り振り解除 [数字] 2 進データ同期通信 参照: BSC 3203-5 型プリンター SYSOUT データ・セットの印刷のための 3211 プリンター SYSOUT データ・セットの印刷のための 3450 ディスケット入出力装置 出力データ・セットの識別 224 入力データ・セット 123 3800 印刷サブシステム 高密度のダンプの印刷の 260 SYSOUT データ・セットの印刷のための 256 258 242, 256 A ACB (アクセス方式制御ブロック) データ・セット処理を指定するときの値 ACCODE パラメーター 使用 138 ACMAIN パラメーター 使用 66 ACS ルーチン 一時データ・セットの 120 使用 136, 142, 159, 293, 294, 318, 319 データ・セット属性の記述 135 AMP パラメーター 使用 134, 311 AVGREC パラメーター 使用 135, 190, 191, 319 B BCP (基本制御プログラム) JCL ステートメントに関連した 27 134 BSC (2 進データ同期通信) 使用 58, 59 BURST パラメーター 使用 256 BYTES パラメーター 使用 109, 261 ジョブの出力を制限するための 64 非 APPC スケジューリング環境における 64, 103 APPC スケジューリング環境における 64, 102 C CANCEL サブパラメーター 出力の限界値を超えたジョブの取り消し 102 使用 262 cards サブパラメーター 使用 261 CARDS パラメーター 使用 109, 261 ジョブの出力を制限するための 64 非 APPC スケジューリング環境における 64, 103 APPC スケジューリング環境における 64, 102 CHARS パラメーター 使用 256, 260 CHKPT パラメーター 使用 204 CHKPT マクロ 再始動の制御 46 CHNSIZE パラメーター 使用 247 CKPTLINE パラメーター 使用 241 CKPTPAGE パラメーター 使用 241 CKPTSEC パラメーター 使用 241 CLASS パラメーター 使用 68, 106, 112, 224, 238 ジョブの保留における 55 ジョブをコピーするための 57 処理装置を要求する場合 84 SYSOUT 出力を抑止するための 241 CNTL ステートメント 使用 205 CNTL パラメーター 使用 205 COMMAND ステートメント 使用 61 COMPACT パラメーター 使用 247 索引 335 COND パラメーター 使用 94 ステップの強制実行 95 例 96 JOB ステートメントおよび EXEC ステートメントの COND パラメーターの関係 95 CONTROL パラメーター 使用 255 copies サブパラメーター 使用 255 COPIES パラメーター 使用 255, 256, 259 D DATA パラメーター ストリーム内データ・セットを識別するときの使用方 法 122 DATACLAS パラメーター 使用 135, 293, 319 DATASET JES3 ステートメント 参照: //*DATASET DCB (データ制御ブロック) 以前の DD ステートメントからの値 134 カタログ式データ・セットからの値 134 データ・セット処理を指定するときの値 133 SYSOUT データ・セット処理に指定する値 225 DCB パラメーター 使用 133, 225, 256, 257, 259, 283, 287, 297, 300 DDNAME パラメーター 使用 202, 318 DEADLINE パラメーター 締切スケジューリングにおける 48 定期 (周期) 的スケジューリングにおける 48 DEFER サブパラメーター 使用 146 DEFINE コマンド 292 DEL JES2 ステートメント 参照: /*DEL DEST パラメーター 使用 247 DFSMSdfp SMS 管理データ・セットを使用する 317 DISP パラメーター 使用 123, 129, 208, 284, 287, 294, 296, 299, 300, 318 データ・セットがカタログされている場合 123 DJC (依存ジョブ制御) 使用 49 DLM パラメーター 使用 122 336 z/OS MVS JCL ユーザーズ・ガイド DPAGELBL パラメーター 使用 227 DSID パラメーター 使用 123, 224 DSNAME パラメーター 使用 118, 122, 161, 223, 282, 287, 293, 296, 297, 318 DSNTYPE パラメーター 使用 135, 319 DUMMY パラメーター 使用 201, 240 SUBSYS パラメーターを指定した 205 DUMP サブパラメーター 使用 262 DYNAMNBR パラメーター 使用 199 E ENDDATASET JES3 ステートメント 参照: //*ENDDATASET ENDPROCESS JES3 ステートメント 参照: //*ENDPROCESS EOF JES2 ステートメント 参照: /*EOF EVEN サブパラメーター ステップの強制実行 95 例 102 EXPDT パラメーター 使用 135, 217 F FAILURE パラメーター 再始動における 48 FCB パラメーター 使用 255, 259, 260 FETCH パラメーター 使用 63 FLASH パラメーター 使用 256 FORMDEF パラメーター 使用 242 forms サブパラメーター 使用 255 FORMS パラメーター 使用 259 FREE パラメーター 使用 207, 245 IORATE パラメーター 使用 114 ISMF (対話式記憶管理機能) 使用 135, 136, 142, 159, 319 G GDG (世代別データ・グループ) 基本項目の作成 292 識別 118 属性の定義 294 データ・セットのカタログ 211 データ・セットのタイプ 292 データ・セット・ラベル 294 GROUP パラメーター 使用 71 GROUPID パラメーター 使用 237 J JCLLIB ステートメント ライブラリーの指定 79 INCLUDE についての 79 JCLTEST サブパラメーター 使用 106 JESDS パラメーター 使用 67, 68 JOBCAT カタログ 使用 124 JOBLIB 参照: ライブラリー, 専用 JOURNAL パラメーター 再始動における 47 JSTTEST サブパラメーター 使用 106 H HOLD パラメーター 使用 238 ジョブの保留における 56 I IEBIMAGE ユーティリティー・プログラム 文字配列テーブルでの使用方法 257 SYS1.IMAGELIB を更新するときの使用方法 IEBUPDTE ユーティリティー・プログラム 使用 78 IEFBR14 プログラム 使用するときの考慮事項 107 説明 107 テストの際の使用方法 107 IEHPROGM ユーティリティー・プログラム 使用 300 IF/THEN/ELSE/ENDIF ステートメント構成 使用 89 ステップの強制実行 92 評価のレベル ジョブ・レベル 91 ステップ・レベル 91 例 93 COND パラメーターを使用した 92 IN サブパラメーター 使用 139, 140 INCLUDE グループ を含むライブラリーの指定 79 INCLUDE ステートメント 使用 41 例 41 INDEX パラメーター 使用 119, 258 INTRDR サブパラメーター 使用 252 257 K KEYLEN 使用 KEYOFF 使用 パラメーター 135, 319 パラメーター 135, 319 L LABEL データ・セット カタログ式データ・セットまたは受け渡しデー タ・セットの 126 使用 125 特定ボリューム要求の場合 127 非特定ボリューム要求についての 126 LABEL パラメーター 使用 125, 217, 283, 297, 300 LIKE パラメーター 使用 135, 293, 321 LINDEX パラメーター 使用 258 LINECT サブパラメーター 使用 255 LINECT パラメーター 使用 255 lines サブパラメーター 使用 261 索引 337 LINES パラメーター 使用 109, 261 ジョブの出力を制限するための 64 非 APPC スケジューリング環境における 64, 103 APPC スケジューリング環境における 64, 102 LOGOFF コマンド 使用 58, 59 LOGON コマンド 使用 58, 59 LookAt メッセージ検索ツール xvii LRECL パラメーター 使用 135, 319 LREGION パラメーター 使用 81 M MESSAGE JES2 ステートメント 参照: /*MESSAGE MGMTCLAS パラメーター 使用 136, 319 MODIFY パラメーター 使用 256 MSGCLASS パラメーター コピーする入力ストリームの制御 57 使用 67, 68, 224, 236, 253 MSGLEVEL パラメーター 使用 67 ジョブ・ログ・リストを制御するときの使用 N NOLOG パラメーター 使用 67 NOPWREAD サブパラメーター 使用 139 NOTIFY JES2 ステートメント 参照: /*NOTIFY NOTIFY パラメーター 使用 66 NULLFILE サブパラメーター 使用 201 O ONLY サブパラメーター ステップの強制実行 95 例 102 OPERATOR JES3 ステートメント 参照: //*OPERATOR 338 z/OS MVS JCL ユーザーズ・ガイド ORG パラメーター 使用 247 OUT サブパラメーター 使用 139 処理 140 OUTDISP パラメーター OUTPUT JCL ステートメントの 出力を抑止するための 241 SYSOUT データ・セットを保留にするための 239 OUTLIM パラメーター 使用 253, 261 OUTPUT JCL ステートメント 使用 232 パラメーターの追加 232 複数のステートメントの参照 232 /*OUTPUT ステートメントの変更 235 //*FORMAT ステートメントの変更 235 OUTPUT パラメーター 使用 232 OVFLOW サブパラメーター 使用 119 P 62 PAGEDEF パラメーター 使用 242 PAGES パラメーター 使用 109, 261 ジョブの出力を制限するための 64 非 APPC スケジューリング環境における 64, 103 APPC スケジューリング環境における 64, 102 PARM パラメーター IBM 提供のプログラムに指定する値 63 JCL からプログラムへの通信を行うときの使用 63 PASSWORD パスワード 使用 71, 139 PDS (区分データ・セット) 識別 118, 120 メンバー 118, 120 ライブラリーとしての使用 73 PDSE (拡張区分データ・セット) メンバー 118, 120 PEND ステートメント プロシージャーの終わりを識別するための 40 PIMSG パラメーター 使用 67 PRIME サブパラメーター 使用 119 PRIORITY JES2 ステートメント 参照: /*PRIORITY PROC ステートメント プロシージャーを識別するための PROC パラメーター 使用 78 プロシージャーを実行するための PROCESS JES3 ステートメント 参照: //*PROCESS PROCLIB パラメーター 使用 78 PROTECT パラメーター 使用 137 PRTY パラメーター 使用 112, 229 PSF (印刷サービス機能) 制御 242 PURGE JES2 ステートメント 参照: /*PURGE 40 46 Q QNAME パラメーター 使用 128, 205 R RACF (資源アクセス管理機能) 印刷出力の保護 227 ストリーム内データ・セットを使用した 122 データ・セット保護 137 を使用した保護 71 SYSOUT データ・セットを使用した 223 RD パラメーター 再始動における 46 RECFM パラメーター 使用 135, 319 RECORG パラメーター 使用 135, 319 REFDD パラメーター 使用 135, 293, 321 RESTART パラメーター 再始動における 47 RETAIN サブパラメーター 使用 219, 220 RETPD パラメーター 使用 135, 217 RJE (リモート・ジョブ入力) 使用 51, 57 RJP (リモート・ジョブ処理) 出力宛先 252 使用 51, 58 ROUTE JES2 ステートメント 参照: /*ROUTE S SCAN JES2 ステートメント 参照: /*SCAN SCHENV パラメーター JOB ステートメントの 82 使用 82 例 82 SECLABEL パラメーター 使用 71 SECMODEL パラメーター 使用 138, 320 SEGMENT パラメーター DD ステートメントの 使用 235 SETUP JES2 ステートメント 参照: /*SETUP SETUP パラメーター 使用 153 ボリュームに関する取り付けメッセージ 63 SIGNOFF JES ステートメント 参照: /*SIGNOFF SIGNON JES ステートメント 参照: /*SIGNON SMF (システム管理機能) 実行時間を超えたときの出口ルーチンの設定 104 SMS (ストレージ管理サブシステム) 一時データ・セットの 120 説明 317 ディレクトリー・レコードの指定 194 SMS 管理データ・セット 構成 317 スペース割り振り 190 世代別データ・セット 291, 292, 293 世代別データ・セットの検索 297 世代別データ・セットの作成 293 装置割り振り 142 属性の記述 135 属性のモデル化 135 定義 318 保護 138, 320 保存期間の指定 217 ボリューム通し番号の指定 159 ボリューム割り振り 158 マイグレーションおよびバックアップ 136, 320 マルチボリューム・データ・セット 160 満了日の指定 217 DATACLAS DD パラメーターを指定した 135 DD VOLUME=REF サブパラメーターを指定した 159 VIO データ・セットの 196 VSAM データ・セットを使用する 307 索引 339 SNA/SDLC (システム・ネットワーク体系 / 同期デー タ・リンク制御) 使用 58, 59 SPACE 未使用のスペースの解放 218 要求 索引順次データ・セットについての 194 システムによる割り当て 190 シリンダー 191 特定のトラック 195 トラック 191 ブロック 190 ユーザー・ラベルを指定した 192, 195 レコード 191 PDS ディレクトリー用の 194 割り振り 1 次 191 2 次 193 SPACE パラメーター 使用 135, 190, 218, 284, 296, 319 SPART パラメーター 使用 85 STEPCAT カタログ 使用 124 STEPLIB 参照: ライブラリー, 専用 STORCLAS パラメーター 一時データ・セットの 120 使用 142, 158, 293, 319 SUBSYS パラメーター 使用 204 SYS1.LINKLIB 参照: ライブラリー, システム SYS1.PROCLIB 参照: カタログ SYS1.PROCLIB システム・プロシージャー・ライブラリ ー プロシージャーに使用 27 SYSABEND ステートメント 使用 108 SYSAFF パラメーター 使用 83 SYSAREA パラメーター 使用 227 SYSCHK DD ステートメント 再始動における 47 SYSCKEOV DD ステートメント 使用 204 SYSMDUMP ステートメント 使用 108 SYSOUT データ・セット ジョブ・ログを使用した印刷 68 340 z/OS MVS JCL ユーザーズ・ガイド SYSOUT パラメーター 使用 68, 223, 224 SYSTEM パラメーター 使用 84 SYSUDUMP ステートメント 使用 108 T TCAM (通信アクセス方式) メッセージ・データ・セット 128 TCAM メッセージ・データ・セットの処理 205 TERM パラメーター 使用 128, 254 THRESHLD パラメーター 使用 236 TIME パラメーター 使用 104, 105 TRC パラメーター 使用 256, 257 TSO/E (TSO 拡張機能) ユーザー ID 出力宛先として 252 ジョブ完了時の通知 65 ログオンからの RACF 保護パラメーター 71 TYPE パラメーター 処理装置を要求する場合 84 TYPRUN パラメーター 使用 106 ジョブのコピー 57 ジョブの保留 55 U UCS パラメーター 使用 255, 258 UNIT パラメーター システムの初期設定時における定義 146 出力データ・セットに対する 146 使用 142, 282, 287, 296, 299 処理装置を要求する場合 84 VOLUME パラメーターとの関係 168, 173 UPDATE パラメーター 使用 78 ジョブの保留における 56 USER パラメーター 使用 71 TSO/E ユーザー ID を指定したジョブを識別すると きの使用方法 66 V VIO (仮想入出力) 逆方向参照 198 使用 196 VOLUME パラメーター 以前の DD ステートメントにおける参照 169, 174 使用 135, 159, 160, 161, 162, 282, 287, 296, 300, 319 UNIT パラメーターとの関係 168, 173 VSAM (仮想記憶アクセス方式) データ・セット 検索 307, 311 作成 307, 311 使用しないパラメーター 314, 315 説明 307, 317 パラメーター 308, 311 W WARNING サブパラメーター 使用 262 ジョブが出力限界値を超えたときに警告メッセージを 送信するための 64 WRITER 外部 要求 237 SYSOUT データ・セットを処理するための 237 WRITER パラメーター 使用 237 /*PURGE 制御ステートメント 使用 253 /*ROUTE 制御ステートメント 使用 247 /*SCAN 制御ステートメント 使用 253 /*SETUP 制御ステートメント 使用 199 /*SIGNOFF 制御ステートメント 使用 58, 59 /*SIGNON 制御ステートメント 使用 58, 59 //*DATASET 制御ステートメント 使用 123 //*ENDDATASET 制御ステートメント 使用 123 //*ENDPROCESS 制御ステートメント 使用 107 //*OPERATOR 制御ステートメント 使用 62 //*PROCESS 制御ステートメント 使用 107 処理装置を要求する場合 84 X XMIT JCL ステートメント 52 JES3 を使用した場合 51 [特殊文字] * ストリーム内データ・セットを識別するときの使用方 法 122 /*DEL 制御ステートメント 使用 253 /*EOF 制御ステートメント 使用 253 /*MESSAGE 制御ステートメント 使用 62 /*NOTIFY 制御ステートメント 使用 66 /*PRIORITY 制御ステートメント 使用 112 索引 341 342 z/OS MVS JCL ユーザーズ・ガイド プログラム番号: 5694-A01 Printed in Japan SA88-8570-02