DotNet 2.0 と SqlServer 2005 による分散トランザクション処理
- トランザクションの定義
トランザクションとは、データベース テーブルの中の任意のレコードを変更することを指します。レコードの挿入、更新、または削除はトランザクションと呼ばれます。一方、読み出しのためにレ コードを選択する操作は、データベース内に何の変化も生じさせないので、トランザクションではありません。
ビジネス ルールによっては、複数の変更のグループを 1 つのトランザクションとして扱うことが必要となります。例えば、会計ソフトウェアでは、借方と貸方への入力はともに成功するか失敗するかのどちらかでなく てはなりません。借方への入力が成功して貸方への入力が失敗すると、残高がおかしくなります。
この種の、残高を意識しなくてはならない変更は、全体として 1 つのトランザクションを表しています。トランザクションの中でエラーが発生した場合には、トランザクション全体をロールバックしなくてはなりません。
- 分散トランザクションの定義
分散トランザクションには複数のデータベースが関与します。例えば、本部データベースと支店データベース両方のテーブルを一つのトランザクションで 更新し た場合、このトランザクションが分散トランザクションになります。また、分散トランザクションと違う、普通のトランザクションはローカル トランザクションとも呼ばれます。
複数のローカル トランザクションを纏めて一括コミットまたはロールバックする処理もありますが、これは分散トランザクションと違います。複数のコミットまたはロールバックの間、エラーが発生しデータの整合性が取れない可能性がありますから。
