5
votes

We are trying to find an elegant solution for reporting exceptions generated from systems across our infrastructure that's easier to operate on than viewing e-mail or checking log files. The publish/subscribe model across a service bus, would solve this problem quite neatly. Services would publish errors/events and a subsriber could filter these messages using simple pattern matching.

We've been investigating the NServiceBus project and wondered whether it would achieve our requirements, looking at the PubSub sample (http://docs.particular.net/samples/pubsub/) we noticed it did not solve the following two scenarios:

  1. All publishers publish the same message type
  2. The subscriber should not require knowledge of publisher endpoints

We have managed to achieve these requirements, but we're unsure whether the configuration is correct. The following are our solutions:

  1. All publishers share the same subscription storage configuration (DBSubscriptionStorage), which is a shared database as described in the Subscription Storage section of the documentation http://docs.particular.net/nservicebus/messaging/publish-subscribe/

  2. All publishers/subscribers are configured to use a distributor as described in the documentation on the nservicebus website.

We would like to know whether this is the correct implementation of the NServiceBus publish/subscribe model, or whether there might be another solution that would acheive our goals?

2

2 Answers

2
votes

This has been discussed on the discussion group here:

http://nservicebus.grouply.com/message/7059

In short, you would have each node send rather than publish to a single endpoint.

Hope that helps.

0
votes

You could write messages to the windows event log and use a tool like OpManger to monitor for errors / warnings in the logs.

Added benefits are OpManager can monitor processes, network ports so you can detect other failures. It also supports email alerts and has a nice WebUI.