問題タブ [reliable-message-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.
rabbitmq - PubSub + 信頼できない存在のサブスクライバーへの信頼できるメッセージ配信
パブリッシュ/サブスクライブ バス (Mule、ZeroMQ、RabbitMQ など) を使用するシステムを構築する必要がありますが、すべての文献は、サブスクライバー アプリケーションが、サブスクライブ先のトピックからのメッセージを確実に受信できることを示唆しています。メッセージを届けることができます。
一部のアプリケーションがパブリッシュ/サブスクライブ バスに確実に接続されるシステムがありますが、他のアプリケーションはアクティブではないか、常にバスに接続されません。
明らかな解決策は、信頼できないアプリケーションとパブリッシュ/サブスクライブ バスの間にある種の「存在」プロトコルを設けて、「存在する」アプリケーションがメッセージをすぐに配信し、「存在しない」アプリケーションがメッセージを永続的なバッファにキューに入れるようにすることです。そして、「プレゼンス ハンドシェイク」が完了するとすぐに、キューに入れられたメッセージが新しくプレゼンスされたアプリケーションに配信されます。
この種の機能が組み込まれているパブリッシュ/サブスクライブ バスはありますか、またはこれを行うオープンソース アドオンはありますか? これについて説明している URL を教えてください。
biztalk - 順序付きメッセージ配信は、シーケンシャル コンボイを使用した BizTalk スケールアウトで実装できますか?
順序付けられたメッセージを受信するために使用されるキュー (MQ シリーズ アダプターを使用) に接続された BizTalk 受信ポートがあります。複数の BizTalk ホスト インスタンスでこのポートをスケールアウトする必要があります (BizTalk Server 2006 R2 を使用しています)。
MSDN によると、順序付けされたメッセージ配信はスケールアウト手法に反して機能するため、これは実行できません。
複数の BizTalk ホスト インスタンスでスケールアウトして、順序付けされたメッセージ配信を実現する他の方法はありますか? シーケンシャルコンボイパターンでこれを達成することは可能ですか?
フィードバックをお待ちしております。
ありがとう、
チャトゥール
java - UDPプログラムでclosedSocketExceptionをスローするDatagramChannel
コースワーク プロジェクトの一環として、Selective Repeat を使用して Java の基本的な UDP プロトコルに信頼性のレイヤーを実装しようとしています: http://en.wikipedia.org/wiki/Selective_Repeat_ARQ。基本的に、各パケットは、送信されると、別のスレッドで独自のタイマーを追跡します。特定のタイマーが切れると、パケットが再送されます。
比較的大きなタイムアウト設定 (500ms など) の場合、このコードは正常に実行され、大きなファイルは完全に受信側に送信されます。ただし、タイムアウトを低く設定すると (例: 20ms)、端末に次のようなスパム メッセージが表示されます。
しかし、私が見る限り、チャンネルは閉鎖されていません。この例外のドキュメントには次のように記載されています。
チャネルが閉じられているか、少なくともその操作に対して閉じられているチャネルで I/O 操作を呼び出しまたは完了しようとしたときにスローされるチェック例外です。この例外がスローされても、チャネルが完全に閉じられているとは限りません。たとえば、書き込み側がシャットダウンされたソケット チャネルは、まだ読み取り用に開いている可能性があります。
なんらかの理由で利用できないため、おそらく閉鎖されていると思います。タイムアウト値が小さい場合にのみ発生するため、2 つのスレッドが同時に再送信しようとしている可能性がありますか? ただし、送信方法(sendPak)は同期されているため、これは不可能なはずです。
この問題の原因は何ですか? または、この問題を回避するために使用できる修正は何ですか? これが私のプログラムの送信側部分のコードです。受信側は問題ないと確信しています。
.net - MSMQ の信頼度
最近、ドメイン環境でローカル アカウントを使用して msmq 通信チャネルを設定する際に問題が発生しました。キューのプロパティで匿名ユーザーにアクセス権を付与する必要があったのは、かなり一般的なシナリオでした。
しかし、その瞬間から気になることが 1 つあります。それは、アプリケーションがメッセージをリモートのプライベート キューに送信できなかったときに、メッセージがどこかに消えてしまったことです。私のキューはトランザクション対応で、DefaultPropertiesToSend.Recoverable を true に設定しています。メッセージを送信するマシンで送信メッセージ キューが作成されましたが、送信を試みた後、送信キューに待機中のメッセージはなく、送信中に例外も発生しませんでした。それは設計によるものですか?
erlang - ejabberd でメッセージ配信ステータスを実装する方法
私はEjabberdが初めてです。メッセージが受信者に届いたかどうかを知りたいです。私が使用しているクライアントは pidgin です。プロトコルXEP-0184を使用しましたが、これを実装する方法がわかりません (Erlang はわかりません)。インストールして使用できるこのプロトコルを実装した利用可能なモジュールはありますか? 実装されていない場合、どうすれば実装できますか?