2

NServiceBusを初めて使用するので、pub/sub機能の構成を台無しにしていると確信しています...

同じイベントを処理するために2つのサブスクライバー(AとB)を設定しました。メッセージの保存にMSMQを使用しています。Bのハンドラーにコメントを付け、Aのみをサブスクライブすると、Aのハンドラーは1回だけ呼び出されます(Aのキューには1つのメッセージのみが含まれます)。

ただし、Bサブスクライバーのハンドラーのコメントを解除すると、同じイベントを処理します。AとBの両方が、キューでまったく同じメッセージを2つ取得します。これにより、各ハンドラーが2回実行されます。

私はNServiceBus3.2.0.0を使用しています。各イベントサブスクライバーは別々のプロジェクトにあり、独自のNServiceBusホストで実行されています。

これが私のバスのセットアップです...

    private IBus CreateBus()
    {
        return Configure.With()
            .NinjectBuilder(this.Kernel)
            .Log4Net()
            .MsmqTransport()
            .PurgeOnStartup(true)
            .UnicastBus()
            .LoadMessageHandlers()
            .CreateBus()
            .Start(() => Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install());
    }

どんな助けでもいただければ幸いです。

4

1 に答える 1

1

それはninjectの誤用であることが判明しました。また、ソリューションでEventStoreを利用しているため、最初のインスタンスが何かのコミットを完了する前に2番目のEventStoreインスタンスを挿入すると、コミットされていない最初のイベントが再公開されました。

于 2012-10-19T16:05:52.283 に答える