[INFO] COM+ におけるトランザクションと分離レベル

この記事は、以前は次の ID で公開されていました: JP295570
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
COM+ アプリケーションとして構成されたコンポーネントは、データベースに接続すると、特定のトランザクション分離レベルでトランザクションを開始します。トランザクションの進行中は、SET ISOLATION LEVEL という SQL コマンドを使用してトランザクション分離レベルを変更できます。この SET ISOLATION LEVEL コマンドでは、そのトランザクション期間中のトランザクション分離レベルが変更されます。さらに、Microsoft SQL Server などのリソース マネージャでは、オプティマイザ ヒントを使用して、1 つのクエリ期間中のトランザクション分離レベルを変更できます。異なるトランザクション分離レベルを使用するには、ネストされたトランザクションを使用するという方法もあります。この場合、ネストの最も外側のトランザクションに対してあるトランザクション分離レベルを指定し、内側のトランザクションに異なるトランザクション分離レベルを指定できます。ただし、ネストされたトランザクションに対する異なるトランザクション分離レベルの指定は、COM+ ではサポートされていません。
詳細

COM+ における 2 種類のトランザクション

COM+ では、分散トランザクションの作成および管理に Microsoft 分散トランザクション コーディネータ (MS DTC) を使用します。ただし、ローカル トランザクションの作成および管理は、Microsoft ActiveX Data Objects (ADO) または Microsoft OLE DB を使用するコンポーネントのコードによって行われます。

ローカル トランザクション

COM+ でコンポーネントのトランザクション属性を [未サポート] または [使用不可] に設定している場合、OLE DB の BeginTrans、CommitTrans、AbortTrans、および同様のメソッドを使用して、ローカル トランザクションを ADO で使用できます。この場合、COM+ はこのトランザクションに使用されるトランザクション分離レベルに何の影響も及ぼしません。ADO Connection オブジェクトの IsolationLevel プロパティを使用してトランザクション分離レベルを指定していない場合は、リソース マネージャによって既定のトランザクション分離レベルが指定されます。既定のトランザクション分離レベルは、SQL Server および Oracle の両方とも Read Committed です。Connection オブジェクトの IsolationLevel プロパティを設定している場合は、このプロパティによって、次に開始されるトランザクションのトランザクション分離レベルが設定されます。

分散トランザクション

コンポーネントのトランザクション属性を [必要]、[サポート]、または [新しく必要] に設定すると、COM+ によってトランザクションが開始されます。トランザクションが開始されると、COM+ によってそのトランザクションで使用されるトランザクション分離レベルが設定されます。COM+ 1.0 では、既定のトランザクション分離レベルが SERIALIZABLE になっています。COM+ 1.5 では、既定のトランザクション分離レベルを変更できます。トランザクション期間中は、SQL コマンドの SET ISOLATION LEVEL またはオプティマイザ ヒントを使用してトランザクション分離レベルを設定できます。

ADO Connection オブジェクトの IsolationLevel プロパティを設定してトランザクション分離レベルを変更する場合、この設定は次に開始されるトランザクションにしか影響しないため、COM+ 宣言型トランザクション内のコンポーネントには影響しません。

Oracle または DB2 などのデータベースに対して X/Open XA プロトコルを使用する分散トランザクションでは、トランザクション分離レベルを伝達することはできません。このため、各種ベンダ用の XA リソース マネージャがトランザクション分離レベルの動作を指示します。
関連情報
詳細については、以下の MSDN Web サイトを参照してください。関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
215520 [INFO] COM+、MTS のトランザクション分離レベルの設定
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 295570 (最終更新日 2001-10-15) をもとに作成したものです。

プロパティ

文書番号:295570 - 最終更新日: 02/24/2014 15:31:46 - リビジョン: 1.1

  • Microsoft COM+ 1.0
  • kbnosurvey kbarchive kbcomplus kbgrpdscom kbinfo KB295570
フィードバック