大きく分けると明示的なトランザクションと暗黙的なトランザクションに分かれる。
明示的なトランザクションはトランザクションの開始,コミット,ロールバックを明示的に行う管理方法。トランザクションの開始、終了が明確に決まる。
暗黙的なトランザクションはトランザクションの開始,コミット,ロールバックが暗黙的に行われる管理方法。既にトランザクションが開始されていたらそのトランザクションに参加(便乗)する、といったことが可能。
以下に、.NET Frameworkでのトランザクション実装方法を挙げる。
【 従来からあるトランザクション実装方法 】
従来からある方法として、データベーストランザクション,手動トランザクション,自動トランザクションがある。
[ データベーストランザクション ]
ストアドプロシージャ内でのトランザクション処理。
SQL Server 2005 なら、SQL CLRにより、C#やVB.NETなどの.NET言語で実装できる。
@IT:.NETエンタープライズWebアプリケーション開発技術大全 3.2 データベーストランザクション
データベース エンジンの .NET Framework プログラミング
[ 手動トランザクション ]
ADO.NETが提供する、明示的なトランザクション処理。
トランザクションの実行
@IT:.NETエンタープライズWebアプリケーション開発技術大全 3.3 マニュアルトランザクション
SqlTransaction クラス (System.Data.SqlClient)
OracleTransaction クラス (System.Data.OracleClient)
DbTransaction クラス (System.Data.Common) (.NET Framework2.0で新しく追加された。)
[ 自動トランザクション ]
COM+を利用した、暗黙的なトランザクション処理。
COM+を利用するには、ServicedComponentクラスを継承させる。また、アセンブリを厳密名で署名し、サービスコンポーネントとして登録する必要がある。
自動トランザクションと .NET Framework クラス
方法 : .NET Framework クラスで自動トランザクションを使用する
サービス コンポーネントの作成
@IT:.NETエンタープライズWebアプリケーション開発技術大全 3.4 自動トランザクション
System.EnterpriseServices 名前空間
ServicedComponent クラス (System.EnterpriseServices)
TransactionAttribute クラス (System.EnterpriseServices)
【 .NET2.0から提供される、System.Transactions名前空間 】
.NET2.0では、新しくSystem.Transactions名前空間(System.Transactions.dll)が追加された。主なクラスとして、明示的なトランザクションを提供するCommittableTransactionクラスと、暗黙的なトランザクションを提供するTransactionScopeクラスがある。
TransactionScopeの方が手軽で、CommittableTransactionよりもTransactionScopeを使用すべきである。
トランザクション アプリケーションの作成
System.Transactions で提供される機能
.NET Framework 2.0 の System.Transactions について
トランザクション管理の昇格
System.Transactions 名前空間
[ CommittableTransactionによる明示的なトランザクション ]
明示的なトランザクション処理。CommittableTransactionよりもTransactionScopeを使用すべき。
CommittableTransaction を使用した明示的なトランザクションの実装
CommittableTransaction クラス (System.Transactions)
Transaction クラス (System.Transactions)
[ TransactionScopeによる暗黙的なトランザクション ]
COM+による自動トランザクションよりも遥かに容易に実現できる、暗黙的なトランザクション処理。
トランザクション スコープを使用した暗黙的なトランザクションの実装
10 行でズバリ !! TransactionScope の利用 (C#)
Enterprise Service および COM+ トランザクションとの相互運用性
TransactionScope クラス (System.Transactions)
TransactionScopeOption 列挙体 (System.Transactions)
え~はじめまして^^
VS2005で開発しておりましてトランザクションの新しい方法探してたらここにたどり着きました。
今から勉強します。
いいページ書いてくださってどうもです。
2007.03.16 19:44 URL | 足跡 #- [ 編集 ]
はじめまして
はじめまして、コメントありがとうございます!
暗黙的なトランザクションはとても便利なので是非試してみてください^^
また、既に御存知かもしれませんが、分散トランザクションコーディネータというサービスが必要であることに気を付けてください
C#と諸々 分散トランザクションコーディネータ
http://csharper.blog57.fc2.com/blog-entry-27.html
2007.03.16 21:43 URL | よこけん #Ay6tTHf6 [ 編集 ]
承認待ちコメント
このコメントは管理者の承認待ちです
2010.11.14 20:48 | # [ 編集 ]
トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/23-4766a5ae