Hm, from your description, it sounds like you are running into a race
condition.
Put a Thread.Sleep(1500) before executing the code after you started up the
bus, what is happening then?

On Tue, Apr 14, 2009 at 12:20 AM, rg <[email protected]> wrote:

>
> I have uploaded the sample application to this group files section
> (WindsorTest2.zip -
> http://groups.google.com/group/rhino-tools-dev/web/WindsorTest2.zip?hl=en
> )
> With this application the error is reproducible almost every time.
> However, there was a single time when it worked. I inspected the
> queues created by this app and there was a subscription message in the
> rsbtest#subscriptions queue. So I deleted all the queues and ran the
> application again - queues were created but subscription message was
> not sent.
> When debugging, in StartableServiceBus.Start, there's a call to
> AutomaticallySubscribeConsumerMessages. But this method detects no
> message handlers, so no wonder they are not registered. Very strange
> it worked just once. My machine is win 2003 and the message queues
> were automatically created by RSB.
>
> On Apr 13, 9:47 pm, Ayende Rahien <[email protected]> wrote:
> > Hm, that should work. Can you create a small test app for this?
> >
> > On Mon, Apr 13, 2009 at 11:43 PM, nightwatch77 <[email protected]
> >wrote:
> >
> >
> >
> > > After briefly reading RSB source and some docs I see that the default
> > > option for subscribing to messages is to implement interface
> > > ConsumerOf<MessageType> and the service bus on start should search the
> > > container and subscribe all registered consumer types. But I have a
> > > problem with this. If you look at my previous post, I'm registering
> > > RSB facitlity and MyDearComponent in the container. Now my component
> > > implements ConsumerOf<MyDearMessage> and I'm publishing MyDearMessage
> > > instance, but I get an exception saying that there were no subscribers
> > > for this type of message. So what else do I need to do to get the
> > > messsage delivered? My code is below.
> >
> > > [Serializable]
> > >    public class MyDearMessage
> > >    {
> > >        public string Body;
> > >        public MyDearMessage(string s) { Body = s; }
> >
> > >    }
> >
> > >    public class MyDearComponent : IMyDearComponent,
> > > ConsumerOf<MyDearMessage>
> > >    {
> > >        private IServiceBus _sb;
> >
> > >        public IServiceBus ServiceBus
> > >        {
> > >            get { return _sb; }
> > >            set { _sb = value; }
> > >        }
> >
> > >        public void Test()
> > >        {
> > >            if (ServiceBus == null) throw new Exception("NO SB");
> > >            ServiceBus.Publish(new MyDearMessage("Jozin z bazin"));
> > >            Console.WriteLine("Sent.");
> > >        }
> >
> > >        public void Consume(MyDearMessage message)
> > >        {
> > >            Console.WriteLine("Consuming message: " + message.Body);
> > >        }
> > >    }
> >
> > > <facilities>
> > >      <facility id="rhino.esb"
> > > type="Rhino.ServiceBus.Impl.RhinoServiceBusFacility,
> > > Rhino.ServiceBus">
> > >        <bus threadCount="1"
> > >           numberOfRetries="5"
> > >           endpoint="msmq://localhost/rsbtest"
> > >             />
> > >        <messages>
> > >          <add name="WindsorTest1"
> > >             endpoint="msmq://localhost/rsbtest"/>
> > >        </messages>
> > >      </facility>
> > >    </facilities>
> >
> > >    <components>
> >
> > >      <component id="MyComponent" type="WindsorTest1.MyDearComponent,
> > > WindsorTest1" service="WindsorTest1.IMyDearComponent, WindsorTest1">
> >
> > >      </component>
> >
>

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