CommittableTransactionとは? わかりやすく解説

CommittableTransaction イベント


CommittableTransaction クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

コミットできるトランザクションを示します。

名前空間: System.Transactions
アセンブリ: System.Transactions (system.transactions.dll 内)
構文構文

<SerializableAttribute> _
Public NotInheritable Class
 CommittableTransaction
    Inherits Transaction
    Implements IAsyncResult
Dim instance As CommittableTransaction
[SerializableAttribute] 
public sealed class CommittableTransaction
 : Transaction, IAsyncResult
[SerializableAttribute] 
public ref class CommittableTransaction sealed
 : public Transaction, IAsyncResult
/** @attribute SerializableAttribute() */ 
public final class CommittableTransaction extends
 Transaction implements IAsyncResult
SerializableAttribute 
public final class CommittableTransaction extends
 Transaction implements IAsyncResult
解説解説

CommittableTransaction クラスは、TransactionScope クラスを暗黙的に使用せずに、アプリケーションでトランザクションを使用する明示的な方法を提供します。TransactionScope クラスとは異なり、アプリケーションの作成者はトランザクションをコミットまたは中止するために、特に Commit メソッドと Rollback メソッドを呼び出す必要があります。ただし、トランザクションをコミットできるのは、そのトランザクションの作成者だけです。したがって、Clone メソッドを介して取得したコミット可能なトランザクションのコピーについてはコミットできません。

メモメモ

TransactionScope クラスを使用して暗黙のトランザクションを作成し、アンビエント トランザクション コンテキストを自動的に管理することをお勧めします。複数の関数呼び出しまたは複数のスレッド呼び出しで同じトランザクションを使用する必要のあるアプリケーション向けに、TransactionScope クラスおよび DependentTransaction クラスを使用する必要もあります。このモデルの詳細については、「トランザクション スコープを使用した暗黙的なトランザクションの実装」を参照してください。

CommittableTransaction を作成しても、アンビエント トランザクション (コードが実行されるトランザクション) が自動的に設定されるわけではありません。アンビエント トランザクションを取得または設定するには、グローバル オブジェクトである Transaction の静的な Current プロパティを呼び出します。アンビエント トランザクションの詳細については、「トランザクション スコープを使用した暗黙的なトランザクションの実装」で、TransactionScopeOption を使用したトランザクション フローの管理についての説明を参照してください。アンビエント トランザクションが設定されていない場合、そのトランザクションにはリソース マネージャに対するどのような操作も含まれません。リソース マネージャを正しいトランザクション コンテキストに基づいて確実に動作させるには、アンビエント トランザクションを明示的に設定およびリセットする必要があります。

CommittableTransaction がコミットされるまで、トランザクションに関連するすべてのリソースは引き続きロックされます。

CommittableTransaction オブジェクトは再利用できません。このオブジェクトはコミットまたはロールバックされると、トランザクションで使用したり、現在のアンビエント トランザクション コンテキストとして設定したりすることはできません。

使用例使用例
継承階層継承階層
System.Object
   System.Transactions.Transaction
    System.Transactions.CommittableTransaction
スレッド セーフスレッド セーフ

この型は、マルチスレッド操作に対して安全です。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

CommittableTransaction コンストラクタ ()

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

CommittableTransaction クラスの新しいインスタンスを初期化します。

名前空間: System.Transactions
アセンブリ: System.Transactions (system.transactions.dll 内)
構文構文

Dim instance As New CommittableTransaction
public CommittableTransaction ()
public:
CommittableTransaction ()
public CommittableTransaction ()
public function CommittableTransaction ()
例外例外
使用例使用例

CommittableTransaction の新しいインスタンスを作成してコミットする例を次に示します。

tx = New CommittableTransaction

Dim myConnection As New
 SqlConnection("server=(local)\SQLExpress;Integrated Security=SSPI;database=northwind")
Dim myCommand As New SqlCommand()

'Open the SQL connection
myConnection.Open()

'Give the transaction to SQL to enlist with
myConnection.EnlistTransaction(tx)

myCommand.Connection = myConnection

'Restore database to near it's original condition so sample will work
 correctly.
myCommand.CommandText = "DELETE FROM Region WHERE (RegionID =
 100) OR (RegionID = 101)"
myCommand.ExecuteNonQuery()

