あなたと遊ぶために試みることができるのBizTalk MSMQアダプタの3つのプロパティがあります。
BATCHSIZE
は、アダプタが一度にキューを離陸するメッセージの数を指定します。デフォルト値は20です。
これはあなたの役に立つかもしれません。 1に設定しても、BTSは残りの「単一」メッセージを同時に処理しようとしますが、これは常に並列処理を試みると思われますが、間違っている可能性があります。
serialProcessing
メッセージは、彼らがエンキューされた順序でデキューされている指定します。デフォルトはfalseです。
これは、順序付けられた処理を保証するために、基本的にはシングルスレッド処理に限定されているため、役立つ可能性があります。しかし、これだけで十分かどうか、またはメッセージボックスデータベースへのメッセージ配信の順序を仲介するかどうかはわかりません。設計時にのみ行うことができる(つまり、コード変更が必要)BTSアプリケーション全体で、秩序のある配信を有効にする必要があるかもしれません。
トランザクション
メッセージはDTCトランザクションの一部としてメッセージボックスデータベースに送信されることを指定します。デフォルトはfalseです。
これは、メッセージが「迷子になる」という他の問題に役立つ可能性があります。キューがトランザクションではなく、さらにメッセージボックスDBに達するより大きなトランザクションスコープに登録されていない場合、メッセージはデキューされても処理されないとメッセージが失われます。プロセス全体をアトミックにすることで、メッセージボックスにコミットされていないメッセージはすべてキューにロールバックされます。
出典: https://msdn.microsoft.com/en-us/library/aa578644.aspx
あなたはあなたの痛みのポイントもう少し説明できますか?再オーケストレーションではどういう意味ですか?それはホストインスタンスを再起動しますか?それは決してメッセージ損失を引き起こすべきではありません。他の根本的な問題のためにこのような処理を導入したいと思うようです。 –