Thanks for the clarifications, much appreciated.

On Fri, Apr 3, 2009 at 00:10, Ayende Rahien <[email protected]> wrote:

> Every subscriber needs to know the endpoints it subscribe to.The
> other alternative is to place the subscription information in some sort of a
> shared location.
> And yes, it is expected that Orders.Messages publishers will be at
> test_queue
>
>
> On Thu, Apr 2, 2009 at 6:03 PM, Simone Busoli <[email protected]>wrote:
>
>> Fine, my question is about the bus/endpoint attribute. Does every
>> subscriber need that? Should it have the same value among all subscribers?
>> Is that the same of the publisher? I know I'm probably missing some basic
>> concepts. Given the example you shown, is a publisher which publishes
>> messages in category Orders.Messages supposed to have
>> msmq://localhost/test_queue as its bus/endpoint?
>>
>>
>> On Thu, Apr 2, 2009 at 23:57, Ayende Rahien <[email protected]> wrote:
>>
>>> each subscriber should have the publisher register in their config.
>>>
>>> <castle>
>>>
>>>   <facilities>
>>>
>>>     <facility id="rhino.esb" >
>>>
>>>       <bus threadCount="1"
>>>
>>>            numberOfRetries="5"
>>>
>>>            endpoint="msmq://localhost/test_queue3"
>>>
>>>              />
>>>
>>>       <messages>
>>>
>>>         <add name="Orders.Messages"
>>>
>>>              endpoint="msmq://localhost/test_queue"/>
>>>
>>>         <add name="Shipping.Messages"
>>>
>>>              endpoint="msmq://localhost/test_queue2"/>
>>>
>>>       </messages>
>>>
>>>     </facility>
>>>
>>>   </facilities>
>>>
>>> </castle>
>>>
>>> In this case, this subscriber is going to subscribe to Order.Messages
>>> events on test_queue and Shipping.Messages on test_queue2
>>> If you have any ConsumerOf<T> where T is in any of Orders.Messages or
>>> Shipping.Messages, you will get the message when the message is being fired.
>>>
>>> On Thu, Apr 2, 2009 at 5:51 PM, Simone Busoli 
>>> <[email protected]>wrote:
>>>
>>>> So, let's say I have one publisher and two subscribers. How are the
>>>> three supposed to be configured in order for both subscribers to receive a
>>>> message when the published publishes it?I'm just talking about the
>>>> bus/endpoint attribute and messages configuration section.
>>>>
>>>> On Thu, Apr 2, 2009 at 23:36, Ayende Rahien <[email protected]> wrote:
>>>>
>>>>> Can you restart the problem? I am not sure that I understand.If you
>>>>> need subscribers, you need to just have the endpoint which publish the
>>>>> message.
>>>>> Anything else is not necessary, it will auto subscribe and respond to
>>>>> messages after that.
>>>>>
>>>>>
>>>>> On Thu, Mar 26, 2009 at 11:04 AM, Simone Busoli <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Late on this thread, but I'm trying RSB right now on a project
>>>>>> and setting up a pub/sub scenario. I'm not sure I understand how multiple
>>>>>> subscribers are identified, I have, say, two subscribers that only need 
>>>>>> to
>>>>>> receive messages, and I gave them the same configuration file. From
>>>>>> what I can see, giving them the same endpoint uri entails that they are 
>>>>>> all
>>>>>> the same instance,  therefore when a message is published only one of 
>>>>>> them
>>>>>> receives it.
>>>>>> On the other hand, I can see that if every subscriber has a different
>>>>>> endpoint everything works correctly.
>>>>>> My issue with that is that I'll need several subscribers, whose code
>>>>>> and configuration is taken from a build server, which outputs a single
>>>>>> configuration file, which, along all the other stuff gets deployed on
>>>>>> production machines.
>>>>>> As far as I can see this prevents me from using the xml configuration
>>>>>> to set up the facility and instead add it to the container during the
>>>>>> startup of the application with an endpoint supplied programmatically 
>>>>>> based
>>>>>> on, for example, the name of the machine.
>>>>>> Any ideas?
>>>>>>
>>>>>> On Thu, Jan 29, 2009 at 21:07, Matt Burton <[email protected]>wrote:
>>>>>>
>>>>>>>
>>>>>>> LOL
>>>>>>>
>>>>>>> FYI - I shuffled everything around and it's working brilliantly with
>>>>>>> the understanding of how pub/sub is actually being carried out. I'll
>>>>>>> have to figure out what I want to do about the subscription business
>>>>>>> -
>>>>>>> knowing that I received n responses for n subscribers. Using
>>>>>>> ISubscriptionStorage it works great, however I agree it does feel a
>>>>>>> bit dirty...
>>>>>>>
>>>>>>> On Thu, Jan 29, 2009 at 11:58 AM, Ayende Rahien <[email protected]>
>>>>>>> wrote:
>>>>>>> > Yes, you can.
>>>>>>> > Buy BizTalk
>>>>>>> >
>>>>>>> > On Thu, Jan 29, 2009 at 2:48 PM, Matt Burton <
>>>>>>> [email protected]> wrote:
>>>>>>> >>
>>>>>>> >> Crap - that's too simple - can't we make it more complicated? :)
>>>>>>> >>
>>>>>>> >> Thanks for the clarification - most appreciated.
>>>>>>> >>
>>>>>>> >> On Thu, Jan 29, 2009 at 11:43 AM, Ayende Rahien <
>>>>>>> [email protected]> wrote:
>>>>>>> >> > The way it works.
>>>>>>> >> > P1 - publisher of Msg1
>>>>>>> >> > S1 - S3 - Subscribers to Ms1
>>>>>>> >> >
>>>>>>> >> > S1 starts up, it sends an AddSubscription request to P1
>>>>>>> >> > P1 publish a Msg1 msg. So it sends it to S1
>>>>>>> >> > S2 starts up, it sends an AddSubscription request to P1
>>>>>>> >> >
>>>>>>> >> > P1 publish a Msg1 msg. So it sends it to S1,S2
>>>>>>> >> >
>>>>>>> >> > On Thu, Jan 29, 2009 at 2:39 PM, Matt Burton <
>>>>>>> [email protected]>
>>>>>>> >> > wrote:
>>>>>>> >> >>
>>>>>>> >> >> Thanks for the responses - most appreciated. Yes - I know that
>>>>>>> what
>>>>>>> >> >> I'm trying to do is pub/sub - I was referring to the term "load
>>>>>>> >> >> balancer" as that appeared to be the mechanics around the store
>>>>>>> and
>>>>>>> >> >> forward mechanism of publishing a message to multiple
>>>>>>> subscribers in
>>>>>>> >> >> RSB. I guess I was wrong about that - but I'm a bit confused as
>>>>>>> to how
>>>>>>> >> >> this is working then.
>>>>>>> >> >>
>>>>>>> >> >> When you say it should work out of the box - are you referring
>>>>>>> to
>>>>>>> >> >> pub/sub? I'm guessing I have a fundamental misunderstanding of
>>>>>>> the
>>>>>>> >> >> mechanics here. Process 1 publishes a message which process 2
>>>>>>> is
>>>>>>> >> >> subscribed to. Process 2 then publishes a new message which
>>>>>>> processes
>>>>>>> >> >> A, B, and C are all subscribed to. The way I was thinking about
>>>>>>> it was
>>>>>>> >> >> that the message would go into a queue and then something would
>>>>>>> pick
>>>>>>> >> >> up the message and relay it to all the subscribers. Is that not
>>>>>>> how it
>>>>>>> >> >> works? If not, and the subscribers are simply watching the
>>>>>>> queue of
>>>>>>> >> >> the publisher, how does the publisher know when all the
>>>>>>> subscribers
>>>>>>> >> >> have received the message and it can pull the message from the
>>>>>>> queue?
>>>>>>> >> >>
>>>>>>> >> >> Thanks for helping!
>>>>>>> >> >> Matt
>>>>>>> >> >>
>>>>>>> >> >> On Thu, Jan 29, 2009 at 11:22 AM, Ayende Rahien <
>>>>>>> [email protected]>
>>>>>>> >> >> wrote:
>>>>>>> >> >> > inline
>>>>>>> >> >> >
>>>>>>> >> >> > On Thu, Jan 29, 2009 at 12:39 PM, Matt Burton <
>>>>>>> [email protected]>
>>>>>>> >> >> > wrote:
>>>>>>> >> >> >>
>>>>>>> >> >> >> Follow-up question - I saw some activity around the load
>>>>>>> balancer in
>>>>>>> >> >> >> SVN after my last message and dug into it and discovered the
>>>>>>> >> >> >> LoadBalancerHost and it's accompanying
>>>>>>> >> >> >> RemoteAppDomainLoadBalancerHost. I'm not using this for my
>>>>>>> load
>>>>>>> >> >> >> balancer, yet it's still working - so I'm wondering what it
>>>>>>> is
>>>>>>> >> >> >> exactly
>>>>>>> >> >> >> that I've got going here... My workers are configured with
>>>>>>> load
>>>>>>> >> >> >> balancer endpoints but I'm not sure how the messages are
>>>>>>> getting
>>>>>>> >> >> >> sent
>>>>>>> >> >> >> to the worker queues without the MsmqLoadBalancer in play.
>>>>>>> I've been
>>>>>>> >> >> >> going through the RSB code but I'm not exactly sure of the
>>>>>>> flow at
>>>>>>> >> >> >> this point.
>>>>>>> >> >> >
>>>>>>> >> >> > We have a problem of terminology.
>>>>>>> >> >> > What you call load balancer I think about as pub/sub.
>>>>>>> >> >> > What the load balancer in RSB is supposed to accomplish is to
>>>>>>> let you
>>>>>>> >> >> > have
>>>>>>> >> >> > several machines sharing the load of a single endpoint.
>>>>>>> >> >> > Think about it like a hardware load balancer in front of a
>>>>>>> single
>>>>>>> >> >> > URL.
>>>>>>> >> >> >
>>>>>>> >> >> >>
>>>>>>> >> >> >> In any event - when I do try to use the LoadBalancerHost or
>>>>>>> the
>>>>>>> >> >> >> remote
>>>>>>> >> >> >> app domain loader it complains about the endpoint and
>>>>>>> threadCount
>>>>>>> >> >> >> properties that it's dependent on. I saw in the unit tests
>>>>>>> how
>>>>>>> >> >> >> you're
>>>>>>> >> >> >> manually specifying these values when configuring the
>>>>>>> container, but
>>>>>>> >> >> >> I
>>>>>>> >> >> >> don't have hook to do this with the LoadBalancerHost as it
>>>>>>> doesn't
>>>>>>> >> >> >> use
>>>>>>> >> >> >> a bootstrapper to configure the host before starting it,
>>>>>>> even if you
>>>>>>> >> >> >> specify one. I have the facility configuration in my config
>>>>>>> file,
>>>>>>> >> >> >> obviously, but it's not picking it up for some reason:
>>>>>>> >> >> >
>>>>>>> >> >> > It is not done yet, unfortunately.
>>>>>>> >> >> >
>>>>>>> >> >> >>
>>>>>>> >> >> >> public void Start()
>>>>>>> >> >> >> {
>>>>>>> >> >> >>    var container = new WindsorContainer(new
>>>>>>> XmlInterpreter());
>>>>>>> >> >> >>    container.Kernel.AddFacility("rhino.esb", new
>>>>>>> >> >> >> RhinoServiceBusFacility());
>>>>>>> >> >> >>    container.AddComponent<MsmqLoadBalancer>();
>>>>>>> >> >> >>
>>>>>>> >> >> >>    loadBalancer = container.Resolve<MsmqLoadBalancer>();
>>>>>>> >> >> >> }
>>>>>>> >> >> >>
>>>>>>> >> >> >> It blows up on the Resolve call. What am I missing?
>>>>>>> >> >> >>
>>>>>>> >> >> >> I'm assuming that if I can get this working that the new
>>>>>>> >> >> >> KnownWorkers
>>>>>>> >> >> >> public property on MsmqLoadBalancer would be the solution to
>>>>>>> my
>>>>>>> >> >> >> question below, where I want to know the number of workers
>>>>>>> >> >> >> participating in a load balanced scenario, correct?
>>>>>>> >> >> >>
>>>>>>> >> >> >> Thanks,
>>>>>>> >> >> >> Matt
>>>>>>> >> >> >>
>>>>>>> >> >> >> On Wed, Jan 28, 2009 at 11:05 AM, Matt Burton
>>>>>>> >> >> >> <[email protected]>
>>>>>>> >> >> >> wrote:
>>>>>>> >> >> >> > I have a scenario where I want to have multiple
>>>>>>> subscribers to a
>>>>>>> >> >> >> > message such that when the message is published each picks
>>>>>>> it up
>>>>>>> >> >> >> > and
>>>>>>> >> >> >> > processes it independently. In terms of config I don't
>>>>>>> want to
>>>>>>> >> >> >> > have
>>>>>>> >> >> >> > the publisher know about each worker node, so I was able
>>>>>>> to get
>>>>>>> >> >> >> > the
>>>>>>> >> >> >> > load balancer concept running and it works just as I had
>>>>>>> hoped.
>>>>>>> >> >> >> >
>>>>>>> >> >> >> > Question - the scenario I'm proving out here is one where
>>>>>>> I'm
>>>>>>> >> >> >> > provisioning software to machines, so that I receive a
>>>>>>> request to
>>>>>>> >> >> >> > provision a new tenant and then I publish a message to
>>>>>>> create a
>>>>>>> >> >> >> > new
>>>>>>> >> >> >> > web site for that tenant on N machines. I want to be able
>>>>>>> to throw
>>>>>>> >> >> >> > a
>>>>>>> >> >> >> > new box into the mix and have it participate in the
>>>>>>> process
>>>>>>> >> >> >> > automatically. It would be nice to know whether or not the
>>>>>>> >> >> >> > provisioning of the web site was successful on each
>>>>>>> machine and
>>>>>>> >> >> >> > base
>>>>>>> >> >> >> > the completion of the saga on whether or not all boxes
>>>>>>> chimed in
>>>>>>> >> >> >> > saying they were successful. In order to do that, however,
>>>>>>> I'd
>>>>>>> >> >> >> > need
>>>>>>> >> >> >> > to
>>>>>>> >> >> >> > know how many servers were participating, something which
>>>>>>> looks
>>>>>>> >> >> >> > like
>>>>>>> >> >> >> > it would require some tinkering around with the actual
>>>>>>> >> >> >> > subscription
>>>>>>> >> >> >> > queues themselves to figure out.
>>>>>>> >> >> >> >
>>>>>>> >> >> >> > What would you advise in this scenario? Fire and forget
>>>>>>> for
>>>>>>> >> >> >> > provisioning the sites - depend on an external solution to
>>>>>>> monitor
>>>>>>> >> >> >> > errors? Or do I have the workers send back a thumbs up
>>>>>>> saying that
>>>>>>> >> >> >> > they did their job and when all report back call it good?
>>>>>>> If so,
>>>>>>> >> >> >> > what
>>>>>>> >> >> >> > are my options for determining the number of subscribers
>>>>>>> in the
>>>>>>> >> >> >> > load
>>>>>>> >> >> >> > balanced scenario?
>>>>>>> >> >> >> >
>>>>>>> >> >> >> > Thanks,
>>>>>>> >> >> >> > Matt
>>>>>>> >> >> >> >
>>>>>>> >> >> >>
>>>>>>> >> >> >>
>>>>>>> >> >> >
>>>>>>> >> >> >
>>>>>>> >> >> > >
>>>>>>> >> >> >
>>>>>>> >> >>
>>>>>>> >> >>
>>>>>>> >> >
>>>>>>> >> >
>>>>>>> >> > >
>>>>>>> >> >
>>>>>>> >>
>>>>>>> >>
>>>>>>> >
>>>>>>> >
>>>>>>> > >
>>>>>>> >
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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