問題タブ [rhino-esb]
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.
msmq - nServiceBus vs Mass Transit vs Rhino Service Bus vs other?
メッセージングシステムを使用して、適切に分離されたワークフローシステムにあるファイルを処理するためにいくつかのクイックスパイクを実行するだけです。
上記の各フレームワークを使用することで人々が見つけた長所と短所は何ですか?これらを使用することの利点は、WCFバインディングおよび/または非MSMQソリューションを備えた手動のMSMQシステムと比較して何ですか?
c# - Rhino.ServiceBusがすべてのキューを自動的に作成しないのはなぜですか?
私はそれについてのブログ投稿と非常によく似た方法で設定しましたが、キューの1つについて起動時にエラーが発生します。
はmsmq://localhost/colin_console_queue
私のプログラムによって自動的に作成されません。
私は自分が正しいことをしていないとかなり確信していますが、何を省略したのかわかりません。
'DisableAutoQueueCreation'属性を発見し、さまざまな構成要素でfalseに設定してみました。また、プロパティとして使用できることもわかったRhinoServiceBusFacility
ので、そこでも設定してみました。残念ながら、それはどれもうまくいかなかったようです。
同じキューを指すように2つのURLを変更すると、アプリは基本的に機能しますが、それは私が行うことになっていることではないと確信しています。スターバックスのサンプルアプリを見て、その機能を確認しましたが、コード内のハードコードされたパスを使用して多くのセットアップを行っているようです。
これが、キューの使用方法を理解するために使用しているテストプログラムです。
これが私が得るエラーです、
c# - Rhino ServiceBus:複数のメッセージを含むSagas
私は次のように複数のメッセージを処理できるサガを持っています:
しかし、Orchestrates<CancelOrder>だけがピックアップされているようです。ですから(私はその線を見つけられませんでしたが、これはそうだという強い印象を受けています)、最初のオーケストラだけが登録されていると思います。
おそらくこれは仕様によるものです。私がサガを想像していたことから、それが多くの異なるメッセージを受け取ることは論理的であるように思われますが、私は間違っているかもしれません。私も私の全体の仮定が間違っているかもしれません:)
これをどのように処理する必要がありますか?Sagasは1つ(私の場合)のChangeStateMessage <State>のみを処理することになっていますか、それとも他のConsumerOfs / Orchestratesを手動で配線する必要がありますか?
esb - Rhino.Esb "のメッセージ所有者が見つかりませんでした"
メッセージを公開および購読できるようにしたいサービスがいくつかあります。
次の構成を持つバックエンド バス コンソール アプリがあります。
そして、以下を使用して起動されます:
次に、次のesb構成を持つWCFサービスがあります。
そして、global.asax の次の内容:
そして、次の構成を持つ 2 番目のサービス:
しかし、これを使用してバスにメッセージを送信しようとするたびに:
次のエラーが表示されます。
SonaTribe.Esb.Messages.Account.EventAttendanceToggleMessage のメッセージ所有者が見つかりませんでした
誰が私が間違っているのか分かりますか?
wcf - MSMQ: プライベート キューにアクセスするには、2 つのサーバーが同じドメインにある必要がありますか?
タイトルが示すように、私は3つのサーバーを持っています:
server-1 [wcf サービス] server-2 [wcf サービス] server-3 [rhino.esb を使用した esb]
したがって、サーバー 1 はサーバー 3 esb にメッセージを発行し、サーバー 2 はサーバー 1 からのメッセージをサーバー 3 esb 経由でサブスクライブします。
それらはすべて同じドメインまたは何かにある必要がありますか?
c# - 「ストア アンド フォワード」を備えた Rhino Service Bus
「ストア アンド フォワード」構成で Rhino Queues を使用して Rhino Service Bus を使用することはできますか?
たとえば、2 つのノードがあるA
としB
ます。ノードがダウンしている場合、ノードが送信しようとしているメッセージが失われることB
は望ましくないため、送信メッセージをリモート キューに送信する前に、永続的なローカル キューにキャッシュする必要があります。A
B
A
RhinoキューでRhino Service Busを使用する場合、これは可能ですか?
rhino - メッセージがすべてのSagasにディスパッチされるのはなぜですか?
私はRhinoServiceBusを使用しており、SaveCustomerSagaとProcessReceiptSagaの2つのサガがあり、どちらの操作もUpdateInvoicesCommandを標準のメッセージコンシューマーに送信します。請求書が更新されるまで、どちらのSagasも完了しません。両方のsagasは、Orchestrates<'InvoicesUpdated>を実装して完了します。すべてのメッセージに同じCorrelationIdが使用されます。
ただし、UpdateInvoicesCommandのコンシューマーがメッセージInvoicesUpdatedで応答すると、両方のSagasにディスパッチされます。イベントの1つはまだ開始されておらず、CorrelationIdはすでに開始されているもう1つの佐賀に属しています。
CorrelationIdが一致する適切な佐賀にのみディスパッチするべきではありませんか?この動作を強制するために実行できる回避策またはインターセプトはありますか?
(v2.3.0を使用していますが、コミット履歴をざっと見てみると、これに関連する新しい変更ではないようです。)
multithreading - Rhino Service Bus コンシューマから WinForm UI にアクセスする
メッセージ コンシューマーでもある WinForm 画面があります (Rhino ESB を使用)。メッセージを受信したときに画面上の何かを更新しようとしても、何も起こりません。Invoke を呼び出すと、ハンドルが作成されていないというエラーが表示されます。フォームは間違いなく作成されていますが、フォームのボタンをクリックするとメッセージが送信され、バックグラウンドプロセスがメッセージを送り返します。UIを更新したいのは、この返信メッセージです。
これは重複した質問ではありません。提案された解決策はどれも機能しません。
ここでの違いは、Rhino Service バスを使用しているためだと思います。Rhino は、私が使用しているものではなく、私のフォームの別のインスタンスを構築している可能性があります。おそらく必要なことは、Rhino が使用している IoC コンテナーに私のインスタンスを渡すことによって、Rhino にフォームの私のインスタンスをコンシューマーとして使用させることだと思います。もう 1 つの方法は、Consumer を独自のクラスに移動し、Form を Consumer に挿入して、Consumer が使用できるように Form にパブリック メソッドを配置することです。これはメイン フォームであり、アプリを閉じない限り破棄されないため、私のアプリでは問題なく動作する可能性があります。これは、複数回インスタンス化される可能性のある別のフォームでは問題になります。おそらく、別の Consumer クラスが更新する別の静的オブジェクトをフォームに「観察」させることができます。
これはエラーをスローします:
messaging - Rhino ESB パブリッシュ メッセージを自分自身に
Rhino Service Bus の使用。処理を処理するバックエンド アプリがあり、バックエンドにメッセージを発行する別のアプリ (クライアント UI) があります。バックエンドに Saga があり、その間に Saga がそれ自体にメッセージを発行し、処理を独自のスレッドで実行できる複数の小さなタスクに分割します。問題は、メッセージが Orchestrates インターフェイス経由でサブスクライブされている場合、メッセージが常に破棄されることです。ConsumerOf を使用して別のクラスでサブスクライブでき、コンシューマーはメッセージを受け取ります。
ホスト構成:
ブートストラップ:
servicebus - Rhino ESB パブリッシュ/サブスクライブ バックエンド
クライアントが使用するデスクトップ アプリと、バックエンド処理を行う Win サービスの 2 つのアプリケーションがあります。Rhino Service Bus を使用して、メッセージ経由でバックエンド処理をトリガーできるようにしたいと考えています。このメッセージはクライアント アプリから送信される場合もあれば、win サービスから送信される場合もあります。誰がトリガーしたかは気にしません。だから私はpub subが必要です。問題は、コンソール アプリから問題なくトリガーできることです。サービスからトリガーしようとすると、メッセージのサブスクライバーがありませんというエラーが表示されます。私の設定で何が問題になっていますか?
コンソール app.config
Win サービス app.config
メッセージを送信するためのコードは、両方のアプリで同じです。