[rabbitmq-discuss] FW:  wct + pubsub
    Andrius Norkaitis 
    Andrius.Norkaitis at oryo.lt
       
    Wed Oct  1 06:49:19 BST 2008
    
    
  
>Are both instances of the server running off the same (shared) queue?
>That could explain the behaviour you are seeing.
>If you want to get one copy of the message per subscribed client, you
>need one queue per subscriber, and then to bind each queue to the
>relevant exchange with the relevant key (direct case) or keys (topic
>case).
>Without diving deeper into the code it looks to me like this is how
>logtail is working (so "Both instances of logtail program got the
>message."), but the second example is running off a shared queue (or
>you have found a bug).
>Can you check if I am right please.  If I am wrong we shall need
>someone to dig deeper at this end, which we can do, but probably not
>today or tomorrow.
I tried to compare query declaration code in logtain and WCF example and
haven't found significant differences.
Ok. This is code from WCF service model implementation
(RabbitMQInputChannel.cs):
	//Create a queue for messages destined to this service, bind it to
the service URI routing key
            
            string queue = model.QueueDeclare(ticket);
            model.QueueBind(ticket, queue, base.LocalAddress.Uri.Host,
base.LocalAddress.Uri.PathAndQuery, false, null);
            //Listen to the queue
            messageQueue = new QueueingBasicConsumer(model);
            model.BasicConsume(ticket, queue, null, messageQueue);
and this code is from logtail:
using (IModel ch = conn.CreateModel()) {
                        ushort ticket = ch.AccessRequest("/data");
                        Subscription sub;
                        if (exchange == "") {
                            sub = new Subscription(ch, ticket, routingKey);
                        } else {
                            sub = new Subscription(ch, ticket, exchange,
exchangeType, routingKey);
                        }
And Subscribtion implamentation code (Subscription.cs) for query creating:
    m_queueName = m_model.QueueDeclare(ticket);
Maybe I missed something, but I fell the same, that something with query
declaration is wrong.
    
    
More information about the rabbitmq-discuss
mailing list