2011-10-21 24 views
0

私のモデルでは、TCP接続からデータを取得してから、NServiceBus "Hub"サービスにコマンドを送信しています。 (そのハブはすべての加入者にデータを公開します)NServiceBusとメッセージの確認を正常に受信しました

TCP接続では、メッセージを受け取った(または再送信する)ACK(確認応答)が必要です。私はTCPメッセージをACKする前に、NServiceBusがメッセージを途中で安全に送信したことを知りたいと思います(遅れが長すぎない場合は、もう一方のハブサービス(ハブサービス) )。

NServiceBusには何らかのACKシステムが組み込まれていますか?それとも、メッセージが正常に送信されると信じていますか?

答えて

0

トランザクションNServiceBusを使用すると、メッセージが正常に配信されることがわかります。これは、メッセージが配信待ちの耐久性のある方法でキューに入れられるため、ハブサービスがオフラインの場合でも同じです。

この理由から、サービスから何らかの種類のACKを待つことは、実際には非生産的であり、不必要に処理を中断する可能性があります。

しかし、あなたの質問に答えて、私はこれを行う組み込みの機能に気づいていません(Udi Dahanは後で私を修正することがあります)。これは、別のメッセージが呼び出し元に返されることを伴います。

このackメッセージには、もともと送信された要求メッセージ、何らかの種類のトークン、またはackが元の呼び出しと照合されるIDが関係している必要があります。

これが役に立ちます。

1

中央データベース(両方のクライアントからアクセス可能)を手動で追加して、メッセージのステータスを維持することができます。 1つのクライアントからメッセージを送信する場合は、中央データベースに行を追加するだけのようにします。 次に、2番目のクライアントでメッセージを受信すると、その行を更新して、メッセージが受信されたことを確認します。

関連する問題