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

文書翻訳 文書翻訳
文書番号: 295570 - 対象製品
この記事は、以前は次の 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 サイトを参照してください。
Transaction Boundaries
http://msdn.microsoft.com/library/psdk/cossdk/pgservices_transactions_4khf.htm
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
215520 [INFO] COM+、MTS のトランザクション分離レベルの設定

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 295570 (最終更新日 2001-10-15) をもとに作成したものです。

プロパティ

文書番号: 295570 - 最終更新日: 2014年2月24日 - リビジョン: 1.1
この資料は以下の製品について記述したものです。
  • Microsoft COM+ 1.0?を以下の環境でお使いの場合
    • Microsoft Windows 2000 Standard Edition
キーワード:?
kbnosurvey kbarchive kbcomplus kbgrpdscom kbinfo KB295570
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com