自動トランザクションにおけるコミットおよび中止

.NET Framework クラスと ASP.NET ページは、現在のトランザクションにおけるコミットと中止を指定できます。コードに明示的な指定がない場合、既定の処理はコミットです。ただし既定の処理であるコミットでは、各トランザクションが高コストのリソースを解放する時間が長くなるため、アプリケーションのパフォーマンスが低下する可能性があります。

明示的な指定がある場合、重大なエラーが発生したときに、クラスやページはトランザクションを中止できます。また、トランザクションの初期に致命的なエラーを見つけ、トランザクションを終了してリソースを解放することで、アプリケーションのパフォーマンスを向上させることができます。

AutoComplete の使用

System.EnterpriseServices.AutoCompleteAttribute 属性を使用すると、トランザクションに参加しているオブジェクトは、メソッドが正常に終了する場合にトランザクションを完了させるほうを選択します。そのメソッドの呼び出しで例外がスローされた場合、トランザクションは中止されます。この属性は、ServicedComponent クラスから派生するクラスのみに適用できます。

この機能を使用するには、クラス メソッドの前に属性を挿入します。属性をインターフェイス メソッドに追加しても、その属性は共通言語ランタイムに無視されます。AutoComplete 属性を使用する方法の例については、「方法 : トランザクション対応クラスで AutoComplete 属性を設定する」を参照してください。

SetAbort および SetComplete の使用

明示的にトランザクションをコミットおよび中止するには、System.EnterpriseServices.ContextUtil クラスの静的な SetComplete メソッドと SetAbort メソッドをそれぞれ使用します。SetComplete メソッドでは、オブジェクトがその作業をコミットするように指定します。SetAbort メソッドでは、問題が発生した場合、オブジェクトが実行中のトランザクションを中止するように指定します。トランザクションは、そのルート オブジェクトが非アクティブになるまでコミットも中止もされません。さらにトランザクションに参加しているオブジェクトから中止の指定があると、トランザクション全体が失敗します。SetAbort メソッドおよび SetComplete メソッドを使用する方法の例については、「方法 : SetAbort メソッドおよび SetComplete メソッドを使用する」を参照してください。

関連項目

タスク

方法 :トランザクション対応クラスで AutoComplete 属性を設定する
方法 :SetAbort メソッドおよび SetComplete メソッドを使用する

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.