[rabbitmq-discuss] No error reported when tx_select/basic_publish/tx_commit is given an undefined queue name?
mpietrek at skytap.com
Thu Mar 29 19:13:13 BST 2012
Every day's a school day. I didn't know about the mandatory flag.
HOWEVER... Having added to the code below, I still don't get and indication
of error. Stepping into the tx_commit code, I see what looks like a
Tx.CommitOK message back from the server. I've double-verified that the
queue I'm sending to doesn't exist.
On Thu, Mar 29, 2012 at 3:52 AM, Marek Majkowski <majek04 at gmail.com> wrote:
> On Thu, Mar 29, 2012 at 01:16, Matt Pietrek <mpietrek at skytap.com> wrote:
> > I have a Pika code sequence that looks like this:
> > channel = self._channel
> > channel.tx_select()
> > channel.basic_publish(exchange='',
> > routing_key=queue_name,
> > body=json_string,
> > properties=pika.BasicProperties(delivery_mode=2))
> > channel.tx_commit()
> > During some robustness testing, I found that if I passed an invalid queue
> > name to basic_get, I get an AMQPChannelError as expected. However, when
> > using the above code to write a message to an invalid queue name, no
> > exception is seen.
> > Is this normal or am I missing something? In our scenario, we have to
> > absolutely, positively know that the message was received by the broker.
> Yes, this is normal.
> AMQP does not allow you to send message to a "queue", instead, you
> send a message to an exchange with a routing key.
> This routing key is a queue name in this case but it can be just anything.
> Messages sent with a routing key that is not matched by appropriate
> binding will be lost. This is the correct behaviour.
> If you need to ensure that message is delivered use 'mandatory' flag
> on basic.publish:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss