論理作業単位 (LUW) はデータベースに対する一連の操作であり、すべて実行されるか、すべて実行されないかのどちらかになります。
論理作業単位を定義するアップデートのセットにより、論理レベルでのデータベースの整合性が確保されます。
DBMS は、
トランザクションの整合性を維持するメカニズムの実装に責任を負います。また、プログラムで LUW がいつ開始され、いつ終了するかを示す必要があります。
たとえば、ヘッダーと行の 2 つのレベルで構成される請求書
Transaction オブジェクトがあるとします。論理レベルでは Transaction オブジェクト全体が、ヘッダーと行の両方を含む論理作業単位 (LUW) です。これは、障害が発生した場合に、ヘッダーを行なしで記録したり、ヘッダーなしで行を記録したりしないためです。
GeneXus の論理作業単位 (LUW)
- Transaction オブジェクト: 論理作業単位の対象は、既定でトランザクション全体と定義されます。GeneXus が生成するソースの最後に暗黙的な Commit があり、各 Transaction インスタンスの後に実行されます (ヘッダーに対応するレコードを記録した後、および行に対応するすべてのレコードを記録した後)。
- Procedure オブジェクト: 論理作業単位の対象は、既定でプログラム全体と定義されます。GeneXus が生成するソースの最後に Commit が含まれています。
Commit コマンドと
Rollback コマンドを使用して、プログラムの任意のポイントで別の対象を定義できます。
別の対象を定義するために Commit コマンドが必要になるの、どのような場合でしょうか。たとえば、大量のデータを管理しており、一定数のレコードが処理された後に Commit を実行するため、小さなトランザクションを定義したい場合です。
[ Commit on exit ] プロパティ