'Insert the first record.
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES
 (100, 'MidWestern')"
myCommand.ExecuteNonQuery()

'Insert the second record.
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES
 (101, 'MidEastern')"
myCommand.ExecuteNonQuery()

'Commit or rollback the transaction
Dim c As ConsoleKeyInfo
While (True)
    Console.Write("Commit or Rollback? [C|R] ")
    c = Console.ReadKey()
    Console.WriteLine()

    If (c.KeyChar = "C") Or
 (c.KeyChar = "c") Then
        tx.Commit()
        Exit While
    ElseIf ((c.KeyChar = "R") Or
 (c.KeyChar = "r")) Then
        tx.Rollback()
        Exit While
    End If
End While

myConnection.Close()
tx = Nothing
//Create a committable transaction
tx = new CommittableTransaction();

SqlConnection myConnection = new SqlConnection("server=(local)\\SQLExpress;Integrated
 Security=SSPI;database=northwind");
SqlCommand myCommand = new SqlCommand();

//Open the SQL connection
myConnection.Open();

//Give the transaction to SQL to enlist with
myConnection.EnlistTransaction(tx);

myCommand.Connection = myConnection;

// Restore database to near it's original condition so sample will work
 correctly.
myCommand.CommandText = "DELETE FROM Region WHERE (RegionID = 100) OR (RegionID
 = 101)";
myCommand.ExecuteNonQuery();

// Insert the first record.
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES
 (100, 'MidWestern')";
myCommand.ExecuteNonQuery();

// Insert the second record.
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES
 (101, 'MidEastern')";
myCommand.ExecuteNonQuery();

// Commit or rollback the transaction
while (true)
{
    Console.Write("Commit or Rollback? [C|R] ");
    ConsoleKeyInfo c = Console.ReadKey();
    Console.WriteLine();

    if ((c.KeyChar == 'C') || (c.KeyChar == 'c'))
    {
        tx.Commit();
        break;
    }
    else if ((c.KeyChar == 'R') || (c.KeyChar
 == 'r'))
    {
        tx.Rollback();
        break;
    }
}
myConnection.Close();
tx = null;
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CommittableTransaction クラス
CommittableTransaction メンバ
System.Transactions 名前空間

CommittableTransaction コンストラクタ (TimeSpan)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定した timeout 値を使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。

名前空間: System.Transactions
アセンブリ: System.Transactions (system.transactions.dll 内)
構文構文

Public Sub New ( _
    timeout As TimeSpan _
)
Dim timeout As TimeSpan

Dim instance As New CommittableTransaction(timeout)
public CommittableTransaction (
    TimeSpan timeout
)
public:
CommittableTransaction (
    TimeSpan timeout
)
public CommittableTransaction (
    TimeSpan timeout
)
public function CommittableTransaction (
    timeout : TimeSpan
)

パラメータ

timeout

トランザクションが中止されるまでに存在できる最大時間。

例外例外
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CommittableTransaction クラス
CommittableTransaction メンバ
System.Transactions 名前空間

CommittableTransaction コンストラクタ (TransactionOptions)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定したトランザクション オプションを使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。

名前空間: System.Transactions
アセンブリ: System.Transactions (system.transactions.dll 内)
構文構文

Public Sub New ( _
    options As TransactionOptions _
)
Dim options As TransactionOptions

Dim instance As New CommittableTransaction(options)
public CommittableTransaction (
    TransactionOptions options
)
public:
CommittableTransaction (
    TransactionOptions options
)
public CommittableTransaction (
    TransactionOptions options
)
public function CommittableTransaction (
    options : TransactionOptions
)

パラメータ

options

新しいトランザクションで使用するトランザクション オプションを示す TransactionOptions 構造体。

例外例外
使用例使用例
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
CommittableTransaction クラス
CommittableTransaction メンバ
System.Transactions 名前空間

CommittableTransaction コンストラクタ

CommittableTransaction クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
CommittableTransaction () CommittableTransaction クラスの新しいインスタンスを初期化します。
CommittableTransaction (TimeSpan) 指定した timeout 値を使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。
CommittableTransaction (TransactionOptions) 指定したトランザクション オプションを使用して、CommittableTransaction クラスの新しいインスタンスを初期化します。
参照参照

関連項目

CommittableTransaction クラス
CommittableTransaction メンバ
System.Transactions 名前空間

