MSMQ アダプターを使用したトランザクション処理
このセクションでは、送受信の際のトランザクションの機能について説明します。
Note
MSMQ アダプターは、リモート キューを使用している場合でも、BizTalk メッセージ ボックス データベースからローカルのメッセージ キューのキューにトランザクションを拡張します。
MSMQ アダプターを使用した、送信と受信のいずれでも、トランザクションを使用できます。 トランザクションを使用した送信では、アダプターでバッチが完成するまでメッセージが蓄積されます。 その後バッチは、ローカルのメッセージ キュー サービスに単一のトランザクションとして送信されます。 送信に失敗した場合、バッチは再送信されます。 再送信も失敗した場合、セカンダリ トランスポートに移動されます。
Note
アダプターはメッセージ キュー 4.0 以降を使用したリモート キューのトランザクション読み込みのみをサポートしています。 このシナリオでは、BizTalk Serverとリモート メッセージ キュー サーバーの両方がメッセージ キュー 4.0 以降を実行している必要があります。
トランザクションを使用した受信では、アダプターは失敗したメッセージを、失わないように保留します。 受信の間、バッチが完成するまでメッセージがバッチに追加されます。 その後、バッチが送信されます。
問題が発生せず、サーバーでメッセージを受信した場合、トランザクションはコミットされます。
問題が発生した場合、新しいバッチが現在のトランザクションの一部として作成されます。 問題のあるメッセージは新しいバッチに移動されます。 その後、最初のバッチが再送信され、新しいバッチが保留中のメッセージとして送信されます。 この再送信で問題が発生しなかった場合、トランザクションはコミットされます。
クラスター化された BizTalk ホスト インスタンスで MSMQ アダプターの送信ハンドラーを実行している場合、トランザクションの一貫性を確保するために、MSMQ サービスを同一のクラスター グループにクラスター化してください。
DCOMCNFG ユーティリティで [ネットワーク DTC アクセス] が無効になっている場合、MSMQ トランザクション リモート受信操作は解読不明のエラー メッセージで失敗します。 MSMQ アダプターでトランザクション リモート受信を行うには、[ネットワーク DTC アクセス] を有効にする必要があります。 詳細については、https://go.microsoft.com/fwlink/?LinkId=124623をご覧ください。
MSMQ はリモートのトランザクションの読み込みをサポートしていないので、クラスター化された BizTalk ホスト インスタンスで MSMQ アダプターの受信ハンドラーを実行している場合は、ローカルのトランザクションの読み込みをサポートするために、MSMQ サービスを同一のクラスター グループにクラスター化してください。 BizTalk ホストのクラスター化されたインスタンスで MSMQ アダプター ハンドラーを実行する方法の詳細については、「クラスター化ホスト 内でのアダプター ハンドラーの実行に関する考慮事項」を参照してください。