Yes, that is because I can't get my environment updated to commit the
patch that fixes this issue. Having the subscription as main queue
will throw you into a recursive loop if you use instance
subscriptions.
Please see this thread:http://groups.google.com/group/rhino-tools-dev/
browse_thread/thread/2d6e0cac226eae69



On Jan 21, 7:40 am, [email protected] wrote:
> according to the strategy code subscription queue is the main
>
> On 1/21/09, Mike Nichols <[email protected]> wrote:
>
>
>
> > This line:
> > +          internal static void InitializeSubQueues(Uri endpoint, bool
> > transactional)
> > +          {
> > +                  var siblingQueues = new[] {"#errors", "#discarded", 
> > "#timeout"};
> > +                  foreach(var sibling in siblingQueues)
> > +                  {
> > +                          new Uri(endpoint.ToString() + 
> > sibling).CreateQueue
> > (transactional,QueueAccessMode.Peek).Close();
> > +                  }
> > +          }
> > +
>
> > Is missing the #subscriptions subqueue. There are five total queues
> > created for a specific endpoint, though I believe right now flatqueue
> > strategy doesn't participate in timeout handling...that may be fixed
> > now.
>
> > On Jan 20, 4:00 pm, chrisortman <[email protected]> wrote:
> >> As of right now it is not.
> >> I also posted it as a zip file in this
> >> threadhttp://groups.google.com/group/rhino-tools-dev/browse_frm/thread/5b03...
>
> >> If you have trouble applying you can download a copy of my repo from
> >> herehttp://github.com/chrisortman/rhino-tools/tree/master
>
> >> On Jan 20, 3:33 pm, lars kolsaker <[email protected]> wrote:
>
> >> > Is this patch added to the trunk ?
>
> >> > On Jan 19, 8:06 pm, Ayende Rahien <[email protected]> wrote:
>
> >> > > Please zip it here.
> >> > > Mike, can you review that?
>
> >> > > On Mon, Jan 19, 2009 at 2:02 PM, chrisortman <[email protected]>
> >> > > wrote:
>
> >> > > > Here's a patch for that
>
> >> > > > From 5dc1b09401ae6e9c5cd719025c57121dd293aa34 Mon Sep 17 00:00:00
> >> > > > 2001
> >> > > > From: Chris Ortman <[email protected]>
> >> > > > Date: Mon, 19 Jan 2009 13:00:33 -0600
> >> > > > Subject: [PATCH] Allows the FlatQueueStrategy to create its
> >> > > > subqueues
> >> > > > on demand.
>
> >> > > > ---
> >> > > >  .../MsmqFlatQueueTestBase.cs                       |   67 +++++++++
> >> > > > +----------
> >> > > >  ...rializableMessageWillBeForwardedToErrorQueue.cs |    1 +
> >> > > >  .../Impl/RhinoServiceBusFacility.cs                |    8 +++
> >> > > >  .../Rhino.ServiceBus/Msmq/FlatQueueStrategy.cs     |   17 ++++-
> >> > > >  .../Rhino.ServiceBus/Msmq/IInitializeSubQueues.cs  |   33
> >> > > > ++++++++++
> >> > > >  .../Rhino.ServiceBus/Msmq/IQueueStrategy.cs        |    1 +
> >> > > >  .../Rhino.ServiceBus/Msmq/MsmqExtensions.cs        |    8 ++-
> >> > > >  .../Rhino.ServiceBus/Msmq/MsmqTransport.cs         |   14 ++++
> >> > > >  .../Rhino.ServiceBus/Msmq/MsmqUtil.cs              |    4 +-
> >> > > >  .../Rhino.ServiceBus/Msmq/SubQueueStrategy.cs      |    5 ++
> >> > > >  .../Rhino.ServiceBus/Rhino.ServiceBus.csproj       |    1 +
> >> > > >  11 files changed, 119 insertions(+), 40 deletions(-)
> >> > > >  create mode 100644 rhino-service.bus/Rhino.ServiceBus/Msmq/
> >> > > > IInitializeSubQueues.cs
>
> >> > > > diff --git a/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > MsmqFlatQueueTestBase.cs b/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > MsmqFlatQueueTestBase.cs
> >> > > > index a08b167..0f0f89a 100644
> >> > > > --- a/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > MsmqFlatQueueTestBase.cs
> >> > > > +++ b/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > MsmqFlatQueueTestBase.cs
> >> > > > @@ -64,46 +64,47 @@ namespace Rhino.ServiceBus.Tests
> >> > > >             if (MessageQueue.Exists(transactionalTestQueuePath) ==
> >> > > > false)
> >> > > >                 MessageQueue.Create(transactionalTestQueuePath,
> >> > > > true);
>
> >> > > > -            if (MessageQueue.Exists(testQueuePath +
> >> > > > errorsPathSuffix)
> >> > > > == false)
> >> > > > -                MessageQueue.Create(testQueuePath +
> >> > > > errorsPathSuffix);
> >> > > > -
> >> > > > -            if (MessageQueue.Exists(testQueuePath2 +
> >> > > > errorsPathSuffix) == false)
> >> > > > -                MessageQueue.Create(testQueuePath2 +
> >> > > > errorsPathSuffix);
> >> > > > -
> >> > > > -            if (MessageQueue.Exists(transactionalTestQueuePath +
> >> > > > errorsPathSuffix) == false)
> >> > > > -                MessageQueue.Create(transactionalTestQueuePath +
> >> > > > errorsPathSuffix, true);
> >> > > > -
> >> > > > -            if (MessageQueue.Exists(testQueuePath +
> >> > > > discardedPathSuffix) == false)
> >> > > > -                MessageQueue.Create(testQueuePath +
> >> > > > discardedPathSuffix);
>
> >> > > >             queue = new MessageQueue(testQueuePath);
> >> > > >             queue.Purge();
>
> >> > > > -            using (var errQueue = new MessageQueue(testQueuePath +
> >> > > > errorsPathSuffix))
> >> > > > -            {
> >> > > > -                errQueue.Purge();
> >> > > > -            }
> >> > > > -
> >> > > > -            using (var discardedQueue = new MessageQueue
> >> > > > (testQueuePath + discardedPathSuffix))
> >> > > > -            {
> >> > > > -                discardedQueue.Purge();
> >> > > > -            }
> >> > > > -
> >> > > > -            testQueue2 = new MessageQueue(testQueuePath2);
> >> > > > +
> >> > > > if(MessageQueue.Exists(testQueuePath+ errorsPathSuffix))
> >> > > > +                                               {
> >> > > > +                                                       using (var
> >> > > > errQueue
> >> > > > = new MessageQueue(testQueuePath +
> >> > > > errorsPathSuffix))
> >> > > > +                                                       {
> >> > > > +
> >> > > > errQueue.Purge();
> >> > > > +                                                       }
> >> > > > +                                               }
> >> > > > +
> >> > > > +
> >> > > > if(MessageQueue.Exists(testQueuePath+discardedPathSuffix))
> >> > > > +                                       {
> >> > > > +                                               using (var
> >> > > > discardedQueue =
> >> > > > new MessageQueue(testQueuePath +
> >> > > > discardedPathSuffix))
> >> > > > +                                               {
> >> > > > +
> >> > > > discardedQueue.Purge();
> >> > > > +                                               }
> >> > > > +                                       }
> >> > > > +
> >> > > > +               testQueue2 = new MessageQueue(testQueuePath2);
> >> > > >             testQueue2.Purge();
>
> >> > > > -            using (var errQueue2 = new MessageQueue(testQueuePath2
> >> > > > +
> >> > > > errorsPathSuffix))
> >> > > > -            {
> >> > > > -                errQueue2.Purge();
> >> > > > -            }
> >> > > > +
> >> > > > if(MessageQueue.Exists(testQueuePath2+errorsPathSuffix))
> >> > > > +                                       {
> >> > > > +                                               using (var errQueue2
> >> > > > = new
> >> > > > MessageQueue(testQueuePath2 +
> >> > > > errorsPathSuffix))
> >> > > > +                                               {
> >> > > > +
> >> > > > errQueue2.Purge();
> >> > > > +                                               }
> >> > > > +                                       }
>
> >> > > > -            transactionalQueue = new MessageQueue
> >> > > > (transactionalTestQueuePath);
> >> > > > +               transactionalQueue = new MessageQueue
> >> > > > (transactionalTestQueuePath);
> >> > > >             transactionalQueue.Purge();
>
> >> > > > -            using (var errQueue3 = new MessageQueue
> >> > > > (transactionalTestQueuePath + errorsPathSuffix))
> >> > > > -            {
> >> > > > -                errQueue3.Purge();
> >> > > > -            }
> >> > > > +               if (MessageQueue.Exists(transactionalTestQueuePath +
> >> > > > errorsPathSuffix))
> >> > > > +               {
> >> > > > +                       using (var errQueue3 = new MessageQueue
> >> > > > (transactionalTestQueuePath + errorsPathSuffix))
> >> > > > +                       {
> >> > > > +                               errQueue3.Purge();
> >> > > > +                       }
> >> > > > +               }
>
> >> > > >             subscriptions = new MessageQueue(subbscriptionQueuePath)
> >> > > >             {
> >> > > > @@ -122,7 +123,7 @@ namespace Rhino.ServiceBus.Tests
> >> > > >                         new XmlMessageSerializer(
> >> > > >                             new DefaultReflection(),
> >> > > >                             new DefaultKernel()), TestQueueUri, 1,
> >> > > > -                        DefaultMessageActions(TestQueueUri));
> >> > > > +                        DefaultMessageActions(TestQueueUri))
> >> > > > { SubQueueInitializer = new FlatQueueSubQueueInitializer()};
> >> > > >                     transport.Start();
> >> > > >                 }
> >> > > >                 return transport;
> >> > > > @@ -150,7 +151,7 @@ namespace Rhino.ServiceBus.Tests
> >> > > >                 if (transactionalTransport == null)
> >> > > >                 {
> >> > > >                     transactionalTransport = new MsmqTransport(new
> >> > > > XmlMessageSerializer(new DefaultReflection(), new DefaultKernel()),
> >> > > > -
> >> > > > TransactionalTestQueueUri, 1, DefaultMessageActions
> >> > > > (TransactionalTestQueueUri));
> >> > > > +
> >> > > > TransactionalTestQueueUri, 1, DefaultMessageActions
> >> > > > (TransactionalTestQueueUri) ){ SubQueueInitializer = new
> >> > > > FlatQueueSubQueueInitializer()};
> >> > > >                     transactionalTransport.Start();
> >> > > >                 }
> >> > > >                 return transactionalTransport;
> >> > > > diff --git a/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > UnserializableMessageWillBeForwardedToErrorQueue.cs b/rhino-
> >> > > > service.bus/Rhino.ServiceBus.Tests/
> >> > > > UnserializableMessageWillBeForwardedToErrorQueue.cs
> >> > > > index 60110b7..04db6a9 100644
> >> > > > --- a/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > UnserializableMessageWillBeForwardedToErrorQueue.cs
> >> > > > +++ b/rhino-service.bus/Rhino.ServiceBus.Tests/
> >> > > > UnserializableMessageWillBeForwardedToErrorQueue.cs
> >> > > > @@ -36,6 +36,7 @@ namespace Rhino.ServiceBus.Tests
> >> > > >             Assert.True(wasCalled);
> >> > > >         }
> >> > > >     }
> >> > > > +
> >> > > >     public class
>
> ...
>
> 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