In an environment where you have a web app that sends messages and a
background service that will do the processing/receiving should the
endpoint in facility/bus point to the same place.
I think what is happening to me is that both my web app and service
compete for the message and the web app is getting there first so it
moves it to the discarded queue..

On Jan 19, 7:59 pm, Ayende Rahien <[email protected]> wrote:
> 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"
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to