Share via


Bring Your Own Transaction (BYOT)

BYOT を使用すると、外部トランザクションを使用してコンポーネントを作成したり、コンポーネントで外部トランザクションを継承したりできます。 これは、まだトランザクションが関連付けられていないコンポーネントが、トランザクションを取得できるということです。 現在、MTS トランザクションは自動です。コンポーネント インスタンスがトランザクション内に存在するかどうかは、作成時に決定されます。 コンポーネントとその作成者のトランザクション属性によって、特定のインスタンスに関連付けられているトランザクションが決定されます。 いずれの場合も、MTS はトランザクションの有効期間を制御します。 COM+ ではこれが拡張され、既存の任意の DTC または TIP トランザクションを、新しいコンポーネントのコンテキストのトランザクション プロパティとして設定することができます。 これにより、構成されたコンポーネントが、TP モニター、OTS、または DBMS によって有効期間が制御されるトランザクションに関連付けられます。

Note

BYOT トランザクションは慎重に使用する必要があります。 状況によっては、トランザクションが複数の同期ドメインにまたがる可能性があります。これはつまり、トランザクションとの並列処理が可能になるため、デッドロック状態を引き起こす可能性があります。 BYOT トランザクションではなく自動トランザクションは、ビジネス コンポーネントの作成者に推奨されるプログラミング モデルです。

 

BYOT トランザクションのインターフェイスには、ICreateWithTransactionEx インターフェイスと ICreateWithTipTransactionEx インターフェイスが含まれます。 ICreateWithTransactionEx インターフェイスは、手動トランザクションに参加するオブジェクトを作成します。 ICreateWithTipTransactionEx インターフェイスは、トランザクション インターネット プロトコル (TIP) を使用して、手動トランザクションに参加するオブジェクトを作成します。

手動トランザクションの継承