「容量不足」エラーの処理

メインフレームではファイル サイズの制約が容量割り当て単位 (ブロック、トラック、およびシリンダー) によって決まるのに対し、この JES システムでは、ファイルを割り当てる際に SPACE パラメーターを使用しません。代わりにネイティブのファイル入出力メソッドを使用しますが、これは動作が異なります。そのため、ジョブで「容量不足」というエラーが発生することがあります。これはメインフレームの D37、E37、B37 などのシステム異常終了とは異なります。

「容量不足」エラーとは

「容量不足」エラーは、ディスク上の容量が不足しているために、データをファイルに書き込めない場合に発生します。このエラーが発生した場合、ファイルから欠落しているデータを特定できないため、ファイルは破損した状態になります。この状況で作業を継続するには、オペレーターによる介入が必要です。

これらのエラーが発生した場合、動作中のシステムに重大な影響が生じる可能性があります。1 つのエラーが多数のエラーにつながることが多く、バッチ ジョブの実行で使用するファイルだけでなく、システムが使用するファイルにもエラーが生じることがあるためです。たとえば、システムがエラーを報告しようとすると、ログ ファイルへの書き込みが行われますが、その動作によって同じエラーが発生します。システム全体が急速に維持できなくなり、動作を継続できなくなります。

JES での「容量不足」エラーの処理方法

この JES システムは、ジョブの終了コードで「容量不足」エラーを監視します。このエラーが発生した場合、ファイルのロックが解放され、ステップ終了処理を実行できるようになります。この処理では、ファイルの性質に応じて、ファイルが削除される場合があります。その後、コンソールにエラー メッセージが出力され、オペレーターによる介入を待機します。オペレーターが応答すると、SEP はそのジョブの完了とともに終了し、新しい SEP が開始します。

この処理が適用されるのは MVS ファイル、つまり JCL の DD 文、または SVC99 によって定義されたファイルのみです。ジョブの処理を中断してユーザーの入力を待機するのは、最終ジョブ条件コードが RTS エラー 9/007 の場合のみです。このメッセージのテキストは、ジョブ ログに「COND CODE RTS0007」と表示されます。それ以外の条件コードでジョブが終了する場合、このエラーを処理するための追加ステップがジョブに含まれているか、ユーザー出口がエラーを処理して、最終条件コードを設定したものと見なされます。詳細については、「JCL ユーザー出口の使用」を参照してください。

以下にサンプル メッセージを示します。これらは ES コンソールにも表示されます。

表示

これは、RTS 9/007「容量不足」エラーが発生したジョブのスプール メッセージの例です。

「容量不足」エラーの解決方法

ブラウザー ウィンドウでジョブのスプール ビューを開き、アクティブ ジョブのリストで失敗したジョブを選択してから、[Reply] フィールドに任意の文字を入力して、処理を続行します。詳細については、「ACCEPT FROM CONSOLE 文へ応答するには」を参照してください。問題の原因となったファイルを特定するには、[DD Name] で [JESYSMSG] をクリックしてシステム メッセージを確認します。その後、ディスク容量の不足を解消するために必要な改善措置を実行します。改善措置としては、次のような方法が考えられます。
  • 古いファイルを削除する
  • 一時ファイルをクリーンアップする
  • 長期間使用されていないファイルをアーカイブする
  • 別のディスクにファイルを移動する
  • ディスクのパーティションを拡張する
最後に、失敗したジョブの再実行が必要かどうかを判断する必要があります。

「容量不足」エラーの回避

システムを適切に管理するには、空きディスク容量を監視する仕組みが組み込まれていると、「容量不足」エラーの発生防止に役立ちます。このようなエラーの影響を軽減するために、システム管理者が採用できる方法は他にもあります。たとえば、システム ファイルをバッチ ジョブ用のディスクとは別のディスクに保存しておくこともできます。あるいは、特定のジョブで大きい出力ファイルが生成されることがわかっている場合は、それらのファイルを他のファイルとは異なるディスクに保存します。