ROLBK (ロールバック)
自由形式構文 | ROLBK{(E) } |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
ROLBK (E) | _ | ER | _ |
ROLBK 命令では次のことが行われます。
- 前の COMMIT または ROLBK 命令以後 (前に COMMIT または ROLBK 命令が ない場合にはコミットメント制御のもとの操作の始め以後) の、出力操作で 指定されているユーザー・ファイルの変更がすべて除去されます。
- コミットメント制御のもとに置かれているファイルのレコード・ロックが すべて解除されます。
- ファイルが前回の COMMIT 命令時 (または前に COMMIT 命令がない場合に はファイルの OPEN 時) の位置に再度位置決めされます。
コミットメント制御は、CL コマンド STRCMTCTL が実行された時点で開始され ます。 詳しくは、「Rational Development Studio for i ILE RPG プログラマーの手引き」の『コミットメント制御』の章を参照してください。
ファイルの変更およびレコード・ロックの解除は、変更が ROLBK 命令を出 しているプログラムによって要求されたか、同じ活動化グループまたはジョブ の別のプログラムによって要求されたかに関係なく、その活動化グループまた はジョブのコミットメント制御のもとにあるすべてのファイルに適用されます。 ROLBK 命令を出しているプログラムは、ファイルをコミットメント制御のもと に置く必要はありません。 例えば、プログラム A がプログラム B とプログラム C を 呼び出していると仮定します。プログラム B にはコミットメント制御のもとにある ファイルがあり、プログラム C にはありません。 プログラム C の ROLBK 命令は、この場合でもプログラム B によって変更され たファイルに影響を与えます。
ROLBK 例外 (プログラム状況コード 802 から 805) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細については、プログラム例外/エラーを 参照してください。
ロールバック機能がシステムによってどのように実行されるのかについては、 「バックアップおよび回復」(SD88-5008) を参照してください。
詳細については、ファイル命令を参照してください。