2016-06-15 12 views
0

私は最近シャトルESBで実験しています。これまでは、単一のマシンで完全に動作するコンポーネントを作成することができました。しかし、同じネットワーク上の異なるマシン上のコンポーネントを移動しようとすると、作業が止まるだけです。クライアントはBus.Create()で失敗します。ネットワーク上の他のマシンからアクセスできるShuttle-ESBのメッセージキューを作成する方法は?

Shuttle-ESBでパブリックキューを作成するにはどうすればよいですか?

+0

どのキューメカニズムが使用されていますか?あなたの質問から、それはMsmqのようです。 Shuttle.Esb.MsmqのMsmq実装は、プライベートキューのみをサポートしています。リモートプライベートキューには送信できますが、リモートプライベートキューからは読み取ることはできません。公開キューを使用する必要がある場合(推奨されていない)、別の実装が必要です。公開/プライベートキューの別のSO質問:http://stackoverflow.com/questions/1849989/private-or-public-msmq –

+0

はい私はMSMQを使用しています。プライベートキューを作成します。コンポーネントは単一のマシン上で動作しますが、ネットワーク上を移動するとプライベートキューが非表示になり、クライアントが失敗します。 –

答えて

0

を使用しているエンドポイントでは、ローカルマシン上に受信トレイが必要です。これは、Msmqトランザクションを使用して、キューの裏にあるジャーナルキューを介してキューからメッセージを取得するためです。

一つは、リモートプライベートトランザクションキューを読み取ることができません:https://msdn.microsoft.com/en-us/library/ms699854%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

あなたはMSMQがローカルマシン上で有効にする必要があります。コメントで述べたように、パブリックキューは助けになるかもしれませんが、現在は実装されておらず、パブリックキューには独自の課題があります。

ローカルエンドポイントマシンにMsmqをインストールするのが面倒な場合は、Shuttle.Esb.RabbitMQと考えてください。 RabbitMQはブローカであるため、ローカルにインストールする必要はありません。送信トレイを有効にしたり使用したりするには、これをやりたいことがあります(オプション)。

関連する問題