CommittableTransaction プロパティ


CommittableTransaction メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginCommit 非同期的にトランザクションをコミットする試みを開始します。
パブリック メソッド Clone  トランザクションの複製を作成します。 ( Transaction から継承されます。)
パブリック メソッド Commit トランザクションをコミットしようとします。
パブリック メソッド DependentClone  トランザクションの依存する複製を作成します。 ( Transaction から継承されます。)
パブリック メソッド Dispose  オブジェクトによって保持されているリソースを解放します。 ( Transaction から継承されます。)
パブリック メソッド EndCommit 非同期的にトランザクションをコミットする試みを終了します。
パブリック メソッド EnlistDurable  オーバーロードされます。 トランザクションに参加する永続的リソース マネージャを参加させます。 ( Transaction から継承されます。)
パブリック メソッド EnlistPromotableSinglePhase  PSPE (Promotable Single Phase Enlistment) を使用して、内部トランザクションを持つリソース マネージャを参加させます。 ( Transaction から継承されます。)
パブリック メソッド EnlistVolatile  オーバーロードされます。 トランザクションに参加する揮発性リソース マネージャを参加させます。 ( Transaction から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 このトランザクションと指定したオブジェクトが等しいかどうかを判断します。 ( Transaction から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 ( Transaction から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド op_Equality  指定した 2 つの Transaction インスタンスが等価であるかどうかをテストします。 ( Transaction から継承されます。)
パブリック メソッド op_Inequality  2 つの Transaction インスタンスが等しくないかどうかを示す値を返します。 ( Transaction から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Rollback  オーバーロードされます。 トランザクションをロールバック (中止) します。 ( Transaction から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

CommittableTransaction メンバ

コミットできるトランザクションを示します。

CommittableTransaction データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド CommittableTransaction オーバーロードされます。 CommittableTransaction クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド BeginCommit 非同期的にトランザクションをコミットする試みを開始します。
パブリック メソッド Clone  トランザクションの複製を作成します。 (Transaction から継承されます。)
パブリック メソッド Commit トランザクションをコミットしようとします。
パブリック メソッド DependentClone  トランザクションの依存する複製を作成します。 (Transaction から継承されます。)
パブリック メソッド Dispose  オブジェクトによって保持されているリソースを解放します。 (Transaction から継承されます。)
パブリック メソッド EndCommit 非同期的にトランザクションをコミットする試みを終了します。
パブリック メソッド EnlistDurable  オーバーロードされます。 トランザクションに参加する永続的リソース マネージャを参加させます。 (Transaction から継承されます。)
パブリック メソッド EnlistPromotableSinglePhase  PSPE (Promotable Single Phase Enlistment) を使用して、内部トランザクションを持つリソース マネージャを参加させます。 (Transaction から継承されます。)
パブリック メソッド EnlistVolatile  オーバーロードされます。 トランザクションに参加する揮発性リソース マネージャを参加させます。 (Transaction から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 このトランザクションと指定したオブジェクトが等しいかどうかを判断します。 (Transaction から継承されます。)
パブリック メソッド GetHashCode  このインスタンスのハッシュ コードを返します。 (Transaction から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド op_Equality  指定した 2 つの Transaction インスタンスが等価であるかどうかをテストします。 (Transaction から継承されます。)
パブリック メソッド op_Inequality  2 つの Transaction インスタンスが等しくないかどうかを示す値を返します。 (Transaction から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Rollback  オーバーロードされます。 トランザクションをロールバック (中止) します。 (Transaction から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント TransactionCompleted  トランザクションが完了したことを示します。(Transaction から継承されます。)
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.IAsyncResult.AsyncState BeginCommit メソッド呼び出しの最後のパラメータに指定されたオブジェクトを取得します。
インターフェイスの明示的な実装 System.IAsyncResult.AsyncWaitHandle 非同期操作が完了するまで待機するために使用する WaitHandle を取得します。
インターフェイスの明示的な実装 System.IAsyncResult.CompletedSynchronously 非同期のコミット操作が同期的に完了したかどうかを示す値を取得します。
インターフェイスの明示的な実装 System.IAsyncResult.IsCompleted 非同期のコミット操作が完了したかどうかを示す値を取得します。
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「CommittableTransaction」の関連用語

CommittableTransactionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



CommittableTransactionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS