Yes, exactly. On Mon, Jan 19, 2009 at 8:27 PM, chrisortman <[email protected]> wrote:
> > light bulb... > So I have 1 guy that owns a particular message. > other guys are going to send those messages to him. > > ?Rule: If you are not the message owner you should not call publish or > notify on the message? > > What I was doing was in my web app, user clicks submit order and then > the controller would Notify(OrderSubmitted) and then there might be > any number of handlers that would deal with the submitted order. I was > using notify because I thought that the correct way to express that > there could be N handlers for the particular message. But what I > should be doing is in my controller doing a Send(OrderSubmitted) and > then have my consumer for that publish a different message? > > On Jan 19, 5:56 pm, Ayende Rahien <[email protected]> wrote: > > It is the guy who is responsible for publishing the message, and the guy > who > > gets the message when you send it. > > Did you start the service? > > Did you register your message consumers in the container? > > > > On Mon, Jan 19, 2009 at 5:27 PM, chrisortman <[email protected]> > wrote: > > > > > Is the message owner the guy handling the message or the guy sending > > > the message? > > > > > In my scenario they are really the same I think... > > > > > In my facilities.config > > > <facility id="rhino.esb" > > > > <bus threadCount="1" > > > numberOfRetries="5" > > > > > logEndpoint="msmq://localhost/myapp.log" > > > endpoint="msmq://localhost/myapp.backend" > > > /> > > > <messages> > > > <add name="MyApp.Messages" > > > endpoint="msmq://localhost/myapp.backend"/> > > > </messages> > > > </facility> > > > > > Then I have this message class > > > namespace MyApp.Messages { > > > public class SimpleMessage { > > > public string Content {get;set;} > > > } > > > } > > > > > I then have a MR controller > > > public class MyController { > > > > > public void Submit(string content) { > > > var bus = IoC.Resolve<IServiceBus>(); > > > var message = new SimpleMessage(content); > > > bus.Notify(message); //nothing to do because there are no > > > subscribers > > > } > > > } > > > > > Now, I had been planning on _not_ setting up a separate service to > > > handle messages and instead just have everything live in my web > > > application. Is that really really bad or just bad? Maybe that is why > > > I am so confused? > > > > > On Jan 19, 4:09 pm, Ayende Rahien <[email protected]> wrote: > > > > a) usually... yes. b) no, you don't. > > > > You need to register this in the message owner's configuration. > > > > > > <castle> > > > > > > <facilities> > > > > > > <facility id="rhino.esb" > > > > > > > <bus threadCount="1" > > > > > > numberOfRetries="5" > > > > > > endpoint="msmq://localhost/nhprof.backend" > > > > > > /> > > > > > > <messages> > > > > > > <add name="NHProfilerWeb.Backend.InternalMessages" > > > > > > endpoint="msmq://localhost/nhprof.backend"/> > > > > > > <add name="NHProfilerWeb.Messages" > > > > > > endpoint="msmq://localhost/nhprof.backend"/> > > > > > > </messages> > > > > > > </facility> > > > > > > </facilities> > > > > > > On Mon, Jan 19, 2009 at 4:43 PM, chrisortman <[email protected]> > > > wrote: > > > > > > > Sorry, I don't think I understand... > > > > > > > a) Are you saying that there will always be other endpoints? > > > > > > > b) > > > > > I need to define in my application something like this? > > > > > public class Something : ConsumerOf<AdministrativeMessage> { > > > > > public void Consume(AdministrativeMessage m) { > > > > > //nothing to do here > > > > > } > > > > > } > > > > > > > On Jan 19, 3:20 pm, Ayende Rahien <[email protected]> wrote: > > > > > > a) you assume that there are other end points.b) make sure that > you > > > have > > > > > > message owners defined for the bus' messages, that will handle > the > > > > > > subscriptions. > > > > > > > > On Mon, Jan 19, 2009 at 4:03 PM, chrisortman < > [email protected]> > > > > > wrote: > > > > > > > > > I think why I am getting confused is that whatever bus i use to > > > Send| > > > > > > > Notify|Publish should be an implicit subscriber since it can > > > consume > > > > > > > its own messages. Otherwise I can't see why to use > Notify|Publish > > > if > > > > > > > there are no other endpoints. > > > > > > > > > On Jan 19, 2:05 pm, Ayende Rahien <[email protected]> wrote: > > > > > > > > No, because discarded messages are for _arriving_ messages. > > > > > > > > > > On Mon, Jan 19, 2009 at 2:43 PM, chrisortman < > > > [email protected]> > > > > > > > wrote: > > > > > > > > > > > Currently when doing IServiceBus.Notify(message) nothing > > > happens if > > > > > > > > > there are no subscribers. > > > > > > > > > Should this also generate a discarded message? > > > > > > > > > > > On Jan 19, 11:04 am, Ayende Rahien <[email protected]> > wrote: > > > > > > > > > > That is an extremely common approach. > > > > > > > > > > For that matter, here is the real configuration behind > the NH > > > > > Prof > > > > > > > > > website: > > > > > > > > > > > > <castle> > > > > > > > > > > > > <facilities> > > > > > > > > > > > > <facility id="rhino.esb" > > > > > > > > > > > > > <bus threadCount="1" > > > > > > > > > > > > numberOfRetries="5" > > > > > > > > > > > > endpoint="msmq://localhost/nhprof.backend" > > > > > > > > > > > > /> > > > > > > > > > > > > <messages> > > > > > > > > > > > > <add name="NHProfilerWeb.Backend.InternalMessages" > > > > > > > > > > > > endpoint="msmq://localhost/nhprof.backend"/> > > > > > > > > > > > > <add name="NHProfilerWeb.Messages" > > > > > > > > > > > > endpoint="msmq://localhost/nhprof.backend"/> > > > > > > > > > > > > </messages> > > > > > > > > > > > > </facility> > > > > > > > > > > > > </facilities> > > > > > > > > > > > > On Mon, Jan 19, 2009 at 12:00 PM, chrisortman < > > > > > [email protected] > > > > > > > > > > > wrote: > > > > > > > > > > > > > Does it violate anything if the same bus that sends the > > > message > > > > > is > > > > > > > > > > > also the one that is watching that queue? > > > > > > > > > > > > > Lets say I have 2 apps. > > > > > > > > > > > 1 NHProf website > > > > > > > > > > > 2 Windows Service that does order processing > > > > > > > > > > > > > So in the web app I would do something like > > > > > > > > > > > <facility id="rhino.esb" > > > > > > > > > > > > <bus threadCount="1" > > > > > > > > > > > numberOfRetries="5" > > > > > > > > > > > endpoint="msmq://localhost/nhprof.web" > > > > > > > > > > > /> > > > > > > > > > > > <messages> > > > > > > > > > > > <add name="nhprof" > > > > > > > > > > > endpoint="msmq://localhost/nhprof.orders"/> > > > > > > > > > > > </messages> > > > > > > > > > > > </facility> > > > > > > > > > > > > > And then the service app: > > > > > > > > > > > <facility id="rhino.esb" > > > > > > > > > > > > <bus threadCount="1" > > > > > > > > > > > numberOfRetries="5" > > > > > > > > > > > endpoint="msmq://localhost/nhprof.svc" > > > > > > > > > > > /> > > > > > > > > > > > <messages> > > > > > > > > > > > <add name="nhprof" > > > > > > > > > > > endpoint="msmq://localhost/nhprof.orders"/> > > > > > > > > > > > </messages> > > > > > > > > > > > </facility> > > > > > > > > > > > On Jan 19, 10:53 am, Ayende Rahien <[email protected]> > > > wrote: > > > > > > > > > > > > No, there is an assumption that that queue exists. > > > > > > > > > > > > > > On Mon, Jan 19, 2009 at 11:50 AM, chrisortman < > > > > > > > [email protected] > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > Is there an assumption then that there exists a bus > > > that is > > > > > > > > > watching > > > > > > > > > > > > > that endpoint? > > > > > > > > > > > > > > > On Jan 19, 10:27 am, Ayende Rahien < > [email protected]> > > > > > wrote: > > > > > > > > > > > > > > inline > > > > > > > > > > > > > > > > On Mon, Jan 19, 2009 at 10:43 AM, chrisortman < > > > > > > > > > [email protected] > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > Is it correct to say that a Discarded message > is > > > any > > > > > > > message > > > > > > > > > that > > > > > > > > > > > > > > > arrives at an endpoint but has no consumers > > > registered > > > > > for > > > > > > > it? > > > > > > > > > > > > > > > > yes > > > > > > > > > > > > > > another option is that this is a saga message > that > > > > > doesn't > > > > > > > have a > > > > > > > > > > > saga > > > > > > > > > > > > > > instance to orchestrate it. > > > > > > > > > > > > > > > > > I am also not understanding why messages have > their > > > own > > > > > > > > > endpoint or > > > > > > > > > > > > > > > when they should share the same endpoint as the > > > bus? > > > > > > > > > > > > > > > > > I am running the trunk right now, and when I > use > > > this > > > > > as my > > > > > > > > > config > > > > > > > > > > > > > > > <facility id="rhino.esb" > > > > > > > > > > > > > > > > <bus threadCount="1" > > > > > > > > > > > > > > > numberOfRetries="5" > > > > > > > > > > > > > > > > > logEndpoint="msmq://localhost/my.log" > > > > > > > > > > > > > > > endpoint="msmq://localhost/rhino" > > > > > > > > > > > > > > > /> > > > > > > > > > > > > > > > <messages> > > > > > > > > > > > > > > > <add > > > > > > > name="MyMessageAssembly" > > > > > > > endpoint="msmq://localhost/my.subscriptions"/> > > > > > > > > > > > > > > > </messages> > > > > > > > > > > > > > > > </facility> > > > > > > > > > > > > > > > > > I get errors because the my.subscriptions queue > > > doesn't > > > > > > > exist. > > > > > > > > > > > > > > > > The problem that you have is that you are trying > to > > > send > > > > > the > > > > > > > > > message > > > > > > > > > > > to a > > > > > > > > > > > > > > non existing bus. > > > > > > > > > > > > > > > > The reason that you have to specify an endpoint > > > several > > > > > times > > > > > > > is > > > > > > > > > that > > > > > > > > > > > the > > > > > > > > > > > > > > bus' endpoint says what queue the bus listen on. > > > > > > > > > > > > > > The message endpoint specify what is the owner of > a > > > > > > > particular > > > > > > > > > set of > > > > > > > > > > > > > > messages. > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino Tools Dev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhino-tools-dev?hl=en -~----------~----~----~----~------~----~------~--~---
