レシーバーの順序番号が最大値に達したが切り替えられない!
Question
業務プログラムが、以下のエラーにより更新が出来なくなってしまい業務に影響が出ています。
CPA7090:
(C R) 項目が xxx のジャーナル xxx にジャーナル処理されていません。
理由コード4...ジャーナル順序番号が最大値に達しています
回復手順に「CHGJRN によって新しいレシーバーを接続し、必要であれば順序番号をリセットします」と記載があったのでCHGJRNを試してみたのですが、今度は「CPF7018 順序番号のリセットは認められていない」が発生し切り替えが出来ない状況です。
Answer
情報からしますと、コミットメント制御が不完全な状態(コミットもロールバックもされていない変更項目がある)の為、順序番号をリセットすることが出来ない状況になっているようです。
ご利用されているジャーナルの設定が標準的なものである場合は、以下の方法にて対応が可能です。
ジャーナルサイズを変更します。
CHGJRN JRN(JRNLIB/JRN) JRNRCV(*GEN) RCVSIZOPT(*RMVINTENT *MAXOPT3)
※ RCVSIZOPTのパラメータは、ジャーナルを作成した時の値によります。
標準のまま作成した場合は「*RMVINTENT *MAXOPT2」が設定されていますので、既存の設定「*MAXOPT2」を「*MAXOPT3」に変更して実行してください。応答待ちジョブにメッセージ応答する
ジャーナルの順序番号を変更します ※必要に応じて
CHGJRN JRN(JRNLIB/JRN) JRNRCV(*GEN) SEQOPT(*RESET) RCVSIZOPT(*RMVINTENT *MAXOPT2)
※ RCVSIZOPTのパラメータは、「*MAXOPT3」を「*MAXOPT2」に変更して実行してください。
※ SEQOPT(*RESET) を指定することで、順序番号がリセットされます。
「*MAXOPT2」がいいか「*MAXOPT3」がいいかについては、パラメータの詳細をご確認いただき、ご判断いただければと思います。
通常は、「*MAXOPT2」であればIPLのタイミングで順序番号がリセットされます。あまりIPLをしないシステムである場合は、定期的にコマンドによるリセットをかけていただくのがよろしいですね。
参考までに、IBMのサイトをご案内いたします。
https://www.ibm.com/docs/ja/i/7.5?topic=receivers-resetting-sequence-number-journal-entries
by かんぴょう木綿さん