問題タブ [ordered-delivery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2095 参照

wcf - netMSMQbinding を使用した注文済み配送

WCF netMSMQbinding を使用すると、順序どおりの配信を保証できますか?

挿入コマンドに続いて多数の更新コマンドを同じキューに入れていますが、時折、更新の 1 つが挿入よりも優先されます。

広範なログを追加すると、それらが正しい順序でキューに追加され、異なる順序で処理されていることが明らかです。

この動作が予想されることを示すいくつかの記事を Google で検索しましたが、どうにかして順序付けられるように構成する必要があるようです。

私たちのキューはトランザクションであるため、シーケンス番号を追加して宛先で再シーケンスすることは機能しないと思います。トランザクション性が失われるためです。

属性を追加する[DeliveryRequirements(RequireOrderedDelivery=true, QueuedDeliveryRequirements=QueuedDeliveryRequirementsMode.Require)]と、次のエラーが発生します。

コントラクト「IService」の DeliveryRequirementsAttribute は、NotAllowed の QueuedDeliveryRequirements 値を指定します。ただし、このコントラクト用に構成されたバインディングは、キュー配信をサポートすることを指定しています。キューに入れられたバインディングは、このコントラクトでは使用できません。

すべてが正しくセットアップされているように見えるため、このエラーが発生する理由がわかりません。ただし、この設定がMSMQで許可されていることを確認することはできませんでした.WS-RM設定のようであり、知る限りnetMSMQBindingはWS-RMをサポートしていません.

0 投票する
2 に答える
2380 参照

biztalk - Biztalk の注文済み配信の失敗

入力されるメッセージの順序が非常に重要であり、保持する必要がある BizTalk アプリケーションがあります。つまり、同じ順序で出力する必要があります。通常、注文された配達はここでうまくいきます。

ただし、注文された配信は、受信場所を送信ポートに直接接続した場合にのみ保証されると読みました。オーケストレーションを使用した時点で、注文の配信は保証されなくなります。これを回避または修正する方法はありますか? この種のものはアプリケーション全体を台無しにするため、私たちは何ヶ月もこれに取り組んできました.

Microsoft からの回避策を読みました。ここでは、カウンターを持つ追加のフィールドを使用し、カウンターをチェックするエンド オーケストレーションを使用しています。しかし、これは私たちが今行うにはあまりにも多くの作業です。したがって、この回避策はありません。さらに、すべてのメッセージが翻訳されるわけではないため、フローに穴が開いたり、すべてのメッセージが同じソースから来ているわけではないため、この回避策はとにかく役に立たなくなります。

他のアイデアはありますか?

0 投票する
3 に答える
1255 参照

biztalk - 複数のポートに直接バインドされた Biztalk Ordered Delivery

別の注文配送の問題。

true の配信を注文した送信ポートにバインドされているオーケストレーションがあります。別の送信ポートもフィルタリングによってこれらのメッセージを取得し、このポートも配信を順序付けています。

何らかの理由で、メッセージを使用する複数のポートがあり、そのうちの 1 つが直接ポート バインドされている場合、ポートの 1 つだけが使用されます。つまり、両方のポートが出力を提供するわけではありません。

常に出力されているポートの 1 つを登録解除すると、これは両方の方法で機能します。

代わりにフィルターを使用する 2 つのポートでこれを使用していましたが、これは機能しましたが、1 つを直接ポートに変更する必要があり、それ以来問題が発生しました。また、BizTalk のポートの選択はかなりランダムです。たとえば、私たちのサーバーではポート A が選択され、ローカル マシンで同じ問題を再現すると、たとえばポート B が選択されるためです。

これは一種の奇妙な問題であり、何が原因であるかはわかりません。

0 投票する
2 に答える
1213 参照

biztalk - 親オーケストレーションから複数のオーケストレーションを開始し、それらにメッセージを渡す

メインのオーケストレーションが一連のメッセージの処理を担当している状況があります。これらのメッセージは一連の顧客に属し、オーケストレーションは受信したメッセージを読み取り、新しい顧客 ID が見つかるたびに、特定の顧客のメッセージの処理を担当する新しいオーケストレーションを起動します。受信したメッセージの順序を保持する必要があるため、新しく作成されたオーケストレーションはメッセージを処理し、メインのオーケストレーションからの追加メッセージを待機する必要があります。

これに取り組むためにさまざまな方法を試みましたが、うまく実装できませんでした。これをどのように行うことができるかについて、ご意見をお聞きしたいと思います。

ありがとう。

0 投票する
1 に答える
124 参照

.net - MSMQでメッセージが順番に1回送信されるように、適切な構成は何ですか。

シナリオは次のとおりです。

2台のマシン:「マシンA」と「マシンB」。

対応するIPアドレスが192.168.0.100(Aの場合)と192.168.0.200(Bの場合)であるとしましょう。どちらのマシンにも、WindowsServer2008のMSMQがインストールされています。

マシンA

次のキューが構成されています:private$\aaatransactional

そのキューに単一のコンシューマーがありRead、MSMQトランザクションのすべてのアクションをラップし、「現在の」メッセージからのみ読み取ります(つまり、カーソル操作は使用されません)。

マシンB

にメッセージを送信する単一のアプリケーションがありますFormatName:direct=os:192.168.0.100\private$\aaa。各Sendメッセージは、(C#のコード)を使用してMSMQトランザクションでラップされます
TimeToReachQueue = Message.InfiniteTimeout

TimeToBeReceived = Message.InfiniteTimeout

そして...質問

このシナリオとの構成ではprivate$\aaa、BからAに送信されるメッセージは次のとおりです。

  1. 一度お届けしますか?つまり、マシンAのコンシューマーアプリケーションで、「現在の」メッセージが実際に「新しい」(つまり、以前に処理されていない)ことを確認する必要がありますか?それとも、MSMQ自体がその問題を処理しますか?キューだからちょっとばかげているね!しかし、メッセージが正しいと主張する具体的な参考資料は見つかりませんでした。私はそのような主張を見ましたが、Microsoftの公式リソースからではありません。
  2. 順番に?つまり、M1ネットワークの問題が原因でBからAにメッセージを送信できず、ネットワークが正常に戻って、次のメッセージM2がマシンAに正常に送信される可能性はありますか?

どうもありがとう!