0

非トランザクションメッセージが重複したり、順序が間違ったりする可能性があるシナリオについて教えてください。私が理解している限り、次のことができます:

  • ルーティングの問題の結果
  • 送信側/受信側 MSMQ サービス (ま​​たはコンピューター) の再起動
  • 送信者/受信者は一時的にネットワークで利用できません
  • コンピュータのクォータに達しました
  • キュー クォータが理由ではないでしょうか。
  • 受信キューからの読み取り時にコンピューター/サービス/アプリケーションを再起動します (?)
  • 非トランザクション キューから読み取る場合、前のメッセージの前に後で到着したメッセージを読み取ることはできますか?

間違っていたら訂正して、私のリストに何か追加してもらえますか?

ありがとう。

4

1 に答える 1

0

何らかの理由でデータが 2 回送信されると、重複が発生する可能性があります。提案されたシナリオは、主にネットワークの問題に関連しています (ネットワーク エラーのためにメッセージが複数のルートで送信されたが、メッセージの複数のコピーが最終的に到着した場合、またはハンドシェイク パケット損失により送信者が再送信を余儀なくされた場合)。

MSMQ サービスを最初に正常にシャットダウンできないことを意味する方法 (停電や BSOD など) で MSMQ サービスを再起動すると、パケット損失による重複が発生する可能性があります。再起動を通じて。

クォータの超過などの通常の操作では、重複の問題が発生することはありません。また、MSMQ はマシンが常に利用できるとは限らないことを想定して設計された非同期製品であるため、ネットワーク上に送信側または受信側が存在しないようにする必要があります。

非トランザクション メッセージの順序が乱れることはまれですが、完全に正常であり、予期される必要があります。メッセージが送信されたのと同じ順序でキューに到着することに依存する非トランザクション システムを決して設計しないでください。同じ単一のトランザクション内で送信されたトランザクション メッセージのみが、送信されたのと同じ順序で到着します。これは、順序が保証されていない複数の独立したトランザクション メッセージを送信することと同じではありません。

MSMQ には重複検出が組み込まれていることに注意してください。メッセージの重複に問題がある場合は、検出パラメーターを微調整するだけでよい場合があります。MSMQ がメッセージの重複を防ぐ方法

于 2013-06-26T12:01:30.177 に答える