メニューボタン
サポートチーム便り2026.07.22

IBM i ロールバック処理の進捗状況って分かりますか?

Question

コミットメント処理されているオブジェクトの処理中に、ジャーナル順序番号が最大に達し、CPA7090エラーとなり処理が中断してしまいました。

一旦処理を中断することにし、ロールバック処理を開始したのですが、数時間たっても終わりません。

ロールバック処理の現在の進捗状況を確認する方法はありますでしょうか。

Answer

まず、処理を中断しロールバック処理が始まったとのことですが、ジャーナルの切り替えが完了していないのであれば、ロールバック処理は動いていないでしょう。

なぜなら、ロールバック処理は「コミットメント制御されているオブジェクトを巻き戻す」ための処理であり、その実行内容(ログ)をジャーナルに書き込む必要があります。

そのため、ジャーナルの切り替えが完了していない状態では、ロールバック処理を進めることができません。

ジャーナル順序番号が最大に達したメッセージの場合、単純にCHGJRNをしたうえでジャーナル順序番号のリセットをしたとしても、別のエラーが出てしまう事もあります。

その状況では以下の記事を参考にしてジャーナルレシーバーを切り替えてください。

参考:レシーバーの順序番号が最大値に達したが切り替えられない!
https://www.e-bellnet.com/category/technology/2310/2310-02.html

さて、切り替えができたところで、ロールバック中のジョブログを見てみましょう。

特にCHGJRN実行前後で変わった点は見受けられませんね・・・

というのもロールバック処理は、進行の途中経過をジョブログで確認することはできません。

  • コマンド:WRKCMTDFN JOB(番号/ユーザー名/ジョブ名)でロールバックしているジョブを指定して実行する
  • WRKACTJOB ロールバックしているジョブに5=表示→「16.コミットメント制御状況の表示(活動状態の場合」を実行する
の何れかを実施してください。

コミットメント定義状況が表示できましたら、F6= 資源状況の表示を実行して下さい。

どの項目を表示するかのウィンドウが出ますので、1ジャーナル項目を選択してください。

以下の画面が表示されたらF5キーを押すと「保留中の変更」項目が増えている事が確認できるでしょう。

F11キーを押すことでパーセント表示にも切り替えられます。

今回に至ってはまずはジャーナルの切り替えと変更を実施しておけば、処理の中断をする必要もなかったかもしれませんが、いざ中断してロールバックしないといけないのに、そのロールバック処理も動いているか分からず焦った事でしょう。

ロールバックもすぐに完了するわけではないので、辛抱強く処理が完了するまで待たなければなりませんが、処理実行前の状況に戻るまであと少し・・・

一息ついてロールバック後に再実行する処理を見直しておくといいかもしれません。

by . 大熊猫橋

あわせて読みたい記事

PAGE TOP