トランザクション メッセージの処理
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
トランザクションの処理を使うことを確認、トランザクション内のメッセージが順番に配信されますは、1 回だけ配信されます送信先キューから正常に取得できます。 MessageQueue コンポーネントは、トランザクション メッセージを送受信したり使用できます。 トランザクション内のメッセージを送信すると一連の関連するメッセージをグループ化します。 すべてのトランザクションに含まれるメッセージがいずれか順番が (コミット )、トランザクションを送信または未送信自動的にまたは受信任意 (中止 トランザクション) が起きる場合順序でまとめて配信。
アプリケーションから作成するトランザクションのメイン種類の 2 つがあります。
内部トランザクション が使用して 2 つ以上のメッセージ キュー リソースの間でメッセージを送信-は、メッセージ キュー エンタープライズに属する 2 つのキュー間。
外部トランザクション はキューと、データベースなどの他のリソース間のメッセージの送信を使用します。
内部および外部トランザクションは、トランザクションを制御するため、リソース マネージャーで、およびその使用パターンの中で、プログラミング モデルによって異なります。
内部トランザクション
内部トランザクションは、MessageQueueTransaction クラスのインスタンスを作成してそれを MessageQueue コンポーネントのインスタンスに関連付ける実行されます。 トランザクションの最も単純な型を内部トランザクションにです。 メッセージは、1 つ以上のメッセージ キューの間で送信され、メッセージ キューのトランザクション コーディネーター行われる動作を制御します。 これらの手順を手動で制御するため、内部トランザクションことができます見なす手動または明示的なトランザクション、外部トランザクションは、自動または暗黙的です。
内部トランザクション プログラミング モデルは非常に単純な — を Begin クラスの MessageQueueTransaction メソッドを呼び出しを送信または受信メソッドにこのクラスのインスタンスを渡した。 Commit 送信先キューへのトランザクションの変更を保存し呼び出します。 詳細については、「方法 : 内部トランザクション内でメッセージを送信します。」を参照してください。
内部トランザクションは、データベースなどの非-メッセージ キュー リソースを含むトランザクションを実行することはできませんというで機能、多少制限されます。 トランザクション内で、データベースとやり取りする場合は、外部トランザクション使わなければなりません。 ただし、これらの制限のにもかかわらず内部トランザクションある外部トランザクションよりもパフォーマンスが向上します。
内部および外部の両方のトランザクションは、メッセージ キューをトランザクションとしてマークされてを送信することを必要です。 詳細については、「方法 : トランザクション キューを作成します。」を参照してください。
外部トランザクション
外部トランザクションはキューと別の種類のリソース間でメッセージを送信するときに使わ通常。 キューからメッセージを取得して、データベースに送信することができますたとえば、またはその逆)。 外部トランザクションは、いくつかの方法で内部トランザクションによって異なります。
外部トランザクションは一部のメッセージ キュー システムではないコーディネーターによって依存します。 ほとんどの場合、Microsoft 分散トランザクション コーディネーター (DTC) このなります。 DTC はトランザクションに必要なリソースを参加および成功または失敗を 1 つの単位としてすべてのトランザクションで操作かどうかを決定するプロセスを制御します。
外部トランザクションより複雑なプログラミング モデルがあります。 Begin Commit Abort 呼び出すの代わりに属性、外部トランザクションを示し、コンポーネントを COM + 1. 0 サービスによる登録を指定します。 こともする必要があります、トランザクションの種類のパラメーターを受け取る、SendReceive メソッドの特別なフォームを使用し、このフィールドに設定 Automatic します。
MessageQueue コンポーネントを使用せずに送信できるトランザクションの他の種類。 Visual Studio または .NET Framework 内のトランザクションについては、次のトピックを参照してください。
内容 |
■訳文不要■ |
---|---|
外部トランザクションで使用される属性を示す例 |
MSDN オンラインを参照してください。 |
C++ でのトランザクション |