スプールファイルを作成する処理でCPA4072のメッセージが出て処理が止まってしまいました。 (涙)
Question
日次処理で動くプログラムで、下記メッセージが先週から毎日出るようになりました。
その都度、応答で増分数を入力していますが、メッセージが出続けます。
DSPFDで見ると、 スプール出力レコードの最大数. . . . . . . : MAXRCDS 100000 となっていますので増分されてないようです。
物理ファイルは以下のサイトを見て試したことがありますが、プリンター・ファイルでは試したことがありません。
「CPA5305 レコードは追加されなかった。」のメッセージについて
https://www.e-bellnet.com/category/technology/1807/1807-106.html
プリンター・ファイルどのようにしてMAXRCDSを増やせば良いのでしょうか?
また、その際にリコンパイル等必要となりますでしょうか?
Answer
CRTPRTF コマンドにてプリンター・ファイルを作成した場合、デフォルトのレコード数は100,000 です。
このサイズを超えるとCPA4072のメッセージがでます。
何度も超過するという事であれば、プリンター・ファイルのデフォルトのレコード数を変更する必要があります。
メッセージが出て一時的に応答しても、プリンター・ファイル自体は変わりません。
プリンター・ファイルのレコード数を変更するには CHGPRTF コマンドを実行します。
- 特定のレコード数に変更する場合の例:
CHGPRTF FILE(ライブラリー名/プリンター・ファイル名) MAXRCDS(500000)
※例としてレコード数を 500,000 に変更しています。 - レコード数を無制限に変更する場合の例:
CHGPRTF FILE(ライブラリー名/プリンター・ファイル名) MAXRCDS(*NOMAX)
今回はプログラムにて、何度もこのメッセージが発生しているのであれば、データが増えてきているようですので、変更されることをお勧めします。
プログラムが意図せず、ループしてしまってスプールファイルを膨大に書き続ける可能性もあります、最悪の場合ディスク使用率が100%になりシステムダウンを引き起こす可能性があるため、MAXRCDS(*NOMAX) とすることはお勧めしません。
また、プリンター・ファイルのサイズを変更するので関連するプログラムのリコンパイルは不要です。
見慣れないメッセージが出るとびっくりしますね。(汗)
慌てずにメッセージにフォーカスを当ててF1でヘルプを確認して「回復手順」を参照してみてください。
解決するためのヒントが解る場合が多いです。
by けやきのじぃじ