通常 DB2 では、 トランザクションのことを作業単位 といいます。 作業単位とは、 1 つのアプリケーション・プロセスの中で回復可能な一連の操作です。 データベース・マネージャーは作業単位を使って、データベースを一貫した状態にします。 データベースとの間の読み書きは、1 つの作業単位内で行われます。
たとえば、銀行トランザクションでは、 資金を普通預金から当座預金に移す場合があります。 アプリケーションにより該当金額を普通預金から減算した段階では、 2 つの預金の金額は矛盾した状態になり、 この金額が当座預金に加算される時点まで、一貫していない状態が続きます。 両方の ステップが完了した時点で、 一貫性ポイントに達します。 そして変更がコミットされ、 他のアプリケーションから使用できるようになります。
作業単位は、最初の SQL ステートメントがデータベースに対して発行される時点で開始します。 作業単位は、COMMIT または ROLLBACK ステートメントを発行することによってアプリケーションから終了させる必要があります。 COMMIT ステートメントを使うと、 作業単位内でなされたすべての変更内容が固定されます。 ROLLBACK ステートメントを使うと、これらの変更内容がデータベースから除去されます。 アプリケーションがどちらのステートメントも明示的に発行しないまま正常終了すると、 作業単位は自動的にコミットされます。 アプリケーションが作業単位の途中で異常終了すると、 作業単位は自動的にロールバックされます。 いったん COMMIT または ROLLBACK を発行すると、それを停止することはできません。 一部のマルチスレッド・アプリケーションや オペレーティング・システム (たとえば Windows) では、 アプリケーションがこのどちらのステートメントも明示的に発行せずに正常終了すると、 作業単位は自動的にロールバックされます。 アプリケーションでは、 完了した作業単位を常に明示的にコミットまたはロールバックすることをお勧めします。 作業単位の一部が正常に完了しない場合、更新内容はロールバックされ、 処理されていた表はトランザクション開始前の状態に戻ります。 このようにして、要求が失われたり、重複したりしないようになっています。
以下の部分で、さらに詳しく説明します。
分散データベースを使用するアプリケーションの作成については、 アプリケーション開発の手引き および コール・レベル・インターフェースの手引きおよび解説書 を参照してください。